39
Mars 2004 [email protected] 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à Lille

Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 [email protected] 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

  • Upload
    vucong

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 1

Migration de sendmail vers postfix dans le laboratoire

Paul Painlevé à Lille

Page 2: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 2

Situation avant la migration

• Sendmail

• Mbox (/var/spool/mail) + NFS

• Différents clients de messagerie :– Différents emplacements pour les BAL

– Différents comportements

– corruptions de BAL

Page 3: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 3

Page 4: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 4

Situation après la migration

• Adresses email = @math.univ-lille1.fr

• MTA = postfix

• MDA = procmail

• Format BAL = maildir

• Wrapper pour contrôle de contenu = amavisd-new

– Contrôle antivirus = Clam AV

– Contrôle antispam = SpamAssassin + ...

• Accès aux BAL = IMAPS (courier-imap)

• Webmail = squirrelmail

• Listes de diffusion = mailman (pas encore utilisé)

• Serveur dédié

Page 5: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 5

Calendrier

• Fusion des labos le 1/1/2004

• Début du chantier : mi-2003

• 05/01/2004 : basculement de agat

• 07/01/2004 : basculement de lps

• 12/01/2004 : basculement de ano

Page 6: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 6

Pourquoi postfix ?

• Facile à administrer : variables parlantes

• Sécurisé : non suid/sgid, chroot

• Modulaire : plusieurs queues et binaires

• Compatible avec sendmail

• Plus rapide que sendmail

Page 7: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 7

Pourquoi maildir ?

• Mbox = plusieurs mails dans 1 seul fichier– Pb de vitesse d'accès pour des gros fichiers

– Un seul accès read/write à la fois

– Pbs de locking

• Maildir = un fichier par mail– Supprimer 1 mail = supprimer un fichier

– Accès concurrents

Page 8: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 8

Pourquoi amavisd-new ?

• S'interface bien avec postfix

• Reconnaît plusieurs antivirus (31)

• Peut-être configuré pour faire un contrôle antispam

• En fait, choix basé sur une synthèse de ce qui existe sur le net

Page 9: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 9

Pourquoi Clam AV ?

• Open source

• Très facile à mettre en place

• Fournit FreshClam pour la MAJ automatique des bases de signatures

• Reconnaît le format maildir

• Reconnu par amavisd-new

Page 10: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 10

Pourquoi SpamAssassin ?

• Bonne réputation

• Peut être renforcé avec d'autres techniques :– Contrôle bayesien

– Bases de filtrage collaboratif : razor, pyzor, dcc

• Reconnu par amavisd-new

Page 11: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 11

Pourquoi IMAPS seulement ?

• On voulait un accès uniquement par protocole sans visibilité directe du système de fichiers (tant pis pour le grep !)

• On voulait éviter de multiplier les protocoles pour éviter les manips non intentionnelles

• Même visibilité indépendamment du lieu et du client de messagerie utilisé

Page 12: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 12

Pourquoi Courier-imap ?

• Reconnaît le format maildir

• IMAP

• Support pour ssl

• Pas de format spécifique contrairement à cyrus par exemple

• Plusieurs modules d'authentification

• Shared folders

Page 13: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 13

Pourquoi Squirrelmail ?

• Très simple et très facile à mettre en place

• Possibilité de rajouter des plugins

• Configurable pour courier-imap

• Pb : ne reconnaît pas IMAPS

Page 14: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 14

Pourquoi mailman ?

• Et pourquoi pas ?

Page 15: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 15

Pourquoi un serveur dédié ?

• Découpler la messagerie des comptes utilisateurs– Meilleure disponibilité au cas où le serveur nfs

(/home) est en panne

– Protection contre les mauvaises manips

• Problèmes :– Gestion des .forward, .procmailrc, etc.

Page 16: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 16

Architecture de postfix

• 4 files principales :– Maildrop

– Incoming

– Active

– Deferred

• Un ensemble de processus qui communiquent par sockets ou FIFOs

Page 17: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 17

Postfix : Réception de mail

Page 18: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 18

Postfix : Délivrance de mail

Page 19: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 19

Postfix : config et admin

• Fichiers de configuration– /etc/postfix.master.cf

– /etc/postfix/main.cf

• Lookup tables– aliases, canonical, virtual, transport, ...

• Outils de gestion de postfix– postconf, postfix, postmap, postalias,

postsuper, ...

Page 20: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 20

Planification de la migration

• Approche incrémentale :– Passage d'un «  null-client  » sous postfix

– Passage de tous les «  null-clients  » sous postfix

– Passage du serveur de mail actuel de sendmail vers postfix

– Basculement vers le nouveau serveur

– Contrôle, réglages, etc.

Page 21: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 21

Passage d'un null-client sous postfix (Linux RedHat)

- arrêter sendmail :service sendmail stop

- passer de sendmail à postfix :alternatives –set mta /usr/sbin/sendmail.postfix

- /etc/postfix/main.cf :myhostname = machine1.univ-lille1.frmydomain = agat.univ-lille1.frmyorigin = $mydomainrelayhost = olympe.univ-lille1.frmydestination =mynetworks = 127.0.0.0/8, 134.206.80.0/24

- démarrer postfix :service postfix start

- tester (/var/log/maillog)

Page 22: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 22

Passage d'un null-client sous postfix (Solaris)

- voir http://www.math.cnrs.fr/archives/mathrice/msg03272.html

Page 23: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 23

Passage de tous les null-clients sous postfix

• Septembre 2003

• Utilisation de cfengine pour reconfigurer les null-clients

Page 24: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 24

Passage du serveur sendmail actuel sous postfix

- « sanity checks » : /etc/passwd, aliases, revaliases, mailing-lists

- dans /etc/postfix/main.cf :alias_database = dbm:/etc/postfix/aliasesmyhostname = olympe.univ-lille1.frmydomain = univ-lille1.frmyorigin = agat.univ-lille1.frrelayhost = mailserv.univ-lille1.frmydestination = $myhostname, $myorigin, localhost.$mydomaininet_interfaces = $myhostname, localhostmasquerade_domains = $myoriginmasquerade_exceptions = rootmynetworks = 127.0.0.0/8, 134.206.80.0/24, 134.206.81.0/24, 134.206.83.0/24, 134.206.85.0/24, 134.206.1.0/24, 193.49.225.0/24home_mailbox = Mailboxmail_spool_directory = /var/mailmailbox_command = /usr/bin/procmailalias_maps = dbm:/etc/postfix/aliasescanonical_maps = dbm:/etc/postfix/canonicaltransport_maps = dbm:/etc/postfix/transport

Page 25: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 25

Passage du serveur sendmail actuel sous postfix (suite)

- dans /etc/postfix/transport :agat.univ-lille1.fr local:gat.univ-lille1.fr local:

- dans /etc/postfix/aliases (aliases sous sendmail) :Prenom.Nom: login

- dans /etc/postfix/aliases (aliases sous sendmail) :labo: :include:/etc/mail/listes/labo

- dans /etc/postfix/canonical (revaliases sous sendmail) :login Prenom.Nom

postalias /etc/postfix/aliasespostmap /etc/postfix/canonicalpostmap /etc/postfix/transport

Page 26: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 26

Passage du serveur sendmail actuel sous postfix (suite)

• tail -f /var/log/syslog

• Arrêt de sendmail

• Démarrage de postfix

• Tests

– Avec un compte utilisateur (mail entrant et sortant)

– Avec une liste

• Seul pb rencontré : oubli d'autoriser certains relais du CRI à nous envoyer du courier (mynetworks dans main.cf)

Page 27: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 27

Basculement : feuille de route

• Installation et configuration du nouveau serveur

• Préparation du basculement côté ancien serveur

• Préparation du basculement côté nouveau serveur

• Simulation du basculement

• Basculement effectif

• Garder les mêmes infos sur les comptes utilisateurs (login, passwd, uid, gid)

Page 28: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 28

Installation et configuration du nouveau serveur

• Octobre 2003 : nilus.univ-lille1.fr

• Demande au CRI de relayer le courier @math.univ-lille1.fr vers nilus et d'ouvrir les ports IMAPS et HTTP(S)

• Tests avec qques comptes bidons (envoi, réception, etc.)

• Ne pas trop s'éloigner de la config par défaut pour faciliter le debugging

Page 29: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 29

Préparation du basculement côté ancien serveur

• Création de comptes pour les users des labos ano et lps

• Ajustement des gids sur olympe (de >=100 à >=500)

• Scripts :

– «  sanity checks  »

– A partir de nisplus, construction d'un fichier à la /etc/passwd mais sans les comptes système

– Récupérer les fichiers aliases, revaliases et les mailing-lists

– Récupérer les fichiers .procmailc

– Récupérer les fichiers .forward

Page 30: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 30

Préparation du basculement côté nouveau serveur

• Scripts de création (suppression) en masse des comptes :– À partir des fichiers passwd et revaliases sur l'ancien serveur :

• groupadd et useradd (/bin/false)

• maildirmake /home/$login/Maildir

• Ajout d'une entrée dans /etc/postfix/aliases

• Ajout d'une entrée dans /etc/postfix/canonical

– Regénération des maps et reload de postfix

• Finir avec ce qui reste dans l'ancien fichier aliases (mailing-lists, etc.)

Page 31: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 31

Préparation du basculement côté nouveau serveur (suite)

• Monter en NFS les BALs principales au format mbox (/var/spool/mail/ de l'ancien serveur)

• Pour chaque user, convertir /var/spool/mail/$user au format maildir dans /home/$user/Maildir/

– Script perl mb2md (option -m)

• Pour les anciens mails, conversion après basculement : l'utilisateur doit tout préparer dans un répertoire oldmail/ puis on fait mb2md -s oldmail/ -R

Page 32: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 32

Simulation du basculement

• Exécution des tâches prévues sur l'ancien serveur

• Création des comptes et des mailings-listes sur le nouveau serveur

• Conversions des BALs principales

• Tests d'envoi/réception/accès (pour tout ce qui n'est pas @math, telnet sur le port 25)

Page 33: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 33

Entre temps ...

• Sondage (une petite appli en PHP) au niveau des utilisateurs pour avoir une connaissance sur les clients de messagerie utilisés :

– Au labo

– Chez eux

– Ailleurs

• Sensibilisation des utilisateurs sur le basculement

• Planification d'une séance de (in)formation (2 dates mi-décembre)

• Helpdesk (document illustré sur la config des clients)

Page 34: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 34

Basculement

• Calendrier en concertation avec le CRI :

– 05/01/2004 : basculement de agat

– 07/01/2004 : basculement de lps

– 12/01/2004 : basculement de ano

• Il y a eu des échanges avec les responsables de ano et lps pour bien réussir la migration

– lps : utilisation de exmh

– ano : rien de particulier

Page 35: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 35

Basculement (suite)

• Sur l'ancien serveur :

– Arrêt du service smtp

– Unshare /var/spool/mail/ et déplacer tout son contenu vers un autre répertoire (/var/spool/mail/ doit rester vide une fois que tout reparte)

– Prévoir la redirection vers le nouveau serveur (/etc/postfix/transport) :agat.univ-lille1.fr smtp:nilus.univ-lille1.frgat.univ-lille1.fr smtp:nilus.univ-lille1.fr

– Exécution des scripts prévus

Page 36: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 36

Basculement (suite)

• Sur le nouveau serveur :

– Création des comptes

– Conversion des BALs

– Traitement des mailings-lists

– Traitement des .forward et .procmailrc

• Informer le CRI pour rediriger les mails @gat et @agat vers le nouveau serveur

• Redémarrage du service smtp sur l'ancien serveur

Page 37: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 37

L'après basculement

• Traitement des anciennes BALs

• Les null-clients s'adressent dorénavant au nouveau serveur (mathsmtp dans la variable relayhost dans main.cf)

• Assistance auprès des utilisateurs

Page 38: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 38

Problèmes rencontrés

• Problèmes de connexion IMAPS :

– Dans /usr/lib/courier-imap/etc/imapd

• MAXDAEMONS (40 par défaut)

• MAXPERIP (4 par défaut)

• Problèmes avec certains users qui ont du mal avec le changement

• Forte demande pour pine– pine -f {mathimaps.univ-lille1.fr/ssl/novalidate-cert}#allfolders.inbox.[]

• Problèmes avec le contrôle anti-spam

– Réglage dans amavisd-new ($local_domains_acl)

• Montée de charge à cause de httpd

Page 39: Migration de sendmail vers postfix dans le laboratoire ... · Mars 2004 Zouhir.Hafidi@math.univ-lille1.fr 1 Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à

Mars 2004 [email protected] 39

Si la mise en place d'un tel serveur vous intéresse ...

• http://math.univ-lille1.fr/lmsp/