Bom gente nãomsou especialista em Iptables, sempre usei Shorewall para redes Simples e nunca tive problema, mas agora preciso mais.
Como no shorewall eu não estou conseguindo faze-lo funcionar com varias redes "Vlans" crida em um switch Grenciaveis, então estou partindo para o Iptables puro.
Lendo livros sobre o assunto e pegando regras na net para ajudar montei esta Firewall basico onde esta fucionando para todas as vlans.
Tem uma regra se habilito no firewall ela não deixar as vlans acessar a internet via proxy com squid.
Segue o script que criei.
#!/bin/bash
####### Limpar Regras ########
iptables -F
iptables -X
iptables -Z
iptables -t filter -F
iptables -t nat -F
iniciar(){
modprobe iptable_nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
#Abre para a rede local
iptables -A INPUT -p tcp --syn -s 192.168.0.0/24 -j ACCEPT
# 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
#Proteção Contra IP Spoofing
iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
iptables -A INPUT -s 172.16.0.0/16 -i eth0 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP
# Bloqueando tracerroute
iptables -A INPUT -p udp -s 0/0 -i eth0 --dport 33435:33525 -j DROP
# libera o loopback
iptables -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
# Mesmo assim fechar todas as portas abaixo de 32000
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 32000 -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 eth0 -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
iptables -t mangle -A OUTPUT -o eth0 -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
# 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 25 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 110 -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 22 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 25 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 110 -j ACCEPT
iptables -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
#Proxy Transparente, para todas as Vlans
iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 80 -j REDIRECT --to-port 3128
# Fecha o resto
#iptables -A INPUT -p tcp --syn -j DROP
echo "Regras de firewall ativadas"
}
parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras de firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac
Esta regra " iptables -A INPUT -p tcp --syn -j DROP" quando habilitada não no final do script a internet não funciona nas Vlans.
Como eu disse não sou experte eme iptables e não entendi porque habilitado ela tenho porblemas.
Alguém poderia por favor explicar, e aproveitando analisar este script.
Abraço a todos.