Script de firewall completíssimo
Este script possui diversas características como: mascaramento da rede interna e a rede externa, bloquear acesso de sites, rádio UOL mesmo com proxy transparente, liberar as portas principais, bloqueio de ataques como ping da morte, SYN-FLOOD, ssh de força bruta, anti-spoofings e entre outros. Faltou dizer a importante amarração do ip ao mac.
Parte 10: Como fazê-lo funcionar no boot
No caso do Debian: coloque este script com o nome firewall na pasta /etc/init.d/ e verifique com o comando "ls -l /etc/init.d/firewall" se este tem as permissões de execução, ele deverá ter o seguinte formato:
-rwxr-xr-x 1 /etc/init.d/firewall
Se ele não estiver com as permissões execute o seguinte comando:
# chmod +x /etc/init.d/firewall
Depois basta criar um link simbólico na pasta /etc/rc2.d/ com o seguinte comando:
# ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall
O link apontará para o arquivo /etc/init.d/firewall, que é o nosso script, o S99 do arquivo de link significa: o "S" de Start (iniciar) e o 99 é a ordem que ele será executado juntamente com o sistema.
O Debian usa o sistema de inicialização SYSV, segundo a apostila do técnico cidadão da Utan, outras distribuições também usam esse sistema, como Red Hat, SuSE, Mandrake, Conectiva, Ubuntu, etc). Então provavelmente essa dica valerá para a maioria das distribuições.
No caso do Slackware: esta distribuição Linux utiliza o sistema init BSD, neste caso coloque-o na pasta /etc/rc.d/init.d/ e o link na pasta /etc/rc.2/, valendo as mesmas dicas ditas acima.
-rwxr-xr-x 1 /etc/init.d/firewall
Se ele não estiver com as permissões execute o seguinte comando:
# chmod +x /etc/init.d/firewall
Depois basta criar um link simbólico na pasta /etc/rc2.d/ com o seguinte comando:
# ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall
O link apontará para o arquivo /etc/init.d/firewall, que é o nosso script, o S99 do arquivo de link significa: o "S" de Start (iniciar) e o 99 é a ordem que ele será executado juntamente com o sistema.
O Debian usa o sistema de inicialização SYSV, segundo a apostila do técnico cidadão da Utan, outras distribuições também usam esse sistema, como Red Hat, SuSE, Mandrake, Conectiva, Ubuntu, etc). Então provavelmente essa dica valerá para a maioria das distribuições.
No caso do Slackware: esta distribuição Linux utiliza o sistema init BSD, neste caso coloque-o na pasta /etc/rc.d/init.d/ e o link na pasta /etc/rc.2/, valendo as mesmas dicas ditas acima.
Só uma contribuição:
"
#bloquear ataque do tipo SYN-FLOOD
echo "0" > /proc/sys/net/ipv4/tcp_syncookies
$IPTABLES -A INPUT -i $WAN -p tcp --syn -j syn-flood
(...)
$IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
"
Como descrevi em meu outro artigo "Iptables Protege contra Syn-Food?" esta técnica baseada em limit é FURADA (veja o artigo e meus argumentos em http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7070).
Mas porque o "0" no tcp_syncookies??
Colocar "1" nele (LIGAR) por si só já é técnica suficiente para bloquear o Syn food. Claro que isto deve ser feito em TODOS os servidores. Tentar evitar a negação de serviço no firewall usando limit é FURADA!
[]'s