GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo configurar un servidor de correo con PostfixAdmin en CentOS 7

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.


Cent OS
  1. Cómo configurar servidores DNS privados con BIND en CentOS 8

  2. Configure un servidor de correo con PostfixAdmin y MariaDB en CentOS 7

  3. Cómo instalar un servidor de correo con PostfixAdmin en Ubuntu 20.04

  4. Configurar un servidor de correo con PostfixAdmin en Debian 9

  5. Cómo configurar VSFTPD en CentOS 8

Cómo instalar el servidor de correo Exim en CentOS 6

Cómo instalar un servidor de correo con PostfixAdmin en CentOS 7

Cómo configurar el servidor DHCP en CentOS 8

Cómo configurar un servidor TeamSpeak en CentOS 7

Cómo configurar un servidor de correo con todas las funciones con IRedMail en Centos 7 VPS

Cómo configurar un servidor de correo con Modoboa en Ubuntu 20.04