Instalando un servidor de correos en Centos

Hay muchos motivos para instalar en una maquina un servidor de correos solamente. Y muchos son buenos….

Bromas aparte, Por un lado cualquier organización que tenga un trafico de correo importante, necesita independizar su servicio, cualquier empresa que se dedique a enviar información por email, ….

Ante todo quiero dejar claro que esta idea no es interesante para los que se dedican a hacer spam, ya que antes de que terminen un envío, se quedaran bloqueados, pero, como he dicho antes, hay otras razones.

En mi caso, he tenido que preparar este servidor para una empresa que desea enviar de forma regular publicidad y ofertas a sus clientes.

Todos sabemos que, por mucho que los clientes hayan aceptado ese envío de publicidad, corremos el riesgo de que Gmail, o Hotmail nos bloquee sin pedirle ni siquiera permiso a su usuario, por lo que nos interesa tener una maquina a la que le podamos cambiar la IP sin que el resto de servicios se resienta.

Esa en nuestro servidor de correo. Para ello, hemos contratado una maquina muy pequeña, con Centos (VPS con 20 Gb en disco, 512 Mb en memoria), y a partir de la instalacion que nos facilita el proveedor,  hemos iniciado la configuración.

Para ello, hemos hecho la misma preparación que describíamos  para un servidor web, y a continuación, empezamos.

En nuestro proyecto, este servidor no va a recoger correo, y no va a tener clientes ni  POP3 ni IMAP, incluso para que sea lo mas sencillo posible, no va a tener ni usuarios de correo; aunque crearemos uno para poder autentificar la conexión, y autorizaremos una IP para que haga Relay, y solo aceptaremos conexiones desde ella….

Con  lo que solo deberemos instalar….postfix. Aunque tambien añadiremos “ntp” para que los relojes se mantengan sincronizado, y “webmin” para poderlo controlar.

Vamos a empezar

# yum -y install ntp postfix

Una vez finalice la instalación, desconectamos “sendmail” y configuramos el arranque de “postfix”:

# chkconfig --levels 235 sendmail off
# chkconfig --levels 235 postfix on
# /etc/init.d/sendmail stop
# /etc/init.d/postfix restart

Para la instalación de “webmin” deberemos hacer;

# cd /opt
# wget http://www.webmin.com/jcameron-key.asc
# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.680-1.noarch.rpm
# rpm --import jcameron-key.asc
# rpm -Uvh webmin-1.680-1.noarch.rpm

Dada la poca memoria con la que hemos contratado la maquina, no conviene que este haciendo swap continuamente, para ello, modificaremos  el porcentaje a partir del cual se inicia el swap. El valor lo podéis ver si tecleas:

# cat /proc/sys/vm/swappiness

Habitualmente os aparecerá  “60”, ahora podemos probar la maquina con 10, para ellos escribimos:

# sysctl vm.swappiness=10

Y si, como es probable, no tenéis problemas, podemos dejar ese valor como definitivo, modificando el fichero

# nano /etc/sysctl.conf

y buscamos la linea en donde se indique “vm.swappiness”, y si no existe, la añadimos. Esta linea debera quedar como

vm.swappiness=10

Ahora ya podemos reiniciar la maquina para probar las nuevas configuraciones.

Primero añadimos nuestro usuario con

# useradd -m ParaEnvio -s /sbin/nologin

aunque no se podrá logonar en una terminal, le añadiremos la contraseña

# passwd ParaEnvio

y tecleamos la contraseña elegida, tanto cuando nos pida “New password”, como cuando nos la vuelva a solicitar con “Retype new password”

Tened en cuenta, que con esta estructura, no podremos recibir mensajes, por lo que cuando enviéis uno, deberéis indicar como dirección de respuesta algún otro servidor de correos; de cualquier forma, vamos a configurar nuestro usuario, y para ello abrimos el fichero “/etc/postfix/virtual” y allí escribimos:

[email protected]                 paraenvio\@miservidor.com

Lo salvais y lo preparais con

# postmap /etc/postfix/virtual

y reiniciais postfix

# service postfix restart

Vamos a revisar la configuración de postfix, para ello abrimos el fichero “/etc/postfix/main.cf”

mydomain = midominiodeverdad.com
myhostname = misenvios.dominio.com
myorigin = $mydomain
relayhost = 
inet_interfaces = all
mydestination=
virtual_alias_maps = hash:/etc/postfix/virtual
mynetworks = , 127.0.0.0/8
relay_domains = $mydestination

y con eso terminamos la configuración; para probarlo, podemos ir al servidor que va a gestionar los envíos, en nuestro caso, vamos a utilizar PHPList, por lo que abrimos su fichero de configuración, e indicamos

define("PHPMAILERHOST",'ip-maquina-correo');
$phpmailer_smtpuser = 'ParaEnvio';
$phpmailer_smtppassword = '<password>';

y podemos empezar nuestros envíos.

Con esta definición, también podemos indicar en nuestro servidor de correo que realice los envíos mediante este servidor, y así tener posibilidad de cambiar IP, ya que la que figurara como ip origen, sera la de este ultimo. (En este caso, acordaros de autorizar esta IP en el registro SPF de vuestro servidor de dominio.

Acerca de Miguel Garcia

Programador, Desarrollador web, Formador en distintas areas de informatica y director de equipos multidisciplinares.
Esta entrada fue publicada en Linux y etiquetada , . Guarda el enlace permanente.

2 respuestas a Instalando un servidor de correos en Centos

  1. Leonardo dijo:

    Hola, lindo articulo!
    Hago una pregunta ¿de donde puedo obtener información del calculo que se realiza para saber cuanta memoria ram y procesador se requiere para un servidor de correo?
    Si tienen un link mejor ya que es para un trabajo de la facultad.

    Gracias.

    • Miguel dijo:

      Realmente, no lo se. Intervienen muchos parámetros, como el programa utilizado, la cantidad de hilos activos, si utilizas programas Antivirus y AntiSpam y como se utilizan…No lo se.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.