Gateway con Squid (no transparente) Ayuda en Iptables (Outlook no envia ni recibe)

Forums: 

Buenas tardes:

Tengo Corriendo Squid 3 sobre Ubuntu Server 12.04 LTS.
Tengo una PC de prueba conectada al gateway, tengo navegación web y acceso a sitios https
El problema que tengo ahora es que la PC Cliente no envía ni recibe correos.
Al principio estaba escribiendo mi script de iptables con política DROP por defecto, para ir abriendo lo necesario
y de esta forma tener mas segura la red que está detrás del Gateway, pero no he tenido exito.
Cambie la politica por defecto a ACCEPT y nada hasta el momento.

Este es 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 DROP
############################ Empezamos a filtrar ###########################
## Nota: eth0 es la interfaz conectada al router y eth1 a la LAN
############################################################################
## Al localhost le permitimos todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

##Habilito el NAT para mi red
iptables -A POSTROUTING -t nat -s 154.5.4.0/24 -o eth0 -j MASQUERADE
#Si tuvieras IP Fija seria asi
#iptables -A POSTROUTING -t nat -s 154.5.4.0/24 -o eth0 -j SNAT --to 192.168.x

iptables -A INPUT -s 154.5.4.0/24 -j ACCEPT

##Permito conexion SSH desde mi red
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 22 -j ACCEPT

# Permito trafico web
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

#Permito Trafico DNS
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#Permito Trafico HTTPS
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

##Permito conexion a Squid desde la red local
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 3128 -j ACCEPT

##Permito Protocolo POP3
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 110 -j ACCEPT

##Permito SMTPS
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 465 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 465 -j ACCEPT

##Permito POP3 Sobre SSL
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 995 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 995 -j ACCEPT

##Permito el Forward de la red local hacia internet y viceversa
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p tcp --dport 443 -j ACCEPT

##Permito REENVIO POP
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 110 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 110 -j ACCEPT

##Permito Reeenvio Protocolo SMTPS
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 465 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 465 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 465 -j ACCEPT

##Permito Reenvio POP3 Sobre SSL
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 995 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 995 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 995 -j ACCEPT

iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 3128 -j ACCEPT

Instalé IPtraf para monitorear pero hasta ahora nada.

¿alguien de ustedes tiene funcionando algo como lo que yo trato de hacer?

Nota: yo hace 2 años configuré un gateway similar pero con squid en modo transparente, y mis reglas de iptables con politica ACCEPT por defecto. www.astrosendero.wordpress.com

Saludos a todos tienen una web muy interesante.

squid no tiene nada q ver, si

Imagen de falcom

squid no tiene nada q ver, si tienes drop x default, pues claro q te toca abrir los puertos de envio/recepcion para q tus clientes puedan recibir y enviar mails.
Por recomendacion particular, cambia el pto 25 para envio de mails, utiliza mejor los seguros 465 x ejem

Gracias por tu respuesta

Imagen de Astrosendero

Gracias por tu respuesta falcom, no utilizo el puerto 25 por cuestiones de seguridad y aparte de que los ISP lo bloquearon por el spam.

Actualmente no lo tengo abierto en mi script solo estoy abriendo los puertos que me haces mencion, el 465 (SMTPS), el puerto 995 (por ssl), y el POP3 (110).

Gerardo Jacinto Astudillo

Tu red interna (privada, lan)

Imagen de deathUser

Tu red interna (privada, lan) es 154.5.4.0/24, si no es así la regla y creo que casi todas las reglas:
iptables -A POSTROUTING -t nat -s 154.5.4.0/24 -o eth0 -j MASQUERADE

Está mal, confirma si tu red privada es 154.5.4.0/24.

Podrías probar con una regla como:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

bye
;)

Gracias por tu respuesta

Imagen de Astrosendero

Gracias por tu respuesta amigo, efectivamente mi red privada (la que da acceso a la lan) es 154.5.4.0/24.
ya reemplazé mi linea de enmascaramiento por la que me sugieres.... pero todavia me hace falta algo porque no ha salido.

Pantalla Cliente outlook

Gerardo Jacinto Astudillo

Deberías cambiar esa red, ya

Imagen de deathUser

Deberías cambiar esa red, ya que no es privada y tu red no tendrá acceso a cualquier dominio alojado en ese rango de direcciones IP que son púbicas:

[quote=http://whois.arin.net/rest/net/NET-154-5-0-0-1/pft]
NetRange 154.5.0.0 - 154.5.255.255
CIDR 154.5.0.0/16

Name TELEUS-154-5
Handle NET-154-5-0-0-1
Parent NET154 (NET-154-0-0-0-0)
Net Type Direct Allocation
Origin AS
Organization TELUS Communications Inc. (TACE)
Registration Date 2001-12-18
Last Updated 2012-02-24
Comments
RESTful Link http://whois.arin.net/rest/net/NET-154-5-0-0-1
[/quote]

bye
;)

Prueba agregando un par de

Imagen de deathUser

Prueba agregando un par de reglas más:


/sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

La primera línea dejará entrar los paquete relacionados a las conexiones originadas desde tu LAN y la segunda abrirá todo el tráfico de salida originado en tu LAN, si eso funciona, puedes probar quitando luego la segunda regla y abriendo los puertos individuales como los tienes en tu script a ver si lo consigues...

Asegúrate de tener habilitado el ip_forward

echo 1 > /proc/sys/net/ipv4/ip_forward

bye
;)

Deberías cambiar esa red, ya

Imagen de Astrosendero

Gracias por el dato... la verdad es que desde hace 15 años en donde trabajo se ha venido usando este segmento de red para el direccionamiento privado.... como lo comenté ya tengo un gateway funcionando (Squid+Iptables+Sarg+Nagios+Openvpn) y funciona sin problemas el squid esta funcionando en modo transparente.

Igual mas adelante veré la forma de cambiar el direccionamiento, por el momento no puedo xq manejo ips fijas en mi lan y mis servers tambien tienen ips fijas, la operación aquí está crítica siempre hay corriendo servicios.

Nuevamente agradezco tus comentarios.

Gerardo Jacinto Astudillo

Ya sale

Imagen de Astrosendero

Saludos Amigos:

Ya funciona esta cosa, saben? se me habia pasado activar el bit de forward, gracias por el recordatorio deah user, creeme que yo hacia de cuenta que ya lo habia activado (pues es la segunda vez que formateo y empiezo desde cero).

Al final el script de iptables quedó de la siguiente manera: (Tuve que cambiar a ACCEPT la politica de Salida y Forward)


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

## Establecemos politicas por defecto
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
############################ Empezamos a filtrar ###########################
## Nota: eth0 es la interfaz conectada al router y eth1 a la LAN
############################################################################
## Al localhost le permitimos todo
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
##Habilito el NAT para mi red
#Si La eth0 obtiene su ip por DHCP seria...
#iptables -A POSTROUTING -t nat -s 154.5.4.0/24 -o eth0 -j MASQUERADE
#Si tuvieras IP Fija seria asi
iptables -A POSTROUTING -t nat -s 154.5.4.0/24 -o eth0 -j SNAT --to 192

##Permito conexion SSH desde mi red
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 22 -j ACCEPT

##Permito trafico web entrada y salida
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 80 -j ACCEPT

#Permito Trafico DNS entrada y salida
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#Permito Trafico HTTPS entrada y salida
iptables -A INPUT -p tcp --sport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

#Permito Trafico SMTPS entrada y salida
iptables -A INPUT -p tcp --sport 465 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT

##Permito a la LAN Protocolo POP3 entrada y salida
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 110 -j ACCEPT

##Permito a la LAN POP3 Sobre SSL
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 995 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 995 -j ACCEPT

##Permito a la LAN conexion a Squid desde la red local
iptables -A INPUT -s 154.5.4.0/24 -p tcp --dport 3128 -j ACCEPT
iptables -A OUTPUT -d 154.5.4.0/24 -p tcp --sport 3128 -j ACCEPT

##No le permito a mi lan el forward al puerto 80 para forzar a que
##en el navegador web lleve parametros del Proxy, si no no navegan.
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p tcp --dport 80 -j ACCEPT

##Permito el Forward de DNS y Conexiones HTTPS
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -s 154.5.4.0/24 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth0 -d 154.5.4.0/24 -p tcp --dport 443 -j ACCEPT

##Permito REENVIO POP
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 110 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 110 -j ACCEPT

##Permito Reeenvio Protocolo SMTPS
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 465 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 465 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 465 -j ACCEPT

##Permito Reenvio POP3 Sobre SSL
#iptables -A FORWARD -i eth1 -s 154.5.0.0/16 -p tcp --dport 995 -j ACCEPT
#iptables -A FORWARD -i eth0 -d 154.5.0.0/16 -p tcp --dport 995 -j ACCEPT
iptables -A FORWARD -p tcp -s 154.5.4.0/24 -d 0.0.0.0/0 --dport 995 -j ACCEPT

y ahi nomas está funcionando, los correos de outlook y el proxy.

Lo que he notado de esta configuracion es que si al navegador no le situo los parametros del proxy, de todos modos navega..... y eso no es bueno para lo que yo quiero hacer a esas mejor lo pongo de nuevo como transparente. Pero bueno voy a afinarlo.... Lo damos por solucionado.

Gracias a todos..

Gerardo Jacinto Astudillo