viernes, 24 de julio de 2009

IIS SMTP Service en localhost:25

Ok, quizá sea uno de pocos con tal necesidad porque busqué un buen rato en Google sobre el asunto sin tener éxito.

La cuestión es simple: cómo configurar el SMTP Service del IIS para que sólo responda por el IP 127.0.0.1 (localhost) puerto 25 de modo que podamos tener otro programa en la interface pública, en el mismo puerto, recibiendo los correos que llegan de afuera?

La idea es que el IIS SMTP atienda a las aplicaciones en ASP o PHP que suelen apuntar directamente al localhost:25, dejando libre las interfaces públicas para darles otro uso.

En principio usando el MMC no se puede, porque la dirección 127.0.0.1 no aparece en la lista.

La solución es muy simple: sólo se debe editar la Metabase (generalmente c:\windows\system32\inetsrv\metabase.xml) con notepad o algún otro editor de textos y reiniciar el IIS. Incluso no es necesario reiniciarlo si se tiene activa la opción de poder editar la metabase directamente, ya que en ese caso el IIS detecta que ha sido alterada y la recarga automáticamente sin reiniciar.

Primero, ubicar la línea:
<IIsSmtpServer Location ="xxxxxxxxxxx"

Y desde ese punto buscar:
ServerBindings=":25:"

Lo más probable es que tenga ese valor (":25:") y todo lo que hay que hacer es dejarla así:
ServerBindings="127.0.0.1:25:"

Luego cerramos el editor, cerramos el MMC (si lo teníamos abierto) y si lo reabrimos veremos que la dirección 127.0.0.1 ya aparece como una interface más y por supuesto, ya seleccionada.

Me ha funcionado muy bien. Ahora tengo el IIS SMTP respondiendo sólo por localhost mientras otra aplicación de filtrado de spam recepciona correos entrantes.

UPDATE 12/Feb/2010:

No funciona más. Con Windows 2008 no resulta, parece que internamente la validación es más estricta y por más que pongo el IP del localhost, en el IIS Manager aparece asignado a todas las interfaces. Al final tuve que asignarlo a otro puerto, elegí el 587. En el IP original está el otro servicio SMTP que acepta relaying del localhost, así que funciona bien. Despues de todo el 587 sólo queda para CDONTS o CDO.

jueves, 9 de julio de 2009

4 días bajo ataque

Desde que empezó esta semana nuestros servidores han estado recibiendo MILES de conexiones SMTP. Al principio fue un gran problema ya que saturaba las conexiones (denegación de servicio) causando que nuestros clientes no pudiesen enviar correos.

Tratamos de analizar la fuente, buscar un patrón, NADA. Totalmente aleatorio. Los IPs cambian todo el tiempo y siempre intentan lo mismo, autenticarse mediante fuerza bruta, probando miles de combinaciones de login/pass. No sabemos si es un virus, spam o algo parecido, al fin y al cabo da lo mismo.

En medio de todas las cosas que tenemos que hacer, tuvimos que hacer espacio para resolver este problema y hemos tenido éxito!

Por suerte el software de correo que empleamos es extremadamente flexible: qmail, vmailmgr, courier-imap, mailfront, mrtg, daemon-tools. Combinados nos han permitido contener el problema en niveles que permiten que nuestros servicios se mantengan operativos.

Empezamos con algunos scripts para ayudarnos a rastrear las fuentes y bloquearlas. Su efecto no duraba mas que unos minutos y de nuevo volvíamos al DoS (Denial of Service). Poco a poco lo fuimos mejorando, hasta que ahora corre cada 5 minutos, analiza los logs, extrae los IPs que dan error de autenticación y los coloca en una lista gris, los compara contra los IPs que sí se han autenticado y los coloca en una lista blanca. Luego procede a bloquear todos los IPs de la lista gris que no estén en la lista blanca. Mantiene un registro de las últimas 24 horas de actividad de modo que los IPs no vuelvan a ser reutilizados en poco tiempo.

A esta hora tenemos bloqueados más de 2000 servidores, de diferentes partes del mundo, principalmente Brasil (famosos por siempre aparecer primeros en las listas de países con servidores zombies).

Hemos investigado en internet si hay "algo" al respecto pero no hemos encontrado nada, no creo que seamos los únicos con este problema!!!

Por ahora, vamos pasando bien la tormenta, van 4 días!!!