You are on page 1of 36

14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

ochobitshacenunbyte Free Software, GNU y Linux

SISTEMAS
PROGRAMAS
NOTICIAS
WEB
MISCELANEOS
JUEGOS
PROGRAMACIÓN
BLOGS Y WEBS INTERESANTES
DAVIDOCHOBITS
CONTACTO

SISTEMAS  23 FOLLOW:    

NEXT STORY

Crear un Listas de distribución con Mailman en


GNU Linux

servidor de
correo en GNU 
PREVIOUS STORY

Cambiar el puerto ssh en Nagios

Linux desde
cero BUSCA EN LA WEB
BY DAVIDOCHOBITS · 30 SEPTIEMBRE,
2015  To search type and hit enter

SUSCRÍBETE AL BLOG POR CORREO


ELECTRÓNICO
Introduce tu correo electrónico para
En la web ya hemos tratado suscribirte a este blog y recibir notificaciones

servicios de correo, de nuevas entradas.


Dirección de email
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 1/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

concretamente la instalación y Suscribir

configuración de relay de
correo con Postfix, tanto con
ENTRADAS RECIENTES
cuentas de gmail como de
Office365. El problema es que  Visita al supercomputador MareNostrum
dicho servicio sólo funciona
 Configurar proxy en openSUSE
para los envíos utilizando
smtp. Hoy veremos como  Configurar múltiples dominios en
instalar un servidor de correo POSTFIX
desde cero, utilizando los
programas de software libre,  Instalar servidor web LAMP en OpenSUSE
Leap
Postifx, Dovecot y
SpamAssasin, sobre un  Saca todo el partido a Firefox
servidor Ubuntu.

COMENTARIOS RECIENTES

 davidochobits en Configurar múltiples


dominios en POSTFIX

 José María en Configurar múltiples


dominios en POSTFIX
Adquisición de un
 davidochobits en Configurar múltiples
dominio económico dominios en POSTFIX

Antes de nada necesitamos  José María en Configurar múltiples


adquirir un dominio, si puede dominios en POSTFIX
ser económico mejor, ya que lo
necesitaremos para el sistema  davidochobits en Visita al
supercomputador MareNostrum
de correo. Para la ocasión he
realizado una pequeña
adquisición del nombre
ochobitsunbyte.pw, por sólo 3 ARCHIVOS

euros y pico al año. Para ellos Archivos

he utilizado los servicios de Elegir mes

namecheap.com, como podéis


http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 2/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

ver en la imagen.
CATEGORÍAS
Categorías

Elegir categoría

LICENCIA CREATIVE COMMONS

Esta obra está bajo una Licencia Creative


Commons Atribución-CompartirIgual 4.0
Primero de todo tenemos que Internacional.
averiguar si el dominio está
disponible, para ello
utilizaremos el buscador.

Los dominios .pw son muy


económicos, por lo que para el
tutorial me irá de perlas.

Tal y como vemos en la


imagen, añadido al dominio
nos ofrecen servicio de Whois
anónimo llamado “Free
WhoisGuard“, de manera
gratuita, por lo que nos irá
genial para que nuestros datos

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 3/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

no sean públicos. Al confirmar


la orden nos enviará a la
pasarela de pago, que en mi
caso es vía paypal. Una vez
adquirido ya podemos pasar a
la siguiente parte.

Contratar un VPS
Para el tutorial y para un uso
todavía por determinar por mi
parte, contrataremos un VPS,
es decir, un servidor privado
virtual en la nube, esto es, en
una granja de servidores
situada en alguna parte del
planeta. Para ello utilizaremos
la web digitalocean.com, con
la que tengo muy buena
experiencia, desde hace más
de un año. Para ello nos
iremos a la web.

Yo ya tengo creada una


cuenta, que por cierto es
gratuita. En el siguiente paso
crearemos un VPS o Droplet.
Escogeremos un pequeño con
512 MB de memoria, 20 GB de
disco duro y 1 núcleo, más que
suficiente. Con un sistema
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 4/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

operativo con Ubuntu 12.04

En la primera parte tenemos


que escoger el nombre para el
servidor, en mi caso será
correo.ochobitsunbyte.pw,
escogemos el servidor con las
características que he
comentado antes, que tiene un
coste de 5 eur al mes.

A continuación elegimos la
ubicación del centro de datos.
Si vivimos en Europa
recomiendo un centro de datos
en dicho continente, ya que
tiene unas leyes menos
invasivas como por ejemplo las
de Estados Unidos.

He escogido la ubicación
geográfica de Frankfurt en
Alemania. En el siguiente paso
elegimos el sistema operativo.
He escogido Ubuntu en su
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 5/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

versión 12.04 de 64 bits. La


razón por la que no he
escogido Debian, que es mi
distribución favorita, es que
cuando he realizado la
instalación (llevo varios días
haciendo pruebas), cuando
tenía todo instalado un bug del
sistema con el servicio
Dovecot me ha fastidiado la
fiesta. Dicha versión de
Ubuntu es una versión fiable
para el fin de ésta guía.

En el último paso podemos


seleccionar una llave ssh, en
nuestro caso no lo haremos,
aunque podéis ver los
nombres de las llaves que
hasta ahora he ido creando
para otros servidores. 
También podemos añadir una
red interna, servicios de copias
de seguridad, etcétera.

digitalocean-servidor-
correo-05

Y apretamos el botón “Create


Droplet“

Al crear el servidor nos


llegarán las credenciales a
nuestro correo electrónico,
para así poder acceder por ssh.
La clave que nos envíen la
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 6/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

tendremos que cambiar de


manera obligatorio al acceder
por primera vez.

Para quien esté interesado en


utilizar DigitalOcean, puede
utilizar el siguiente código
promocional y obtener un
descuento de 10 USD

Primeros pasos con


el servidor
Al acceder vía ssh, debemos
cambiar la contraseña.
Recomiendo utilizar una
contraseña de al menos 8
dígitos y que no sea habitual,
podemos utilizar el programa
pwgen del que ya hablamos en
su día, ya que es una
fantástica herramienta de
creación de contraseñas.

Otro paso importante para


segurizar nuestro servidor es
cambiar el puerto por defecto
del servicio ssh, tema que
también tratamos en otro
artículo, también podemos
limitar el tiempo de conexión.

Actualizamos las fuentes y los


paquetes del servidor a la
última versión:

1 apt‐get ‐y update
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 7/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

1 apt‐get ‐y upgrade

De ésta manera ya podemos


empezar a instalar nuestro
servidor de correo.

Requisitos mínimos para el


funcionamiento del servidor

Para que todo nos funcione a


la perfección primero de todo
debemos utilizar un nombre
FQDN correcto. Para ello
primero modificamos el
archivo /etc/hosts y deberá
quedar así:

1 127.0.0.1   localhost
2 127.0.1.1   correo.ochobitsunbyte.pw correo
3 nuestra.ip  correo.ochobitsunbyte.pw correo

En la última línea debemos


sustituir “nuestra.ip” por la IP
del servidor.

Otro requisito para el servidor


será tener instalado un
servicio de base de datos
MYSQL Recordar que al
instalarlo nos pedirá otra vez
una contraseña, es importante
que no sea la misma que la del
servidor.

Instalamos los paquetes:

1 apt‐get install mysql‐server libapache2‐mod‐auth‐mysql php5‐mysql

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 8/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Debemos securizar nuestro


servicio de base de datos,
siguiendo los pasos del
comando:

1 /usr/bin/mysql_secure_installation

Instalación de
Postfix y Dovecot
De Postfix ya hemos hablado
mucho en la web.
Simplificando se trata de una
herramienta para la gestión del
correo, mucho más segura y
avanzada que otras “marcas”
propietarias. Dovecot se trata
de un servicio  IMAP y POP3
para sistemas GNU Linux, que
pone especial hincapié en la
seguridad. Todo ello
combinado con MYSQL, que ya
hemos instalado antes, y que
hará que la combinación de los
tres tengamos un servidor de
correo muy completo.

Realizamos la instalación de
los paquetes:

1 apt‐get install postfix postfix‐mysql dovecot‐core dovecot‐imapd dovecot‐lmtpd dovecot‐mysql

Nos aparecerá una pantalla


donde nos preguntará que tipo
de servidor de correo

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 9/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

queremos, escogemos
“Servidor de Internet“

postfix-dovecot-ubuntu-
001

El siguiente paso le decimos el


nombre cualificado para el
servidor:

Creación de la base
de datos MYSQL
Antes de finalizar la instalación
un paso muy importante es
crear la base de datos con la
que trabajará el sistema de
correo. Al igual que en otros
casos debemos de llamar a la
base de datos con un nombre
poco común. Llamaré a la base
de datos ‘cronos‘

De la siguiente manera:

1 mysqladmin ‐p create cronos

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 10/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Y a continuación accedemos a
la consola MYSQL

1 mysql ‐u root ‐p

Una vez dentro crearemos un


nuevo usuario que tendrá
privilegios sobre la base de
datos ‘cronos‘. A dicho usuario
le llamaremos ‘fantastes‘, con
nueva contraseña diferente de
la de root.

1 GRANT SELECT ON cronos.* TO 'fantastes'

Y recargamos los privilegios:

1 FLUSH PRIVILEGES;

Y accedemos la base de datos:

1 USE cronos;

Crearemos una nuevo tabla


para los dominios virtuales de
correo:

1 CREATE TABLE `virtual_domains` 
2 `id`  INT NOT NULL AUTO_INCREMENT
3 `name` VARCHAR(50) NOT NULL,
4 PRIMARY KEY (`id`)
5 ) ENGINE=InnoDB DEFAULT CHARSET

Ahora creamos otra tabla con


los datos de los usuarios,
correos electrónicos y
contraseñas:

1 CREATE TABLE `virtual_users` (
2 `id` INT NOT NULL AUTO_INCREMENT

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 11/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

3 `domain_id` INT NOT NULL,
4 `password` VARCHAR(106) NOT NULL
5 `email` VARCHAR(120) NOT NULL,
6 PRIMARY KEY (`id`),
7 UNIQUE KEY `email` (`email`),
8 FOREIGN KEY (domain_id) REFERENCES
9 ) ENGINE=InnoDB DEFAULT CHARSET

Como cualquier servidor de


correo que se precie también
crearemos una tabla para los
“alias”, es decir, para las
redirecciones de correo:

1 CREATE TABLE `virtual_aliases` 
2 `id` INT NOT NULL AUTO_INCREMENT
3 `domain_id` INT NOT NULL,
4 `source` VARCHAR(100) NOT NULL,
5 `destination` VARCHAR(100) NOT 
6 PRIMARY KEY (`id`),
7 FOREIGN KEY (domain_id) REFERENCES
8 ) ENGINE=InnoDB DEFAULT CHARSET

Otro paso importante es


insertar los servidores
virtuales con los que vamos a
trabajar, recordar que tienen
que cumplir con las normas
FQDN. En nuestro caso será
por una parte el nombre de
dominio ochobitsunbyte.pw y
por el otro el nombre del
servidor
correo.ochobitsunbyte.pw

De la siguiente manera:

1 INSERT INTO `cronos`.`virtual_domains`
2 (`id` ,`name`)
3 VALUES
4 ('1', 'ochobitsunbyte.pw'),
5 ('2', 'correo.ochobitsunbyte.pw'

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 12/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Ahora añadiremos un correo,


con el realizaremos pruebas de
funcionamiento a posteriori.

1 INSERT INTO `cronos`.`virtual_users`
2 (`id`, `domain_id`, `password` 
3 VALUES
4 ('1', '1', ENCRYPT('contraseña'

Y por último los “Aliases” o


redirecciones, en éste caso
sólo añadiremos una ficticia.

1 INSERT INTO `cronos`.`virtual_aliases`
2 (`id`, `domain_id`, `source`, `destination`
3 VALUES
4 ('1', '1', 'alias@ochobitsunbyte.pw'

Por ésta parte ya hemos


acabado. Podemos salir con
‘exit‘

Configurar Postfix
Ahora nos toca configurar
Postfix. Guardamos el fichero
de configuración original:

1 mv /etc/postfix/main.cf /etc/postfix

Y creamos uno nuevo


utilizando nuestro editor
favorito, en mi caso nano:

1 nano /etc/postfix/main.cf

Utilizaremos los certificador


SSL gratuitos disponibles en el
sistema, para ellos añadimos
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 13/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

éstas primeras líneas:

1 smtpd_tls_cert_file=/etc/ssl/certs
2 smtpd_tls_key_file=/etc/ssl/private
3 smtpd_use_tls=yes
4 smtpd_tls_auth_only = yes

Y añadimos:

1 smtpd_sasl_type = dovecot
2 smtpd_sasl_path = private/auth
3 smtpd_sasl_auth_enable = yes
4 smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destina

Y los datos referentes a


nuestro de dominio y servidor:

1 mydestination = localhost
2 myhostname = correo.ochobitsunbyte.pw

Indicamos que vamos a utilizar


los servidores virtuales
indicados en la tabla de la base
de datos:

1 virtual_transport = lmtp:unix:private

Por último añadimos las


ubicaciones de los ficheros
configuración para los
dominios, usuarios y alias.

1 virtual_mailbox_domains = mysql:
2 virtual_mailbox_maps = mysql:/etc
3 virtual_alias_maps = mysql:/etc

Y comenzamos a editar los


ficheros de configuración.
Creamos el fichero “mysql-

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 14/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

virtual-mailbox-domains.cf“

1 nano /etc/postfix/mysql‐virtual‐mailbox‐domains.cf

Y añadimos en el fichero:

1 user = fantastes
2 password = password
3 hosts = 127.0.0.1
4 dbname = cronos
5 query = SELECT 1 FROM virtual_domains WHERE 

Reiniciamos el servicio:

1 service postix restart

Utilizando el comando
postmap comprobaremos que
la configuración del fichero es
correcta:

1 postmap ‐q ochobitsunbyte.pw mysql:

Si todo ha ido bien nos


devolverá un ‘1‘

Vamos a por el segundo de los


ficheros:

1 nano /etc/postfix/mysql‐virtual‐mailbox‐maps.cf

Y añadimos las líneas:

1 user = fantastes
2 password = password
3 hosts = 127.0.0.1
4 dbname = cronos
5 query = SELECT 1 FROM virtual_users WHERE 

Reiniciamos el servicio:
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 15/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

1 service postfix restart

Comprobamos la
configuración:

1 postmap ‐q davidochobits@ochobitsunbyte.pw mysql:

Si nos muestra ‘1’ es que todo


va bien.

Por último el tercer fichero:

1 nano /etc/postfix/mysql‐virtual‐alias‐maps.cf

Y su contenido:

1 user = fantastes
2 password = password
3 hosts = 127.0.0.1
4 dbname = cronos
5 query = SELECT destination FROM virtual_aliases WHERE 

Reiniciamos por última vez en


éste apartado el servicio:

1 service postfix restart

Realizamos la comprobación:

1 postmap ‐q alias@ochobitsunbyte.pw mysql:

De ésta manera nos tiene que


mostrar el correo al cual está
redirigido, es decir,
davidochobits@ochobitsunbyte.pw

Para poder utilizar la conexión


segura por el puerto 587
debemos modificar el fichero
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 16/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

/etc/postfix/master.cf

1 nano /etc/postfix/master.cf

Debemos descomentar las


siguientes líneas:

1 submission inet n       ‐       ‐       ‐       ‐       smtpd
2 ‐o syslog_name=postfix/submission
3 ‐o smtpd_tls_security_level=encrypt
4 ‐o smtpd_sasl_auth_enable=yes
5 ‐o smtpd_client_restrictions=permit_sasl_authenticated,reject

Si reiniciamos Postfix ya
podremos utilizar el puerto
587.

Configurar Dovecot
Los principales ficheros de
configuración de Dovecot, los
cuales tendremos que
modificar son los siguientes:

/etc/dovecot/dovecot.conf
/etc/dovecot/conf.d/10-
mail.conf
/etc/dovecot/conf.d/10-
auth.conf
/etc/dovecot/dovecot-
sql.conf.ext
/etc/dovecot/conf.d/10-
master.conf
/etc/dovecot/conf.d/10-
ssl.conf

Para ello lo primero que


haremos es copiarlos a otro
archivo para perder la
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 17/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

configuración original:

1 cp /etc/dovecot/dovecot.conf /etc
2 cp /etc/dovecot/conf.d/10‐mail.conf 
3 cp /etc/dovecot/conf.d/10‐auth.conf 
4 cp /etc/dovecot/dovecot‐sql.conf.ext 
5 cp /etc/dovecot/conf.d/10‐master.conf 
6 cp /etc/dovecot/conf.d/10‐ssl.conf 

Empezamos a trabajar con el


fichero
/etc/dovecot/dovecont.conf,
lo editamos:

1 nano /etc/dovecot/dovecot.conf

Y verificamos que la siguiente


línea no esté comentada:

1 !include conf.d/*.conf

Justo debajo de la línea


“!include_try
/usr/share/dovecot/protocols.d/*.protocol
line“, debemos añadir los
protocolos a utilizar:

1 !include_try /usr/share/dovecot/protocols.d/*.protocol
2 protocols = imap lmtp

Editamos el siguiente fichero


de configuración:

1 nano /etc/dovecot/conf.d/10‐mail.conf

Debemos descomentar la
siguiente línea y dejarla tal así:

1 mail_location = maildir:/var/mail

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 18/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Ahora buscamos ésta otra


línea, la descomentamos, y la
dejamos tal cual:

1 mail_privileged_group = mail

Una vez editado el fichero lo


guardamos.

Creamos la carpeta donde


veremos los registros de la
base de datos MYSQL:

1 mkdir ‐p /var/mail/vhosts/ochobitsunbyte.pw

Creamos el usuario y grupo


‘vmail‘ con la ID 5000

1 groupadd ‐g 5000 vmail 
2 useradd ‐g vmail ‐u 5000 vmail 

Asignamos el nuevo usuario y


grupo al directorio /var/mail
utilizando el comando chown:

1 chown ‐R vmail:vmail /var/mail

Editamos el siguiente fichero:

1 nano /etc/dovecot/conf.d/10‐auth.conf

Editamos la línea a
continuación añadiendo el
parámetro ‘yes‘:

1 disable_plaintext_auth = yes

Modificamos la línea
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 19/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

‘auth_mechanisms’ con los


parámetros:

1 auth_mechanisms = plain login

Comentamos la línea:

1 #!include auth‐system.conf.ext

Y descomentamos la línea
referida a la autorización
MYSQL:

1 !include auth‐sql.conf.ext

En el paso siguiente creamos


el fichero
/etc/dovecot/conf.d/auth-
sql.conf.ext para la
información de autentificación:

1 nano /etc/dovecot/conf.d/auth‐sql.conf.ext

Y añadimos el contenido:

1 passdb {
2   driver = sql
3   args = /etc/dovecot/dovecot‐sql.conf.ext
4 }
5 userdb {
6   driver = static
7   args = uid=vmail gid=vmail home
8 }

Guardamos y pasamos al
siguiente fichero, en este caso
se trata de
/etc/dovecot/dovecot-
sql.conf, donde indicamos la
información MYSQL

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 20/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

1 nano /etc/dovecot/dovecot‐sql.conf.ext

Descomentamos y añadimos
el parámetro ‘mysql‘ :

1 driver = mysql

Descomentamos y añadimos
nuestros datos de base de
datos:

1 connect = host=127.0.0.1 dbname

Ahora descomentamos y
modificamos el parámetro
“default_pass_scheme“,
añadiendo el cifrado “SHA512-
CRYPT“

1 default_pass_scheme = SHA512‐CRYPT

Descomentamos
“password_query” y
añadimos la información:

1 password_query = SELECT email as

Modificamos permisos y
asignamos nuevo usuario a la
carpeta /etc/dovecot

1 chown ‐R vmail:dovecot /etc/dovecot
2 chmod ‐R o‐rwx /etc/dovecot

Abrimos y modificamos el
fichero

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 21/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

/etc/dovecot/conf.d/10-
master.conf, modificando
varios parámetros, para que
quede de la siguiente manera:

1 nano /etc/dovecot/conf.d/10‐master.conf

La primera parte debe quedar


así:

1 ##Descomentamos inet_listener_imap y lo modificamos por port 0
2 service imap‐login {
3   inet_listener imap {
4     port = 0
5 }
6  
7 #Creamos el socket LMTP con esta configuracion
8 service lmtp {
9    unix_listener /var/spool/postfix
10        mode = 0600
11        user = postfix
12        group = postfix
13    }
14   #inet_listener lmtp {
15     # Avoid making LMTP visible for the entire internet
16     #address =
17     #port =
18   #}
19 }

Modificamos el parámetro
“unix_listener” dentro del
apartado “service_auth” :

1 service auth {
2  
3   unix_listener /var/spool/postfix
4   mode = 0666
5   user = postfix
6   group = postfix
7   }
8  
9   unix_listener auth‐userdb {
10   mode = 0600
11   user = vmail
12   #group =
13   }
14  
15   #unix_listener /var/spool/postfix/private/auth {
16   # mode = 0666
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 22/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

17   #}
18  
19   user = dovecot
20 }

Modifcamos el apartado
“service auth-worker” para
que quede así:

1 service auth‐worker {
2   # Auth worker process is run as root by default, so that it can access
3   # /etc/shadow. If this isn't necessary, the user should be changed to
4   # $default_internal_user.
5   user = vmail
6 }

Guardamos y pasamos al
fichero
/etc/dovecot/conf.d/10-
ssl.conf, lo revisamos y si un
caso lo modificamos, para que
quede de la siguiente manera:

1 nano /etc/dovecot/conf.d/10‐ssl.conf

Comprobamos que el
parámetro “ssl” es el siguiente:

1 ssl = required

Verificamos y modificamos, si
es necesario, los parámetros
“ssl_cert” y “ssl_key” :

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 23/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Reiniciamos el servicio
Dovecot:

1 service dovecot restart

Ahora reinciaremos el sevidor


y probaremos la cuenta
davidochobits@ochobitsunbyte.pw
en el cliente de correo
Thunderbird.

Para ello primero


modificaremos los DNS de
nuestro dominio para crear un
registro A y MX, por seguridad
recomiendo que los registros
apunten a CloudFlare, si no
tenéis cuenta os podéis crear
una, son gratuitas. Por defecto
namecheap.com ya apunta
sus DNS a CloudFlare, así que
no tendremos que hacer
ninguna modificación.

En CloudFlare debemos añadir


o modificar:

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 24/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Registro “A”
ochobitsunbyte.pw que
apunte a nuestra IP
Registro “A”correo que
apunte a nuestra IP
Registro “MX” de
ochobitsunbyte.pw que
apunte a
correo.ochobitsunbyte.pw

Escogeremos el plan “Free


Plan” que no tiene coste. El
cambio de DNS puede tardar
un poco, de hecho, hasta
varias horas.

En Thunderbird los parámetros


deberían ser como sigue:

Nombre a mostrar:
davidochobits
Cuenta de correo:
davidochobits@ochobitsunbyte.pw
Contraseña: ‘nuestro
password’
Servidor de entrada: IMAP,
correo.ochobitsunbyte.pw,
Puerto 993, SSL/TLS,
contraseña normal
Servidor de salida: SMTP,
correo.ochobitsunbyte.pw,
Puerto 587, Automático,
contraseña normal
Usuario:
davidochobits@ochobitsunbyte.pw

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 25/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Y con esto nos debería


funcionar, aquí os dejo una
muestra:

En el fichero de log
/var/log/mail.log podemos
ver todo lo que sucede con
nuestro server de correo.

Configurar
SpamAssasin
Con SpamAssasin podremos
evitar en gran medida el abuso
del spam contra nuestras
cuentas de correo. Pertenece
al proyecto Apache

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 26/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Para instalar el programa en


nuestro servidor:

1 apt‐get install spamassassin spamc

Para su funcionamiento
necesitamos crear el usuario
‘spamd‘ :

1 adduser spamd ‐‐disabled‐login

Debemos modificar el fichero


/etc/default/spamassassin

1 nano /etc/default/spamassassin

Cambiamos el parámetro:

1 ENABLED=1

Las siguientes líneas deben de


quedar así:

1 SPAMD_HOME="/home/spamd/"
2 OPTIONS="‐‐create‐prefs ‐‐max‐children 5 ‐‐username spamd ‐‐helper‐home‐dir 
3 PIDFILE="${SPAMD_HOME}spamd.pid"
4 CRON=1

Guardamos y ahora
modificamos el fichero
/etc/spamassassin/local.cf
De ésta manera
configuraremos el nivel de
seguridad. Podemos utilizar los
siguientes parámetros de
ejemplo:

1 rewrite_header Subject ***** SPAM _SCORE_ 
2 report_safe             0
3 required_score          5.0

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 27/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

4 use_bayes               1
5 use_bayes_rules         1
6 bayes_auto_learn        1
7 skip_rbl_checks         0
8 use_razor2              0
9 use_dcc                 0
10 use_pyzor               0

Por último modificamos uno


de los ficheros de
configuración de Postfix, para
que cuenta con el servicio
SpamAssassin :

1 nano /etc/postfix/master.cf

De las dos líneas siguientes,


debemos buscar la primera y
añadir a continuación la
segunda:

1 smtp      inet  n       ‐       ‐       ‐       ‐       smtpd
2 ‐o content_filter=spamassassin

Y añadir justo al final del


fichero:

1 spamassassin unix ‐     n       n       ‐       ‐       pipe
2 user=spamd argv=/usr/bin/spamc 
3 /usr/sbin/sendmail ‐oi ‐f ${sender}

Ahora ya podemos encender el


servicio spamassassin y
reiniciar postfix

1 service spamassassin sart
2 service postfix restart

Pues ya tenemos montado


nuestro servidor de correo, con

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 28/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

POSTFIX, DOVECOT y
SPAMASSASIN, espero que
haya sido de vuestro interés.

Me he ayudado de las
siguientes fuentes:

DigitalOcean | Wiki Apache

Compártelo:

 Twitter  Google

 Facebook 28  LinkedIn 7

 Imprimir  Correo electrónico

Tags: digitalocean dovecot GNU

Linux mail namecheap Postfix

spamassassin ubuntu

 YOU MAY ALSO LIKE...

0 2 0

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 29/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Crear Gestión Probam


un de os la
servido correo versión
r con 7 de
hosting roundc Trisquel
seguro ube GNU
con 8 OCT, 4 NOV,
Debian, 2015 2014
LAMP y
SFTP
21 MAY,
2015

23 RESPONSES

 Comments 20

 Pingbacks 3

Yoyo
 30 septiembre, 2015 a las
3:15 pm
Menudo curro la vín compae!

Responder

davidochobits
  30 septiembre,
2015 a las 3:23 pm
Pues sí, de unos
cuantos días mister
Yoyo
Al final todo ha
salido bien.
Responder

C3scmt
 30 septiembre, 2015 a las
3:28 pm
Muy bien explicado todo! Lo
pondré en practica a ver
como sale!
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 30/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Un saludo!
Responder

davidochobits
  30 septiembre,
2015 a las 3:31 pm
Hola,
Genial, ya contarás
tu experiencia.
Saludos!
Responder

Raul Mauricio Garcia Lara


 30 septiembre, 2015 a las
3:32 pm
¿Este servidor tiene la
funcionalidad de dejar copia
de todo lo que envía en el
propio servidor.?

Gracias
Responder

davidochobits
  30 septiembre,
2015 a las 3:59 pm
El servidor guarda
los correos cifrados
mientras espera a
enviarlos al
destinatario.
Saludos
Responder

Rogger Ortega
 30 septiembre, 2015 a las
3:53 pm
Bello post, excelente
explicación, aunque hubiera
preferido MariaDB (cosa de
gustos ). Ya lo redditeo
/r/GNULinuxEsp y lo paso
por las redes libres.

Saludos.
Responder

davidochobits
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 31/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

 30 septiembre,
2015 a las 4:00 pm
Genial Rogger,
También se puede
utilizar MariaDB o
PostgreSQL
Mercés por
compartir.
Saludos!
Responder

Keiller
 30 septiembre, 2015 a las
7:49 pm
Muy bueno. Voy a probarlo a
ver como queda.Un saludo.
Responder

davidochobits
  30 septiembre,
2015 a las 8:19 pm
Gracias, ya me
contarás : )
Responder

tannhausser
 1 octubre, 2015 a las 12:18
pm
Está genial el post, completo
y muy bien explicado.

A este paso, voy tener que


hacerle una carpetita a
firefox con tus manuales, que
ya se está llenando la cosa

Responder

davidochobits
  1 octubre, 2015 a
las 6:03 pm
Gracias! Esa es la
intención. Pues ves
haciendo sitio, hay
muchas más en
camino
Responder
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 32/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Liher
 1 octubre, 2015 a las 9:33
pm
Menudo pedazo de cacho de
trozo de tuto, sencillamente
excelente, este tipo de
articulos son para guardar
como referencia y eso hare.
Un saludo compañero
Responder

davidochobits
  1 octubre, 2015 a
las 10:54 pm
Gracias Liher, lo
cierto que para mi es
una recompensa que
amigos de la
comunidad bloguera
piensen así
Un saludo!
Responder

Liher
 1 octubre,
2015 a las
11:12 pm
Los que
tenemos un
blog
sabemos el
curro que
lleva un
articulo
como este y
lo valoramos
en
consonancia.
De verdad,
muy bueno
el post.
Responder

mantisfistjabn
 2 octubre, 2015 a las 10:15
pm
http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 33/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Demasiado bueno el
artículo!!!!
Siempre he querido montar
un Servidor de Correo propio,
y ahora tengo toda la
información disponible,
muchísimas gracias.
Responder

davidochobits
  4 octubre, 2015 a
las 12:09 am
Muchas gracias a ti
por pasarte : )
Ya contarás tu
experiencia. Un
saludo!
Responder

Galliko
 5 octubre, 2015 a las 5:00
pm
Muy buen post! Solo ha
faltado SquirrelMail
Responder

davidochobits
  5 octubre, 2015 a
las 5:03 pm
Gracias Galliko, esa
es la intención.

El tema de la interfaz
web SquirrelMail (o
alguna similar) lo
tengo pensado para
de aquí a unos días.

Saludos!!
Responder

dell
 24 octubre, 2015 a las 4:54
pm
hola, bueno el tutorial.
te comento tengo un
problema , al reiniciar

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 34/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

dovecot me da:
[….] Restarting IMAP/POP3
mail server:
dovecotdoveconf: Fatal: Error
in configuration file
/etc/dovecot/conf.d/10-
ssl.conf line 12: ssl_cert:
Can’t open file
/etc/ssl/certs/dovecot.pem:
No such file or directory
y bueno tambien cuendo
verifico el puerto 993 y 995
(imap y pop3 seguro), no
muestran como puertos
abirtos
no logro conectar con un
cliente de correo.
perdona pero hay algo que
no realice bien.
no logro encontrar el detalle
del error.
lo estoy corriendo en Debian
8.2
saludos.
Responder

DEJA UN COMENTARIO

Nombre * Correo
electrónico *

Web

Comentario

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 35/36
14/11/2015 Crear un servidor de correo en GNU Linux desde cero ­ ochobitshacenunbyte

Publicar comentario

Recibir un email con los


siguientes comentarios a esta
entrada.
Recibir un email con cada
nueva entrada.


ochobitshacenunbyte © 2015. All Rights
Reserved.    

http://www.ochobitshacenunbyte.com/2015/09/30/crear­servidor­correo­gnu­linux­desde­cero/ 36/36