Faça como segue: Crie variaveis para ficar mais facil para gerenciar: IPT='/sbin/iptables' # Define o caminho padrao para o binario INT_EXT='eth0' # Interface de rede Externa Internet INT_LOC='eth1' # Interface de rede da Rede Local UP_PORTS='1024:65535' # Define numero de portas acima de 1024 # Enderecos que podem conectar-se a sites FTP. FTP_ACCEPT="192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.9 192.168.0.11 192.168.0.34 192.168.0.91 192.168.0.9 5 192.168.0.150"
# Enderecos que podem conectar-se a internet diretamente. HTTP_ACCEPT="192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 192.168.0.9 192.168.0.11 192.168.0.34 192.168.0.52 192.168.0.150" # Declaracoes de Range IP de rede LAN_RANGE="192.168.0.0/24" # Rede de Padrao # Habilitando Redirecionamento de pacotes (IP forwarding) echo 1 > /proc/sys/net/ipv4/ip_forward # Bloqueia solicitacoes de entrada, saida e passantes por padrao. # Tabela filter $IPT -t filter -P INPUT DROP $IPT -t filter -P OUTPUT DROP $IPT -t filter -P FORWARD DROP # Ativando o mascaramento da rede interna. # Com isso tudo que sair para internet saira com o endereco externo. # Permitindo que todas as maquinas da rede local naveguem na internet. $IPT -t nat -A POSTROUTING -s $LAN_RANGE -o $INT_EXT -j SNAT --to 200.XXX.XXX.XXX #INPUT # Gera log de todo trafego entrante. $IPT -t filter -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j LOG # Aceita conexoes originadas na rede local. $IPT -t filter -A INPUT -s $LAN_RANGE -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT #FORWARD # Permite a passagem de alguns tipos de ping e limita por causa do ping da morte. # apenas de dentro para fora da rede. $IPT -t filter -A FORWARD -s $LAN_RANGE -i $INT_LOC -o $INT_EXT -p icmp -m limit --limit 1/s -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPT -t filter -A FORWARD -d $LAN_RANGE -i $INT_EXT -o $INT_LOC -p icmp -m limit --limit 1/s -m state --state RELATED,ESTABLISHED -j ACCEPT # Permissao de acesso a sites e servidores FTP. for FTP in ${FTP_ACCEPT};do $IPT -t filter -A FORWARD -s ${FTP} -i $INT_LOC -o $INT_EXT -m multiport -p tcp --dport 20,21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPT -t filter -A FORWARD -s ${FTP} -i $INT_LOC -o $INT_EXT -p tcp --sport $UP_PORTS --dport $UP_PORTS -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPT -t filter -A FORWARD -d ${FTP} -i $INT_EXT -o $INT_LOC -m state --state ESTABLISHED,RELATED -j ACCEPT done # Permissao de acesso a servidores HTTP diretamente for HTTP in ${HTTP_ACCEPT};do $IPT -t filter -A FORWARD -s ${HTTP} -i $INT_LOC -o $INT_EXT -m multiport -p tcp --dport 80,8080,443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT $IPT -t filter -A FORWARD -d ${HTTP} -i $INT_EXT -o $INT_LOC -m multiport -p tcp --sport 80,8080,443 -m state --state ESTABLISHED,RELATED -j ACCEPT done Como voce bloqueou todos os acessos voce deve permitir em todas as chains (input, forward e output) cada servico que deseja acessar, portanto siga o exemplo das liberacoes de http e ftp para o forward e crie regras para permitir o mesmo no input e output, caso contrario o seu firewall nao conseguira acessar estes servicos. E lembre-se o protocolo TCP e como se fosse uma via de mao dupla, se voce libera a entrada tem que liberar a saida em cada uma das chains. Qualquer coisa posta ai! Falou -------------------------------------- - - Claudio Rocha de Jesus |.|-|.| Analista de Suporte Tecnico - [EMAIL PROTECTED] Linux user number 433834 -------------------------------------- ----- Mensagem original ---- De: Carlos Alberto <[EMAIL PROTECTED]> Para: [EMAIL PROTECTED]; [EMAIL PROTECTED]; Lista Debian <debian-user-portuguese@lists.debian.org> Enviadas: Quarta-feira, 23 de Maio de 2007 4:57:09 Assunto: iptables com nat Pessoal, gostaria de só liberar a net, http, ftp e o msn, através de nat, ja tentei de tudo. Estou liberando tudo por nat. Como faço? segue abaixo o que fiz no iptables...: #!/bin/bash ## Apaga quaisquer regras que por ventura existam iptables -F #### Regras de policiamento #### ## bloqueia qualquer pacote que não seja explicitament permitio iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP #### INPUT #### ## Permite acesso a interface loopback iptables -A INPUT -i lo -j ACCEPT ## Permite apenas entrada das respostas as conexões desaida iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ## Aceita conexoes ICMP com limite de conexoes por minuto iptables -A INPUT -p icmp -m limit --limit 3/m --limit-burst 3 -j ACCEPT ## Liberar a porta do ssh iptables -A INPUT -p tcp -s 192.168.0.24 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.0.159 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.0.150 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.0.148 --dport 22 -j ACCEPT iptables -A INPUT -p tcp -s 192.168.0.115 --dport 22 -j ACCEPT ## Registra nos logs do sistema pacotes bloqueados, estes são marcados com prefixo Firewall: iptables -A INPUT -j LOG --log-prefix "Firewall: " #### OUTPUT #### ## Permite que o servidor acesse outras maquinas iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT ### FORWARD ### # Connection tracking (aceita pacotes para conexoes já estabelecidas) iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ## Redireciona dados de eth0 para eth1 iptables -A FORWARD -s 192.168.0.159 -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.24 -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.148 -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.115 -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.150 -o eth1 -j ACCEPT #### POSTROUTING #### ## Compartilhamento da internet iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p tcp -j SNAT --to 192.168.2.97 iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -p udp -j SNAT --to 192.168.2.97 ### Ativa o modulo responsavel pelo encaminhamento de pacotes ### echo 1 > /proc/sys/net/ipv4/ip_forward -- Cumprimentos Carlos Alberto Mota Castro (Maranhão) Estudante de Engenharia Elétrica UNESP - FEIS - Ilha Solteira Usuário GNU/Linux __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/