• Aucun résultat trouvé

Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à Lille. Mars

N/A
N/A
Protected

Academic year: 2022

Partager "Migration de sendmail vers postfix dans le laboratoire Paul Painlevé à Lille. Mars"

Copied!
39
0
0

Texte intégral

(1)

Migration de sendmail vers postfix dans le laboratoire

Paul Painlevé à Lille

(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

(3)
(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

(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

(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

(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

(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

(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

(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

(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é

(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

(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

(14)

Pourquoi mailman ?

• Et pourquoi pas ?

(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.

(16)

Architecture de postfix

• 4 files principales :

– Maildrop – Incoming – Active – Deferred

• Un ensemble de processus qui

communiquent par sockets ou FIFOs

(17)

Postfix : Réception de mail

(18)

Postfix : Délivrance de mail

(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, ...

(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.

(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.fr mydomain = agat.univ-lille1.fr

myorigin = $mydomain

relayhost = olympe.univ-lille1.fr mydestination =

mynetworks = 127.0.0.0/8, 134.206.80.0/24 - démarrer postfix :

service postfix start

- tester (/var/log/maillog)

(22)

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

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

(23)

Passage de tous les null-clients sous postfix

• Septembre 2003

• Utilisation de cfengine pour reconfigurer

les null-clients

(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/aliases myhostname = olympe.univ-lille1.fr

mydomain = univ-lille1.fr

myorigin = agat.univ-lille1.fr

relayhost = mailserv.univ-lille1.fr

mydestination = $myhostname, $myorigin, localhost.$mydomain inet_interfaces = $myhostname, localhost

masquerade_domains = $myorigin masquerade_exceptions = root

mynetworks = 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/24 home_mailbox = Mailbox

mail_spool_directory = /var/mail mailbox_command = /usr/bin/procmail alias_maps = dbm:/etc/postfix/aliases

canonical_maps = dbm:/etc/postfix/canonical

(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/aliases postmap /etc/postfix/canonical postmap /etc/postfix/transport

(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)

(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)

(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

(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

(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.)

(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

(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)

(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)

(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

(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.fr gat.univ-lille1.fr smtp:nilus.univ-lille1.fr

– Exécution des scripts prévus

(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

(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

(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

(39)

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

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

Références

Documents relatifs

For the PRP-OFDM, after initial acquisition, the channel es- timate is then refined by a MMSE based semi-blind procedure using an averaging window of 72 and 20 OFDM symbols.. In

De cette mission, toute personne ou entreprise désireuse de disposer d'un serveur de messagerie et/ou d'un serveur Web et/ou d'un serveur de fichiers et/ou d'un proxy Internet

● MySQL possède une fonction de hachage «  PASSWORD()  » pour crypter les mots de passe, elle n'est pas non plus recommandée. ● Fonction «  ENCRYPT()  » sur système

Je vous ai présenté samba, mais une machine équipée d'une distribution GNU/Linux peut aussi être serveur de messagerie (avec Postfix par exemple, sur un réseau de

● Ce qui coûtera le plus cher sera le service rendu, mais même pour l'installation un serveur de messagerie sous système Microsoft il vous sera facturé du service... Comparatif

Vous pouvez donc vous servir de ce postfix pour le configurer comme relay smtp vers votre domaine de messagerie principal de votre entreprise.. Cet exemple est générique et

Dans sa configuration par défaut, Postfix gère simplement les autorisations de relais : tous les clients des réseaux répertoriés dans la directive mynetworks sont autorisés à

Par exemple, il y aura un agent de transport pour SMTP (le protocole utilisé sur l’Internet), un autre pour la remise physique du message (lorsque le courrier arrive dans la boîte