Pular para o conteúdo

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.
Lacier Dias lacierdias
Hits: 201.629 Categoria: Linux Subcategoria: Firewall
  • Indicar
  • Impressora
  • Denunciar

Parte 7: Redirecionamento de portas

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 não apenas no servidor que está diretamente conectado à internet. O servidor simplesmente direciona todas as requisições recebidas na porta para o micro especificado, de forma transparente.

O forward de portas também usa o Nat, por isso você também deve carregar o módulo caso não tenha feito anteriormente:

# modprobe iptable_nat

Em seguida vem as regras para fazer o forward da porta. Neste caso estou direcionando a porta 22 (do SSH) na conexão com a internet (eth0) para o micro 192.168.0.2 da rede local:

# iptables -t nat -A PREROUTING -i eth0 -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 máquina 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 anteriores, mas deve ir sempre logo no início do arquivo, antes das regras para compartilhar a conexão e, claro, antes das regras para fechar tudo :-)

Você pode repetir o comando várias vezes para direcionar varias portas diferentes para várias máquinas. Naturalmente uma mesma porta não pode ser fowardada duas vezes.

Também é possível forwardar 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


Por Lacier Dias
20/11/2003

   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

Gateway com autenticação pelo Samba

Configurando o Samba de maneira simples e funcional

Controle sua banda de maneira simples e inteligente com CBQ

OpenVPN - Instalação e configuração

Utilizando a ferramenta Iptstate

Zentyal 2.0 - Solução completa de segurança open source

Criando cluster com o PFSense

Firewall para o dia a dia

#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

Entre na sua conta para comentar.