Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Peleando con postfix

luchonidas's Diary
Por luchonidas
departamento esos-pequeños-detalles-que-no-vienen-en-la-documentación , Sección Diarios
Puesto a las Wed Apr 21st, 2004 at 11:53:28 AM CET
Tras casi dos semanas de pelearme con Postfix y con Cyrus-sasl, he logrado lo que me parecía imposible, echar a andar el postfix con autentificación... todavía no me lo creo; y como hay una serie de detalles que no encontré en la documentación, ni en mi búsqueda por internet, aquí los escribo, para que queden para la posteridad.

Nota: no pretendo acaparar la página de los diarios, pero la historia que tenía me salió demasiado larga y preferí dividirla en dos (como la 2ª y 3ª parte de Regreso al futuro).

 


Tengo el plan de migrar el servidor de correo de la empresa de Sendmail a postfix, más que nada porque la versión de RedHat que utilizamos no tiene más actualizaciones por parte de la empresa (ya conoceis la historia de RedHat), y porque he comprobado que me es más fácil compilar el postfix que el sendmail (hasta el día que me ponga en serio a eso, entonces será pan comido ;) ).

Como he dicho más arriba, los servidores tienen instalado RedHat, por lo que la mayor parte de la documentación que he encontrado en internet no me sirve, más que nada porque toman como base debian y lo resuelven todo a base de apt-get, además que el RedHat 7.3 no trae por defecto la versión 2 de la librería cyrus-sasl, y el postfix que trae no tiene soporte para autentificación (y el sendmail tampoco); así que he debido hacerlo todo como en los viejos tiempos... descargando ficheros tarball y compilando.

Compilando Cyrus-sasl

Primero se descarga las librerías sasl -cyrus-sasl en este caso, no se si habrá otro desarrollo de las librerías- de la página web correspondiente, se compilan con las opciones que queramos, y se instalan:

tar xvfz cyrus-sasl-2.1.18.tar.gz
cd cyrus-sasl-2.1.18
./configure --prefix=/usr/local/sasl2 --disable-anon --enable-static=yes --enable-shared=yes --enable-login --enable-cram --with-pureconv --with-purify --with-saslauthd --enable-digest --with-pam --enable-java --enable-gssapi --with-pwcheck --enable-otp --enable-srp
make
su
make install

Para simplificar el acceso a la librería creo enlaces simbólicos en /usr/local/el-directorio-que-toque, añado /usr/local/lib en ld.so.conf y ejecuto ldconfig.

Seguramente habrá opciones de más y cosas que echareis en falta, pero por el momento es suficiente para mí.

Compilando Postfix

Tras eso descargamos y compilamos postfix, siguiendo los pasos del SASL_README que viene con postfix para tener soporte para la autentificación de los usuarios.

tar xvfz postfix-2.0.19.tar.gz
cd postfix-2.0.19
make tidy
make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/sasl2/include/sasl" AUXLIBS="-L/usr/local/sasl2/lib -lsasl2"
make
su
make install

Instalo en /usr/local/postfix, para más adelante pasar a un entorno chroot, aunque de momento se intenta que funcione así nomás. Creo un enlace a /usr/local/postfix/etc/postfix en /etc, y otro a /usr/local/postfix/var/spool/postfix en /var/spool. Se crea el usuario postfix y el grupo postdrop, también se hacen enlaces simbólicos a los ejecutables en algún directorio que esté en $PATH (casi todos los pasos hasta aquí están explicados en el fichero INSTALL que viene con postfix) y se hacen las oportunas modificaciones en main.cf, añadiendo y/o modificando:

mydomain = midominio.es
myorigin = $myhostname
mydestination = midominio.es, otrodiminio.com
mynetworks = 192.168.1.0/24, 127.0.0.0/8
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_alias_domains = untercerdominio.com
alias_maps = hash:/etc/aliases
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $mydomain
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
broken_sasl_auth_clients = yes

Creamos el fichero smtpd.conf en /usr/local/lib/sasl2, con el contenido
pwcheck_method: saslauthd

Lanzamos el demonio saslauthd con saslauthd -a shadow (de momento me interesa que coja las contraseñas del fichero de contraseñas del sistema, no quiero hacer cambios drásticos del sistema, aparte que hay contraseñas que no se sabe cuales son), y se lanza el postfix con postfix -start. Seguramente fallará a la primera, y a la segunda, y a la tercera. Estos fallos se arreglan dándole los permisos adecuados a los directorios indicados y poniendo el usuario y grupo correcto. Una vez arreglado todo lanzamos el servidor de correo y hacemos las pruebas... aquí comienzan los fallos.

Si enviamos desde cualquier sitio hacia el servidor... no hay problemas, el postfix se comporta muy bien, si intento enviar desde el servidor o cualquier red que esté en $mynetworks, el servidor no pone ningún problema en hacer relay, pero desde fuera de las redes permitidas no se puede hacer relay... ¿y donde está el problema? os preguntareis, que no deja hacerlo aunque nos autentifiquemos, cosa que hemos habilitado en smtpd_recipient_restrictions. Miramos los logs y nos encontramos con lo siguiente:

Apr 19 14:16:24 prueba postfix/smtpd[22002]: fatal: no SASL authentication mechanisms
Apr 19 14:16:25 prueba postfix/master[21991]: warning: process /usr/libexec/postfix/smtpd pid 22002 exit status 1
Apr 19 14:16:25 prueba postfix/master[21991]: warning: /usr/libexec/postfix/smtpd: bad command startup -- throttling

Vaya, conque no está autentificando, pruebo a meter el fichero smtpd.conf en todos los sitios que aparecen por internet (en el directorio de configuración del postfix, en un directorio llamado sasl2 dentro del de postfix, en el /usr/local/sasl2/lib y /usr/local/sasl2/lib/sasl2). Después de unas cuantas pruebas y unas cuantas recompilaciones más, variando todos lo imaginable, me pongo a buscar por internet un poco más y me encuentro con uno (lástima, no guardé el enlace) que había hecho un enlace símbolico de la librería sasl2 a /usr/lib; hago el enlace, lanzo el demonio saslauthd y el postfix, y et voila, la autentificación funciona, bueno, casi, funciona Mozilla, Kmail, Outlook Express y 2000 y Opera; The Bat! se niega a funcionar... Vuelvo a mirar en los logs y me encuentro con lo siguiente:

Apr 20 13:30:30 prueba postfix/smtpd[27882]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Permission denied
Apr 20 13:30:30 prueba postfix/smtpd[27882]: warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Permission denied
Apr 20 13:30:30 prueba postfix/smtpd[27882]: warning: SASL authentication failure: no secret in database
Apr 20 13:30:30 prueba postfix/smtpd[27882]: warning: unknown[192.168.0.43]: SASL CRAM-MD5 authentication failed


Bueno, no se puede abrir el fichero, creo /etc/sasldb2, le añado el usuario, le doy los permisos 644, que sino no lo lee, y de paso me entero que el método CRAM-MD5 funciona con un secreto compartido (vamos, que en los dos extremos se sabe la contraseña) y que The Bat! solo usa CRAM-MD5. Pruebo de nuevo y ... ahora si que funciona...

Dejamos aquí esta historia, ya que el invento todavía está en pruebas, todavía no le he metido el antivirus (ver encuesta adjunta), ni el control antispam. En una próxima historia continuaré.
< El futuro del sistema gráfico (6 comments) | Richard Stallman en Bilbao (0 comments) >
Enlaces Relacionados
· Postfix
· Cyrus-sasl
· Sendmail
· More on luchonidas's Diary
· Also by luchonidas

Encuesta
¿Qué antivirus usar?
· Rav antivirus (muy bueno pero ya no lo venden y con límite de dominios, antispam incorporado, ya no lo venden adquirido por MS) 0%
· amavis + mcaffe 14%
· amavis + panda (tenemos licencia) 0%
· amavis + avp 14%
· Alguno otro (indicar cual) 14%
· ¿Hoy no sale la rubia? 57%

Votos: 7
Resultados | Otras Encuestas

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Peleando con postfix | 6 comentarios (6 temáticos, editoriales, 0 ocultos)
amavis+f-prot (none / 0) (#1)
por juanma a las Wed Apr 21st, 2004 at 01:15:44 PM CET
(Información Usuario)

Va de lujo, es lo que tengo implementado en tres servidores. Es relativamente rápido y me caza todos o casi todos los virus (después de dos crisis serias de virus que salían hasta en la televisión)
Con panda tuve problemas serios y no me gustó nada (pedía mucha máquina y tardaba en la entrega entre otras cosas)
Hay otro libre pero desecha los mensajes de la Seguridad Social.



Peleando con postfix | 6 comentarios (6 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda