Différences entre versions de « Serveur de courriel »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (clean-up liens)
imported>SylvainBeucler
 
(21 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 3 : Ligne 3 :
 
Scripts à venir.
 
Scripts à venir.
  
On se basera sur Postfixadmin (la version SVN, sous GNU GPL, pas la dernière stable), ainsi que sur l'excellent [high5.net/howto/ HOWTO] associée, qui n'a pour défaut que d'être un peu fouillis (gère Debian et FreeBSD suivant plusieurs variantes de configuration), et surtout de ne pas être automatisé! :)
+
On se basera sur Postfixadmin (la version SVN, sous GNU GPL, pas la dernière stable), ainsi que sur l'excellent [http://high5.net/howto/ HOWTO] associé, qui n'a pour défaut que d'être un peu fouillis (gère Debian et FreeBSD suivant plusieurs variantes de configuration), et surtout de ne pas être automatisé! :)
  
 +
* [[Postfix]]
 
* [[Postfix et SASL]]: tentative de compréhension
 
* [[Postfix et SASL]]: tentative de compréhension
 +
* [[Postfix et sécurité]]: autre tentative de compréhension
 +
* [[SPAM]]
 +
* [[Cyrus]]: administration manuelle des BALs
  
 
==Liens==
 
==Liens==
Ligne 11 : Ligne 15 :
 
* http://genco.gen.tc/postfix_sasl_courier_mysql_virtual_maildrop_squirrelmail_quota.php: un autre HOWTO
 
* http://genco.gen.tc/postfix_sasl_courier_mysql_virtual_maildrop_squirrelmail_quota.php: un autre HOWTO
 
* http://www.littleboboy.net/?2005/04/15/54-postfix-courier-imap: un autre HOWTO en français cette fois
 
* http://www.littleboboy.net/?2005/04/15/54-postfix-courier-imap: un autre HOWTO en français cette fois
* http://glibersat.linux62.org/?rub=postfix: encore un autre HOWTO, aussi en français, mais sans Postfixadmin avec un schéma SQL maison
+
* http://www.i-boot.net/mailserver/ : installation à base de LDAP liée avec EGroupWare, licence pas claire
 +
 
 +
== Supprimer les comptes inactifs postfixadmin ==
 +
 
 +
Il y a un script dans <code>ADDITIONS/</code> mais il nécessite une configuration.
 +
cd /var/mail/virtual && ls | while read email; do \
 +
  if [ $(mysql postfix -N -B -e "SELECT count(*) FROM mailbox WHERE username='$email';") = 0 ]; then \
 +
    echo $email; fi; done
 +
Faites un <code>rm -rf</code> plutôt qu'un <code>echo</code> quand vous avez vérifié :)
 +
 
 +
== Gestion de types de mot de passe ==
 +
 
 +
{|
 +
|+ Avec le mot de passe <code>ttest</code>
 +
!Passe crypté !! Courier (authdaemon) !! Postfix (saslauthd) !! Postfixadmin (functions.php:pacrypt)
 +
|-
 +
| {md5}$1$84371814$zHWIgYglyS4JAUkTMQOLY/
 +
| no
 +
| no
 +
| no
 +
|-
 +
| $1$84371814$zHWIgYglyS4JAUkTMQOLY/
 +
| OK
 +
| OK
 +
| OK si <code>$CONF['encrypt'] == 'md5crypt'</code> ou <code>'system'</code>
 +
|-
 +
| {crypt}ALZQB9aSFArMM
 +
| no
 +
| no
 +
| no
 +
|-
 +
| ALZQB9aSFArMM
 +
| OK
 +
| OK
 +
| OK si <code>$CONF['encrypt'] == 'system'</code>
 +
|}
 +
 
 +
== Occupation disque ==
 +
 
 +
cd /var/mail/virtual/ && du -s */ | sort -rn | awk '{ print int($1 / 1024) "M\t"$2 }'
 +
 
 +
== Partager le courriel en interne ==
 +
 
 +
* Installer courier-imap sur un poste (serveur)
 +
* Utiliser un même compte sur chacun des postes clients
 +
* Dans /etc/courier/imapd : IMAP_ENHANCEDIDLE=1 , pour synchroniser les différents clients immédiatement après chaque opération (ajout, suppression...).
 +
 
 +
== Test/debug d'une configuration ==
 +
 
 +
* Exim (résultat sur la sortie standard; génial!):
 +
sendmail -bt adresse # -bt == 'back-trace'
 +
sendmail -bt -d adresse # -d == 'debug', more verbose
 +
* Postfix
 +
** Tester l'envoi sur une adresse, résultat par mail [http://www.postfix.org/DEBUG_README.html#trace_mail], nettement moins pratique qu'Exim:
 +
sendmail -bv adresse # sans envoi réel
 +
sendmail -v adresse # avec envoi réel
 +
** Couper l'envoi des e-mails sur une configuration de test:
 +
echo "/.*/ DISCARD" > /etc/postfix/access-regexp
 +
echo "smtpd_client_restrictions = check_recipient_access regexp:/etc/postfix/access-regexp" >> /etc/postfix/main.cf
 +
** Couper les e-mails en sortie sur une configuration de test (sauf relay_domains), dans <code>main.cf</code>:
 +
default_transport = discard:
 +
* Courier, ajouter dans <code>/etc/courier/imapd</code>:
 +
IMAPDEBUGFILE=imapdebug.txt
 +
 
 +
En cas de test d'un programme qui envoie des courriels, pour éviter tout débordement, on peut ignorer silencieusement tout les courriels externes. Sous Postfix:
 +
default_transport = discard:
 +
À compléter éventuellement avec un mouchard qui récupère tous les courriels émis:
 +
always_bcc = postfix-trace

Version actuelle datée du 13 septembre 2010 à 12:50

Le but de l'article est de mettre en place un serveur de courriel relativement simple, de la manière la plus automatisée possible.

Scripts à venir.

On se basera sur Postfixadmin (la version SVN, sous GNU GPL, pas la dernière stable), ainsi que sur l'excellent HOWTO associé, qui n'a pour défaut que d'être un peu fouillis (gère Debian et FreeBSD suivant plusieurs variantes de configuration), et surtout de ne pas être automatisé! :)

Liens

Supprimer les comptes inactifs postfixadmin

Il y a un script dans ADDITIONS/ mais il nécessite une configuration.

cd /var/mail/virtual && ls | while read email; do \
  if [ $(mysql postfix -N -B -e "SELECT count(*) FROM mailbox WHERE username='$email';") = 0 ]; then \
    echo $email; fi; done

Faites un rm -rf plutôt qu'un echo quand vous avez vérifié :)

Gestion de types de mot de passe

Avec le mot de passe ttest
Passe crypté Courier (authdaemon) Postfix (saslauthd) Postfixadmin (functions.php:pacrypt)
{md5}$1$84371814$zHWIgYglyS4JAUkTMQOLY/ no no no
$1$84371814$zHWIgYglyS4JAUkTMQOLY/ OK OK OK si $CONF['encrypt'] == 'md5crypt' ou 'system'
{crypt}ALZQB9aSFArMM no no no
ALZQB9aSFArMM OK OK OK si $CONF['encrypt'] == 'system'

Occupation disque

cd /var/mail/virtual/ && du -s */ | sort -rn | awk '{ print int($1 / 1024) "M\t"$2 }'

Partager le courriel en interne

  • Installer courier-imap sur un poste (serveur)
  • Utiliser un même compte sur chacun des postes clients
  • Dans /etc/courier/imapd : IMAP_ENHANCEDIDLE=1 , pour synchroniser les différents clients immédiatement après chaque opération (ajout, suppression...).

Test/debug d'une configuration

  • Exim (résultat sur la sortie standard; génial!):
sendmail -bt adresse # -bt == 'back-trace'
sendmail -bt -d adresse # -d == 'debug', more verbose
  • Postfix
    • Tester l'envoi sur une adresse, résultat par mail [1], nettement moins pratique qu'Exim:
sendmail -bv adresse # sans envoi réel
sendmail -v adresse # avec envoi réel
    • Couper l'envoi des e-mails sur une configuration de test:
echo "/.*/	DISCARD" > /etc/postfix/access-regexp
echo "smtpd_client_restrictions = check_recipient_access regexp:/etc/postfix/access-regexp" >> /etc/postfix/main.cf
    • Couper les e-mails en sortie sur une configuration de test (sauf relay_domains), dans main.cf:
default_transport = discard:
  • Courier, ajouter dans /etc/courier/imapd:
IMAPDEBUGFILE=imapdebug.txt

En cas de test d'un programme qui envoie des courriels, pour éviter tout débordement, on peut ignorer silencieusement tout les courriels externes. Sous Postfix:

default_transport = discard:

À compléter éventuellement avec un mouchard qui récupère tous les courriels émis:

always_bcc = postfix-trace