Différences entre versions de « Serveur de courriel »
imported>SylvainBeucler m |
imported>SylvainBeucler |
||
(24 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
Scripts à venir. | Scripts à venir. | ||
− | [[Postfix et SASL]] | + | 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 sécurité]]: autre tentative de compréhension | ||
+ | * [[SPAM]] | ||
+ | * [[Cyrus]]: administration manuelle des BALs | ||
+ | |||
+ | ==Liens== | ||
+ | |||
+ | * 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.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 à 11: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é! :)
- Postfix
- Postfix et SASL: tentative de compréhension
- Postfix et sécurité: autre tentative de compréhension
- SPAM
- Cyrus: administration manuelle des BALs
Liens
- 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.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 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
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
:
- Couper les e-mails en sortie sur une configuration de test (sauf relay_domains), dans
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