Pack Evolix Serveur Mail Documentation d`Administration
Transcription
Pack Evolix Serveur Mail Documentation d`Administration
Pack Evolix Serveur Mail Documentation d'Administration Table des Matières 1. Introduction 2. Configuration Sécurité Mail Web Consultation des e-mails Administration distante [option] Listes de diffusion [option] Gestion des sauvegardes 3. Manuel Administration du service mail Administration du service de liste de diffusion Administration d'OpenSSH et Webmin Administration du Système Administration du serveur Web Introduction Cette documentation est destinée aux administrateurs utilisant des Packs Evolix Serveur Mail. Elle contient des informations afin de comprendre le fonctionnement de ce pack, et afin de pouvoir modifier facilement sa configuration ou son mode de fonctionnement. Le système d'exploitation installé est la distribution Debian GNU/Linux Sarge (version 3.1)**. Pour plus d'informations sur le noyau Linux ou sur la distribution Debian, nous vous invitons à consulter les sites web suivants : http://www.kernel.org http://www.debian.org ** Pour rappel, les comptes dits privilégiés de votre Pack Evolix Serveur Mail sont admin et root. Configuration 2.1 Sécurité Des mises à jour de sécurité sur le système et les logiciels installés sont mises à disposition par l' Equipe de Sécurité Debian, et Evolix recommande fortement leur utilisation régulière. Une bonne politique de sécurité passe par cette étape fondamentale. La procédure de mise à jour peut être démarrée en éxécutant les commandes suivantes plusieurs fois par mois : # apt-get update # apt-get upgrade -u Une lecture attentive des informations sur le mode d'utilisation des mises à jour, et une veille technologique permanente (suivis de l'actualité) sont requises afin d' effectuer ce type d'intervention de façon adaptée. Pour plus de détails, consultez le chapitre 4 de cette documentation. 2.2 Mail Un serveur mail Postfix (2.1) est installé, couplé avec Amavisd-new (20030616p10) pour la partie contrôle et vérification. Ceci permet de scanner les mails entrants et sortants en vérifiant l'intégrité, grâce à l'antivirus Clamav (0.85.1) et au détecteur de spams SpamAssassin (3.0.3). Des logiciels de filtrage tels que Procmail (3.22) ou Maildrop (1.5.3), ainsi que le logiciel Fetchmail (6.2.5) permettent quant à eux de récupérer des mails distants et de les trier, selon des critères génériques ou personnalisés. http://www.postfix.org http://www.amavis.org http://www.ijs.si/software/amavisd/ http://www.clamav.org http://spamassassin.apache.org http://www.procmail.org/ http://www.courier-mta.org/maildrop/ 2.3 Web Le serveur web Apache (2.0.54), sécurisé grâce au module mod_ssl, est installé sur les « Packs Evolix Serveur Mail » afin de permetttre l'utilisation d'interfaces web pour différents services, comme le webmail. Ce dernier service est par exemple consultable via le protocole HTTPS. http://httpd.apache.org 2.4 Consultation des Mails Le serveur IMAP Courier-IMAP (3.0.8) est installé en modes simple (services réseau circulant en « clair ») et sécurisé. Il peut être utilisé depuis le réseau local avec un client de messagerie classique tel que MozillaThunderbird ou Outlook, etc. L'utilisation de IMAPS, qui est la version sécurisée du protocole, est conseillée car étant plus sûre. En effet, les mots de passe transitent sur le réseau après avoir été chiffrés, et la confidentialité et l'intégrité de vos messages électroniques peut ainsi être préservée. http://www.courier-mta.org/imap/ L'interface de consultation webmail Squirrelmail (1.4.4) est installée, et est accessible de l'intérieur ou de l'extérieur du réseau d'entreprise. Elle permet de consulter et de rédiger des mails de façon simple et rapide; ainsi, seul un navigateur web est nécessaire pour pouvoir y accéder. http://www.squirrelmail.org/ 2.5 Administration distante Le shell sécurisé OpenSSH (4.2) est installé sur la totalité des Packs Evolix, et est accessible uniquement via l'utilisateur admin. Il vous permet ainsi de prendre le contrôle de votre serveur mail à distance, et de pouvoir opérer des contrôles et des modifications de façon sécurisée. http://www.openssh.org/ L'interface web d'administration à distance Webmin (1-180) est également installée, sauf si vous exprimez un avis contraire; elle est accessible uniquement depuis certains postes du réseau local. Elle est configurée pour la langue française, même si la traduction est quelque peu incomplète. http://www.webmin.com/ 2.6 [option] Listes de diffusion Le service de listes de diffusion est assuré grâce au logiciel Sympa (4.1.5), largement utilisé pour ce type d'activité. Sympa gère la distribution et l'archivage des messages et possède une interface web accessible aux utilisateurs et aux administrateurs. http://www.sympa.org/ Une démonstration en ligne est disponible ici : http://demo.sympa.org/sympa/ 2.7 [option] Gestion des sauvegardes La gestion des sauvegarde peut se faire de différentes façons. Le logiciel Rsync (2.6.4) est généralement utilisé pour une sauvegarde sur un disque local ou distant; dans ce deuxième cas, son utilisation aux côtés d'OpenSSH est préconisée afin d'assurer l'authentification, et la confidentialité de vos sauvegardes. Il est également possible de définir des partages de fichiers pour utiliser des logiciels externes de sauvegardes de données : Grâce à NFS, il est possible de créer des partages utilisables à distance, ou d'utiliser des partages NFS distants pour y stocker les données sauvegardées. Grâce au logiciel Samba (3.0.14a), il est possible de définire des partages accessibles depuis les systèmes Microsoft Windows. http://www.samba.org Une sauvegarde régulière et incrémentale peut être faite de façon automatisée grâce à un script stocké dans la crontab du serveur. Par exemple, pour une sauvegarde quotidienne, on placera le script suivant munis de droits d'exécution suffisants dans le répertoire /etc/cron.daily : #! /bin/sh DATE=$(/bin/date +"%m-%d-%Y") cd /sauvegarde echo "BACKUP START : $(date)" >> /var/log/backup.log rsync -av --delete --ignore-errors --exclude "aquota.*" --exclude "lost+found" \ /home/ backup >> /var/log/backup.log cp -al backup backup$DATE >> /var/log/backup.log Manuel 3.1 Administration du service mail Postfix La configuration de Postfix se déroule dans le répertoire /etc/postfix/, et principalement dans le fichier main.cf qui regroupe toutes les options. Voici ses principales options de configuration présentes par défaut sur un Pack Evolix Serveur Mail : Utiliser les comptes UNIX et transporter les mails dans le répertoire Maildir/ de chaque utilisateur (mails stockés au format Maildir). Aller chercher les courriers électroniques sur un serveur POP distant. Être directement accessible en local et accepter les mails à destination d'adresses se terminant par @domain.tld. Être utilisé comme SMTP par toutes les machines du réseau sous-réseau/masque, sachant qu'il fait automatiquement transiter les mails vers l'extérieur aux serveurs SMTP de fai.tld. Il est possible d'opérer des modifications de différentes manières : via le serveur OpenSSH : on change les options principales de Postfix dans le fichier main.cf (on peut vérifier la validité des options grâce à la commande postconf) puis on redémarre Postfix grâce à la commande /etc/init.d/postfix restart. On peut visualiser la queue de Postfix grâce à la commande mailq et on gère cette queue grâce à la commande postsuper via l'interface Webmin en allant dans Servers puis Configuration de Postfix Il est à noter que la configuration des alias (redirections d'adresses) se fait dans le fichier /etc/aliases et que l'on peut donc ajouter autant d'alias que l'on veut. Par exemple, on peut créer un alias permettant de rediriger les mails de root vers ceux d'admin en ajoutant une ligne du type : root: admin On peut également créer un adresse virtuelle du type : boss: directeur À chaque changement, il ne faut pas oublier d'exécuter la commande newaliases pour mettre à jour la base alias. Si un utilisateur veut rediriger ses mails vers une autre adresse mail (attention, ses mails ne seront alors plus stockés sur le serveur !!), il faut créer un fichier .forward situé dans le répertoire /home/<login de l'utilisateur>/ et ajouter une ligne contenant l'adresse mail sur laquelle il faut renvoyer tous ses mails (bien faire attention que ce fichier soit “possédé” par l'utilisateur, sinon voir la commande chown pour y remédier) Pour surveiller le trafic des courriers électroniques, plusieurs opérations sont à réaliser. Tout d'abord lire attentivement les courriers électroniques arrivant sur le compte admin. Attention, ils risquent d'être nombreux car il y aura les messages système, les notifications d'erreur, les virus trouvés, etc. (on a éventuellement la possibilité de trier les erreurs) Plus généralement, toute activité liée au service de mail laisse un trace dans le fichier (renouvelé quotidiennement) /var/log/mail.log Notamment, on peut ainsi vérifier avec certitude qu'un mail a bien été envoyé (et donc imputer l'éventuelle perdition au destinataire ou autre si le destinataire se plaint de n'avoir rien reçu) On peut voir ce fichier en se connectant avec OpenSSH ou bien grâce à Webmin. Une courbe de statistiques peut être vue librement à l'adresse : http://IPserveur/cgi-bin/mailgraph.cgi Plus généralement, il est conseillé d'utiliser la documentation de Postfix disponible sur le site http://www.postfix.org/documentation.html (traduction française sur http://x.guimard.free.fr/postfix/) Amavisd-new Amavisd-new est le logiciel par lequel passent tous les mails entrants et sortants. Il permet de filtrer les mails selon certains critères (filtrage de pièces jointes, blacklist, whitelist), d'interagir avec des nombreux antivirus (par défaut c'est l'antivirus Clamav qui est installé) et éventuellement avec SpamAssassin. Amavisd-new tourne en permanence sur le système : il écoute sur le port tcp/10024 (Postfix fait automatiquement transiter tous ses mails vers ce port) et renvoie ensuite les mails filtrés vers le port tcp/10025 (Postfix écoute aussi sur ce port) pour qu'ils soient acheminés. Bien entendu, les ports tcp/10024 et tcp/10025 ne sont accessibles que par des processus locaux. La configuration d'Amavis se trouve dans le fichier /etc/amavis/amavisd.conf. Voici quelques paramètres (non exhaustifs !) du fichier amavisd.conf : # preciser son nom de domaine $mydomain = 'domain.tld'; # activer le filtrage anti-virus # @bypass_virus_checks_acl = qw( . ); # desactiver le filtrage de spams @bypass_spam_checks_acl = qw( . ); # utiliser un fichier journal spécifique $DO_SYSLOG = 0; $LOGFILE = "/var/log/amavis.log"; # filtrer les pieces jointes avec certaines extensions $banned_filename_re = new_RE( qr'.\.(exe|vbs|pif|scr|bat|cmd|com)$'i, ); # parametre a utiliser pour Postfix $recipient_delimiter = '+'; # blacklist le domaine “example.com” et les utilisateurs john, mike et james $blacklist_sender_re = new_RE( qr'\.example\.com$'i, qr'^(john|mike|james)@'i ); Pour plus de détails sur les possibilités d'Amavisd-new, vous pouvez lire les fichiers situés dans le répertoire /usr/share/doc/amavisd-new/ , ou vous référer au site officiel http://www.ijs.si/software/amavisd/ Procmail Avec Procmail (ou Maildrop), il est possible de trier vos courriers électroniques à l'aide de régles de filtrage avancées. Il est possible de préciser à Postfix d'utiliser directement Procmail pour mettre en place des règles de filtrage pour tous les utilisateurs. Pour cela, on ajoutera dans le main.cf : mailbox_command = /usr/bin/procmail Les règles de filtrage pour tous les utilisateurs se trouvent dans le fichier /etc/procmailrc Voici un exemple simple de fichier /etc/procmailrc: SHELL=/bin/sh PATH=/bin:/usr/bin:/usr/local/bin LOGFILE=/var/log/procmail.log # jeter les mails qui bouclent :0 * ^X-Loop: exotismes /dev/null # lancer Spamassassin :0 fw * < 256000 | spamc # tri des spams $HOME/Maildir/spam/ On peut ainsi, par exemple, utiliser procmail pour dupliquer tous les mails et garder dans un répertoire (accessible en IMAP par chaque utilisateur) tous les mails originaux. Si l'on suppose que ce répertoire s'appelle backup, on écrira la règle suivante dans le procmailrc: #duplication des mails :0 $HOME/Maildir/ $HOME/Maildir/.backup/ Notons que si l'on utilise cette méthode pour conserver en permanence une copie des mails originaux (et ainsi vider à sa guise sa boîte principale), il est intéressant de changer son répertoire backup tous les mois afin d' avoir des noms de répertoires composés se l'année durant laquelle ils ont été réalisés. On pourra utiliser un script dans la crontab du type : DATE=$(/bin/date +"%Y-%m”) postfix stop for i in $(ls -d /home/*/Maildir/) do cd $i USER=$(echo $i | cut -d"/" -f3) mkdir -p .backup chown $USER.users .backup mv .bacjup .backup$DATE mkdir -p .backup chown $USER.users .backup done postfix start Autre exemple, on peut utiliser des scripts directement dans les règles Procmail. Pour illustrer cela, prenons un exemple d'une gestion particulière des mails contenant des extensions EXE ou ZIP. On utilisera les commandes formail (pour “reformater” un mail) et renattach (pour la gestion des extensions). Voici la règle correspondante : # supprimer certaines pieces jointes et # les transmettre à un administrateur :0 HB * .*name.*\.(exe|zip|EXE|ZIP).* { :0 fwh | formail -i "Subject: Message avec risque de virus" -A "X-Loop: domain.tld" :0 c ! [email protected] :0 fwhbi | renattach -d :0 $HOME/Maildir/ $HOME/Maildir/.save/ } Notons que la commande renattach ne supprimera (en fait la pièce jointe sera désormais vide) le fichier attaché que si il est listé dans le fichier /etc/renattache/renattach.conf . Ce fichier permet aussi de faire diverse opération sur les mails filtrés. On ajoutera donc les lignes suivantes : # texte d'avertissement warning_text = ************************ warning_text = pièce jointe supprimée warning_text = ************************ # liste d'extensions a filtrer badlist = EXE, ZIP Plus généralement, pour apprendre la syntaxe des règles Procmail, on consultera le man procmailrc ou les nombreuses documentations disponibles sur Internet [*]. Pour des règles de filtrage par utilisateur, on utilise le fichier .procmailrc à la racine du répertoire utilisateur (voir documentation utilisateur). [*] Liens : http://www.uwasa.fi/~ts/info/proctips.html http://laku19.adsl.netsonic.fi/era/procmail/mini-faq.html http://www.linux-france.org/article/lgazette/issue-26/issue-26-4.html http://www.linux-france.org/article/appli/procmail.html http://tnemeth.free.fr/linuxdocs/procmail.html http://procmail.non-prophet.org/ Spamassassin SpamAssassin permet d'analyser les mails reçus et de définir une probabilité de spam. Il est possible de lancer SpamAssassin viaAmavisd-new (on spécifiera cela dans le fichier amavisd.conf) ou via Procmail (en utilisant les régles de l'exemple ci-dessus). La configuration générale de SpamAssassin se situe dans le fichier /etc/spamassassin/local.cf. Dans les paramètres, on notera la possibilité de régler sa “note tueuse”, de préciser des mails en “blacklist” (toujours considérés comme spams) ou en “whitelist” (jamais considérés comme spams), d'accentuer ou de diminuer certains critères de notes ou encore préciser l'utilisation de programmes externes (Razor, DCC, filtres Bayesians, etc.). # sujet des spams rewrite_header Subject [SPAM] # spam-note tueuse required_hits 3 # blacklist blacklist_from [email protected] blacklist_from [email protected] # whitelist whitelist_from *@evolix.fr # changer la note de certains critères score UNWANTED_LANGUAGE_BODY 1.5 # utilisation d'autres critères use_dcc 0 use_razor2 1 Fetchmail Fetchmail est un programme permettant de récupérer des courriers électroniques situés sur des serveurs externes et notamment des serveurs POP. Pour la configuration générale de Fetchmail, on utilise le fichier /etc/fetchmailrc où l'on spécifie les paramètres pour “aller chercher” les mails sur les serveurs distants. Voici un exemple d'un fichier /etc/fetchmailrc : # propriétés générales set postmaster "postmaster" set no spambounce set no syslog set logfile /var/log/fetchmail.log set properties "" # intervalle de temps (en secondes) set daemon 120 defaults # supprimer les mails sur le serveur fetchall # domaine local smtpaddress domain.tld # paramètres poll pop.fai.com with proto POP3 localdomains fai.com user '[email protected]' there with password 'MYPASS' is 'USER' Pour la syntaxe des règles, on consultera le man fetchmailrc ou la FAQ officielle située à l'adresse suivante : http://www.catb.org/~esr/fetchmail/fetchmail-FAQ.html 3.2 Administration de service de listes de diffusion La configuration de Sympa se situe dans le répertoire /etc/sympa/, principalement dans le fichier sympa.conf, mais également au travers de l'interface web accessible à l'adresse https://IPserveur/wws/ ou bien de l'extérieur à https://IPserveur. Pour l'interface web, le compte administrateur par défaut est le compte [email protected] qui est actuellement un alias vers le compte UNIX admin. Une fois connecté, on a la possibilité de créer des listes de diffusion et gérer de nombreux paramètres (abonnés, archives, gestion accès, etc.) Pour s'authentifier, il faut avoir un mot de passe. Lors de la première connexion, ou si vous avez oublié votre mot de passe, cliquez sur “Envoyez moi mon mot de passe”. On peut donc créer des listes de diffusion de plusieurs types : privées (elle est invisible des non-abonnés), fermées (l'abonnement doit être validé), ouvertes (abonnement libre et archives consultables par tous) ou encore de type newsletter (seul les modérateurs peuvent envoyer des messages). Il faut bien comprendre que l'on peut principalement gérer les permissions sur : l'abonnement, la visibilité de la liste, la consultation des archives, l'envoi des messages. On peut déléguer une liste à un “propriétaire” qui aura la plupart des droits d'administration dessus ou encore à un “modérateur” qui pourra modérer les messages si la modération est activée. Pour reprendre l'étape de la création d'une liste, on commencera par s'authentifier en utilisateur [email protected] puis on cliquera sur Création de liste. On devra donc choisir un nom (qui sera utilisé comme [email protected] pour la liste), un type de liste, un objet, sa catégorie (les différentes catégories sont situées dans /etc/sympa/topics.conf) et une description. Une fois cela validé, les alias seront automatiquement créés dans /etc/aliases et donc renvoyés vers Sympa. Note1 : pour que les alias soient automatiquement créés, il faut que le fichier “/usr/lib/sympa/bin/alias_manager.pl” soit set-uid root. Si ce n'est pas le cas, il faut créer soi-même les alias (les mettre dans /etc/aliases et lancer newaliases) Note2 : on pensera à valider les éventuelles demandes de création de liste (un mail est adressé à [email protected]) Pour surveiller Sympa, on consultera le journal dans le fichier /var/log/sympa.log. On peut voir ce fichier en se connectant avec OpenSSH ou bien grâce à Webmin. Plus généralement, il est possible de consulter la documentation de Sympa disponible sur http://sympa.org/doc.html 3.2 Administration d'OpenSSH et de Webmin OpenSSH La configuration d'OpenSSH se situe dans le répertoire /etc/ssh/, principalement dans le fichier sshd_config qui regroupe les options pour le serveur OpenSSH. Actuellement, l'option PermitRootLogin no spécifie que l'utilisateur root ne peut se connecter directement via SSH : il faut donc se connecter avec l'utilisateur admin et passer en root avec la commande su si besoin est. L'option AllowUsers admin n'autorise que l'utilisateur admin à se connecter au serveur OpenSSH. Plus généralement, on utilisera la documentation d'OpenSSH disponible sur : http://openssh.com/manual.html Pour se connecter au serveur OpenSSH, on utilise un logiciel client SSH souvent disponible sur les plateformes Unix/Linux par la commande ssh ou bien par le logiciel PuTTY, également utilisable sous Microsoft Windows (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html). Rappel : on utilise l'adresse IP IPserveur et le login admin pour se connecter. Webmin Pour ce qui est de l'interface web Webmin, la base est installée (paquet webmin). Pour configurer un logiciel en utilisant Webmin, il faut installer le module webmin correspondant à ce logiciel. Par exemple, le module e webmin-postfix devra être installé pour administrer Postfix wia Webmin. On peut voir tous les modules disponible en faisant la commande : # apt-cache search ^webmin Actuellement les modules présents sont : webmin-core (modules de base pour la gestion du système), webminpostfix (pour la configuration de Postfix), webmin-apache (pour la configuration d'Apache2), webminspamassassin (pour la configuration de Spamassassin) et webmin-procmail (pour la configuration de Procmail). Plus généralement, on utilisera la documentation de Webmin disponible sur http://www.webmin.com/index2.html Pour pouvoir se connecter à l'interface Webmin, il faut préalablement autoriser la connexion depuis son adresse IP. On édite donc le fichier /etc/webmin/miniserv.conf et la ligne avec l'option allow sur laquelle on ajoutera l'adresse IP que l'on autorise (on peut mettre plusieurs adresses IP en les séparant par un espace). On doit ensuite redémarrer le service Webmin par la commande : # /etc/init.d/webmin restart Pour se connecter à Webmin, on utilise l'adresse : https://IPserveur:10000/ et l'on utilise le login root et son mot de passe. 3.3 Administration du Système Comptes La création de compte UNIX (et donc mail) se fait de la façon suivante; en utilisant OpenSSH, on utilisera la commande creation-compte qui crée un compte UNIX, crée un alias mail prenom.nom, et envoie un mail de bienvenue pour initialiser le compte mail (le message de bienvenue peut être changé ) La création d'un compte entraîne la création d'un répertoire utilisateur dans /home. Les courriers électroniques sont stockés dans le répertoire Maildir de l'utilisateur, et les sous-boîtes (que l'on peut créer en IMAP) sont stockées dans ces répertoires. Pour modifier un compte (mot de passe, paramètres, etc.) : On peut utiliser OpenSSH et utiliser les commandes classiques : passwd, usermod, chfn, etc. On peut utiliser Webmin : Pour supprimer un compte, on peut utiliser OpenSSH ou Webmin. On pensera bien à supprimer le répertoire utilisateur si nécessaire (les commandes userdel et deluser ne suppriment pas le répertoire) et à retirer (ou modifier) les alias mail. Journaux système Pour les journaux système, ils se trouvent dans le répertoire /var/log/. Ils sont sont la forme de fichiers texte pour les journaux et de fichiers texte compressés pour les journaux plus anciens (on les décompressera avec la commande gunzip). Voici les journaux à surveiller de près : les journaux situés dans les fichiers /var/log/auth.log /var/log/auth.log.0 etc. nous permettent de voir toutes les tentatives de login, (l'adresse IP d'où la tentative est lancée, l'heure exacte, et le résultat). les journaux situés dans les fichiers /var/log/kern.log /var/log/kern.log.0 etc. nous permettent de voir toutes les messages générés par le noyau (pour repérer les erreurs éventuelles). les journaux situés dans les fichiers /var/log/debug /var/log/debug.0 etc. nous livrent les messages que l'on a voulu obtenir en configurant le noyau. les journaux situés dans /var/log/messages /var/log/messages.0 etc. nous donnent des messages de plusieurs ordres. On y voit notamment les marques routeur -- MARK – générées toutes les 20 minutes. les journaux sités dans /var/log/daemon.log /var/log/daemon.log.0 etc. nous donnent des informations sur les services démarrés. Plus généralement, on utilisera les outils disponibles en console en se connectant par OpenSSH ou bien disponibles depuis Webmin. 3.4 Administration du serveur Web La configuration d'Apache2 se déroule dans le répertoire /etc/apache2/ et notamment dans le fichier apache2.conf qui regroupe toutes les options générales. On pourra éditer les fichiers de configuration ou bien utiliser l'interface Webmin. Plus généralement, on utilisera la documentation d'Apache2 disponible sur : http://httpd.apache.org/docs-2.0/