renato_pacheco
(usa Debian)
Enviado em 16/12/2009 - 22:35h
#!/bin/sh
#Configuracao de Variaveis
IPT=/sbin/iptables
IF=eth0
RD=eth1
LOG="iplog -i $IF -w -d -l /var/log/iplogs"
printf "."
start() {
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
fi
printf "."
#Ativando syn cookies proteco no kernel
if [ -e /proc/sys/net/ipv4/tcp_syncookies ]
then
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
fi
printf "."
#Setando o kernel para dinamico IP masquerado
if [ -e /proc/sys/net/ipv4/ip_dynaddr ]
then
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
fi
printf "."
#Capturando o IP da internet
net=$1
net=`ifconfig $IF| grep inet| cut -f2 -d:| cut -f1 -d " "`
#int=$1
#int=`ifconfig $RD| grep inet| cut -f2 -d:| cut -f1 -d " "`
printf "."
$IPT -P OUTPUT ACCEPT
/sbin/modprobe iptable_nat
#Bloqueio de MSN por IP
$IPT -A FORWARD -s 192.168.1.2 -p tcp --dport 1863 -j ACCEPT
$IPT -A FORWARD -s 192.168.1.2 -p tcp --dport 5190 -j ACCEPT
$IPT -A FORWARD -s 192.168.1.0/24 -p tcp --dport 1863 -j REJECT
$IPT -A FORWARD -s 192.168.1.0/24 -p tcp --dport 5190 -j REJECT
#Internet Sharing e Firewall - Iniciando
$IPT -t nat -A POSTROUTING -o $IF -j MASQUERADE
$IPT -t nat -A PREROUTING -p tcp --dport -j REDIRECT --to-port 3128
$IPT -A FORWARD -i $IF -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m limit --limit 60/minute --limit-burst 60
printf "."
#Desvios de portas (Redirecionamentos)
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 5900 -j DNAT --to 192.168.1.20:5900 #VNC(programa)
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 2550 -j DNAT --to 192.168.1.20:2550 #GV800
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 3550 -j DNAT --to 192.168.1.20:3550 #GV800
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 4550 -j DNAT --to 192.168.1.20:4550 #GV800
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 5550 -j DNAT --to 192.168.1.20:5550 #GV800
$IPT -t nat -A PREROUTING -i eth0 -p tcp --dport 6550 -j DNAT --to 192.168.1.20:6550 #GV800
printf "."
#Criando Logs para a chain.
$IPT -N LDROP
$IPT -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "BackOrifice"
$IPT -A LDROP -p tcp -j LOG --log-level 7 --log-prefix "DROP"
$IPT -A LDROP -p udp -j LOG --log-level 7 --log-prefix "DROP"
$IPT -A LDROP -p icmp -j LOG --log-level 7 --log-prefix "DROP"
$IPT -A LDROP -f -j LOG --log-level 7 --log-prefix "DROP"
$IPT -A LDROP -j DROP
$IPT -N LREJECT
$IPT -A LREJECT -p tcp -j LOG --log-level 7 --log-prefix "REJECT"
$IPT -A LREJECT -p udp -j LOG --log-level 7 --log-prefix "REJECT"
$IPT -A LREJECT -p icmp -j LOG --log-level 7 --log-prefix "REJECT"
$IPT -A LREJECT -f -j LOG --log-level 7 --log-prefix "REJECT"
$IPT -A LREJECT -j REJECT
$IPT -N LACCEPT
$IPT -A LACCEPT -p tcp -j LOG --log-level 7 --log-prefix "ACCEPT"
$IPT -A LACCEPT -p udp -j LOG --log-level 7 --log-prefix "ACCEPT"
$IPT -A LACCEPT -p icmp -j LOG --log-level 7 --log-prefix "ACCEPT"
$IPT -A LACCEPT -f -j LOG --log-level 7 --log-prefix "ACCEPT"
$IPT -A LACCEPT -j ACCEPT
$IPT -N TREJECT
$IPT -A TREJECT -p tcp -j REJECT --reject-with tcp-reset
$IPT -A TREJECT -p ! tcp -j REJECT --reject-with icmp-port-unreachable
$IPT -A TREJECT -j REJECT
$IPT -N LTREJECT
$IPT -A LTREJECT -p tcp -j REJECT --reject-with tcp-reset
$IPT -A LTREJECT -p ! tcp -j REJECT --reject-with icmp-port-unreachable
$IPT -A LTREJECT -p tcp -j LOG --log-level 7 --log-prefix "REJECT "
$IPT -A LTREJECT -p udp -j LOG --log-level 7 --log-prefix "REJECT "
$IPT -A LTREJECT -p icmp -j LOG --log-level 7 --log-prefix "REJECT "
$IPT -A LTREJECT -f -j LOG --log-level 7 --log-prefix "REJECT "
$IPT -A LTREJECT -p tcp -j REJECT --reject-with tcp-reset
$IPT -A LTREJECT -p ! tcp -j REJECT --reject-with icmp-port-unreachable
$IPT -A LTREJECT -j REJECT
printf "."
#Ativa o redirecionamento do MSN-Proxy
$IPT -t nat -I PREROUTING -i eth0 -p tcp --dport 1863 -j REDIRECT --to-port 1863
$IPT -A INPUT -p ALL -s 192.168.1.0/24 -i eth0 -j ACCEPT
printf "."
#Aceita trafego em lo (loopback) device
$IPT -I INPUT -i lo -j ACCEPT
$IPT -I OUTPUT -o lo -j ACCEPT
$IPT -I INPUT -i ! lo -s 127.0.0.0/255.0.0.0 -j DROP
printf "."
#Libera portas para Dreamule pegar ID alta
$IPT -t nat -A PREROUTING -p tcp --dport 36416 -j DNAT --to 192.168.1.20
$IPT -t nat -A PREROUTING -p udp --dport 55973 -j DNAT --to 192.168.1.20
printf "."
#Aceita conexoes por ack bit sets.
$IPT -A INPUT -p tcp ! --syn -i $IF -j ACCEPT
printf "."
#Bloqueio a IP Spoofing
$IPT -N syn-flood
printf "."
#Bloqueio a Ping
$IPT -A FORWARD -p icmp --icmp-type echo-request -j DROP
printf "."
#Bloqueio de Syn-flood via Limit
$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
printf "."
#Bloqueio Scanners Ocultos
$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
printf "."
#Anti-Spoofings
$IPT -A INPUT -j DROP -s 10.0.0.0/8 -i $IF
$IPT -A INPUT -j DROP -s 127.0.0.0/8 -i $IF
$IPT -A INPUT -j DROP -s 172.16.0.0/12 -i $IF
$IPT -A INPUT -j DROP -s 192.168.1.0/16 -i $IF
printf "."
#Bloqueando Multicast
$IPT -A INPUT -s 224.0.0.0/8 -d 0/0 -j DROP
$IPT -A INPUT -s 0/0 -d 224.0.0.0/8 -j DROP
printf "."
#Bloqueando Conexao ao samba pela internet
$IPT -A INPUT -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
$IPT -A INPUT -p udp -s 192.168.1.0/24 --dport 139 -j ACCEPT
$IPT -A INPUT -p udp -s 192.168.1.0/24 --dport 138 -j ACCEPT
$IPT -A INPUT -p udp -s 192.168.1.0/24 --dport 137 -j ACCEPT
$IPT -A INPUT -p tcp -s 0/0 --dport 139 -j DROP
$IPT -A INPUT -p udp -s 0/0 --dport 139 -j DROP
$IPT -A INPUT -p udp -s 0/0 --dport 138 -j DROP
$IPT -A INPUT -p udp -s 0/0 --dport 137 -j DROP
$IPT -A OUTPUT -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
$IPT -A OUTPUT -p udp -s 192.168.1.0/24 --dport 139 -j ACCEPT
$IPT -A OUTPUT -p udp -s 192.168.1.0/24 --dport 138 -j ACCEPT
$IPT -A OUTPUT -p udp -s 192.168.1.0/24 --dport 137 -j ACCEPT
$IPT -A INPUT -p tcp -i $IF --dport 445 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 445 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 139 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 139 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 133 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 133 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 137 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 137 -j LDROP
printf "."
#Bloqueando Conexao ao Webmin pela internet
$IPT -A INPUT -p tcp -i $IF --dport 10000 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 10000 -j LDROP
printf "."
#Bloqueando Conexao ao FTP pela internet
$IPT -A INPUT -p tcp -i $IF --dport 21 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 21 -j LDROP
printf "."
#Bloqueando Conexao ao MySQL pela internet
$IPT -A INPUT -p tcp -i $IF --dport 3306 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 3306 -j LDROP
printf "."
#Bloqueando NFS
$IPT -A INPUT -p tcp -i $IF --dport 2049 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 2049 -j LDROP
#Bloqueando Conexao ao Apache pela internet
$IPT -A INPUT -p tcp -i $IF --dport 4000 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 4000 -j LDROP
printf "."
#Bloqueando Conexao a porta 80
$IPT -A INPUT -p tcp -i $IF --dport 80 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 80 -j LDROP
printf "."
#Bloqueando Conexao ao Squid pela internet
$IPT -A INPUT -p tcp -i $IF --dport 3128 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 3128 -j LDROP
printf "."
#Bloqueando Conexao SSH pela internet
$IPT -A INPUT -p tcp -i $IF --dport 22 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 22 -j LDROP
printf "."
#Bloqueando Back Orifice
$IPT -A INPUT -p tcp -i $IF --dport 31337 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 31337 -j LDROP
printf "."
#Bloqueando NetBus
$IPT -A INPUT -p tcp -i $IF --dport 12345:12346 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 12345:12346 -j LDROP
printf "."
#Bloqueando Trin00
$IPT -A INPUT -p tcp -i $IF --dport 1524 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 27665 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 27444 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 31335 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 31337 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 3080 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 3080 -j LDROP
printf "."
#Rejeitando (Nao aceitos) ident requeridos.
$IPT -A INPUT -p tcp -i $IF --dport 113 -j TREJECT
$IPT -A INPUT -p udp -i $IF --dport 113 -j TREJECT
printf "."
#Bloqueando acesso para o X Server.
$IPT -A INPUT -p tcp -i $IF --dport 5999:6003 -j LDROP
$IPT -A INPUT -p udp -i $IF --dport 5999:6003 -j LDROP
$IPT -A INPUT -p tcp -i $IF --dport 7100 -j LDROP
printf "."
#Setando telnet, www, smtp, pop3 e FTP para Pouco Delay
$IPT -t mangle -A OUTPUT -p tcp --dport 22 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -p tcp --dport 23 -j TOS --set-tos Minimize-Delay
$IPT -t mangle -A OUTPUT -p tcp --dport 110 -j TOS --set-tos Minimize-Delay
printf "."
#Portas abertas para estabelecer conexoes
$IPT -A INPUT -m state --state ESTABLISHED -j ACCEPT
$IPT -A INPUT -m state --state RELATED -j ACCEPT
$IPT -A INPUT -p tcp -i $IF --dport 1023:65535 -j ACCEPT
$IPT -A INPUT -p udp -i $IF --dport 1023:65535 -j ACCEPT
$IPT -A INPUT -p tcp -i $IF --dport 2631 -j ACCEPT
$IPT -A INPUT -p udp -i $IF --dport 2631 -j ACCEPT
printf "."
$IPT -A INPUT -p icmp -i $IF -j LDROP
$IPT -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i $IF -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i $IF -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i $IF -j ACCEPT
$IPT -A OUTPUT -p icmp -o $IF -j ACCEPT
#Bloqueando Tracertroute
$IPT -A INPUT -p udp -s 0/0 -i $IF --dport 33435:33525 -j DROP
printf "."
}
stop() {
#Flushing all e criando chains.
$IPT -F
$IPT -X
$IPT -t nat -F
$IPT -t nat -X
printf "."
}
restart() {
stop
start
}
allow() {
stop
#Internet Sharing e Firewall - Iniciando
$IPT -t nat -A POSTROUTING -o $IF -j MASQUERADE
$IPT -t nat -A PREROUTING -p tcp --dport -j REDIRECT --to-port 3128
$IPT -A FORWARD -i $IF -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m limit --limit 60/minute --limit-burst 60
printf "."
}
case $1 in
"start") start ;;
"restart") restart ;;
"stop") stop ;;
"allow") allow ;;
*) echo "Modo de usar: firewall start|stop|restart|allow"
esac
Eu usei o seu exemplo. Dae vc aprimora com as dicas do Diede, ok?