Você está na página 1de 4

Iptables Todo administrador de redes aprende logo que uma das coisas mais importantes para qualquer rede

um bom firewall. Embora existam muitos mitos em torno disto, os firewall no fazem milagres, apenas adicionam uma camada extra de proteo, escondendo as vulnerabilidades das mquinas. Voc pode ter um servidor IIS ativo com todas as vulnerabilidades possveis dentro da sua rede, mas ningum poder fazer nada se no conseguir se conectar a ele. Este o papel do firewall, limitar e filtrar os acessos aos servidores e estaes de trabalho da sua rede. Existem vrios tipos de firewall, de todos os preos. O tipo mais simples e ao mesmo tempo um dos mais eficazes para PCs domsticos so os firewalls de bloqueio, onde voc simplesmente fecha todas as portas do micro (ou deixa abertas apenas as portas de que voc realmente precisa). Se ningum consegue se conectar a seu PC, 90% das brechas de segurana so anuladas. l Outro ponto comum a necessidade de compartilhar a conexo com a Web. Nos meus artigos sobre o Coyote mostrei como usar um 486 para esta tarefa, desta vez vamos ver como fcil fazer o mesmo com qualquer distribuio Linux. Isto permite que voc use o seu prprio PC, sem precisar montar e manter outro micro s para isso, alm de resolver as limitaes do Coyote com modems PCI e placas de rede Wireless. Isso pode ser feito facilmente atravs do Iptables. A receita funciona em qualquer distribuio que utilize o Kernel 2.4, basicamente qualquer coisa que voc ainda possa querer usar hoje em dia. Existem vrios programas grficos para configurao de firewalls, como por exemplo o GuardDog e o Shorewall (usando no Red Hat e Mandrake). Estes programas tambm trabalham com o Iptables, eles servem apenas para facilitar a configurao, criando as regras a partir das escolhas feitas pelo usurio. A configurao do Iptables feita diretamente via terminal, basta voc ir inserindo as regras uma a uma. As regras se perdem ao reiniciar o micro por isso depois de testar tudo vamos criar um script para que elas sejam recriadas automaticamente a cada reboot. O Iptables to verstil que pode ser usado para praticamente tudo relacionado inspeo, encaminhamento e at mesmo alterao de pacotes. Se ele no fizer algo possvel criar um mdulo que o faa. J que as possibilidades so infinitas mais seu tempo no, vou ficar em algumas regras simples que resolvem a maior parte dos problemas do dia a dia. A partir da voc pode ir se aperfeioando e desenvolvendo solues mais sofisticadas. Antes de mais nada voc precisa verificar se o pacote do iptables est instalado. Se voc estiver no Mandrake basta dar um "urpmi iptables". Se voc estiver no Debian, Kurumin ou Conectiva, um "apt-get install iptables" resolve. Para garantir que o Iptables est mesmo carregado, d tambm um: modprobe iptables Vamos ento criao das regras que determinam o que entra e o que no entra na mquina. Se o seu micro est ligado apenas internet, sem uma rede local, ento so necessrias apenas duas regras para resolver o problema. Abra um terminal, logue-se como root e digite o comando: iptables -A INPUT -p tcp --syn -j DROP iptables -A INPUT -i ppp0 -p udp --dport 0:30000 -j DROP Isso far com que o micro passe a ignorar conexes vindas em qualquer porta TCP, sem enviar sequer uma confirmao de que o pacote foi recebido. Voc continuar conseguindo acessar a internet normalmente, mas ningum conseguir se conectar diretamente ao seu PC; um servidor Web ou SSH que voc esquecesse de desativar passariam despercebidos. Apenas as conexes iniciadas por voc so aceitas, o que permite que alguns programas de compartilhamento como o gtkgnutella e o Kazza continuem funcionando normalmente. A segunda regra opcional (dica do Fabricio Carvalho), ela bloqueia tambm parte das portas UDP, adicionando uma camada extra se segurana. O efeito colateral que alguns programas que abrem servidores podem deixar de funcionar. Voc no conseguir mais receber arquivos pelo ICQ por exemplo, como se estivesse acessando atravs de uma conexo compartilhada via NAT. O interessante que voc pode desativar o firewall a qualquer momento, para isso basta um nico comando: iptables -F Isso elimina todas as regras do Iptables, fazendo com que seu micro volte a aceitar todas as conexes. Voc pode usa-la para permitir que algum se conecte rapidamente via ssh na sua maquina por exemplo e depois fechar tudo novamente reinserindo

as regras anteriores. Se voc tiver uma rede local e quiser que os micros da rede interna seja capazes de se conectar normalmente, mas mantendo o bloqueio a tudo que vem da internet, basta dar um "iptables -F" e comear de novo, desta vez adicionando primeiro a regra que permite os pacotes vindos da rede local: iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT Em seguida vem os comandos anteriores: iptables -A INPUT -p tcp --syn -j DROP Altere o "192.168.0.0/255.255.255.0" para a faixa de endereos e mscara de sub-rede que estiver utilizando na sua rede. Este exemplo serve para redes que utilizam a faixa de 192.168.0.1 at 192.168.0.254. O Iptables processa os comandos em seqncia. Ento todos os pacotes passam pela primeira instruo antes de ir para a segunda. Quando um pacote vem de um dos endereos da rede local imediatamente aceito, os demais vo para as duas ltimas linhas e acabam recusados. uma simples questo de sim ou no. A primeira linha diz sim para os pacotes da rede local enquanto as duas ultimas dizem no para todos os demais. Imagine agora que voc queira permitir ao mesmo tempo pacotes vindos da rede local e uma certa porta vinda da Internet, como por exemplo a porta 22 do SSH. Neste caso voc adicionaria mais uma regra, mantendo as regras anteriores: iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP iptables -A INPUT -p udp -j DROP Agora tudo o que vem na porta 22 (tanto da Internet quanto da rede local) aceito, tudo o que vem da rede local aceito e todo o resto rejeitado. Voc pode adicionar mais linhas para abrir outras portas. Se voc quisesse abrir tambm as portas 1021 e 1080, a lista ficaria assim: iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT iptables -A INPUT -p tcp --destination-port 1021 -j ACCEPT iptables -A INPUT -p tcp --destination-port 1080 -j ACCEPT iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP Isso permite que voc mantenha disponveis apenas os servidores que voc realmente quer disponibilizar e nos momentos que quiser. A qualquer tempo voc pode dar um iptables -F e readicionar apenas as regras para fechar tudo. Vamos ento segunda receita, para compartilhar a conexo. Ela ainda mais simples e tambm permite ativar ou desativar o compartilhamento a qualquer momento. Em primeiro lugar voc deve configurar as suas placas de rede e modem e verificar se tanto a conexo com a Internet quando a conexo com os micros da rede local esto funcionando normalmente. O compartilhamento da conexo em s pode ser feito com apenas trs comandos: Para compartilhar a conexo do modem com a rede local: modprobe iptable_nat iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Para compartilhar uma conexo via ADSL ou cabo instalada na eth0: modprobe iptable_nat iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward Para desativar o compartilhamento, voc deve usar o comando : iptables -t nat -F.

Isso mesmo, s isso... :-) O compartilhamento e ativado ou desativado imediatamente, sem que seja necessrio reiniciar a conexo. Rpido, prtico e confivel. As trs linhas respectivamente ativam o mdulo nat do iptables, responsvel pela traduo de endereos, avisam para o iptables que ele deve direcionar todas as conexes recebidas para a interface ppp0 (o modem) ou eth0 (a primeira placa de rede) e devolver as respostas para os clientes e confirmam a ativao no arquivo de configurao do TCP/IP. No faz mal se voc acessa via modem e no fica permanentemente conectado. A regra mantm o compartilhamento ativo mesmo que voc desconecte e reconecte vrias vezes. Se os clientes da rede j estiverem configurados para acessar a web atravs do endereo IP usado pelo servidor (192.168.0.1 se voc quiser substituir uma mquina Windows compartilhando atravs do ICS) voc j deve ser capaz de acessar a web automaticamente nos demais PCs da rede. Uma observao que estas regras no incluem um servidor DHCP, voc deve configurar os clientes com endereo IP fixo ou ento ativar o servio DHCPD na sua distribuio. No Mandrake ou Red Hat basta ativar o servio no painel de controle e o DHCP j ir funcionar automaticamente. A configurao nos clientes fica: Endereo IP: Qualquer endereo dentro da faixa de endereos usada pelo servidor. Ex: 192.168.0.3 Servidor DNS: Os endereos dos servidores DNS do seu provedor. Ex: 200.177.250.10 Gateway Padro: O endereo do servidor. Ex: 192.168.0.1 Domnio: O domnio do seu provedor. Ex: terra.com.br As linhas de compartilhamento da conexo no conflitam com as regras de firewall que vimos anteriormente, voc deve apenas ter o cuidado de coloc-las no inicio da seqncia. Neste caso nosso script completo ficaria assim: # Carrega os mdulos modprobe iptables modprobe iptable_nat # Compartilha a conexo modprobe iptable_nat iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward # Abre algumas portas (opcional) iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT iptables -A INPUT -p tcp --destination-port 1021 -j ACCEPT iptables -A INPUT -p tcp --destination-port 1080 -j ACCEPT # Abre para a rede local iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT # Fecha o resto iptables -A INPUT -p tcp --syn -j DROP Se voc quiser que o PC tambm no responda a pings, adicione a linha: echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all Mais uma linha interessante de se adicionar, que protege contra pacotes danificados (usados em ataques DoS por exemplo) : iptables -A FORWARD -m unclean -j DROP (esta linha deve ser adicionada antes das demais) Agora j temos 10 comandos, fora os para abrir portas especficas. No seria muito prtico ficar digitando tudo isso cada vez que precisar reiniciar o micro. Para automatizar isso, basta colar todos os comandos dentro de um arquivo de texto. Voc pode salv-lo como por exemplo: /usr/local/bin/meu_firewall Em seguida, d permisso de execuo para o arquivo (chmod +x /usr/local/bin/meu_firewall) e voc ter um shell script que pode ser chamado a qualquer momento. Basta digitar: meu_firewall

Para tornar a inicializao realmente automtica, voc precisa apenas colocar o comando num dos arquivos de inicializao do sistema. Abra o arquivo /etc/rc.d/rc.local e adicione a linha: /usr/local/bin/meu_firewall No Debian e Kurumin voc pode usar o arquivo /etc/init.d/bootmisc.sh As regras que vimos acima funcionam como um firewall de bloqueio. Ou seja, o servidor no deixa que ningum acesse os compartilhamentos de arquivos ou conectem o backorifice instalado na mquina com o Windows 98, mas no impedem que os usurios baixem e-mails com vrus ou que acessem uma pgina web que explore alguma das vulnerabilidades do IE por exemplo. Ao usar clientes Windows o ideal complementar o firewall com um bom antivrus. Vamos agora a um ltimo passo que fowardar certas portas para os hosts da rede interna. Isso permite que voc rode um servidor de FTP ou crie um servidor de Counter Strike por exemplo em qualquer um dos micros da rede e no apenas no servidor que est diretamente conectado internet. O servidor simplesmente direciona todas as requisies recebidas na porta para o micro especificado, de forma transparente. Tambm aprendemos a fazer isso no Coyote, lembra? Mas ele utiliza o ipchains, uma verso antiga do firewall, por isso os comandos so diferentes. O foward de portas tambm usa o Nat, por isso voc tambm deve carregar o mdulo caso no tenha feito anteriormente: modprobe iptable_nat Em seguida vem as regras para fazer o foward da porta. Neste caso estou direcionando a porta 22 (do SSH) na conexo com a internet (eth0) para o micro 192.168.0.2 da rede local: iptables -t nat -A PREROUTING -i etho -p tcp --dport 22 -j DNAT --to-dest 192.168.0.2 iptables -A FORWARD -p tcp -i eth0 --dport 22 -d 192.168.0.2 -j ACCEPT Basta alterar a regra, adicionando a porta e a mquina da rede interna para onde ele deve ser redirecionada. Se voc acessa via modem, basta substituir o "eth0" em ambas as linhas por "ppp0". Esta regra pode ser usada em conjunto com as antreriores, mas deve ir sempre logo no incio do arquivo, antes das regras para compartilhar a conexo e, claro, antes das regras para fechar tudo :-) Voc pode repetir o comando vrias vezes para direcionar varias portas diferentes para vrias mquinas. Naturalmente uma mesma porta no pode ser fowardada duas vezes. Tambm possvel fowardar ranges de portas. No Unreal Tournament por exemplo voc precisa abrir as portas UDP 7777, 7778 e 7779 neste caso as regras seriam: iptables -t nat -A PREROUTING -i eth0 -p udp --dport 7777:7779 -j DNAT --to-dest 192.168.0.2 iptables -A FORWARD -p udp -i eth0 --dport 7777:7779 -d 192.168.0.2 -j ACCEPT No bittorrent, que usa as portas tcp de 6881 a 6889 (ele tenta uma a uma at achar uma disponvel) a regra seria: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6881:6889 -j DNAT --to-dest 192.168.0.2 iptables -A FORWARD -p tcp -i eth0 --dport 6881:6889 -d 192.168.0.2 -j ACCEPT Neste link voc encontra uma longa lista de portas usadas por vrios aplicativos e jogos. Basta foward-las no servidor para que os clientes da rede interna possam utiliz-los normalmente. A limitao neste caso que apenas um cliente pode usar cada porta de cada vez, mas em alguns casos o aplicativo programado para escutar em vrias portas simultneamente (como no caso do bittorrent) e basta distribuir as portas usadas entre os clientes da rede. http://www.practicallynetworked.com/sharing/app_port_list.htm Evite abrir muitas portas no seu firewall, abra apenas as portas de que voc realmente precisar e sempre termine o script com o iptables -A INPUT -p tcp --syn -j DROP para esconder todas as demais. Os famosos "buracos" no firewall surjem justamente de portas abertas que direcionam para programas ou mquinas vulnerveis. Voc direciona a porta 1022 para um micro da rede interna com uma verso desatualizada do SSH, o invasor obtm acesso a ela e a partir a tem uma base para lanar ataques contra outros micros da rede local, ataques muito mais efetivos diga-se de passagem, pois sero feitos de dentro, onde sua rede vulnervel.

Você também pode gostar

  • Trabalho
    Trabalho
    Documento6 páginas
    Trabalho
    Emanuel Santos
    Ainda não há avaliações
  • Iptables
    Iptables
    Documento4 páginas
    Iptables
    Emanuel Santos
    Ainda não há avaliações
  • FDDI (Fiber Distributed Data Interface)
    FDDI (Fiber Distributed Data Interface)
    Documento2 páginas
    FDDI (Fiber Distributed Data Interface)
    Emanuel Santos
    Ainda não há avaliações
  • Implementando Firewall
    Implementando Firewall
    Documento8 páginas
    Implementando Firewall
    Emanuel Santos
    Ainda não há avaliações
  • Cisco
    Cisco
    Documento13 páginas
    Cisco
    Emanuel Santos
    Ainda não há avaliações
  • Tabela
    Tabela
    Documento1 página
    Tabela
    Emanuel Santos
    Ainda não há avaliações
  • Juntar Documentos PDF
    Juntar Documentos PDF
    Documento1 página
    Juntar Documentos PDF
    Emanuel Santos
    Ainda não há avaliações
  • SST
    SST
    Documento8 páginas
    SST
    Emanuel Santos
    Ainda não há avaliações
  • Vista Geral O Internet Protocol (Traduzido)
    Vista Geral O Internet Protocol (Traduzido)
    Documento13 páginas
    Vista Geral O Internet Protocol (Traduzido)
    Emanuel Santos
    Ainda não há avaliações
  • FDDI (Fiber Distributed Data Interface)
    FDDI (Fiber Distributed Data Interface)
    Documento2 páginas
    FDDI (Fiber Distributed Data Interface)
    Emanuel Santos
    Ainda não há avaliações
  • FDDI
    FDDI
    Documento4 páginas
    FDDI
    Emanuel Santos
    Ainda não há avaliações
  • Cisco
    Cisco
    Documento13 páginas
    Cisco
    Emanuel Santos
    Ainda não há avaliações
  • FDDI (Fiber Distributed Data Interface)
    FDDI (Fiber Distributed Data Interface)
    Documento2 páginas
    FDDI (Fiber Distributed Data Interface)
    Emanuel Santos
    Ainda não há avaliações
  • Trabalho
    Trabalho
    Documento6 páginas
    Trabalho
    Emanuel Santos
    Ainda não há avaliações
  • Tabela
    Tabela
    Documento1 página
    Tabela
    Emanuel Santos
    Ainda não há avaliações
  • SST
    SST
    Documento8 páginas
    SST
    Emanuel Santos
    Ainda não há avaliações
  • Trabalho
    Trabalho
    Documento6 páginas
    Trabalho
    Emanuel Santos
    Ainda não há avaliações
  • Iptables
    Iptables
    Documento4 páginas
    Iptables
    Emanuel Santos
    Ainda não há avaliações
  • Implementando Firewall
    Implementando Firewall
    Documento8 páginas
    Implementando Firewall
    Emanuel Santos
    Ainda não há avaliações
  • SST
    SST
    Documento8 páginas
    SST
    Emanuel Santos
    Ainda não há avaliações
  • Iptables
    Iptables
    Documento4 páginas
    Iptables
    Emanuel Santos
    Ainda não há avaliações
  • FDDI (Fiber Distributed Data Interface)
    FDDI (Fiber Distributed Data Interface)
    Documento2 páginas
    FDDI (Fiber Distributed Data Interface)
    Emanuel Santos
    Ainda não há avaliações
  • Implementando Firewall
    Implementando Firewall
    Documento8 páginas
    Implementando Firewall
    Emanuel Santos
    Ainda não há avaliações
  • FDDI (Fiber Distributed Data Interface)
    FDDI (Fiber Distributed Data Interface)
    Documento2 páginas
    FDDI (Fiber Distributed Data Interface)
    Emanuel Santos
    Ainda não há avaliações
  • Tabela
    Tabela
    Documento1 página
    Tabela
    Emanuel Santos
    Ainda não há avaliações
  • Trabalho
    Trabalho
    Documento6 páginas
    Trabalho
    Emanuel Santos
    Ainda não há avaliações
  • Tabela
    Tabela
    Documento1 página
    Tabela
    Emanuel Santos
    Ainda não há avaliações
  • SST
    SST
    Documento8 páginas
    SST
    Emanuel Santos
    Ainda não há avaliações
  • Visio-C Pia de Planta PDF
    Visio-C Pia de Planta PDF
    Documento1 página
    Visio-C Pia de Planta PDF
    Emanuel Santos
    Ainda não há avaliações