Empiezo a sentirme oxidado … y no me gusta nada esa sensación. Últimamente hasta los problemas mas tontos se complican. Una regla de lo mas simple … ip de origen (en una dmz), ip de destino (interna) y el puerto 25 … sin mas.
Y resulta que haces la conexión … se establece … pero el banner con el 220 de respuesta jamas llega al cliente. Y la conexión esta establecida, porque si haces helo te contesta y puedes mandar correos sin problemas … pero como el puto banner no llega (y el servidor lo manda, verificado con el sniffer) las aplicaciones se quedan esperando eternamente y fallan.
Si hago lo mismo desde el propio nodo del firewall funciona sin problemas.
He probado a modificar algún parámetro del protocolo (cree una regla especifica permitiendo solo el smtp entre esos dos hosts para poder jugar) y nada …
Lo raro es que, si pongo un sniffer en el server …
Se ve algo así:
ipdestination -> ipsource-> protocol TCP SYN
ipsource -> ipdestination -> protocol TCP SYN ACK
ipdestination -> ipsource -> protocol tcp ACK
ipdestination -> ipsource -> Protocol SMTP (info 220 smtpserver.local ESMTP postfix) -> esto es lo que no llega
ipsource -> ipdestination -> protocol TCP ACK (mentira … porque el banner no aparece).
En fin … es viernes … que se encargue el soporte … que para eso lo pagan.
Actualización …
Segun checkpoint … si tienes habilitado Threat Prevention … el firewall no mantiene bien las sesiones smtp y por eso fallan … la solución que te dan … que habilites el firewall como MTA.
Habilitarlo no tiene ningún misterio … editas el objeto firewall … Mail Transfer Agent, marcas Enable as a mail transfer agent.
Después creas una regla de mail forwading … algo como Domain * -> Next hop (la ip de tu servidor de correo) y poco mas … el resto de opciones son opcionales.
Después te vas a advanced settings y aqui empieza lo gracioso (que no lo ponen en el documento y hace que te vuelvas loco).
Lo principal … no se puede habilitar en interfaces virtuales … solo en interfaces físicos.
Y lo segundo … y mas peligroso … y que tampoco te avisan los muy c******s … cuando habilitas el MTA en todos los interfaces (que es lo que tienes que hacer si usas interfaces virtuales) … el mamon del firewall te crea una regla implicita permitiendo el puerto 25 en TODOS LOS INTERFACES asi que … estas abierto de patas porque tu Stealth rule no hace match …
Para deshabilitar eso (hay que joderse con el soporte … ¿Porque coño no avisan de esto?, o ¿Porque coño no esta puesto en el documento de configuración del MTA?.
Lo que te dicen es que deshabilites esa regla y asi tu stealth empieza a funcionar …
Busca el fichero implied_rules.def (que esta en $FWDIR/lib (o mira aqui), recomendable hacer un backup del fichero antes de tocarlo.
Buscas:
#define ENABLE_SMTP_TO_GW
y lo comentas …
/* #define ENABLE_SMTP_TO_GW */
Grabas, instalas y listo … ahora tus reglas empiezan a funcionar y no te llenan el servidor de Spam :).
Así que … algo tan tonto te hace perder el tiempo … y el de los demás …