NAT com firewall - simples, rápido e funcional

Para todos aqueles que não tem profundas experiências com o Linux, mas querem compartilhar sua conexão e ao mesmo tempo manter sua rede segura contra ataques externos.

[ Hits: 199.023 ]

Por: Lacier Dias em 26/11/2003 | Blog: http://br.linkedin.com/in/lacierdias/


Bloqueando acesso externo



Vamos então à criação das regras que determinam o que entra e o que não entra na máquina. Se o seu micro está ligado apenas à internet, sem uma rede local, então são necessárias apenas duas regras para resolver o problema. Abra um terminal, logue-se como root e digite os comandos:

# 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 conexões vindas em qualquer porta TCP, sem enviar sequer uma confirmação de que o pacote foi recebido. Você continuará conseguindo acessar a internet normalmente, mas ninguém conseguirá se conectar diretamente ao seu PC; um servidor Web ou SSH que você esquecesse de desativar passariam despercebidos.

Apenas as conexões iniciadas por você são aceitas, o que permite que alguns programas de compartilhamento como o gtkgnutella e o Kazaa continuem funcionando normalmente. A segunda regra é opcional (dica do Fabrício Carvalho), ela bloqueia também parte das portas UDP, adicionando uma camada extra se segurança.

O efeito colateral é que alguns programas que abrem servidores podem deixar de funcionar. Você não conseguirá mais receber arquivos pelo ICQ por exemplo, como se estivesse acessando através de uma conexão 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 conexões. Você pode usá-la para permitir que alguém 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 sejam capazes de se conectar normalmente, mas mantendo o bloqueio a tudo que vem da internet, basta dar um "iptables -F" e começar 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 endereços e máscara 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 seqüência. Então todos os pacotes passam pela primeira instrução antes de ir para a segunda. Quando um pacote vem de um dos endereços da rede local é imediatamente aceito, os demais vão para as duas últimas linhas e acabam recusados. É uma simples questão de sim ou não. A primeira linha diz "sim" para os pacotes da rede local enquanto as duas últimas dizem "não" para todos os demais.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando o iptables
   3. Bloqueando acesso externo
   4. Liberando acesso a partir de determinadas portas
   5. Compartilhando a conexão com a internet
   6. Automatizando a definição de regras
   7. Redirecionamento de portas
Outros artigos deste autor

Controle sua banda de maneira simples e inteligente com CBQ

Gateway com autenticação pelo Samba

Configurando o Samba de maneira simples e funcional

Leitura recomendada

Slackware 11 + kernel-2.6.18 + Layer7 + iptables

Criando cluster com o PFSense

Servidor seguro com Bridge, Snort e Guardian

Addon URL Filter - Filtrando URLs no seu firewall

A teoria por trás do firewall

  
Comentários
[1] Comentário enviado por fabio em 26/11/2003 - 21:18h

Parabéns pelo artigo Laciel, realmente é simples, rápido e funcional! :)

[2] Comentário enviado por jeffestanislau em 27/11/2003 - 07:22h

Parabéns pelo artigo, ficou muito bom!!!

[3] Comentário enviado por ths em 27/11/2003 - 10:10h

Muito bom esse artigo, campeão. Por acaso é possivel implementar nele um antivirus, utilizando o viralator ou polyoma + antivirus? Qual dos 2 funfa melhor? Ainda não vi nada sobre proxy + antivirus no site.

Um abraço.

[4] Comentário enviado por _simmons_ em 27/11/2003 - 11:08h

Muito bom o artigo Lacier, você só esqueceu de mencionar que é do Carlos Morimoto. E que está no site http://www.guiadohardware.net/artigos/256/ ... =/ . Realmente o artigo é ótimo. []s

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

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...

[6] Comentário enviado por Estival em 05/12/2003 - 16:49h

Acho que copia de artigos que já existem na internet seja até valido, mas é preciso mencionar a origem, cara voce não mudou nadinha.........copiou tudo !!!

[7] Comentário enviado por F4bR1C10 em 15/01/2004 - 12:33h

bom.. artigo..

[8] Comentário enviado por N_I_T_R_O em 22/01/2004 - 10:23h

Segui o roteiro e funcionou muito bem (so nao abri nenhuma porta de input)
so que estou com um problema agora, nao consigo conectar em nenhum servidor de ftp pela maquina onde esta o iptables.
Alguem poderia me dizer qual regra devo adicionar para isso? tentei algumas de output mas como nao entendo muito disso nao consegui.
obrigado

[9] Comentário enviado por spyhunt3r em 30/01/2004 - 16:26h

Otimo artigo... continue assim.. falo!

[10] Comentário enviado por stefano.bw em 26/03/2004 - 22:00h

Artigo legal! Sabia que já o tinha visto em algum lugar e o _simmons_ me lembrou disso... Mas, mesmo assim, prefiro nesse site... Tá mais organizado... Acho que você deveria pelo menos citar a fonte, que é o http://www.guiadohardware.net/ né?! Dou 5.0 nele... Menos 2 ptos por não ser totalmente o que eu esperava e menos 3 ptos por ter copiado sem citar a fonte.

[11] Comentário enviado por diablo em 20/09/2004 - 10:06h

Alguem saberia me informar uma regra de iptables para bloquear acesso da minha rede interna a todos os site que tenham a palavra "sex" no seu endereço?

[12] Comentário enviado por diablo em 20/09/2004 - 10:16h

<b> ALGUEM SABERIA ME INFORMAR UMA REGRA DE IPTABLES PARA BLOQUEAR ACESSO DA MINHA REDE INTERNA A TODOS OS SITE QUE TENHAM A PALAVRA "SEX" NO SEU ENDEREÇO?

[13] Comentário enviado por lacierdias em 20/09/2004 - 12:07h

isso é função do squid..rsrsr acha não????

[14] Comentário enviado por s.cabral em 18/11/2004 - 11:52h

Tenho duas redes A, B, sendo que A tem acesso à internet, e B tem acesso por que acessa os serviços da rede A. Entretanto quero que os usuários da rede A enxerguem a rede B, e o contrário não deve ser permitido.
Como configuro isto no Coyote Linux?
Silvio

[15] Comentário enviado por naoexistemais em 03/12/2004 - 03:42h

Esse artigo é nda mais que um réplica do artigo escrito por Morimoto...

falou,

[16] Comentário enviado por removido em 09/03/2005 - 07:30h

muito legal este artigo.. mas como somos iniciantes voce deveria colocar com que extenção devemos salvar o script

[17] Comentário enviado por lacierdias em 09/03/2005 - 07:39h

Amigo não precisa ter extenção alguma o arquivo oq ele tem q ter é permissão para ser executado chmod 700 [nome do arquivo] isso ja resolve

[18] Comentário enviado por removido em 02/04/2005 - 13:53h

Blz pessoal?? Estou começando agora a mexer no linux e peguei esse artigo que parece resolver o meu problema.. vou tentar usa-lo e depois eu do u a nota.. valeu

[19] Comentário enviado por bestlinux em 30/04/2005 - 17:32h

Parabéns, otimo artigo :-)

Falow !

[20] Comentário enviado por luisoft3007 em 14/12/2005 - 11:22h

Parabéns Muito bom este artigo, Valew

[21] Comentário enviado por prandini em 09/08/2006 - 08:24h

Otimo artigo, mas acho que ja vi em algum lugar

[22] Comentário enviado por celfs em 19/02/2007 - 15:42h

Pessoal estou tentando instalar o squid no ubunto 5.10 mas da um erro no install :Impossivel achar pacote squid.

podem me ajudar

[23] Comentário enviado por s4l4t1r em 19/07/2007 - 20:16h

Pô kara muito bom este seu tuto .
blz mesmo .

[24] Comentário enviado por diogo-tadeu.ca em 08/08/2008 - 16:42h

Ola a todos.
Eu estou usando a distro. Ubuntu 8.04 rodando o samba como pdc, eu conseguiria rodar esse firewall junto, na msm maquina?
outra duvuda
daria para mim rodar esse firewall em uma rede domestica de 3 pc's???
desde ja agradeço

[25] Comentário enviado por xfabi0x em 21/08/2008 - 20:51h

Tb achei ótimo o artigo..
Foi bom que enriqueceu mais a internet com essas informações mesmo que copiadas.
No meu caso por exemplo em uma pesquisa no google eu achei esse artigo e não o original do guia do hardware, a única coisa q o autor pecou foi em não citar o orignal mas valeu, talvez eu não teria achado o original se não visse links aqui nos comentários dos colegas do VOL. :D

[26] Comentário enviado por mbmaciel em 30/01/2010 - 14:45h

Um ajuste ao artigo.

O comando iptables -F não apaga todas as regras, tem que especificar em qual tabela. Ex:

$ iptables -F -t nat

O comando iptables -F só apaga as regras da tabela filter.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts