Iptables DROP

Imagen de alden26261
0 puntos

Saludos a la comunidad.

Necesito implementar un iptables con políticas por defecto DROP, pero no me funciona, es decir, mis clientes no tienen navegación, es como si el squid3 no pudiera navegar y el DNS no pudiera resolver, o algo parecido. Aquí les dejo mi archivo de configuración para ver si logran identificar los errores que tengo en mi configuración.

eth0: salida hacia internet, es decir interfaz externa.
eth1: interfaz interna, es decir, red LAN

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
## Politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
# Bit forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Guardar los accesos con paquetes fragmentados, recurso utilizado para tirar
# servidores y otras maldades (bug en Apache por ejemplo)
iptables -A INPUT -i eth0 -f -j LOG --log-prefix "Fragmento! "
iptables -A INPUT -i eth0 -f -j DROP
# Operar en localhost sin limitaciones
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
# Enmascaramiento
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
# Navegacion desde el firewall
/sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Navegacion del proxy
/sbin/iptables -A INPUT -p tcp -m tcp --sport 8080 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
# Y tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
# Forward puerto 80
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.10.0/24 -d 0/0 -p udp --dport 80 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -s 0/0 -p udp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Forward puerto 53
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.10.0/24 -d 0/0 -p udp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -s 0/0 -p udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Forward puerto 443
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.10.0/24 -d 0/0 -p udp --dport 443 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -s 0/0 -p udp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
# Squid transparente
iptables -t nat -A PREROUTING -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
# Permitir el proxy, necesario despues del reenvío.
iptables -t filter -A INPUT -p tcp --dport 3128 -i eth1 -s 192.168.10.0/24 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 3128 -o eth1 -d 192.168.10.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT

Gracias de antemano a toda la comunidad Ubuntu-es

Saludos

Imagen de Firecold
+1
0
-1

echo " Borrando las Cadenas existentes..."
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
echo " Estableciendo Politica por Defecto (DENEGAR)"
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo " Habilitamos el trafico sobre la interface eth0(LAN Interna)"
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo " Enmascarando la Red"
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
echo " Todo el trafico en el Loppback es aceptado"
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo " Dandole permisos a mi IP"
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
echo " Permitir conexiones al Firewall bajo ppp0"
iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo " Bloquear conexiones que provengan de direcciones privadas"
iptables -I INPUT -i ppp0 -s 10.0.0.0/8 -j DROP
iptables -I INPUT -i ppp0 -s 172.16.0.0/12 -j DROP
iptables -I INPUT -i ppp0 -s 192.168.0.0/16 -j DROP
iptables -I INPUT -i ppp0 -s 127.0.0.0/8 -j DROP
iptables -I FORWARD -i ppp0 -s 10.0.0.0/8 -j DROP
iptables -I FORWARD -i ppp0 -s 172.16.0.0/12 -j DROP
iptables -I FORWARD -i ppp0 -s 192.168.0.0/16 -j DROP
iptables -I FORWARD -i ppp0 -s 127.0.0.0/8 -j DROP
echo " Aplicando reglas para ICMP"
iptables -A OUTPUT -p icmp -m state --state NEW -j ACCEPT
iptables -A INPUT -p icmp -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 INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -i ppp0 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -i ppp0 -j ACCEPT
echo " Bloqueando conexiones hacia ICMP no validas"
iptables -I INPUT -p icmp --icmp-type redirect -j DROP
iptables -I INPUT -p icmp --icmp-type router-advertisement -j DROP
iptables -I INPUT -p icmp --icmp-type router-solicitation -j DROP
iptables -I INPUT -p icmp --icmp-type address-mask-request -j DROP
iptables -I INPUT -p icmp --icmp-type address-mask-reply -j DROP
echo " Redireccionamos las peticiones de www hacia Squid Proxy"
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo " Puertos Permitidos en INPUT"
iptables -A INPUT -p tcp -m state --state NEW -m multiport --dports 21,22,80,443 -j ACCEPT
iptables -A INPUT -p udp -m state --state NEW -m multiport --dports 21,22,80,443 -j ACCEPT
echo " Puertos Permitidos en OUTPUT"
iptables -A OUTPUT -p tcp -m state --state NEW -m multiport --dports 21,22,80,443,53,445,139,51413 -j ACCEPT
iptables -A OUTPUT -p udp -m state --state NEW -m multiport --dports 21,22,80,443,53,67,68,51413 -j ACCEPT
echo " Redireccionamos peticiones hacia Maquinas Internas"
iptables -A FORWARD -s 192.168.1.0/24 -p tcp -m state --state NEW -m multiport --dports 21,22,80,443,1863,53,110,25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p udp -m state --state NEW -m multiport --dports 21,22,80,443,1863,53,110,25 -j ACCEPT
echo " Cerrando los Puertos restantes del Firewall."
iptables -A INPUT -p All -j DROP
iptables -A OUTPUT -p All -j DROP
iptables -A FORWARD -p All -j DROP
echo " Terminando la Configuracion del Firewall."

lo unico que tienes que hacer es cambiar las interfaces de red este firewall esta probado lo uso en mi maquina para administrar un ciber es bastante eficiente, pero si tu lo logras mejorar me avisas, soy un novato en iptables pero leyendo en el foro y ayudado por algunos compañeros en este mismo foro lo he llegado hasta ahi, si vos o alguien mas lo mejora no me enojo. Saludos

+1
0
-1