Comment installer PostfixAdmin sur un serveur iRedmail existant (Ubuntu)

Dans les articles précédents, nous avons vu comment configurer rapidement votre propre serveur de messagerie sur Ubuntu avec iRedmail. Cependant, l’édition gratuite d’iRedMail ne vous permet pas de créer des alias. Si vous souhaitez créer des alias d’adresses, des alias de domaines et des alias généraux, mais que vous ne souhaitez pas passer à l’édition premium iRedmail-Pro, vous pouvez installer PostfixAdmin sur votre serveur iRedmail.

Caractéristiques de PostfixAdmin

  • Gestion des boîtes aux lettres, des domaines virtuels et des alias.
  • domaines d’alias (transfert d’un domaine à un autre avec validation du destinataire)
  • les utilisateurs peuvent gérer leur propre boîte aux lettres (changement d’alias, de mot de passe et de message de vacances).

Configuration requise

PostfixAdmin doit être installé après iRedMail, donc assurez-vous que vous avez configuré le serveur iRedmail.

Étape 1 : Installer le serveur de base de données PostgreSQL sur Ubuntu

PostfixAdmin est écrit en PHP et nécessite une base de données (MySQL/MariaDB, PostgreSQL, ou SQLite). Cet article utilisera la base de données PostgreSQL. Entrez la commande suivante pour installer PostgreSQL sur Ubuntu.

sudo apt install postgresql postgresql-contrib

Après son installation, le serveur de base de données PostgreSQL démarre automatiquement et écoute sur 127.0.0.1:5432, comme on peut le voir avec :

sudo ss -lnpt | grep 5432

Exemple de sortie :

LISTEN 0 244 127.0.0.1:5432 0.0.0.0:* users :((\"postgres\",pid=24074,fd=5))

Si vous ne voyez aucune sortie dans la fenêtre de la ligne de commande, c’est que PostgreSQL ne fonctionne pas. Démarrez-le avec cette commande :

sudo systemctl start postgresql

Pour permettre à PostgreSQL de démarrer automatiquement au démarrage, exécutez la commande suivante

sudo systemctl enable postgresql

S’il refuse toujours de démarrer, vous devez vérifier le fichier journal sous /var/log/postgresql/ pour trouver ce qui a mal tourné.

Étape 2 : Télécharger PostfixAdmin sur le serveur Ubuntu

Connectez-vous à votre serveur de messagerie, puis téléchargez les codes de PostfixAdmin sur votre serveur. Allez sur la page Gitbub de PostfixAdmin pour télécharger la dernière version. Vous pouvez utiliser l’outil wget pour le télécharger à partir de la ligne de commande. Le lien de téléchargement est toujours disponible dans le format ci-dessous. Si une nouvelle version sort, remplacez simplement 3.3.11 par le nouveau numéro de version.

sudo apt install wgetwgethttps://github.com/postfixadmin/postfixadmin/archive/postfixadmin-3.3.11.tar.gz

Une fois téléchargé, extrayez l’archive dans le répertoire /var/www/ et renommez-la en postfixadmin.

sudo mkdir -p /var/www/sudo tar xvf postfixadmin-3.3.11.tar.gz -C /var/www/sudo mv /var/www/postfixadmin-postfixadmin-3.3.11 /var/www/postfixadmin

Étape 3 : Configuration des permissions

PostfixAdmin nécessite un répertoire templates_c, et le serveur web a besoin d’un accès en lecture et en écriture à ce répertoire. Exécutez donc les commandes suivantes.

sudo mkdir -p /var/www/postfixadmin/templates_csudo setfacl -R -m u:www-data:rwx /var/www/postfixadmin/templates_c/

A partir de Dovecot 2.3.11, l’utilisateur du serveur web a besoin de la permission de lire le certificat TLS de Let’s Encrypt afin d’effectuer le hachage du mot de passe. Exécutez les deux commandes suivantes pour accorder les permissions.

sudo setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/

Étape 4 : Créer une base de données et un utilisateur pour PostfixAdmin

Connectez-vous à PostgreSQL en tant qu’utilisateur postgres.

sudo -u postgres -i psql

Créez la base de données postfixadmin. Je l’ai nommée postfixadmin, mais vous pouvez utiliser le nom que vous voulez. (N’omettez pas le point-virgule).

CREER UNE BASE DE DONNEES postfixadmin;

Créez un utilisateur de base de données(postfixadmin) et définissez un mot de passe. Remplacez postfixadmin_password par votre mot de passe préféré. Notez que le mot de passe ne doit pas contenir le caractère #, ou vous pourriez ne pas être en mesure de vous connecter plus tard.

CREATE USER postfixadmin WITH PASSWORD \'postfixadmin_password\' ;

Accordez des permissions à l’utilisateur de la base de données.

ALTER DATABASE postfixadmin OWNER TO postfixadmin; GRANT ALL PRIVILEGES ON DATABASE postfixadmin TO postfixadmin;

Appuyez sur Ctrl D pour vous déconnecter de la console PostgreSQL.

Exécutez ensuite la commande suivante pour vérifier si vous pouvez vous connecter à PostgreSQL en tant qu’utilisateur postfixadmin.

psql -h 127.0.0.1 -d postfixadmin -U postfixadmin -W

Appuyez sur Ctrl D pour vous déconnecter.

Étape 5 : Configurer PostfixAdmin

Le fichier de configuration par défaut de PostfixAdmin est config.inc.php. Nous devons créer un fichier config.local.php et ajouter des configurations personnalisées.

sudo nano /var/www/postfixadmin/config.local.php

Ajoutez les lignes suivantes dans le fichier, afin que PostfixAdmin puisse se connecter à la base de données PostgreSQL. Remplacez postfixadmin_password par le vrai mot de passe PostfixAdmin créé à l’étape 4.

< ?php$CONF[\'configured\'] = true;$CONF[\'database_type\'] = \'pgsql\';$CONF[\'database_host\'] = \'localhost\';$CONF[\'database_port\'] = \'5432\' ;$CONF[\'database_user\'] = \'postfixadmin\';$CONF[\'database_password\'] = \'postfixadmin_password\';$CONF[\'database_name\'] = \'postfixadmin\';$CONF[\'encrypt\'] = \'dovecot :ARGON2I\';$CONF[\'dovecotpw\'] = \"/usr/bin/doveadm pw -r 5\";if(@file_exists(\'/usr/bin/doveadm\')) { // @ pour faire taire les trucs d'openbase_dir ; voir https://github.com/postfixadmin/postfixadmin/issues/171 $CONF[\'dovecotpw\'] = \"/usr/bin/doveadm pw -r 5\" ; # debian}

Sauvegardez et fermez le fichier. Notez que nous allons utiliser le schéma de mot de passe ARGON2I. Par défaut, PostfixAdmin et Dovecot utilisent MD5-CRYPT, qui est un schéma de mot de passe faible. Vous pouvez lister les schémas de mots de passe disponibles dans Dovecot avec la commande suivante.

sudo doveadm pw -l

Exemple de sortie :

SHA1 SSHA512 BLF-CRYPT PLAIN HMAC-MD5 OTP SHA512 SHA RPA DES-CRYPT CRYPT SSHA MD5-CRYPT SKEY PLAIN-MD4 PLAIN-MD5 SCRAM-SHA-1 LANMAN SHA512-CRYPT CLEAR CLEARTEXT ARGON2I ARGON2ID SSHA256 NTLM MD5 PBKDF2 SHA256 CRAM-MD5 PLAIN-TRUNC SHA256-CRYPT SMD5 DIGEST-MD5 LDAP-MD5

Étape 6 : Créer un hôte virtuel Nginx pour PostfixAdmin

Créez un hôte virtuel pour PostfixAdmin.

sudo nano /etc/nginx/sites-enabled/postfixadmin.conf

Mettez le texte suivant dans le fichier. Remplacez postfixadmin.example.com par votre vrai nom de domaine et n’oubliez pas de définir un enregistrement DNS A pour celui-ci.

server { listen 80 ; listen [: :]:80 ; server_name postfixadmin.example.com; root /var/www/postfixadmin/public/ ; index index.php index.html ; access_log /var/log/nginx/postfixadmin_access.log ; error_log /var/log/nginx/postfixadmin_error.log ; location / { try_files $uri $uri/ /index.php ; } location ~ ^/(. \\.php)$ { try_files $uri =404 ; fastcgi_pass 127.0.0.1:9999 ; fastcgi_index index.php ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; include /etc/nginx/fastcgi_params ; }}

Sauvegardez et fermez le fichier. Puis testez la configuration de Nginx.

sudo nginx -t

Si le test est réussi, rechargez Nginx pour que les changements prennent effet.

sudo systemctl reload nginx

Vous devriez maintenant pouvoir voir l’assistant d’installation de PostfixAdmin sur le web à l’adresse http://postfixadmin.example.com/setup.php.

Étape 7 : Activation de HTTPS

Pour crypter le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt.

Exécutez la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email
  • --nginx: Utiliser le plugin nginx.
  • --agree-tos: Accepter les conditions de service.
  • --redirect: Force HTTPS par redirection 301.
  • --hsts: Ajouter l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Se défend contre le dépouillement SSL/TLS.
  • --staple-ocsp: Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur offre pendant TLS.
  • --email: Email utilisé pour l'enregistrement et le contact de récupération.
  • -d flag est suivi d'une liste de noms de domaine, séparés par une virgule. Vous pouvez ajouter jusqu'à 100 noms de domaine.

Le certificat devrait maintenant être obtenu et installé automatiquement, ce qui est indiqué par les messages ci-dessous.

postfix dovecot relay access denied

Vous pouvez essayer de le corriger en appliquant le cryptage SSL, à la fois pour le SMTP et l'IMAP.

ios mail enforce SSL encryption

Fait amusant: il semble que l'application iOS Mail ait des difficultés à prendre en charge STARTTLS sur le port IMAP 143, mais elle prend en charge STARTTLS sur le port de soumission 587.

Configuration de la tâche Cron

Modifier le fichier crontab de l'utilisateur root’.

sudo crontab -e

Ajoutez la ligne suivante dans ce fichier pour permettre à l'utilisateur www-data de lire les fichiers de certificats.

@daily setfacl -R -m u:www-data:rx /etc/letsencrypt/live/ /etc/letsencrypt/archive/

Sauvegardez et fermez le fichier.

Conclusion

Comme toujours, si vous avez trouvé ce post utile, inscrivez-vous à notre newsletter gratuite pour recevoir d'autres conseils et astuces. Prenez soin de vous 🙂 .

Scroll to Top