En este artículo, le mostraremos cómo instalar y configurar un servidor de correo con PostfixAdmin, Postfix, Dovecot y SQLite en un CentOS VPS. PostfixAdmin es un front-end web basado en PHP que le permite administrar dominios virtuales y usuarios para un agente de transporte de correo de Postfix. Esta guía también debería funcionar en otros sistemas VPS de Linux, pero fue probada y escrita para un VPS CentOS 7.
Si usa Ubuntu, siga nuestro tutorial para configurar Postfix, Dovecot, Spamassassin, SQLite y PostfixAdmin en un VPS Ubuntu 16.04 con Nginx y PHP 7.0
1. Actualice el sistema e instale los paquetes necesarios
yum update yum install wget nano sqlite
2. Crear usuario del sistema
Por motivos de seguridad, crearemos un nuevo usuario del sistema que será el propietario de todos los buzones.
useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Virtual Mail User" vmail mkdir -p /var/vmail chmod -R 770 /var/vmail chown -R vmail:mail /var/vmail
3. Instalar PostfixAdmin
La última versión de PostfixAdmin, la versión 3, admite bases de datos MySQL, PostgreSQL y SQLite. En esta guía, utilizaremos SQLite.
Descargue el archivo PostfixAdmin de SourceForge y extráigalo en el directorio /var/www/html/:
wget -q -O - "http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2.2/postfixadmin-3.0.2.2.tar.gz" | tar -xzf - -C /var/www/html
Abra el archivo de configuración de correo y edite los siguientes valores:
nano /var/www/html/postfixadmin-3.0.2/config.inc.php
$CONF['configured'] = true; $CONF['database_type'] = 'sqlite'; // $CONF['database_host'] = 'localhost'; // $CONF['database_user'] = 'postfix'; // $CONF['database_password'] = 'postfixadmin'; $CONF['database_name'] = '/var/vmail/postfixadmin.db'; $CONF['domain_path'] = 'NO'; $CONF['domain_in_mailbox'] = 'YES';
chown -R apache: /var/www/html/postfixadmin-3.0.2
Cree la base de datos SQLite:
touch /var/vmail/postfixadmin.db chown vmail:mail /var/vmail/postfixadmin.db chmod 660 /var/vmail/postfixadmin.db usermod -a -G mail apache
Para completar la base de datos, vaya a https://Your_IP_Address/postfixadmin-3.0.2/setup.php
y debería ver algo como lo siguiente:Testing database connection - OK - sqlite://:xxxxx@//var/vmail/postfixadmin.db
Everything seems fine... attempting to create/update database structure
Crear un nuevo usuario administrador:
bash /var/www/html/postfixadmin-3.0.2/scripts/postfixadmin-cli admin add admin@your_domain_name.com --password strong_password22 --password2 strong_password22 --superadmin 1 --active 1
4. Instalar y configurar postfix
La versión 3 de Postfix no está disponible en el repositorio predeterminado de CentOS 7, por lo que utilizaremos el repositorio de GhettoForge:
rpm -Uhv http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
Instale postfix3 con soporte SQLite con el siguiente comando:
yum install postfix3 postfix3-sqlite --enablerepo=gf-plus
Una vez completada la instalación, cree los siguientes archivos:
nano /etc/postfix/sqlite_virtual_alias_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = '%u' || '@' || alias_domain.target_domain AND alias.active = 1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = '@' || alias_domain.target_domain AND alias.active = 1 AND alias_domain.active='1'
nano /etc/postfix/sqlite_virtual_domains_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf
dbpath = /var/vmail/postfixadmin.db query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = '%u' || '@' || alias_domain.target_domain AND mailbox.active = 1 AND alias_domain.active='1'
[ecko_alert color=”blue”]¿Atrapado en algún lugar? Obtenga un VPS de nosotros y haremos todo esto por usted, ¡gratis! Instalaremos y configuraremos completamente un servidor de correo para usted. [/ecko_alert]
Edite el main.cf
archivo:
postconf -e "myhostname = $(hostname -f)" postconf -e "virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_virtual_domains_maps.cf" postconf -e "virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf" postconf -e "virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf" postconf -e "smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt" postconf -e "smtpd_tls_key_file = /etc/pki/tls/private/localhost.key" postconf -e "smtpd_use_tls = yes" postconf -e "smtpd_tls_auth_only = yes" postconf -e "smtpd_sasl_type = dovecot" postconf -e "smtpd_sasl_path = private/auth" postconf -e "smtpd_sasl_auth_enable = yes" postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination" postconf -e "mydestination = localhost" postconf -e "mynetworks = 127.0.0.0/8" postconf -e "inet_protocols = ipv4" postconf -e "inet_interfaces = all" postconf -e "virtual_transport = lmtp:unix:private/dovecot-lmtp"
Abra el master.cf
archivo, busque submission inet n
y smtps inet n
secciones y editar de la siguiente manera:
nano /etc/postfix/master.cf
submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING smtps inet n - n - - smtpd -o syslog_name=postfix/smtps # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Habilite y reinicie el servicio postfix
systemctl enable postfix systemctl restart postfix
5. Instalar y configurar Dovecot
Instale dovecot usando el siguiente comando:
yum install dovecot
Abra el /etc/dovecot/conf.d/10-mail.conf
archivo y cambie los siguientes valores:
nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/vmail/%d/%n mail_privileged_group = mail mail_uid = vmail mail_gid = mail first_valid_uid = 150 last_valid_uid = 150
Abra el /etc/dovecot/conf.d/10-auth.conf
archivo y cambie los siguientes valores:
nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login #!include auth-system.conf.ext !include auth-sql.conf.ext
Crea un nuevo dovecot-sql.conf.ext
archivo:
nano /etc/dovecot/dovecot-sql.conf.ext
driver = sqlite connect = /var/vmail/postfixadmin.db default_pass_scheme = MD5-CRYPT password_query = \ SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, \ 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid \ FROM mailbox WHERE username = '%u' AND active = '1' user_query = \ SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, \ 150 AS uid, 8 AS gid, 'dirsize:storage=' || quota AS quota \ FROM mailbox WHERE username = '%u' AND active = '1'
En el /etc/dovecot/conf.d/10-ssl.conf
archivo habilitar soporte SSL:
ssl = yes
Abra el /etc/dovecot/conf.d/15-lda.conf
archivo y establezca la postmaster_address
dirección de correo electrónico.
postmaster_address = postmaster@your_domain_name.com
Abra el /etc/dovecot/conf.d/10-master.conf
archivo, busque la sección de servicio lmtp y cámbiela a:
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } }
busque la sección de autenticación del servicio y cámbiela a:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail #group = vmail } user = dovecot }
Cambie la sección del trabajador de autenticación del servicio a lo siguiente:
service auth-worker { user = vmail }
Establecer los permisos:
chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecot
Habilite y reinicie el servicio dovecot
systemctl enable dovecot systemctl restart dovecot
Si todo está configurado correctamente ahora, debería poder iniciar sesión en su backend de PostfixAdmin yendo a http://Your_IP_Address/postfixadmin-3.0.2.2
y crea tu primer dominio virtual y buzón.
Por supuesto, no tiene que configurar un servidor de correo con PostfixAdmin en CentOS 7, si utiliza uno de nuestros servicios de alojamiento de servidor de correo, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD . Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones a continuación o simplemente deja un comentario en la sección de comentarios a continuación. Gracias.