# Examen de Servicios # Configuración Básica **Configuración de red en VirtualBox** Conectado a: Adaptador puente **Actualizar la lista de repositorios** ```apt update -y``` **Cambiar contraseñas de los usuarios del sistema** ``` passwd <contraseña> passwd usuario <contraseña> ``` **Asignar dirección IP estática** ```nano /etc/network/interfaces``` Comentar última línea y añadir al final: ``` auto lo iface lo inet loopback auto enp0s3 iface enp0s3 inet static address 192.168.1.x netmask 255.255.255.0 gateway 192.168.1.1 ``` Reiniciar la interfaz de red: ```systemctl restart networking``` # Servidor OpenSSH **Instalación de Servidor OpenSSH** ```apt-install openssh-server``` **Conectarse a través de SSH** ``` ssh root@192.168.1.x <contraseña> ``` **Directivas del fichero /etc/ssh/sshd_config** Editar el archivo: ```nano /etc/sshd_config``` Habilitar conexión SSH con el usuario root: ```PermitRootLogin yes``` Cambiar puerto TCP de SSH a 2234: ```Port 2234``` **Reiniciar Servidor OpenSSH** ```systemctl restart ssh``` # Instalación/Configuración tradicional de Postfix y Dovecot Instalar bind9 `apt install bind9 -y` Editar forwarders y desactivar opciones innecesarias `nano /etc/bind/named.conf.options` ``` forwarders { 1.1.1.1; }; dnssec-validation no; listen-on-v6 { no; }; ``` Agregar nueva zona al final del fichero `nano /etc/bind/named.conf.default-zones` ``` zone "asirserver.com" { type master; file "/etc/bind/db.asirserver.com"; }; ``` Agregar a /etc/hosts la siguiente línea para que la IP del servidor apunte a nuestro dominio asirserver.com `nano /etc/hosts` ``` 192.168.1.136 asirserver.com ``` Copiar plantilla de zona para crear la nuestra propia `cp /etc/bind/db.empty /etc/bind/db.asirserver.com` `nano /etc/bind/db.asirserver.com` ``` ; BIND reverse data file for empty rfc1918 zone ; ; DO NOT EDIT THIS FILE - it is used for multiple zones. ; Instead, copy it, edit named.conf, and use that copy. ; $TTL 86400 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ) ; Negative Cache TTL ; @ IN NS localhost. ns1 IN A 192.168.1.136 mail IN A 192.168.1.136 server IN A 192.168.1.136 www IN A 192.168.1.136 webmail IN A 192.168.1.136 IN MX 10 mail.asirserver.com ``` Reiniciamos los servicios ``` systemctl restart bind9 systemctl status bind9 ``` Añadimos la configuración de resolución de nombre de dominio. `/etc/resolv.conf` ``` nameserver 192.168.1.136 ``` Instalamos postfix y sasl2-bin, que contiene los programas de administración de la base de datos de usuarios de SASL y archivos binarios comunes para módulos. `apt install postfix sasl2-bin -y` Nos pedirá el Tipo genérico de configuración de correo, seleccionaremos **Sin configuración** `cp /etc/postfix/main.cf.proto /etc/postfix/main.cf` `nano /etc/postfix/main.cf` Comentar las siguientes líneas: ``` sendmail_path = newaliases_path = mailq_path = setgid_group = html_directory = manpage_directory = sample_directory = readme_directory = ``` Descomentar las siguientes líneas: ``` mail_owner = postfix myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain local_recipient_maps = unix:passwd.byname $alias_maps mynetworks_style = subnet alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases home_mailbox = Maildir/ ``` Descomentar las siguientes líneas y cambiar los valores: ``` myhostname = mail.asirserver.com mydomain = asirserver.com mynetworks = 127.0.0.0/8, 192.168.1.0/24 sendmail_path = /usr/bin/postfix setgid_group = postdrop ``` Añadir al final: ``` smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit_sasl_authenticated, reject ``` Ejecutamos: `newaliases` El comando newaliases crea una nueva copia de la base de datos de alias desde el archivo /etc/aliases. Reiniciamos Postfix: ``` systemctl restart postfix systemctl status postfix ``` Instalamos Dovecot: `apt install dovecot-core dovecot-pop3d dovecot-imapd -y` Hacemos una copia de seguridad del fichero de configuración de Dovecot: `cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak` Editamos el fichero de Dovecot: `nano /etc/dovecot/dovecot.conf` Quitar el comentario a: `#listen = *, ::` Hacemos una copia de seguridad del fichero de configuración de autenticación de Dovecot. `cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.bak` Abrimos el fichero de autenticación de Dovecot: `nano /etc/dovecot/conf.d/10-auth.conf` Descomentamos y editamos: `disable_plaintext_auth = no` Editamos: `auth_mechanisms = plain login` Hacemos una copia del fichero de mail de Dovecot: `cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bak` Editamos el fichero 10-mail: `nano /etc/dovecot/conf.d/10-mail.conf` Comentamos: `mail_location = mbox:~/mail:INBOX=/var/mail/%u` Y en las líneas superiores descomentamos: `mail_location = maildir:~/Maildir` Hacemos una copia de seguridad del fichero 10-master: `cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.bak` Editamos el fichero 10-master: `nano /etc/dovecot/conf.d/10-master.conf` Descomentamos y dejamos así: ``` unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } ``` Reiniciamos Dovecot: ``` systemctl restart dovecot systemctl status dovecot ``` Instalar mailutils: `apt install mailutils -y` Añadir usuarios: `adduser juanito` `adduser pepito` Creamos los directorios personales de Dovecot para cada usuario previamente creado: ``` maildirmake.dovecot /root/Maildir maildirmake.dovecot /home/pepito/Maildir maildirmake.dovecot /home/juanito/Maildir ``` Cambiar permisos mediante chown: ``` chown -R pepito:pepito /home/pepito/Maildir/ chown -R juanito:juanito /home/juanito/Maildir/ ``` Enviar correo: `mail pepito@asirserver.com` Se nos muestra en pantalla línea a línea lo siguiente (Para salir con Ctrl+D): ``` Cc: Subject: Hola Pepito ¿Qué tal todo? ``` Cambiar variable de entorno $MAIL de forma permanente: ``` echo 'export MAIL=$HOME/Maildir/' >> /etc/profile.d/mail.sh echo 'export MAIL=$HOME/Maildir/' >> /etc/bash.bashrc ``` Comprobar correo: `mail` Habilitar logs en dovecot. ``` root@debian:~# nano /etc/dovecot/conf.d/10-logging.conf log_path = /var/log/dovecot/dovecot.log auth_verbose = yes auth_verbose_passwords = yes auth_debug = yes auth_debug_passwords = yes mail_debug = yes verbose_ssl = yes ``` # Configurar Thunderbird Descargar Thunderbird: https://www.thunderbird.net/es-ES/download/ Añadir datos de una de las cuentas: ![](https://i.imgur.com/xpFzwZA.png) ![](https://i.imgur.com/Lg6wcyL.png) ![](https://i.imgur.com/LRj2pDC.png) Añadir otra cuenta: ![](https://i.imgur.com/GWUEu22.png) Error THUNDERBIRD 1: ![](https://i.imgur.com/nDSIyyB.png) Solución THUNDERBIRD 1: ![](https://i.imgur.com/Ir5w7EL.png) **Debuguear errores** `tail -f /var/log/mail.err /var/log/mail.log /var/log/dovecot/dovecot.log` **Crear certificado de seguridad autofirmado con OpenSSL** ``` cd /etc/ssl/private openssl genrsa -aes128 -out server.key 2048 openssl rsa -in server.key -out server.key openssl req -new -days 3650 -key server.key -out server.csr openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650 ``` Editamos el fichero de configuración de Postfix: `nano /etc/postfix/main.cf` Añadimos al final: ``` smtpd_use_tls = yes smtp_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3 smtpd_tls_cert_file = /etc/ssl/private/server.crt smtpd_tls_key_file = /etc/ssl/private/server.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache ``` Editamos master.cf: `nano /etc/postfix/master.cf` Descomentamos: ``` submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yes smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes ``` Configuramos el SSL en Dovecot: `nano /etc/dovecot/conf.d/10-ssl.conf` ``` ssl_cert = </etc/ssl/private/server.crt ssl_key = </etc/ssl/private/server.key ``` ``` systemctl restart postfix systemctl status postfix systemctl restart dovecot systemctl status dovecot ``` OPCIONAL: Cambiar en Thunderbird los servidores de salida al puerto 587. ![](https://i.imgur.com/IHUVKuG.png) # OTROS errores ![](https://i.imgur.com/jz8R9cl.png) **CUIDADO CON EL FIREWALL DE WINDOWS, DESACTIVARLO** # Conectar con BBDD - Usuarios virtuales ```apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server dovecot-core dovecot-imapd dovecot-pop3d dovecot-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailutils``` Seleccionar en la ventana del asistente la opción: ```sitio de internet``` En nombre del sistema de correo (poner nuestro dominio): ```asirserver.com``` Ajustar la configuración inicial de MySQL (MariaDB) ``` mysql_secure_installation``` ``` En enter current password for root lo dejamos vacio, en la siguiente pregunta ponemos: Y e introducimos la contraseña de root en las siguientes preguntas todas: Y ``` Conectarnos a mysql ``` mysql -u root -p``` Creamos base de datos de mysql: ```sql= CREATE DATABASE mail; USE mail; ``` Le damos permisos al usuario: ```sql= GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY 'pepito'; GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY 'pepito'; FLUSH PRIVILEGES; ``` Creamos la estructura de tablas ```sql= CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) ); ``` ```sql= CREATE TABLE forwardings (source varchar(80) NOT NULL, destination TEXT NOT NULL, PRIMARY KEY (source) ); ``` ```sql= CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) ); ``` ```sql= CREATE TABLE transport ( domain varchar(128) NOT NULL default '', transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain) ); ``` Creamos los ficheros siguientes en la ruta /etc/postfix ```cd /etc/postfix``` ```nano mysql-virtual_domains.cf``` Y copiamos: ``` user = mail_admin password = pepito dbname = mail query = SELECT domain AS virtual FROM domains WHERE domain='%s' hosts = 127.0.0.1 ``` ```nano mysql-virtual_forwardings.cf``` Y copiamos: ``` user = mail_admin password = pepito dbname = mail query = SELECT destination FROM forwardings WHERE source='%s' hosts = 127.0.0.1 ``` ```nano mysql-virtual_mailboxes.cf``` Y copiamos: ``` user = mail_admin password = pepito dbname = mail query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s' hosts = 127.0.0.1 ``` ```nano mysql-virtual_email2email.cf``` Y copiamos: ``` user = mail_admin password = pepito dbname = mail query = SELECT email FROM users WHERE email='%s' hosts = 127.0.0.1 ``` Cambiar PERMISOS a los ficheros creados: ```chmod o= /etc/postfix/mysql-virtual_*.cf``` ```chgrp postfix /etc/postfix/mysql-virtual_*.cf``` Crear Usuario y Grupo para la gestión del correo. Buzones almacenados en el directorio home del usuario ```groupadd -g 5000 vmail``` ```useradd -g vmail -u 5000 vmail -d /home/vmail -m``` Comandos postconf para la configuración de postfix, conexión SSL y conectividad con MySQL (cambiar asirserver.com por el dominio que sea) (los copiamos todos directamente) ``` postconf -e 'myhostname = server.asirserver.com' postconf -e 'mydestination = localhost, localhost.localdomain' postconf -e 'mynetworks = 127.0.0.0/8' postconf -e 'message_size_limit = 30720000' postconf -e 'virtual_alias_domains =' postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf' postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf' postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf' postconf -e 'virtual_mailbox_base = /home/vmail' postconf -e 'virtual_uid_maps = static:5000' postconf -e 'virtual_gid_maps = static:5000' postconf -e 'smtpd_sasl_auth_enable = yes' postconf -e 'broken_sasl_auth_clients = yes' postconf -e 'smtpd_sasl_authenticated_header = yes' postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination' postconf -e 'smtpd_use_tls = yes' postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert' postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key' postconf -e 'virtual_create_maildirsize = yes' postconf -e 'virtual_maildir_extended = yes' postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps' postconf -e virtual_transport=dovecot postconf -e dovecot_destination_recipient_limit=1 ``` Creamos un certificado de seguridad SSL ```cd /etc/postfix``` ``` openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509 ``` Configurar saslauthd el uso de MySQL. crear directorio para saslauthd ```mkdir -p /var/spool/postfix/var/run/saslauthd``` Creamos una copia de seguridad: ```cp -a /etc/default/saslauthd /etc/default/saslauthd.bak``` EDITAR /etc/default/saslauthd ```nano /etc/default/saslauthd``` Estas variables tienen que quedar así (en teoría solo se modifica la primera y la última): ``` START=yes DESC="SASL Authentication Daemon" NAME="saslauthd" MECHANISMS="pam" MECH_OPTIONS="" THREADS=5 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" ``` CREAR /etc/pam.d/smtp ```nano /etc/pam.d/smtp``` Pegar: ``` auth required pam_mysql.so user=mail_admin passwd=pepito host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 account sufficient pam_mysql.so user=mail_admin passwd=pepito host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1 ``` CREAR /etc/postfix/sasl/smtpd.conf ```nano /etc/postfix/sasl/smtpd.conf``` Pegar: ``` pwcheck_method: saslauthd mech_list: plain login allow_plaintext: true auxprop_plugin: mysql sql_hostnames: 127.0.0.1 sql_user: mail_admin sql_passwd: pepito sql_database: mail sql_select: select password from users where email = '%u' ``` Cambiar los permisos ```chmod o= /etc/pam.d/smtp``` ```chmod o= /etc/postfix/sasl/smtpd.conf``` Editar /etc/postfix/master.cf ```nano /etc/postfix/master.cf``` Añadir al final: OJO, en la segunda línea (comienza con flags=....) debemos dejar dos espacios al principio e insertar un salto de línea después de ${recipient}. El final del fichero debe tener una línea vacía, así evitamos problemas de compatibilidad. ``` dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} (línea vacía) ``` Remplazamos el contenido fichero /etc/dovecot/dovecot.conf por el siguiente contenido: Creamos copia de seguridad: ```cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak``` Borramos el fichero. ```echo "" > /etc/dovecot/dovecot.conf``` Editamos el fichero: ```nano /etc/dovecot/dovecot.conf``` Pegamos esto: ``` log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/home/vmail/%d/%n/Maildir namespace { inbox = yes location = prefix = INBOX. separator = . type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocols = imap pop3 service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-master { mode = 0600 user = vmail } user = root } #ssl_cert =< /etc/dovecot/dovecot.pem #ssl_key = /etc/dovecot/dovecot.pem ssl_cert =< /etc/ssl/certs/dovecot.pem ssl_key =< /etc/ssl/private/dovecot.pem userdb { args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes driver = static } protocol lda { auth_socket_path = /var/run/dovecot/auth-master log_path = /home/vmail/dovecot-deliver.log postmaster_address = info@asirserver.com } protocol pop3 { pop3_uidl_format = %08Xu%08Xv } service stats { unix_listener stats-reader { user = vmail group = vmail mode = 0660 } unix_listener stats-writer { user = vmail group = vmail mode = 0660 } } ``` Editamos /etc/dovecot/dovecot-sql.conf.ext ```nano /etc/dovecot/dovecot-sql.conf.ext``` Las siguientes variables tienen que quedar así: ``` driver = mysql connect = host=127.0.0.1 dbname=mail user=mail_admin password=pepito default_pass_scheme = CRYPT password_query = SELECT email as user, password FROM users WHERE email='%u'; ``` Crear certificado Nuevo para DOVECOT ``` openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem \ -keyout /etc/ssl/private/dovecot.pem ``` Asignar Permisos ```chmod o= /etc/ssl/private/dovecot.pem``` ```chgrp vmail /etc/dovecot/dovecot.conf``` ```chmod g+r /etc/dovecot/dovecot.conf``` Editar alias. qiutar el contenido del siguiente archivo y pegar este: ```nano /etc/aliases``` Pegar: ``` mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root root: postmaster@asirserver.com ``` **La ultima linea anterior modificar con el dominio de siempre Recargar los alias ```newaliases``` Entrar en la bbdd ```mysql -u root -p``` Hacer en ella: ```use mail``` ```INSERT INTO domains VALUES ('asirserver.com');``` **Cambiar asirserver.com por el dominio de la práctica Insertar las direcciones de email asociadas al dominio ```INSERT INTO users VALUES ('usu01@asirserver.com', ENCRYPT('pepito'));``` ```INSERT INTO users VALUES ('usu02@asirserver.com', ENCRYPT('pepito'));``` Añadir estás lineas al final del fichero /etc/postfix/main.cf ```nano /etc/postfix/main.cf``` Añadir: ``` smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth ``` Modificar el fichero /etc/dovecot/conf.d/auth-sql.conf.ext ```nano /etc/dovecot/conf.d/auth-sql.conf.ext``` cambiar driver=sql por driver=mysql en el apartado userdb ``` userdb { driver = mysql args = /etc/dovecot/dovecot-sql.conf.ext } ``` REINICIA LOS SERVICIOS Postfix y Dovecot, o mejor, reinicia la máquina para refrescar todos los nombres, resoluciones y servicios. ```systemctl restart postfix``` ```systemctl restart dovecot``` Necesitamos realizar un primer envío de mail a los usuarios que hemos creado para generar su estructura de directorios dónde se van a almacenar y gestionar los correos electrónicos. Lo hacemos a través de la utilidad mailx ```mailx usu01@asirserver.com``` **Cambiar asirserver.com por el dominio que solemos poner Para salir del cuerpo del mensaje en una línea nueva pulsamos las teclas CTRL+D Comprobar la bandeja de entrada de usu01 con thunderbird. # INSTALAR WEBMAIL Instalar roundcube ```apt install roundcube roundcube-mysql -y``` Responder que no a crear la base de datos. Ir a la ruta (scripts de instalación) ```cd /usr/share/dbconfig-common/data/roundcube/install/``` Acceder a la base de datos ```mysql -u root -p``` En la base de datos realizamos: ``` create database roundcube; use roundcube; source mysql; exit; ``` Movernos al directorio de roundcube ```cd /etc/roundcube``` Realizar copia de seguridad del archivo debian-db.php y editarlo:(para que se pueda conectar a la bdd) ```cp debian-db.php debian-db.php.bak``` ```nano debian-db.php``` Editar y Dejarlo así: ``` $dbuser='root'; $dbpass='pepito'; $basepath=''; $dbname='roundcube'; $dbserver='localhost'; $dbport='3306'; $dbtype='mysql'; ``` Realizar copia de seguridad del archivo config.inc.php y editarlo: ```cp config.inc.php config.inc.php.bak``` ```nano config.inc.php``` Editar: ``` $config['default_host'] = 'tls://mail.asirserver.com'; $config['smtp_server'] = 'tls://mail.asirserver.com'; $config['product_name'] = 'Bienvenido a mi webmail'; ``` Añadir al final: ``` #specify IMAP port (STARTTLS setting) $config['default_port'] = 143; #specify SMTP auth type $config['smtp_auth_type'] = ''; #specify SMTP HELO host $config['smtp_helo_host'] = 'mail.asirserver.com'; #specify domain name $config['mail_domain'] = 'mail.asirserver.com'; #specify UserAgent $config['useragent'] = 'Server AsirServer Webmail'; #specify SMTP and IMAP connection option $config['imap_conn_options'] = array( 'ssl' => array( 'verify_peer' => true, 'CN_match' => 'asirserver.com', 'allow_self_signed' => true, 'ciphers' => 'HIGH:!SSLv2:!SSLv3', ), ); $config['smtp_conn_options'] = array( 'ssl' => array( 'verify_peer' => true, 'CN_match' => 'asirserver.com', 'allow_self_signed' => true, 'ciphers' => 'HIGH:!SSLv2:!SSLv3', ), ); ``` Realizar copia de seguridad del archivo config.inc.php y editarlo: ```cd /etc/apache2/conf-enabled``` ```cp roundcube.conf roundcube.conf.bak ``` ```nano roundcube.conf``` Editar: Descomentar: ``` Alias /roundcube /var/lib/roundcube``` ----------------------------------------------------------------------------- **Si llegados a este punto da algún problema, probar esto: ```mysql -u root -p ``` ```sql= use mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pepito'; flush privileges; ``` editar el archivo: ```nano /etc/mysql/mariadb.cnf``` y añadir: ``` [mysqld] bind-address = 0.0.0.0 ``` ```systemctl restart mariadb``` Generar certificado con FQDN y common name mail.asirserver.com. ``` cd /etc/postfix openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509 ``` dejar en blanco: nano /etc/roundcube/config.inc.php ``` smtp_auth_type = ''; ``` Problema de permisos: https://bobcares.com/blog/roundcube-config-inc-php/ ``` chown root:www-data /var/lib/roundcube/config/debian-db.php chmod 640 /var/lib/roundcube/config/debian-db.php ``` si hay problemas: ```dpkg-reconfigure roundcube-core``` Faltan ":" en $dbport. ```nano /etc/roundcube/debian-db-roundcube.php``` poner : en la linea ``` $config['db_dsnw'] = "$dbtype://$dbuser:$dbpass@$dbserver:$dbport/$dbname"; ``` Si nos tira el siguiente error al entrar en roundcube: ![](https://i.imgur.com/kfz81ZD.png) ![](https://i.imgur.com/blANg16.png) SOLUCIÓN: https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost ERROR certificate not match: ![](https://i.imgur.com/r4xUsUS.png) ![](https://i.imgur.com/iBnoJ6J.png) ```nano /etc/roundcube/config.inc.php``` Cambiar: ``` // specify SMTP and IMAP connection option $config['imap_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'CN_match' => 'asirserver.com', 'allow_self_signed' => true, 'ciphers' => 'HIGH:!SSLv2:!SSLv3', ), ); $config['smtp_conn_options'] = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'CN_match' => 'asirserver.com', 'allow_self_signed' => true, 'ciphers' => 'HIGH:!SSLv2:!SSLv3', ), ); ``` Debuguear errores de Roundcube `tail -f /var/log/roundcube/errors`