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 então à segunda receita, para compartilhar a conexão. Ela é ainda mais
simples e também 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 conexão com a Internet quanto a conexão com os micros
da rede local estão funcionando normalmente. O compartilhamento da conexão
em si pode ser feito com apenas três comandos. Para compartilhar a conexão
do modem com a rede local:
Para desativar o compartilhamento, você deve usar o comando:
# iptables -t nat -F
Isso mesmo, é só isso... :-)
O compartilhamento é ativado ou desativado imediatamente, sem
que seja necessário reiniciar a conexão. Rápido, prático e confiável.
As três linhas respectivamente ativam o módulo nat do iptables, responsável
pela tradução de endereços, avisam para o iptables que ele deve direcionar
todas as conexões recebidas para a interface ppp0 (o modem) ou eth0
(a primeira placa de rede) e devolver as respostas para os clientes e
confirmam a ativação no arquivo de configuração do TCP/IP.
Não faz mal se você acessa via modem e não fica permanentemente conectado. A
regra mantém o compartilhamento ativo mesmo que você desconecte e reconecte
várias vezes.
Se os clientes da rede já estiverem configurados para acessar a web através
do endereço IP usado pelo servidor (192.168.0.1 se você quiser substituir uma
máquina Windows compartilhando através do ICS) você já deve ser capaz de acessar
a web automaticamente nos demais PCs da rede.
Uma observação é que estas regras não incluem um servidor DHCP, você deve
configurar os clientes com endereço IP fixo ou então ativar o serviço DHCPD na
sua distribuição. No Mandrake ou Red Hat basta ativar o serviço no painel de
controle e o DHCP já irá funcionar automaticamente.
A configuração nos clientes fica:
Endereço IP: qualquer endereço dentro da faixa de endereços usada
pelo servidor. Ex: 192.168.0.3.
Servidor DNS: Os endereços dos servidores DNS do seu provedor.
Ex: 200.177.250.10.
Gateway Padrão: o endereço do servidor. Ex: 192.168.0.1
Domínio: o domínio do seu provedor. Ex: terra.com.br
As linhas de compartilhamento da conexão não conflitam com as regras de
firewall que vimos anteriormente, você deve apenas ter o cuidado de colocá-las
no inicio da seqüência. Neste caso nosso script completo ficaria assim:
# Carrega os módulos
modprobe iptables
modprobe iptable_nat
# Compartilha a conexão
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 também não responda a pings, adicione a linha:
[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