Em 15/03/06, Márcio Inácio Silva<[EMAIL PROTECTED]> escreveu: > Em Terça 14 Março 2006 16:23, Fabiano Pires escreveu: > > Achei um erro, mas como ninguém perguntou nada ... > > > > Fabiano > > > > Deve ser que ele acha que todos na lista tem memória de elefante e se lembram > de todas as mensagens postadas por ele nos dias 31/01/2006, 01/03/2006 e > 02/03/2006.
Márcio, não entendi (talvez porque nem eu lembre o que postei nesses dias ...) :-) DebOpen: Os erros que encontrei estão nas definições de variáveis: 1) $DNS -> Está definido como DNS="200.204.0.10, 200.204.0.138" (IP), mas nas regras está definido como porta (--dport), veja apaixo $IPTABLES -A INPUT -i $WAN -p tcp --dport $DNS -j ACCEPT $IPTABLES -A INPUT -i $WAN -p udp --dport $DNS -j ACCEPT $IPTABLES -A FORWARD -i $LAN -p tcp --sport $DNS -j ACCEPT $IPTABLES -A FORWARD -i $LAN -p udp --sport $DNS -j ACCEPT Correção: Ou você define $DNS="53" ou modifica as regras para algo tipo $IPTABLES -A FORWARD -i $LAN -p tcp --d $DNS -j ACCEPT para liberar o acesso ao servidor DNS. Ah, e você deve separar os servidores em duas variáveis (ex: DNS1 e DNS2), pois o iptables não aceita os endereços da forma como você colocou. 2) De novo as váriaveis: $LAN e $WAN estão definidos como as interfaces de rede eth+ e ppp+ (até aqui está correto). O erro está no uso delas no script. Todas as linhas da tabela NAT estão erradas (embora elas estejam comentadas), pois a flag "-d" espera um endereço IP como parâmetro e você está passando $LAN, ou seja, eth+ (nome de interface). #$IPTABLES -t nat -A PREROUTING -i $WAN -p tcp -d $LAN --dport 2222 -j DNAT --to-destination 192.168.0.2:2222 Correção: Eu costumo usar variáveis WAN_NET (representando a rede Wan), WAN_IFACE (representando a interface Wan), LAN_NET e LAN_IFACE. Para usar referir-se às redes, use -s (origem) ou -d (destino) IP_DA_REDE/MASCARA_OU_CIDR Ex: LAN_NET=192.168.0.0/24 Para referir-se às interfaces use -i (interface de entrada) ou -o (interface de saída) Ex: iptables -i WAN_IFACE -d LAN_NET -m state --state NEW, INVALID -j DROP (derruba pacotes novos que chegeum pela interface wan com destino à nossa LAN, deve ser a última regra - vir depois das que liberam acesso à nossa rede. Inútil se a policy de INPUT for drop) 3) Variáveis again: #Protecao contra enderecos spoofados da internet $IPTABLES -A INPUT -i $INTER -s 10.0.0.0/8 -j DROP $IPTABLES -A INPUT -i $INTER -s 172.16.0.0/12 -j DROP $IPTABLES -A INPUT -i $INTER -s 192.168.0.0/16 -j DROP A variável $INTER é utilizada mas nunca foi declarada no script. Provavelmente o comando sai tipo " $IPTABLES -A INPUT -i -s 10.0.0.0/8 -j DROP" o que gera um erro. Correção: Utilize a variável da sua interface wan ($WAN ou $WAN_IFACE no meu exemplo) Dando uma olhadinha rápida, foi isso (na verdade, no dia em que enviei a "brincadeira" eu só tinha visto o DNS, hoje relendo o texto vi os outros erros). Uma dica: eu ando testando o shorewall, e achei muuuuito mais facil gerenciar meu firewall com ele. Um abração e volte a escrever se tiver dúvidas Fabiano > :-) > > -- > ___________________________________________________ > EAS Tecnologia e Informação - http://www.eas.com.br > Márcio Inácio Silva - [EMAIL PROTECTED] > .~. > / v \ Seja Livre, use GNU/Linux! > / ( ) \ > ^^-^^ GNU/Debian/Linux > > -- Abraços, Fabiano