Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
pratique:informatique:mail:serveur_mail3 [01/06/2026 12:00] Zatalyzpratique:informatique:mail:serveur_mail3 [01/06/2026 17:27] (Version actuelle) – [Web] Zatalyz
Ligne 204: Ligne 204:
 Je vais avoir la surcouche graphique avec [[https://github.com/postfixadmin/postfixadmin|Postfixadmin]], qui permettra à mes utilisateurs de gérer leurs propres alias et mot de passe. Je vais avoir la surcouche graphique avec [[https://github.com/postfixadmin/postfixadmin|Postfixadmin]], qui permettra à mes utilisateurs de gérer leurs propres alias et mot de passe.
  
-Il y aura aussi phpmyadmin le temps des bidouilles, mais faut penser à l'enlever à la fin, ça fait une surface d'attaque en moins.+Il y aura aussi phpmyadmin le temps des bidouilles((Ou pas. Je ne l'ai pas mis, là, je vais tenter d'installer/gérer sans.)), mais faut penser à l'enlever à la fin, ça fait une surface d'attaque en moins.
  
 +Paramétrer postfixadmin est l'un des premiers trucs qu'on va faire histoire que la base de donnée soit utilisable ensuite par les autres logiciels.
 +
 +=== Apache et certbot ===
 +
 +On commence par paramétrer Apache, installer ce qu'il faut.
 +  sudo apt install apache2 php certbot php-curl php-gd php-cli php-sqlite3 
 +
 +Pour la configuration d'apache, cf script Ansible (ouais, ça pourrait être sur une forge ; peut-être un jour). 
 +
 +Demander un certificat let's encrypt 
 +  sudo certbot certonly --standalone -d mondomain.org --pre-hook "service apache2 stop" --post-hook "service apache2 restart"
 +
 +Créer ensuite une page index basique histoire de vérifier si tout va bien. Ou utiliser celle sur /var/www/html (par défaut) pour le moment.
 +
 +<WRAP center round todo 60%>
 +TODO : c'est bien de faire une page qui présente le nom de domaine. Dire que c'est un serveur mail, indiquer comment reporter les abuse, etc. Faudrait que je fasse une page en kit pour ça, respectant les bonnes pratiques (car il y a des attendus). En attendant, osef, c'est pas vital du tout.
 +</WRAP>
 +
 +
 +<code bash /etc/apache2/sites-available/org.example.poste.conf>
 +<VirtualHost *:80>
 +  ServerName poste.example.org
 +  DocumentRoot /var/www/html
 +
 +RewriteEngine On
 +RewriteCond %{REQUEST_URI} !.well-known/acme-challenge
 +RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]
 +
 +</VirtualHost>
 +
 +<VirtualHost *:443>
 +  ServerName poste.example.org
 +  DocumentRoot /var/www/html
 +  Alias /postfixadmin /srv/postfixadmin/public
 +  
 +  <Directory /srv/postfixadmin/public>
 +      Require all granted
 +  </Directory>
 +
 +SSLEngine on
 +SSLCertificateFile /etc/letsencrypt/live/poste.example.org/fullchain.pem
 +SSLCertificateKeyFile /etc/letsencrypt/live/poste.example.org/privkey.pem
 + 
 +</VirtualHost>
 +</code>
 +
 +
 +Désactiver le site de base, activer le "notre" :
 +
 +<code>sudo a2dissite 000-default.conf 
 +sudo a2ensite org.example.poste.conf
 +sudo apachectl -t
 +sudo apachectl graceful</code>
 +
 +=== Postfixadmin ===
 +Lors de l'étape de Mariadb, on lui a déjà préparé la base de donnée.
 +
 +Pour l'installer, on va passer par github plutôt que par le paquet, ce sera plus à jour. La doc d'installation officielle [[https://github.com/postfixadmin/postfixadmin/blob/master/INSTALL.md|est là]], je résume ici mes étapes en français.
 +
 +Télécharger la [[https://github.com/postfixadmin/postfixadmin/releases|dernière release]] (pas forcément jouer avec master qui est la version dev !) et la dézipper : 
 +<code>
 +wget https://github.com/postfixadmin/postfixadmin/archive/refs/tags/v4.0.1.zip
 +unzip v4.0.1.zip
 +mv postfixadmin-4.0.1 /srv/postfixadmin
 +cd /srv/postfixadmin
 +sudo chmod a+x install.sh
 +./install.sh
 +</code>
 +
 +Modifier ''/srv/postfixadmin/config.local.php'' (voir ''/srv/postfixadmin/config.inc.php'' pour les options pertinentes) :
 +<code php /srv/postfixadmin/config.local.php>
 +<?php
 +// Ce qui est ici surcharge config.inc.php.
 +
 +// Montrer qu'on a compris :
 +$CONF['configured'] = true;
 +
 +// Parce que j'aime causer en français
 +$CONF['default_language'] = 'fr';
 +
 +// Les trucs de la BDD
 +$CONF['database_type'] = 'mysqli';
 +$CONF['database_host'] = 'localhost';
 +$CONF['database_user'] = 'postfixadmin';
 +$CONF['database_password'] = 'HO JE SAIS PLUS';
 +$CONF['database_name'] = 'postfixadmin';
 +
 +// Comment on chiffre les mots de passe. Faudrait que je vérifie l'idéal... La doc propose :
 +// $CONF['encrypt'] = 'dovecot:SHA512';
 +// Mais ça fait planter postfixadmin si je met ça...
 +
 +// Nombre d'entrée par page. On peut mettre plus que le défaut...
 +$CONF['page_size'] = '30';
 +
 +// Valeurs par défaut des boîtes. Quota en MB. 5120=5GB, 10240=10GB
 +$CONF['aliases'] = '100';
 +$CONF['mailboxes'] = '10';
 +$CONF['maxquota'] = '5120';
 +$CONF['domain_quota_default'] = '10240';
 +// Activer les quotas
 +$CONF['quota'] = 'YES';
 +
 +// Ne pas permettre l'envoi de mail via cette interface
 +$CONF['sendmail'] = 'NO';
 +
 +</code>
 +Il y aura d'autres trucs à voir par la suite (transport, autoreply, les alias automatiques (abuse ok, mais les autres ?), etc((Là je suis à la phase où j'ai besoin d'une pause et ce truc gère énormément...)).
 +
 +Se rendre ensuite sur https://poste.example.org/postfixadmin/setup.php : on devrait pouvoir générer le mot de passe et ajouter dans ''config.local.php'' quelque chose de ce genre : 
 +
 +<code>$CONF['setup_password'] = 'Un truc chiffré';</code>
 +
 +En rafraichissant https://poste.example.org/postfixadmin/setup.php , on peut alors corriger d'éventuelles erreurs et créer le premier compte admin (l'identifiant doit être une adresse mail, le mot de passe doit être avec chiffres etc), puis se connecter. 
 ==== Sécurité ==== ==== Sécurité ====
 <WRAP center round todo 60%> <WRAP center round todo 60%>
pratique/informatique/mail/serveur_mail3.txt · Dernière modification : 01/06/2026 17:27 de Zatalyz