Como configuro la salida de puertos smtp y pop3 en iptables con un proxy transparente

Forums: 

Hola,

Necesito un poco de ayuda en la configuración de mi iptables pues lo que deseo es configurar el proxy mediante nat para que pueda recibir y enviar el correo que configuro desde el Microsoft Outlook.

mi eth0 es mi tarjeta externa, la eth1 es la interna 10.228.236.136/25 y uso el fedora 8, a como verán en la configuración de mi IPTABLES a continuación el proxy transparente ya esta configurado y funciona correctamente con el squid pero el detalle es que la configuración nat del correo no me esta funcionando y quería que alguien revisara y me dijera que error estoy cometiendo.

echo -n

iptables -F
iptables -X
iptables -Z
iptables -t nat -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#Aqui hacemos el proxy transparente

iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,110,25,995 -j REDIRECT --to-ports 3128

#Abriendo puertos del correo SMTP, POP3 y POP3 seguro

iptables -A FORWARD -s 10.228.236.136/25 -i eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 10.228.236.136/25 -i eth1 -p tcp --dport 995 -j ACCEPT
iptables -A FORWARD -s 10.228.236.136/25 -o eth1 -p tcp --dport 25 -j ACCEPT

cuando le doy: iptables -L -n, me da la respuesta:

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 10.228.236.128/25 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 10.228.236.128/25 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 10.228.236.128/25 0.0.0.0/0 tcp dpt:25

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Gracias por toda la ayuda que me puedan dar. :(

La línea del enmascaramiento

La línea del enmascaramiento está mal:


iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth1 -j MASQUERADE

Debería ser:


iptables -t nat -A POSTROUTING -s 10.228.236.128/25 -o eth0 -j MASQUERADE

Revisa también las reglas del FORWARD, estás especificando: 10.228.236.136/25 y debería ser: 10.228.236.128/25

Saludos,

----
Edwin Boza
about.me/edwinboza

gracias Edwin por

gracias Edwin por responder,

Ya realicé los cambios que sugeriste, pero sigo igual me funciona el proxy transparente con el ip 10.228.236.136 como gateway, pero el correo me genera el siguiente error: con el puerto 110 me dice que se ha interrumpido la conexión con el servidor y si el problema persiste que me ponga en contacto con el administrador ó el proveedor de isp.

con el puerto 995 me sale el error: el servidor no admite el tipo de cifrado de conexión especificado. Intente cambiar el método de cifrado. Si el problema persiste que me ponga en contacto con el administrador ó el proveedor de isp.

ok eso cuando pongo un equipo detras del proxy pero si lo conecto directamente al cablemodem todos los correos configurados en outlook los puedo recibir y enviar perfectamente.

entonces que podrá ser.......

Esto está muy mal: iptables

Imagen de acl

Esto está muy mal:


iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,110,25,995 -j REDIRECT --to-ports 3128
iptables -A FORWARD -s 10.228.236.136/25 -o eth1 -p tcp --dport 25 -j ACCEPT

Squid no es un proxy de smtp, imap ni pop. Redirecciona solo el puerto 80 y a los otros permítelos en la cadena de forward. De hecho, al puerto 25 solamente permítelo al ip servidor de correo que esten usando, para evitar que salga spam. ¿Y en la segunda línea no debería ser -i eth1?

acl tiene toooda la razón..

:D acl tiene toooda la razón.. no me había fijado en la regla de redirección (asumí que solo redirigía http), pero claramente ese es el problema ahora, no se debe redireccionar al squid los puertos del correo:


iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80 -j REDIRECT --to-ports 3128

Con respecto a las líneas del FORWARD, la corrección de acl es válida, debería ser saliendo por la eth0, pero tomando en cuenta que no hay ningún DROP o REJECT.. igual le funcionaría :D

Saludos,

----
Edwin Boza
about.me/edwinboza

Pana la verdad yo te

Imagen de nino1511

Pana la verdad yo te recomiendo que no uses el squid como proxy para el smtp y pop3, ya que si quieres un acl tienes en el sendmail esa opción, puedes denegar o permitir el acceso de desde el /etc/mail/access.

NO LO REDIRECCIONES AL SQUID.

http://www.alcancelibre.org/staticpages/index.php/19-0-como-squid-general
-------------------------------------------------------------------------------------
NOTA ESPECIAL: Squid no debe ser utilizado como Servidor Intermediario (Proxy) para protocolos como SMTP, POP3, TELNET, SSH, IRC, etc. Si se requiere intermediar para cualquier protocolo distinto a HTTP, HTTPS, FTP, GOPHER y WAIS se requerirá implementar obligatoriamente un enmascaramiento de IP o NAT (Network Address Translation) o bien hacer uso de un servidor SOCKS como Dante.
-------------------------------------------------------------------------------------

Vamos Ecuador, si se puede

Como bien dicen, Squid solo

Imagen de zo0m

Como bien dicen, Squid solo filtra nivel de protocolos http, https. Para poder permitir el trafico de correos desde tu red LAN hacia internet debes aplicar los siguiente parametros en tu scrip:


#Abrir puertos para el envio y recepcion de correos externos
iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth1 -p tcp --dport 110 -j ACCEPT

Ahi debes remplazar por los parámetros que sean de tu server.

Saludos!

____________________________________
Me gusta aprender, me gusta Linux !!

Siempre agradeciendo sus

Siempre agradeciendo sus aportes, he seguido las recomendaciones que han realizado y me sigue dando el problema actualmente tengo el archivo iptables-config configurado de la siguiente manera y sigo sin realizar la entrada y salida de correos desde el outlook.

mi tarjeta ip interna es eth1 con el ip fija 10.228.236.136/25 y la eth0 es la externa con ip 190.184.40.248/24 en dhcp

Lo que es el gateway con la ip interna funciona porque si quito del browser el proxy y pongo la puerta de enlace 10.228.236.136/25 salgo a internet, pero el error del outlook permanece.

echo -n

iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT

#Aqui hacemos el proxy transparente

iptables -t nat -A POSTROUTING -s 10.228.236.136/25 -o eth1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
#iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,443,8080,3128 -j REDIRECT --to-ports 3128

#Abriendo puertos del correo SMTP Y POP3

iptables -A FORWARD -s 190.184.40.248/24 -i eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 190.184.40.248/24 -i eth1 -p tcp --dport 995 -j ACCEPT
iptables -A FORWARD -s 190.184.40.248/24 -i eth1 -p tcp --dport 25 -j ACCEPT

Esta línea está mal (me

Esta línea está mal (me parece que eso ya te corregi anteriormente):


iptables -t nat -A POSTROUTING -s 10.228.236.136/25 -o eth1 -j MASQUERADE

Debe ser -o eth0 porque se enmascara en la interface saliente:


iptables -t nat -A POSTROUTING -s 10.228.236.136/25 -o eth0 -j MASQUERADE

Ojo que para que esto te funcione debes tener configurada la puerta de enlace en los clientes.

Saludos,

----
Edwin Boza
about.me/edwinboza

Páginas