9 de Septiembre, 2005

Proxy transparente para correo

El concepto de proxy transparente lo conocemos aplicado a HTTP, debido sobretodo a la nefasta gestión que han hecho de esta herramienta de administración algunos proveedores de acceso a Internet.

Pero esa no es la única utilidad, y no me refiero a fastidiar a los usuarios :P, porque también se puede aplicar la idea a otros servicios, como el correo electrónico.

Una empresa dispone de un cortafuegos que actua como concentrador de correo. El servidor de correo que recibe los mensajes entrantes está gestionado por un ISP, y nuestra pequeña caja negra se encarga de recoger esos mensajes, antivirus y filtro anti-spam mediante, y ponerlos a disposición de las estaciones cliente por la red local.

MAIL HUB
Estructura básica de un concentrador de correo.

Para hacer la implantación de este sistema más sencilla puede ser buena idea implementar la idea de un proxy transparente. El objetivo final es solo tocar el concentrador, sin que sea necesario ir cambiando la configuración de todas las estaciones cliente.

Damos de alta los mismos usuarios con la misma contraseña en nuestro concentrador que en el servidor del ISP. Esto nos permite implementar el concentrador de forma transparente para el cliente empleando Packet Filter, el sistema de filtrado de paquetes de OpenBSD.

Un ejemplo de relgas de PF sería:

lan_if="rl0"
lan1="192.168.0.0/24"

rdr on $lan_if inet proto tcp from { $lan1, ! 192.168.0.254 } to port 25\
 -> 192.168.0.254 port 25
rdr on $lan_if inet proto tcp from { $lan1, ! 192.168.0.254 } to port 110\
 -> 192.168.0.254 port 110

En el ejemplo redireccionamos todos los paquetes que entran en la tarjeta conectada a la red local (lan_if) y vienen de cualquier máquina de dicha red (que no sea el concentrador, con dirección IP 192.168.0.254), con destino a los puertos 25 (SMTP, correo saliente) y 110 (POP3, correo entrante). Esos paquetes van a los mismos puertos, pero en el concentrador de correo.

Así cuando el cliente intenta enviar un correo emplenando el MTA de su ISP, los paquetes van a parar realmente al concentrador de correo, que hace la entrega con nuestro propio MTA.

Lo mismo ocurre con la recogida de correo, gracias a que hemos dado de alta las mismas cuentas en el concetrador que en el servidor del ISP, con lo que el cliente no nota la diferencia y recoge el correo normalmente (pero más rápido, por venir de la red local, y libre de virus y spam, por nuestra labor de filtrado en el concentrador).

En este caso podríamos decir que hemos implementado un proxy transparente para correo, sin cambiar ni una linea de configuración en las estaciones de los clientes y con solo añadir un par de lineas a las reglas de nuestro Packet Filter ;).

Anotación por Juan J. Martínez, clasificada en: openbsd, proxy, antispam.

Hay 3 comentarios

Gravatar

Hola,

Buen "hack" :)

A este sistema no le faltaría bajarse el correo desde el ISP, con fetchmail o así?

por moebius, en 2005-09-09 15:58:03

Gravatar

Ya lo documenté debidamente y he puesto un enlace :) Si lees el texto que hace referencia a las utilidades de centralizar correo, verás que apunto a una anotación sobre como lo hice en openbsd con fetchmail.

por Juanjo, en 2005-09-09 16:23:19

Gravatar

En muchos hotspots publicos se emplea un sistema similar para el SMTP: todo el mail que mandan los clientes conectados al hotspot se redirige a un MTA interno que permite relay, aunque esta configuración da problemas cuando el cliente tiene configurado un SMTP con autenticación y/o cifrado.

por pof, en 2005-09-09 18:22:40

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: