Servidor de Correo con Postfix, Mariadb y PostfixAdmin en Debian9. 2da Parte

En esta segunda parte del tutorial vamos a preparar e instalar el servidor de correo. Ya tenemos funcional nuestro phpmyadmin. Lo que necesitamos es dos bases de datos, una para el roundcube y otra para el postfixadmin, lo cual podemos usar el phpmyadmin para crearlas. Cada base de datos sólo la usará el usuario que la necesite[en este caso roundcube o postfixadmin] y nadie más. Recomiendo crear un usuario por la consola si desean usar el phpmyadmin, pues si usan root, tendrán problemas de autenticación via web.

Ahora se pueden loguear con el usuario admin por la interfaz web del phpmyadmin.

En la web de PHPMyAdmin:

Hacer el mismo proceso para la base de datos de Roundcube

En el terminal:

Base de datos para Roundcube:

Base de datos para Postfixadmin:

Ahora crearemos un virtualhosting para roundcube, que veremos más adelante:

En /etc/nginx/sites-available/ crear el archivo roundcube.conf y añadirle el siguiente contenido:

roundcube.conf

Creamos la carpeta del virtualhosting:

Ahora pongámosle toda la seguridad necesaria:

Si tenemos conexión a internet podemos ponerle certificados Let´s Encrypt. Tutoriales de uso de Let´s Encrypt hay miles en internet. Pero como esto es un tutorial offline, generaremos los certificados SSL, autofirmados.

Ahora crearemos los archivos incluidos en el procesamiento del virtualhosting con SSL:

ssl.conf

php.conf

/etc/nginx/ban_exploits.conf

favicon.conf

El favicon no es tan importante, por lo cual si no lo tenemos no dará error en los logs.

Ahora solo queda activar el virtualhost y reiniciar nginx:

Finalmente reiniciamos el nginx:

Ahora instalaremos nuestro webmail RoundCube.

La ruta de instalacion de roundcube en el virtualhosting fue /var/www/webmail.inutil.cu.
Después de descargarlo:

Para ahorrarnos molestias cuando termine el instalador copiando/pegando la configuración, le daremos permisos de escritura a la carpeta /etc/roundcube/config para que automáticamente se acabe la instalación de roundcube cree el archivo de configuración, el cual posteriormente le daremos permisos de sólo lectura.

Abrir el navegador e ir a http://ip_del_server/roundcube/installer/
-Revisar que todos los valores necesarios están en «ON» y hacer click en «NEXT»
– Revisar los campos del setup y editar según nuestras preferencias. En este punto sólo deberíamos editar «identities_level» dejándolo en «one identity with possibility to edit only signature»
– Configurar la conexion a MySQL en el apartado «Database setup»
– En el apartado «username_domain» debemos poner nuestro dominio
– Idioma «es_ES», y rellenar cualquier info necesaria en dependencia de nuestras necesidades y hacer click en «NEXT»
Copiar/guardar la config en nuestro directorio de configuración /etc/roundcube/config/config.inc.php. Si usted le dio permisos de escritura a /etc/roundcube/config, sólo debe dar next y listo, la configuración de roundcube será salvada automáticamente sin preguntar nada.

NOTA: En caso de usar «*» en los password debemos editar la config y arreglar ese detalle puesto que php nos genera el caracter html para el * y cuando roundcube intenta conectarse a la base de datos no va a poder.

– Dar click en «Continue» e inicializar la base de datos, recuerde hacer los cambios pertinentes a la configuración antes de dar siguiente.
– Inicializar la base de datos dando click en el boton «Initialize database»
– Si todo ha ido bien[si no, reintentar instalar desde el principio], sólo nos restará borrar el instalador

– Dar permisos de lectura nuevamente a la carpeta de la configuración.

  • Plugin de cambio de password

En config.inc.php:

Ir a /usr/share/roundcube/plugins/password y renombrar config.inc.php.dist

Editar:

Ahora, cuando un usuario desee cambiarse el password solamente debe ir a «Configuración/Contraseña», rellenar los campos y listo.

NOTA: Si usted tiene implementada la politica de correos nacionales e internacionales[muy común en Cuba], debe cambiar en la configuración de roundcube[config.inc.php] el default_host[$config[‘default_host’] = ‘localhost’;] por el ip de su server de correo así obliga al usuario a hacer login por el ip no por localhost, y postfix lo reconoce como una ip externa a 127.0.0.1.

  • SASL

Instalando SASL:

Como bien nos dice el instalador de saslauthd debe iniciar con el sistema por lo que debemos hacerlo en /etc/default/saslauthd

Guardamos y salimos

Ahora debemos modificar la carpeta donde va a trabajar Postfix con SASL, hay que hacerle algunos pequeños ajustes:

Ahora bien, debemos crear el fichero para extraer las contraseñas encriptadas de la base de datos con los datos del usuario, contraseña, base de datos, tabla, la columna donde se encuentra el usuario y la columna donde se encuentra la contraseña.

smtp

Cada sentencia anterior debe ir en una sola línea. Es decir, el fichero smtp sólo debe contener dos líneas.

Y por supuesto, los permisos:

Y reiniciamos SASL

Ya tenemos listo nuestro webmail y además esta publicado en forma segura. En el próximo tutorial les mostraré como adminstarlo.

Link a la 3ra parte.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 1

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

13 comentarios

  1. Firefox 80.0 Firefox 80.0 Windows 8.1 x64 Edition Windows 8.1 x64 Edition
    Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0

    Verifica que pass pusiste aca

    En caso de que no te funcione, ve a /etc/mysql/debian.conf y ahi esta el user y el pass del sistema. Usalos para entrar.

    Tres errores en el articulo (Al que no le funcione, que verifique esto)
    1 – En el caso de los certificados , que un lado es 1024 y en otro lado dice 2048. (en /etc/nginx/ssl.conf lo que debe ir es 2048)
    2 – La ruta del roundcube , es en /var/www/web.inutil.cu, por nada de la vida te va a cargar ip_servidor/roundcube/instaler, a no ser que entres con el nombre que le diste en el vhost webmail.inutil.cu/installer/, o sino mover a /var/www/html/roundcube y entrar http://ip_servidor/roundcube/intaller/
    3 – la configuracion del plugin password, no esta en /usr/share/roundcube/plugins/password , esta en /var/www/webmail.inutil.cu/plugins/password
    4-Conf del plugin , el user que se creo en mysql es postfixadmin, no postfix.

    Lo otro, ojo con la version de php instalada, ejemplo php7.2 seria en el vhost de nginx [php7.2-fpm.sock] al igual que en el /etc/nginx/php.conf. Verifiquen que version de socke esta corriendo en

  2. Firefox 77.0 Firefox 77.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0

    Hola, fue una mala configuracion mia, ya pude descargar el roundcube pero cuando voy abrirlo en la web me sale un error 404 Not Found nginx y todos los pasos me dieron bien. Me pueden ayudar

  3. Firefox 77.0 Firefox 77.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0

    no descargar roundcube no me funciona wget me pudieran ayudar


  4. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 61.0 Firefox 61.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0

    Hola, muy bueno el tuto pero creo que hay un error en la configuración del plugin password

    La línea
    $config[‘password_db_dsn’] = ‘mysql://postfix:contraseña_de_postfixdb@localhost/postfix’;

    deberia quedar
    $config[‘password_db_dsn’] = ‘mysql://postfixadmin:contraseña_de_postfixadmindb@localhost/postfix’;

  5. Google Chrome 67.0.3396.87 Google Chrome 67.0.3396.87 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

    hola, yo instale roundcube en centos 7, tengo el phpmyadmin y l abase de datos fucionando que no se cuales osn los usuarios, yaq creo en mysql y no entra, los creo en el sistema y tampoco… me pueden ayudar?

  6. Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

    y el ningx esta funcionando bien porque pongo la ip del servidor en el navegador y me sale la pagina de Welcome to ningx!

  7. Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

    Buneos dias, he seguido el manual y todo bien pero cuando voy http://ip_del_server/roundcube/installer/ para comenzar me da el error 404 Not Faund ningx/1.10.3 no se porq no encuentra supuestamente el ningx y he seguido todos los pasos.
    Saludos

    • Firefox 52.0 Firefox 52.0 GNU/Linux GNU/Linux
      Mozilla/5.0 (X11; Linux i686; rv:52.0) Gecko/20100101 Firefox/52.0

      Tengo el mismo inconveniente. Al intentar ingresar a la ip del servidor/roundcube/installer me da error 403 «Forbidden nginx» … lo mismo para phpmyadmin…

  8. Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

    gracias por tu ayuda, disculpa pero es que soy nuevo en este mundo y me es complicado pero quiero aprender.
    Ahora tengo otro error, depsués que instalé el certificado ssl, cree los archivos ssl.conf,php.conf,ban_exploits.con y favicon.conf y luego activar el virtualhost Cuando voy a reiniciar nginx me da error, introduzco el comando systemctl status nginx y me sale lo siguiente q puede ser???. Disculpa las molestias

    nginx.service – A high performance web server and a reverse proxy server
    Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Tue 2018-01-23 21:24:22 UTC; 5s ago
    Docs: man:nginx(8)
    Process: 283 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status
    =1/FAILURE)

    Jan 23 21:24:22 postfix systemd[1]: nginx.service: Failed to reset devices.list: Operation not permitte
    d
    Jan 23 21:24:22 postfix systemd[1]: Starting A high performance web server and a reverse proxy server…
    Jan 23 21:24:22 postfix nginx[283]: nginx: [emerg] BIO_new_file(«/etc/nginx/ssl/dh_1024.pem») failed (SSL: erro
    r:02001002:system library:fopen:No such file or directory:fopen(‘/etc/nginx/ssl/dh_1024.pem’,’r’) error:2006D08
    0:BIO routines:BIO_new_file:no such file)
    Jan 23 21:24:22 postfix nginx[283]: nginx: configuration file /etc/nginx/nginx.conf test failed
    Jan 23 21:24:22 postfix systemd[1]: nginx.service: Control process exited, code=exited status=1
    Jan 23 21:24:22 postfix systemd[1]: Failed to start A high performance web server and a reverse proxy s
    erver.
    Jan 23 21:24:22 postfix systemd[1]: nginx.service: Unit entered failed state.
    Jan 23 21:24:22 postfix systemd[1]: nginx.service: Failed with result ‘exit-code’.

    • Firefox 52.0 Firefox 52.0 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

      Revisa la ruta donde estas colocando los certificados… Ese es el error que te esta dando.

      • Firefox 58.0 Firefox 58.0 Windows 10 x64 Edition Windows 10 x64 Edition
        Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

        Es que el manual dice que genere el certificado con este comando
        openssl dhparam -out /etc/nginx/ssl/dh_2048.pem -2 2048
        Pero luego en el ssl.conf esta escrito esto:
        ssl_dhparam /etc/nginx/ssl/dh_1024.pem;
        Esa es la cuestion que causa el fallo. Please fix it

  9. Firefox 57.0 Firefox 57.0 Windows 7 x64 Edition Windows 7 x64 Edition
    Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0

    Buenos días, cuanto realizó el paso de crear el usuario para entrar via web al phpmyadmin, me sale es siguiente error

    #1045 – Access denied for user ‘admin’@’localhost’ (using password: YES)

    • Firefox 52.0 Firefox 52.0 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

      Ese tutorial está probado doblemente, en máquina virtual y en una máquina real, y en ningun momento dió error. Revisa hermano, que algo debes haber hecho mal. Aún así si no puedes hacerlo por wenb, ejecuta las sentencias en la consola para brear las bases de datos y despues lees que pasó en los logs, y lo arreglas. NUNCA, pero NUNCA, dejes de leer los log, son bastante esclarecedores en ese sentido.

Responder a Carlos Pérez Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*