Este artigo aborda o processo de criação de um firewall baseado no iptables, onde o administrador de sistemas poderá bloquear acesso à portas desnecessárias, compartilhar a conexão do servidor com sua rede interna e redirecionar 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. Também aprendemos a fazer
isso no Coyote, lembra? Mas ele utiliza o ipchains, uma versão antiga do
firewall, por isso os comandos são diferentes.
O foward 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 foward 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:
Basta alterar a regra, adicionando a porta e a máquina da rede interna para
onde ela 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 várias portas
diferentes para várias máquinas. Naturalmente uma mesma porta não pode ser
fowardada duas vezes.
Também é possível fowardar ranges de portas. No Unreal Tournament por exemplo,
você precisa abrir as portas UDP 7777, 7778 e 7779, neste caso as regras seriam:
Neste link você encontra uma longa lista de portas usadas por vários aplicativos
e jogos. Basta fowardá-las no servidor para que os clientes da rede interna
possam utilizá-los normalmente. A limitação neste caso é que apenas um cliente
pode usar cada porta de cada vez, mas em alguns casos o aplicativo é programado
para escutar em várias portas simultaneamente (como no caso do bittorrent) e
basta distribuir as portas usadas entre os clientes da rede.
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 surgem justamente de portas abertas
que direcionam para programas ou máquinas vulneráveis. Você direciona a porta
1022 para
um micro da rede interna com uma versão desatualizada do SSH, o invasor obtém
acesso a ela e a partir daí tem uma base para lançar ataques contra outros
micros da rede local, ataques muito mais efetivos diga-se de passagem, pois
serão feitos de dentro, onde sua rede é vulnerável.
[2] Comentário enviado por naoexistemais em 22/06/2003 - 07:02h
Caro Wilbil,
# liberando porta 3128 para sua rede
iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 --dport 3128 -j ACCEPT
# fechando para o resto
iptables -A INPUT -p tcp --syn -j DROP
[3] Comentário enviado por Lauro em 14/08/2003 - 21:44h
Estou tendo um problema...
Quando eu crio um script com as regras de firewall e conexão, após rodá-lo ele funciona direitinho, mais ao colocálo pra rodar automaticamente no /etc/rc.d/rc.local, quando a máquina reinicia, ao voltar do boot não consigo fazer o logon no meu window manager... eu digito o login a senha e ao iniciar o carregamento do KDE ou do GNOME ele trava e não carrega o window manager...
Ai pra voltar a carregar normalmente só tirando ele do rc.local... senão não rola...
O que pode estar acontecendo?
Existe alguma incompatibilidade que gere essa pane no X?
Como pode observar é só o Nat e alem disso tenho no mesmo server um dns rodando tb mas ta tudo beleza minha duvida é a onde coloco os parametros do firewall gostaria q responde-se com detalhes e se possivel for me mandasse um e-mail com o arquivo pronto ( rc.local rodando Nat e Firewall) para eu poder estuda-lo melhor. Obrigado desdeja pela atenção.
[6] Comentário enviado por voodooguito em 11/02/2004 - 15:13h
Se eu quizer manda de uma porta para outra seria algo parecido com isso.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 500 -j DNAT --to-dest 192.168.0.2 --dport 22
[8] Comentário enviado por betolinux em 20/05/2004 - 21:37h
Estou com uma problema gostaria muito de uma resposta por favor.
tenho um servidor linux que tem internet via radio, compartilho a internet e arquivos para rede interna mas tambem compartilho a internet
para rede externa mas a rede externa encherga minha rede interna.
Eu gostaria que ela so pegasse a internet.
GOSTARIA DE SABER SE TEM ALGUM ARQUIVO EXECUTAVEL,PARA RODAR NESSES COMPUTADORES DOS USUARIOS EXTERNO.
MUITO OBRIGADO.. ENVIAR A RESPOSTA P/ LAROE7@HOTMAIL.COM
[10] Comentário enviado por aredejrf em 13/08/2004 - 09:46h
Estou com um problema, se puderem ajudar...
Tenho um servidor Oracle em outra maquina servido Oracle IAS Intrastructure e Portal 10g. Costumo acessar, via browser, o ambiente do Oracle Portal com por exemplo http://servidorX.minhaempresa.com.br:9999 na rede interna da minha empresa. Estou precisando abrir esse acesso para ser feito fora da empresa.
Supondo o IP do servidor Oracle como 13.0.5.111 em uma rede 13.0.5.0 com mascara 255.255.255.0 , como posso permitir o acesso externo a porta 9999 desse servidor para usuarios fora da rede interna???
[12] Comentário enviado por cabelomst em 03/02/2005 - 23:06h
trabalho em um tele centro com um servidor debian temos 18 terminais e mais dois computadores com windows como faço para colocalos na rede e compartilhar a internet?
ip servidor 192.168.0.1 eth1
uso dhcp3
e temos conecção via satelite (parabólica )
se alguem puder ajudar agradeço!!!
jadilson espirito santo
[13] Comentário enviado por [Evandro] em 09/05/2005 - 17:25h
Respondendo ao guilhermejr
Para redirecionar portas de toda a rede para uma porta específica como você perguntou, tente assim:
#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 500 -j REDIRECT --to-port 22
onde eth0 é a a interface de sua rede interna, 500 é a porta que as máquinas da sua rede irão solicitar conexão e 22 é a porta que o servidor irá redirecionar.
Após inserir essa regra no iptables, basta dar um echo 1 > /proc/sys/net/ipv4/ip_forward .
[21] Comentário enviado por jgilcustodio em 29/12/2006 - 09:28h
Eu consegui compartilhar mais preciso tirar uma duvida urgente, quando eu bloqueio todas as páginas e libero somento a uol por exemplo a paginal principal abre, mas as outras não, gostaria de saber que paramentro tenho que usar para ele abrir as outras páginas com link da uol tambem??? Ou se tem um jeito de deixar liberado por palavra-chve???
[22] Comentário enviado por marceloespindola em 07/07/2007 - 15:31h
Pessoal estou escrevendo um artigo aqui para o viva o linux sobre scrippt de firewall, ele está completo, pois levei muito tempo para desenvolve-lo e tinha objetivo de reunir as principais soluções e dúvidas sobre firewall iptables/netfilter para este artigo, mas como quero construir um bom artigo ainda está em fase de construção para o vivaolinux, entretanto estou disponibilizando no endereço