Em 27 de Setembro de 2003 nasceu a idéia de se fazer um script “comunitário” para o Iptables. E deu certo!
Através do Fórum GdH (https://www.hardware.com.br/comunidade/) alguns usuários enviaram suas edições para a criação de um script mais completo para que outras pessoas pudessem o utilizar. O resultado após 1 ano é este aqui que veremos logo abaixo.
Este é o link original do projeto:
https://www.hardware.com.br/comunidade/iptables/97877/
Use o mesmo para enviar a sua contribuição, tirar as suas dúvidas ou fazer comentários. Este é o propósito deste artigo: Compartilhar a informação.
Artigo do Carlos que trata sobre a configuração do Kurumin Firewall
Trecho do Livro “Kurumin: Desvendando seus segredos” que aborda mais o assunto
Veja abaixo o script. A data de atualização sempre será impressa no próprio.
Copie o conteudo e salve em seu micro, não esqueça de dar permissão de execução (# chmod +x nome-do-arquivo) e depois, comente no ForumGdH o seu resultado 🙂
Importante: Edite os ips de acordo com a sua rede. O mesmo para as portas de alguns serviços, como o bittorrent por exemplo.
#!/bin/bash
# —————————————————————-
# Script iptables montado pela comunidade forumgdh.net
# http://forumgdh.net
# Última atualização: 06/09/2004
# —
# Participantes na ordem alfabetica:
# AValle
# bolao
# Default
# JohnDoe
# Kalicrates
# —————————————————————-echo “Carregando o firewall…”
# Definindo as variaveis
IPTABLES=”/sbin/iptables”
REDEINT=”192.168.0.0/8″
IPDNSPROVEDOR=”200.227.128.21″
ENT=”ppp+”# carregando os modulos
modprobe ip_tables
modprobe iptable_nat# limpando as tabelas
$IPTABLES -F
$IPTABLES -t nat -F# Protege contra os “Ping of Death”
$IPTABLES -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT# Protege contra os ataques do tipo “Syn-flood, DoS, etc”
$IPTABLES -A FORWARD -p tcp -m limit –limit 1/s -j ACCEPT# Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados …
$IPTABLES -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT# Logar os pacotes mortos por inatividade …
$IPTABLES -A FORWARD -m limit –limit 3/minute –limit-burst 3 -j LOG# Protege contra port scanners avançados (Ex.: nmap)
$IPTABLES -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT# Protege contra pacotes que podem procurar e obter informações da rede interna …
$IPTABLES -A FORWARD –protocol tcp –tcp-flags ALL SYN,ACK -j DROP# Protege contra todos os pacotes danificados e ou suspeitos …
$IPTABLES -A FORWARD -m unclean -j DROP# Bloqueando tracertroute
$IPTABLES -A INPUT -p udp -s 0/0 -i $ENT –dport 33435:33525 -j DROP# Protecoes contra ataques
$IPTABLES -A INPUT -m state –state INVALID -j DROP# Performance – Setando acesso a web com delay minimo
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp –dport 53 -j TOS –set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp –dport 80 -j TOS –set-tos Minimize-Delay# Deixa passar as portas UDP do servidores DNS, e Rejeitar o restante
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -j REJECT# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
$IPTABLES -A INPUT -i $ENT -p tcp –syn -j DROP# Mesmo assim fechar todas as portas abaixo de 32000
$IPTABLES -A INPUT -i $ENT -p tcp –dport :32000 -j DROP# Responde pacotes icmp especificados e rejeita o restante
$IPTABLES -A INPUT -i $ENT -p icmp –icmp-type host-unreachable -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp –icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp -j REJECT –reject-with icmp-host-unreachable# Rejeita o Kazaa (não testado ainda)
#$IPTABLES -A FORWARD -p tcp -m string –string X-Kazaa-Username: -j REJECT –reject-with tcp-reset# libera acesso interno da rede
$IPTABLES -A INPUT -p tcp –syn -s $REDEINT -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –syn -s $REDEINT -j ACCEPT
$IPTABLES -A FORWARD -p tcp –syn -s $REDEINT -j ACCEPT# libera o loopback
$IPTABLES -A OUTPUT -p tcp –syn -s 127.0.0.1/255.0.0.0 -j ACCEPT# libera conexoes de fora pra dentro
$IPTABLES -A INPUT -p tcp –destination-port 80 -j ACCEPT
#$IPTABLES -A INPUT -p tcp –destination-port 443 -j ACCEPT
#$IPTABLES -A INPUT -p tcp –destination-port 20 -j ACCEPT
#$IPTABLES -A INPUT -p tcp –destination-port 21 -j ACCEPT
#$IPTABLES -A INPUT -p tcp –destination-port 22 -j ACCEPT#libera conexoes de dentro pra fora:
$IPTABLES -A OUTPUT -p tcp –destination-port 80 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 3306 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 21 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 86 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 5190 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp –destination-port 443 -j ACCEPT# libera o bittorrent – (não testado)
# troque o X.X.X.X pelo IP da máquina correspondente
#$IPTABLES -A INPUT -p tcp –destination-port 1214 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp –dport 1214 -j DNAT –to-dest X.X.X.X
#$IPTABLES -A FORWARD -p tcp -i ppp0 –dport 1214 -d X.X.X.X -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p udp –dport 1214 -j DNAT –to-dest X.X.X.X
#$IPTABLES -A FORWARD -p udp -i ppp0 –dport 1214 -d X.X.X.X -j ACCEPT# faz o icq receber arquivos – (não testado)
# troque o X.X.X.X pelo IP da máquina correspondente
#$IPTABLES -A INPUT -p tcp –destination-port 2000:3000 -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp –dport 2000:3000 -j DNAT –to-dest X.X.X.X
#$IPTABLES -A FORWARD -p tcp -i ppp0 –dport 2000:3000 -d X.X.X.X -j ACCEPT
#$IPTABLES -t nat -A PREROUTING -i ppp0 -p udp –dport 2000:3000 -j DNAT –to-dest X.X.X.X
#$IPTABLES -A FORWARD -p udp -i ppp0 –dport 2000:3000 -d X.X.X.X -j ACCEPT# compartilha a web na rede interna
$IPTABLES -t nat -A POSTROUTING -s $REDEINT -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward# bloqueia o resto
$IPTABLES -A INPUT -p tcp –syn -j DROP
$IPTABLES -A OUTPUT -p tcp –syn -j DROP
$IPTABLES -A FORWARD -p tcp –syn -j DROP# bloqueia ping
echo “0” > /proc/sys/net/ipv4/icmp_echo_ignore_all# —————————————————————-
echo “Firewall carregado…”# EOF
Deixe seu comentário