
Cómo configurar SENDMAIL
Configurar sendmail, servidor SMTP muy extendido, con muchos años de andadura (y muchos bugs) Todos los ficheros de configuracion de sendmail se encuentran en el directorio
/etc o /etc/mail, o en ambos dos.
El fichero principal es sendmail.cf. Es probablemente el fichero de configuracion mas complejo y dificil
de manejar de unix.
Por fortuna se han ido incorporando una serie de ficheros aparte con los que se configura lo mas importante del servidor de correo, sin necesidad de tocar el sendmail.cf .
Esos ficheros son:
local-host-names: donde se indica a que dominios pertenece el servidor de correo
access: donde se dice que ips y que dominios tienen permiso para utilizar el servidor de correo.
mailertable: donde se pueden aplicar enrutamientos para dominios.
sendmail.mc: fichero de macros donde se pueden configurar distintas opciones de sendmail,
como el smtp autentificado.
Con el sendmail.cf se puede crear un sistema de reglas para manipular los correos, pero la sintaxis es francamente ofuscada. Si alguien tiene tiempo libre e interes, que mire el libro de Orielly, el del murcielago.
* Como montar un servidor de correo?
Vale, imaginemos que tenemos un linux con el sendmail instalado, en concreto el paquete de sendmail y el sendmail-cf (para verificar se puede hacer: rpm -qa | grep sendmail). Imaginemos que tenemos una maquina linux conectada a internet con una ip publica o un servidor conectado a un router que redirige el puerto 25 al servidor. Tenemos el dominio chingalampernas.com y queremos tener que el servidor envie/reciba correos en plan ” juan@chingalampernas.com” o ” soycool@chingalampernas.com”. Que pasos hay que seguir???
1. Primero, hay que decirle al sendmail a que dominio sirve. Para eso editamos el fichero /etc/mail/local-host-names y añadimos “chingalampernas.com”
2.- Segundo: hay que habilitar el acceso a alguna red para que sea capaz de enviar correo a traves de nuestro servidor. Por defecto sendmail solo dejara eviar correos desde si mismo, para evitar el SPAM. Si queremos usar el servidor de correo para poder mandar, debemos especificar la ip desde la que accederemos, generalmente la red local en la que se encuentra el servidor o una lista de ips de confianza. Para eso editamos el fichero /etc/mail/access y ponemos: 192.168.10 RELAY 213.198.23.24 RELAY
Si no hacemos esto, cuando intentemos enviar correo el servidor nos contestara con el mitico “relaying denied” (transmision denegada).
Atencion, hay que distinguir entre enviar y recibir: el servidor de correo es un intercambiador de correo, un MTA (Mail Transfer Agent). Como un buzon universal debe poder recibir correo de cualquier sitio. Pero hay que controlar que el envio no se pueda hacer desde cualquier lado, para que nadie utilice nuestro servidor para hacer SPAM o envios masivos. Por otro lado, si no queremos que se reciba correos de determinado sitio se puede filtrar a traves de la IP de origen.
3. Tercero: hay que asegurarse de que sendmail escucha en el puerto 25 y que no tiene al puerto asociado a localhost. Para verificarlo hacemos netstat -ln y veremos los puertos en escucha que hay en el sistema. Si sale algo como: tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
Entonces es correcto. Si estuviera escuchando en localhost: tcp 0 127.0.0.1:25 0.0.0.0:* LISTEN
El puerto 25 solo sera accesible desde el propio servidor y estara cerrado al resto del mundo. Como cambiar esto? Seguramente hay que tocar el fichero /etc/mail/sendmail.mc y comentar una directiva en la que se menciona 127.0.0.1. Para comentar la directiva ponemos delante “dnl”
El fichero sendmail.mc es un fichero de macros, una vez modificado debemos ejecutar
un comando que se especifica al principio del propio fichero, normalmente:
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
Tambien al modificar los otros ficheros que se encuentran en /etc/mail hay que moverse ahi
y ejecutar “make”.
Cada vez que se metan cambios en estos ficheros, hay que aplicar make o m4 y ademas reiniciar el sendmail.
4. Vale! ya tenemos un servidor de correo a traves del cual podemos mandar correo. Pero cuando alguien en otra parte del mundo escriba a ” juan@chingalampernas.com” llegara el correo a nuestro servidor?? NO!! Es necesario que el dominio este registrado (obviamente) y que su registro MX (Mail Exchanger o Intercambiador de correo) apunte a la IP publica de nuestro servidor o a la IP del router que este delante del servidor. Asi desde cualquier parte del mundo se sabra llegar a nuestro servidor de correo.
Depurando…
* Como puedo comprobar que el servidor de correo esta funcionando?
Lo primero, ver que el proceso sendmail esta en marcha con un ps -axf | grep sendmail o
ps -fea | grep sendmail
Otra comprobacion mas seria mirar si el puerto 25 esta abierto con: netstat -ln | grep 25
Otra comprobacion mas seria mirar si el fichero /var/run/sendmail.pid existe,
Otra comprobacion mas rapida y eficaz es:
telnet localhost 25
o desde el exterior
telnet servidor.decorreo.chingalampernas.com 25
y comprobar la respuesta, que sera algo asi como:
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 servidor.decorreo.chingalampernas.com ESMTP Sendmail 8.12.8/8.12.8; Fri, 4 Apr 2003 16:30:12 +0200
Podemos escribir QUIT para salir.
* Como puedo ver la actividad del servidor de correo?
Por favor, una vez mas, hay que ir a los logs, los logs nos hablan abiertamente de lo que pasa en nuestro sistema. Podemos ejecutar: tail -f /var/log/maillog veremos cada evento relacionado con el correo, cada email recibido, enviado,cada consulta al buzon a traves de pop3 o imap. Dependiendo del sistema, quiza los logs esten en otra parte. /var/log/syslog o /var/log/messages En los logs veremos la actividad y tambien los errores de determinados buzones.
Es más: si el sendmail no se inicia, hay que mirar en los logs para ver lo que pasa, y tendremos la respuesta fijo. Se mira en /var/log/maillog o /var/log/messages.
* Como activo el SMTP autentificado? en redhat esta chupado, y está explicado en foros. Simplemente hay que descomentar tres lineas en sendmail.mc referidas a “AUTH”. Para verificar que tenemos SMTP autentificado hacemos telnet al puerto 25 del servidor, y escribimos:
EHLO midominio
Y si obtenemos algo como:
250- correu.isp.com Hello 64.45.isp.com [234.45.64.45], pleased to meet you
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-SIZE
250-DSN
250-ONEX
250-ETRN
250-XUSR
250-AUTH LOGIN PLAIN
250 HELP
Fuente:
Pello Xabier Altadill Izura – www.pello.info
- Cómo solucionar pantalla negra en Windows 10 en un HP - Septiembre 13, 2017
- Cómo actualizar el firmware del Kingkong Q100 a Betaflight - Junio 19, 2017
- Alimentación PoE y SAI simple para AP - Junio 17, 2017
- Cómo montar una antena parabólica para un enlace P2P / PtP - Junio 14, 2017