GNU/Linux >> Tutoriales Linux >  >> Debian

Configurar un servidor de correo con PostfixAdmin en Debian 9

En este tutorial, le mostraremos cómo configurar un servidor de correo con PostfixAdmin en un VPS Debian 9. Configuraremos un servidor de correo con Postfix, Dovecot y MariaDB.

PostfixAdmin es una GUI basada en web para la base de datos que utiliza Postfix. Puede administrar fácilmente su servidor de correo, como agregar y eliminar dominios, cuentas de correo electrónico, alias y cuotas mediante el uso de Postfixadmin. La GUI basada en la web hace que estas funciones y características sean más accesibles y le permite cambiar y acceder a la información mientras está lejos de su terminal. Comencemos.

Requisitos previos:

  • un VPS Debian 9
  • Acceso SSH con privilegios de root, o acceso a un usuario que tenga privilegios sudo

Paso 1:Inicie sesión a través de SSH y actualice el sistema

Inicie sesión en su Debian 9 VPS:

# ssh root@IP_Address -p Port_number

Puede comprobar si tiene instalada la versión adecuada de Debian en su servidor con el siguiente comando:

# lsb_release -a

Deberías obtener este resultado:

ID del distribuidor:DebianDescripción:Debian GNU/Linux 9.9 (Stretch)Versión:9.9Nombre en clave:stretch

Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes instalados en el servidor estén actualizados a sus últimas versiones disponibles:

# actualización apt &&actualización apt

Paso 2:Cree un usuario del sistema

Por razones 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 "Usuario de correo virtual" vmail# mkdir -p /var/vmail# chmod -R 770 /var/vmail # chown -R vmail:correo /var/vmail

Paso 3:Instale el servidor MariaDB

PostfixAdmin es compatible con los sistemas de bases de datos MySQL/MariaDB, PostgreSQL y SQLite. En este tutorial, utilizaremos MySQL/MariaDB como motor de almacenamiento de la base de datos.

# apt install mariadb-servidor

Para iniciar el servicio MariaDB y permitir que se inicie en el arranque, ejecute los siguientes comandos:

# systemctl iniciar mariadb# systemctl habilitar mariadb

Ahora, puede omitir el siguiente paso si prefiere no tener una contraseña de root de MySQL.

# mysql_secure_installation

Cuando se le solicite, responda las siguientes preguntas siguiendo la guía.

Ingrese la contraseña actual para root (ingresar para ninguno):simplemente presione la tecla [Enter] ya que no hay una contraseña predeterminada. ¿Configurar contraseña de root? [S/n]:YNueva contraseña:Ingresar contraseñaReingresar nueva contraseña:Repetir contraseña¿Eliminar usuarios anónimos? [S/n]:Y¿Deshabilitar el inicio de sesión raíz de forma remota? [S/n]:Y¿Eliminar la base de datos de prueba y acceder a ella? [S/n]:¿Recargar tablas de privilegios ahora? [S/n]:S

Si siguió el paso anterior, tendría una contraseña nueva para el usuario root de MySQL.

A continuación, ejecute este comando para acceder al shell de MySQL.

# mysql -u raíz -p

Recuerde ingresar su contraseña raíz si ejecutó el script de instalación segura.

Procedamos con la creación de una base de datos para PostfixAdmin:

MariaDB [(none)]> CREAR BASE DE DATOS postfixadmin;MariaDB [(none)]> OTORGAR TODOS LOS PRIVILEGIOS EN postfixadmin.* A 'postfixadmin'@'localhost' IDENTIFICADO POR 'M0d1fyth15';MariaDB [(none)]> FLUSH PRIVILEGIOS;MariaDB [(ninguno)]> \q

Asegúrese de reemplazar la contraseña del usuario de la base de datos por una buena contraseña única.

Paso 4:Instale PHP y todos los módulos PHP necesarios

Esto es

apt install apache2 php php-mbstring php-imap php-mysql libapache2-mod-php7.0

Paso 5:Instalar Postfix

Instale Postfix con el siguiente comando:

# apt install postfix-mysql


Seleccione Sitio de Internet y haga clic en Aceptar para continuar.

Se le pedirá el nombre de correo del sistema, asegúrese de que sea el mismo que su nombre de host.

Una vez completada la instalación, necesitamos crear archivos de configuración:

# mkdir -p /etc/postfix/sql/

A partir de aquí, se crearán varios archivos de configuración. Asegúrese de reemplazar todos y cada uno de los valores que son diferentes aquí a los valores necesarios, o su configuración puede no funcionar.

# nano /etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address =CONCAT('@', alias_domain.target_domain) AND alias.active =1 AND alias_dominio.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain ='%d' and mailbox.username =CONCAT('%u', '@', alias_domain.target_domain) AND mailbox .active =1 Y alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain ='%d' and alias.address =CONCAT('%u', '@', alias_domain.target_domain) AND alias .active =1 Y alias_domain.active='1'
# nano /etc/postfix/sql/mysql_virtual_alias_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECCIONE ir a DESDE alias DONDE dirección='%s' Y activo ='1'
# nano /etc/postfix/sql/mysql_virtual_domains_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECCIONE dominio DESDE dominio DONDE dominio='%s' Y activo ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_limit_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECCIONE la cuota DESDE el buzón DONDE usuario='%s' Y activo ='1'
# nano /etc/postfix/sql/mysql_virtual_mailbox_maps.cf
usuario =postfixadminpassword =M0d1fyth15hosts =localhostdbname =postfixadminquery =SELECCIONE maildir DESDE el buzón DONDE nombreusuario='%s' Y active ='1'

En los archivos de configuración anteriores, usamos 'm0d1fyth15' como contraseña, cámbiela por su propia contraseña.

Ahora, editemos el main.cf archivo invocando los siguientes comandos:

postconf -e "myhostname =$(hostname -f)"postconf -e "virtual_mailbox_domains =proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf"postconf -e "virtual_alias_maps =proxy:mysql:/etc/ postfix/sql/mysql_virtual_alias_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf"postconf -e "virtual_mailbox_maps =proxy:mysql:/etc /postfix/sql/mysql_virtual_mailbox_maps.cf, proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf"postconf -e "smtpd_tls_cert_file =/etc/ssl/certs/ssl-cert-snakeoil.pem"postconf -e "smtpd_tls_key_file =/etc/ssl/private/ssl-cert-snakeoil.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, rechazó_unauth_destination" postconf -e "midestino =localhost"postconf -e "misredes =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
smtp inet n - y - - smtpd#smtp inet n - y - 1 postscreen#smtpd pass - - y - - smtpd#dnsblog unix - - y - 0 dnsblog#tlsproxy unix - - y - 0 tlsproxysubmission inet n - y - - 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 smtpd_client_restrictions=permit_sasl_authenticated,reject-o milter_macro_daemon_name=ORIGINATINGsmtps inet n - y - - 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=permit_sasl_authenticated,reject# -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=ORIGINANTE

Habilite y reinicie el servicio de Postfix:

# systemctl habilitar postfix# systemctl reiniciar postfix

Paso 6:Instalar Dovecot

Instale Dovecot usando el siguiente comando:

# apt install dovecot-mysql

Abra el archivo /etc/dovecot/conf.d/10-mail.conf y cambie los siguientes valores:

# nano /etc/dovecot/conf.d/10-mail.conf
ubicación_correo =maildir:/var/vmail/%d/%nmail_privileged_group =mailmail_uid =vmailmail_gid =mailfirst_valid_uid =150last_valid_uid =150

Abra el archivo /etc/dovecot/conf.d/10-auth.conf y cambie los siguientes valores:

# nano /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms =simple inicio de sesión#!incluye auth-system.conf.ext!incluye auth-sql.conf.ext

Edite el dovecot-sql.conf.ext archivo, luego agregue estas líneas:

# nano /etc/dovecot/dovecot-sql.conf.ext
driver =mysqlconnect =host=localhost dbname=postfixadmin user=postfixadmin password=M0d1fyth15default_pass_scheme =MD5-CRYPTpassword_query =SELECCIONE nombre de usuario como usuario, contraseña, '/var/vmail/%d/%n' como userdb_home, 'maildir:/ var/vmail/%d/%n' como userdb_mail, 150 como userdb_uid, 8 como userdb_gid DESDE el buzón DONDE nombre de usuario ='%u' Y activo ='1'user_query =SELECCIONAR '/var/vmail/%d/%u' como inicio, 'maildir:/var/vmail/%d/%u' como correo, 150 COMO uid, 8 COMO gid, concat('dirsize:storage=', cuota) COMO cuota DESDE buzón DONDE usuario ='%u' Y activo ='1'

Recuerde reemplazar la contraseña, así como cualquier otro valor diferente aquí también.

En el archivo /etc/dovecot/conf.d/10-ssl.conf, habilite la compatibilidad con SSL:

# nano /etc/dovecot/conf.d/10-ssl.conf
ssl =sí

Abra el archivo /etc/dovecot/conf.d/15-lda.conf y configure el postmaster_address dirección de correo electrónico.

# nano /etc/dovecot/conf.d/15-lda.conf
postmaster_address [email protected]

Abra el archivo /etc/dovecot/conf.d/10-master.conf, busque la sección service lmtp y cámbiela a lo siguiente:

# nano /etc/dovecot/conf.d/10-master.conf
servicio lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { modo =0600 usuario =postfijo grupo =postfijo }}

busque la sección de autenticación del servicio y cámbiela a:

autenticación de servicio { unix_listener /var/spool/postfix/private/auth { mode =0666 usuario =postfix group =postfix}unix_listener auth-userdb { mode =0600 user =vmail}user =dovecot}

Cambie la sección del trabajador de autenticación del servicio a lo siguiente:

trabajador de autenticación de servicio {usuario =vmail}

Establecer los permisos:

# chown -R vmail:dovecot /etc/dovecot# chmod -R o-rwx /etc/dovecot

Habilite y reinicie el servicio Dovecot

# systemctl habilitar dovecot# systemctl reiniciar dovecot

Paso 7:Instalar PostfixAdmin

En este paso, descargaremos PostfixAdmin de Github y lo almacenaremos en /opt directorio.

# apt install git# cd /opt# git clone https://github.com/postfixadmin/postfixadmin.git# ln -s /opt/postfixadmin/public/ /var/www/html/mailadmin

Inserte estas líneas en /opt/postfixadmin/config.local.php

# nano /opt/postfixadmin/config.local.php
# mkdir /opt/postfixadmin/templates_c# chown -R www-data:/opt/postfixadmin

Conéctese a http://1.2.3.4/mailadmin/setup.php y asegúrese de reemplazar 1.2.3.4 con la dirección IP real de su servidor. Si todo está bien, desplácese hacia abajo y cree una contraseña de configuración.

haz clic en generar hash y verás esto:

Debes pegar el setup_password hash como se muestra en la imagen de arriba a /opt/postfixadmin/config.local.php, debería verse así

 

Guarde el archivo, luego puede volver a la página de configuración para crear un usuario administrador de PostfixAdmin. La contraseña de configuración en esa página es la misma contraseña que usó en el paso anterior:complete los otros espacios en blanco como desee, luego haga clic en el botón 'Agregar administrador'.

Ahora, puede ir a http://1.2.3.4/mailadmin/login.php para agregar sus dominios y crear direcciones de correo electrónico allí.

¡Eso es todo! Ahora tiene PostfixAdmin configurado y ejecutándose en su servidor Debian 9.

Por supuesto, no tiene que configurar un servidor de correo con PostfixAdmin en Debian 9 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 configuren un servidor de correo para 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 le gustó esta publicación sobre cómo configurar un servidor de correo con PostfixAdmin en Debian 9, o si la encontró útil, compártala con sus amigos en las redes sociales utilizando los accesos directos para compartir, o simplemente deje un comentario en la sección de comentarios. abajo. Gracias.


Debian
  1. Configurar un servidor de correo con PostfixAdmin

  2. Cómo configurar un servidor SFTP en Debian 11 Server

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

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

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

Cómo configurar fácilmente un servidor de correo en Debian 9 Stretch con iRedMail

Cómo configurar fácilmente un servidor de correo en Debian 10 Buster con iRedMail

Configuración inicial del servidor con Debian 11

Cómo configurar LAMP con Debian 11

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

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