Pessoal fiz umas mudanças:
> #!/bin/bash > #SRV-Firewall Novamarca500 > #Interface 2007 > #Clayton Nogueira - clayton.nog at gmail.com / clayton at interfacenet.com.br Faltou o número da patente, a Microsoft pode alegar que este é o 238 item do Linux que infrenge as suas patentes no Linux.FYI: esta frase foi patenteada sob registro 123456789 :P > iniciar(){ Funções, é difícil ver alguém que use-as em shell, parabéns :)
obrigado!!!
> #Suporte aos modulos > modprobe ip_tables > modprobe iptable_filter > modprobe ip_conntrack > modprobe ip_conntrack_ftp > modprobe ip_nat_ftp > modprobe ipt_LOG > modprobe ipt_state > modprobe ipt_MASQUERADE Já que estamos "modularizando" o script, que tal deixar isto numa funçao de carga de módulos? OBS: Em kernels mais recentes (leia 2.6) estes módulos são carregados automaticamente.
entendi, valeu
> #Limpando as tabelas > iptables -F #limpa regras da tabela principal > iptables -X #zera regras da tabela principal > iptables -t nat -F #limpa regras da tabela nat > iptables -t nat -X #zera regras da tabela nat Isso poderia virar outra função, mas eu particularmente penso o seguinte: se estamos iniciando o firewall é porque: 1 - As regras atuais devem ser adicionadas 2 - Se não há necessidade de manter as regras anteriores que estas sejam apagadas com um stop. :) Faltou limpar a tabela mangle ai também, ela é usada para QOS, dentre outras coisas.
ok, para limpar a tabela mangle, eu fiz iptables -t mangle -F
> #Politica padrao > iptables -P INPUT -j DROP #nega pacotes de entrada > iptables -P FORWARD -j ACCEPT #aceita o forward de pacotes > iptables -P OUTPUT -j ACCEPT #aceita pacotes de saida > iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT #libera uma > porta (inclusive para internet) Esta regra conflita com o teu DNAT mais adiante, se quiser que outra máquina da rede externa seja acessível vai ter que usar outra porta no DNAT. As políticas estão OK.
no caso da regra conflitar eu coloquei a destination-port como 80 ao invés de 22
> #Proxy Transparente > iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT > --to-port 3128 Faltou a regra que diz que as conexões vindas da tua rede na porta 3128 são aceitas, lembre-se que a política é DROP.
no caso da regra que estava faltando, eu fiz o seguinte : iptables -A INPUT -i eth1 (rede interna) -p tcp -s 10.0.0.0/8 -j ACCEPT até aqui , está correto ? aguardo resposta, obrigado.

