Iptables politica por defecto drop + squid transparente

Forums: 

Buenas tardes.

Actualmente tengo input y output en drop y forward en accept.
Puedo navegar, pero cuando activo el redirect al puerto del proxy no navega.

Si pongo input y output en accept puedo navegar tanto desde el servidor que tiene el firewall y proxy como desde la lan.

Inicialmente mi intención era poner forward en drop, pero no lograba navegar, detalles sobre este punto también son bienvenidos.

Router --- eth0 --- Firewall-proxy --- eth1 --- lan

eth0: 192.168.1.1
eth1: 192.168.10.1

Detalles de mi script

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
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

# Y tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitimos la consulta a un primer DNS desde el firewall
/sbin/iptables -A INPUT -s 200.40.220.245 -p udp -m udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 200.40.220.245 -p udp -m udp --dport 53 -j ACCEPT

# Permitimos la consulta a un segundo DNS
iptables -A INPUT -s 200.40.30.245 -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -d 200.40.30.245 -p udp -m udp --dport 53 -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 msn
/sbin/iptables -A INPUT -p tcp -m tcp --sport 1863 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 1863 -j ACCEPT

El problema sería poder navegar a través del proxy transparente, y si se puede dejar este firewall más seguro con drop en forward.
Cualquier consejo será bienvenido en cuanto al script aunque no sea lo que consulto.

Muchas gracias por su tiempo a todos.

Al hacer un redirect hacia el

Imagen de Monkito

Al hacer un redirect hacia el 3128 los paquetes tratarán de ir por el INPUT, es decir debes permitir la entrada por ese puerto...


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

Como dato adicional puedes tener el forward en drop y aceptar sólo el tráfico que te interesa.


iptables -P FORWARD DROP
iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.10.0/24 -d 0/0 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -s 0/0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Saludos...

------------
counter.li.org

Cogito Ergo Sum

Buen día. Muchas gracias por

Buen día.

Muchas gracias por los comentarios, funcionó perfectamente como tu dijiste.

Ya tengo en DROP forward y con acceso desde la lan sin problemas.

Intenté hacer el forward solo para el puerto 80, (comentando las 2 lineas que tu me pasaste del forward) con el fin de que por ejemplo no se pueda hacer ping y/o que queden bloqueados el resto de los puertos pero no lo conseguí.

Una de las pruebas que hice fue modificar las lineas que tu me pasaste agregandole el puerto:

iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.10.0/24 -d 0/0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -d 192.168.10.0/24 -s 0/0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT

Pero de este modo no navega.
Agradecería cualquier pista que me puedas brindar.

Muchas gracias.

Muchas gracias a todos por la

Muchas gracias a todos por la ayuda.

Posteo el script final

## 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

Saludos!

De momento no lo necesito.

De momento no lo necesito.

Necesitaba una configuración básica pero en Drop para presentar. Si logro ponerlo en practica empezare a investigar sobre aplicaciones para capa 7.

Muchas gracias.
Saludos!

pues epe coloco un como

Imagen de falcom

pues epe coloco un como instalar ipp2p en centos con los repos (muy facil) quedo subir otro como para el layer7 pero hasta ahora! si quieres te doy una mano epe claro si me indicas... jeje }:)

Páginas