Como construir um firewall de baixo custo para sua empresa (parte 2)

Na segunda parte desta trilogia de artigos, mostro e explico como criar algumas regras simples no iptables para a configuração de um firewall.

[ Hits: 51.925 ]

Por: Thiago da Silva Christofoli em 08/10/2003


Regras



Depois de verificado a instalação, vamos a algumas regras. Abra um terminal e digite:

# iptables -A INPUT -p tcp --syn -j DROP
# iptables -A INPUT -i ppp0 -p udp --destination-port 0:30000 -j DROP


Isso fará com que a sua máquina passe a ignorar as conexões vindas em qualquer porta tcp, sem enviar sequer uma confirmação de que o pacote foi recebido. Você continuará acessando a internet normalmente, mas ninguém conseguirá se conectar diretamente a sua máquina. A segunda regra bloqueia também parte das portas UDP, adicionando uma camada extra de segurança.

Agora vamos a parte ruim dessas regras:

O maior problema dessas regras é que alguns programas que abrem servidores podem deixar de funcionar, um exemplo: você pode não mais receber arquivos pelo icq.

O mais interessante em construir um firewall no Linux é que se você quiser desativá-lo a qualquer, momento basta um único comando:

# iptables -f

Esse comando elimina as regras do iptables, fazendo com que sua máquina volte a aceitar todas as conexões.

Se quisermos agora conectar uma rede interna normalmente, mas mantendo o bloqueio a tudo que vem da internet, adicionaremos as seguintes regras:

# iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

E em seguida às regras anteriores:

# iptables -A INPUT -p tcp --syn -j DROP

Neste caso me baseei em uma rede que utiliza a faixa de ip de 192.168.0.1 até 192.168.0.254.

O iptables executa os processos em seqüencia. Então todos os pacotes passam pela primeira instrução antes de ir para a segunda. Quando um pacote vem de um endereço da rede local é imediatamente aceito, os demais vão para as duas últimas linhas e acabam recusados. É simples a primeira linha diz sim para os pacotes da rede local enquanto as duas últimas dizem não para todos os demais.

Agora, imagine 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 a regra seria a seguinte:

# 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 --syn -j DROP


Com estas novas regras 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. Se você quiser abrir outras portas, como por exemplo as portas 1021 e 1080, basta alterar os números das portas mostradas nas regras anteriores.

Com essas regras permitimos que somente os servidores que realmente queremos disponibilizar estejam disponíveis. Lembrando que a qualquer momento você pode dar um iptables -f e re-adicionar as regras e depois fechar tudo.

Estas são algumas regras simples, mas que realmente são de fundamental importância para a segurança dos dados de sua empresa.

Na terceira e última parte desta trilogia você ficará sabendo sobre o funcionamento de cada elemento que compõe as regras de um um firewall e também saberá a relação custo x benefício deste firewall... Até lá !!!

Thiago da Silva Christofoli
Analista de Sistemas

Página anterior    

Páginas do artigo
   1. Introdução
   2. Regras
Outros artigos deste autor

Como criar um firewall de baixo custo para sua empresa

Configurando o Squid no Kurumin

Linux: Uma ótima opção para sua empresa

Como construir um firewall de baixo custo para sua empresa (parte 3)

Leitura recomendada

Firewall e NAT em FreeBSD com controle de banda e redirecionamento de portas e IPs

Dominando o iptables (parte 1)

Criando um Firewall transparente com Bridges no Debian Etch

Firewall profissional

Criando cluster com o PFSense

  
Comentários
[1] Comentário enviado por jeffestanislau em 08/10/2003 - 16:01h

Blz thiago!

O artigo agora engrenou, estamos esperando a terceira parte, waleu!!!

[2] Comentário enviado por cmarcelo em 08/10/2003 - 16:44h

Só uma observação;

É possível também bloquear todos os pacotes de entrada através da política

# iptables -P INPUT DROP

[3] Comentário enviado por ninho em 20/11/2003 - 11:33h

o comando para o flush nao seria # iptables -F com o F maiusculo?

[4] Comentário enviado por thiagosc em 05/12/2003 - 13:30h

O artigo é muito bom mais o problema que ele é idêntico ao do link que o simmons disse, o artigo do Carlos Marimoto, mas infelizmente ele não foi mencionada como a fonte...

[5] Comentário enviado por thiagosc em 05/12/2003 - 14:42h

O comentário acima esta errado, era para um outro artigo !!! Foi mal...


Contribuir com comentário