renancasini
(usa Outra)
Enviado em 22/07/2015 - 15:42h
meu firewall:
#!/bin/sh
modprobe iptable_nat
iptables -F
iptables -t nat -F
iptables -X
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 80 -j REDIRECT --to 3128
iptables -I FORWARD -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Abre para uma faixa de endereçs da rede local
iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
# Abre uma porta (inclusive para a Internet)
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3389 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Ignora pings
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Protege contra synflood
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
# Desabilita o suporte a source routed packets
# Esta recurso funciona como um NAT ao contráio, que em certas circunstancias pode permitir que alguem de fora envie pacotes para micros dentro da rede local.
#echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
#echo "0" > /proc/sys/net/ipv4/conf/eth1/accept_source_route
# echo "0" > /proc/sys/net/ipv4/conf/ppp0/accept_source_route
# Proteço contra ICMP Broadcasting
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Bloqueia traceroute
iptables -A INPUT -p udp --dport 33435:33525 -j DROP
# Proteçes diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -N VALID_CHECK
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL ALL -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A VALID_CHECK -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -i inet -p icmp --icmp-type 8 -m limit --limit 5/m -j DROP
iptables -A INPUT -i inet -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 5/m -j ACCEPT
# Abre para a interface de loopback.
# Esta regra éessencial para o KDE e outros programas gráicos funcionarem adequadamente.
iptables -A INPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
# Fecha as portas udp de 1 a 1024, abre para o localhost
iptables -A INPUT -p udp -s 127.0.0.1/255.0.0.0 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.0.0/255.255.255.0 -j ACCEPT
iptables -A INPUT -p udp --dport 1:1024 -j DROP
# Redireciona uma faixa de portas para um micro da rede local
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9000:9000 -j DNAT --to-dest 192.168.0.250
iptables -A FORWARD -p tcp -i eth0 --dport 9000:9000 -d 192.168.0.250 -j ACCEPT
#for i in `seq 1 254`
#do
#iptables -I FORWARD -s 192.168.0.$i -m string --algo bm --string "facebook.com" -j REJECT
#iptables -I OUTPUT -s 192.168.0.$i -m string --algo bm --string "facebook.com" -j REJECT
#iptables -I FORWARD -s 192.168.0.$i -m string --algo bm --string "youtube.com" -j REJECT
#iptables -I OUTPUT -s 192.168.0.$i -m string --algo bm --string "youtube.com" -j REJECT
#iptables -I FORWARD -s 192.168.0.$i -m string --algo bm --string "pt-br.facebook.com" -j REJECT
#iptables -I OUTPUT -s 192.168.0.$i -m string --algo bm --string "pt-br.facebook.com" -j REJECT
#done
# Esta regra éo coraço do firewall
# ela bloqueia qualquer conexã que nã tenha sido permitida acima, justamente por isso ela éa útima da cadeia.
iptables -A INPUT -p tcp --syn -j DROP
firewall_stop(){
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}