1 / 26

Netfilter / Iptables

Netfilter / Iptables. Linux como um roteador doméstico. Cenário 2. Linux como um roteador SOHO (Stands Offices and Home Offices). A máquina Linux irá atuar como um roteador semelhante ao que temos em nossas residências. Provendo a conexão ao Provedor Internet.

Download Presentation

Netfilter / Iptables

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Netfilter/Iptables Linux como um roteador doméstico

  2. Cenário 2 • Linux como um roteador SOHO (Stands Offices and Home Offices). • A máquina Linux irá atuar como um roteador semelhante ao que temos em nossas residências. • Provendo a conexão ao Provedor Internet. • Compartilhando este acesso com as máquinas da LAN. • Normalmente os roteadores SOHO possuem uma porta WAN e portas LAN. • Equipamento local do usuário (Modem DSL). • Geralmente o provedor nos fornece um endereço IP público via DHCP. • PPPoE. • Conexões Ethernet. • Conexões sem fio.

  3. Topologia

  4. Endereços • O Roteador Linux tem: • O endereço público na interface eth0, fornecido dinamicamente pelo provedor de acesso (modo NAT). • O endereço privado 192.168.1.1/24 na interface eth1, configurado por você. • O Laptop possui o endereço 192.168.1.2. • O Desktop possui o endereço 192.168.1.11. • O PC das crianças possui o endereço 192.168.1.55.

  5. Configurando a rede • Configure as interfaces de rede e os nomes dos hosts conforme o slide anterior. • É interessante criar configurações que se mantenham após a reinicialização das máquinas.

  6. Definindo a política de segurança (1) • As crianças precisam: • Usar o navegador para pesquisar na Internet. • Não queremos que elas acessem sites pornográficos. • Não queremos que elas façam download de vírus. • Também não queremos que elas acessem conteúdos P2P. • O Laptop pode: • Acessar qualquer coisa.

  7. Definindo a política de segurança (2) • O Desktop pode: • Acessar qualquer coisa. • Conectar-se à LAN a partir da Internet, via VNC. • O Roteador Linux precisa: • Rodar SSH a partir da rede interna.

  8. Construindo o proxy • Inicialmente precisamos instalar em nossa máquina firewall, o proxy server Squid. • www.squid-cache.org. • ./configure --prefix=/squid • makeall • makeinstall

  9. Configurando o Squid (1) • Adicione as linhas abaixo no arquivo /etc/squid.conf. As entradas se referem ao usuário que irá inicializar o Squid. cache_effective_user Manager cache_effective_group Manager

  10. Configurando o Squid(2) • Para ser capaz de usar o Squid como um Transparente Proxy, temos que adicionar a seguinte informação no arquivo de configuração em /squid/etc/squid.conf. http_port 3128 transparent

  11. Criando lista de acesso no Squid • Agora, precisamos definir listas de acesso para a rede interna acessar o Squid e para proibir o acesso a sites pornográficos e a arquivos perigosos. • Faremos isso para a rede inteira, mas nós usaremos o Transparente Proxy somente para o computador das crianças. • Qualquer arquivo pode ser um vírus. O que se segue é apenas um exemplo.

  12. Criando lista de acesso no Squid (2) • Insira em squid.conf as linhas abaixo: aclallsrc 0.0.0.0/0.0.0.0 (pré-definida) aclpornurl_regex –i sex adultpornhardcorefetish acl downloads urlpath_regex\.exe$\.rar$\.zip$\. pif$ \.src$ aclnossa_redesrc 192.168.0.0/24 http_accessdenyporn http_accessdeny downloads http_accessallownossa_rede http_accessdenyall

  13. ACLs • A ACL chamada porn contém a lista de nomes que não são permitidas na URL. • Você não conseguirá acessar sites que possuem estas palavras na URL, via proxy. • A ACL chamada downloads contém a lista de tipos de arquivos não permitidos. • Não será possível fazer download de arquivos com estas extensões.

  14. Próximos passos • Agora que já configuramos o proxy, vamos configurar o firewall cujas regras devem casar com as políticas de segurança que nós acabamos de construir.

  15. Computador das crianças • Para o computador das crianças nós executaremos o Transparent Proxy. • Significa que o computador acessará o proxy sem precisar configurar o navegador. • Nós já configuramos o proxy server. Agora, nós precisamos que todo o tráfego para a porta 80 TCP seja redirecionado para o proxy server. • Nós também queremos que o computador das crianças acesse a porta 443 TCP (HTTPS).

  16. Configurando iptables –t nat –A PREROUTING –s 192.168.1.55 –p tcp – -dport 80 –j REDIRECT - –to-port 3128 iptables –t nat –A POSROUTING –o eth0 -s 192.168.1.55 –p tcp – -dport443 –j MASQUERADE

  17. Computador das criançasMasquerade • Agora, vamos mascarar o computador das crianças quando ele enviar requisições DNS para nosso provedor de acesso. iptables –t nat –A POSTROUTING –o eth0 –s 192.168.1.55 –p udp – -dport 53 –j MASQUERADE • Requisições DNS usam a porta UDP 53.

  18. Yahoo! • Nós queremos que as crianças usem o “Yahoo!Messenger” somente para chat sem voz e sem transferência de arquivos. • Lendo os manuais da ferramenta, vê-se que o Yahoo! Messeger usa as portas 20, 23, 25, 80, 119, 5050, 8001 e 8002. • Também vê-se que os sites que o “Yahoo!Messenger” utiliza para InstantMesseger são: scs.msg.yahoo.com, scsa.msg.yahoo.com, scsb.msg.yahoo.com e scs.cmsg.yahoo.com.

  19. MASQUERADE • É melhor mascarar o computador das crianças quando ele acessa esses sites. Nós devemos fazer: iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.55 -d scs.msg.yahoo.com -j MASQUERADE • NOTA: Ao inserir um nome de máquina ao invés do seu endereço IP, o DNS irá resolver este nome. Se um nome é resolvido para múltiplos endereços IP, o iptables irá inserir uma regra independente para cada endereço.

  20. Proibindo o acesso aos demais hosts • Agora que nós permitimos o acesso do computador das crianças a determinados sites, devemos agora proibir o acesso a outras portas e outros sites. iptables –t nat –A POSTROUTING –o eth0 –s 192.168.1.55 –j DROP

  21. Laptops e Desktop • O Laptop e o Desktop precisam ser capazes de acessar qualquer site, então nenhuma regra é necessária a não ser o MASQUERADE para a nossa rede. iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

  22. Protegendo o firewall • Já fizemos todas as configurações necessárias a proteção de nossa rede local. Agora vamos proteger o nosso firewall. • Em primeiro lugar nós precisamos rodar o SSH em nosso firewall para que ele possa ser administrado remotamente. • Para isto precisamos criar uma nova chain. Podemos chamá-la de SSH. • Se uma vulnerabilidade for descoberta no SSH, rapidamente haverá scanners de worms na porta padrão do SSH. A porta 22. Então devemos alterar essa porta.

  23. Criando a chain SSH • Criando a chain SSH. iptables –N SSH • Agora, vamos inserir uma regra para pedir ao kernel para checar as regras na chain SSH, para toda conexão TCP na porta 1234. iptables –A INPUT –p tcp - -dport 1234 –j SSH

  24. Inserindo regras na chain SSH • Devemos inserir uma regra na chain SSH permitindo acesso somente para hosts confiáveis. • Digamos que o endereço IP do PC do nosso escritório seja 1.2.3.4. iptables –A SSH –s 1.2.3.4 –j ACCEPT iptables –A SSH –s 192.168.1.0/27 –j ACCEPT iptables –A SSH –s 0/0 –j DROP

  25. Significado das regras • A primeira regra aceita conexões a partir do computador de nosso escritório. • A segunda regra permite conexões SSH de entrada somente oriundas de computadores com endereços no intervalo de 192.168.1.1 à 192.168.1.32. • A terceira regra descarta todos as demais conexões para a porta 1234.

  26. Finalmente... • O proxy Squid tem a sua própria segurança usando as Listas de Acesso. Mesmo assim vamos que pacotes TCP SYN, vindos da Internet estabeleçam conexão com nosso Squid/Router/Firewall, exceto na porta 1234 a partir de PC 1.2.3.4. • Vamos também, liberar todos os pacotes vindos da interface loopback para IPC (processos internos de comunicação). iptables –A INPUT –i lo –j ACCEPT iptables –A INPUT –i eth0 –p tcp - –syn –j DROP

More Related