CHAPITRE 7. Postfix & Courrier-imap



Documents pareils
CASE-LINUX MAIL. Introduction. CHARLES ARNAUD Linux MAIL

M2-ESECURE Rezo TP3: LDAP - Mail

Configuration avancée de Postfix

Mise en place d un Webmail

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

PROXY SQUID-SQARD. procédure

Installation du DNS (Bind9)

Compte rendu serveur Postfix

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

Installation d un Serveur de Messagerie

Serveur de messagerie sous Debian 5.0

Installer un serveur de messagerie sous Linux

Installation d'un serveur FTP géré par une base de données MySQL

Mise en place d un serveur de messagerie

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

Documentation technique Nagios

Installation de Zabbix

S E C U R I N E T S C l u b d e l a s é c u r i t é i n f o r m a t i q u e I N S A T. Tutoriel Postfix

Installation d'un serveur sftp avec connexion par login et clé rsa.

Maintenir Debian GNU/Linux à jour

Table des matières Hakim Benameurlaine 1

BONY Simon IR1. Services Réseaux TP3. BONY Simon

Architecture de la plateforme SBC

[ GLPI et OCS pour Gentoo 2006] ArtisanMicro. Alexandre BALMES

SECURIDAY 2012 Pro Edition

Serveur Mail Postfix - Dovecot - LDAP - MDS Debian GNU/Linux

Rapport de stage. Lycée Bahuet. Brive-la-Gaillarde. BTS Services informatiques aux organisations

Installation d ORACLE 10g sous Debian Etch

Guide à l'installation d'une infrastructure de courriel basée sur des composantes de logiciel libre

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

I. Présentation du serveur Samba

Documentation FOG. 3. Choisir le nom de la machine, le nom d utilisateur et le mot de passe correspondant (par exemple : fog, password)

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Procédure d'installation

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

il chiffrer les flux d'authentification et les flux de données il n'y a pas de soucis d'ouverture de ports avec des modes actif/passif à gérer

Netfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique

Sauvegarde automatique des données de GEPI

Installation et Configuration de Squid et SquidGuard sous Debian 7

Solution anti-pourriel basée sur des logiciels libres. Solution installée à la Commission scolaire des Affluents

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

Tutoriel : Comment installer une compte (une adresse ) sur un logiciel de messagerie (ou client messagerie)?

Le protocole FTP (File Transfert Protocol,

Découvrir Debian pour mettre en place un serveur LAMP complet Version 1.0

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

Projet de mise en œuvre d un serveur ftp sur serveur dédié

04/02/2014 Tutoriel. Lubuntu & glpi. thomas [NOM DE LA SOCIETE]

Formation Iptables : Correction TP

SOLUTION DE SUPERVISION SYSTEME ET RESEAU

Compte rendu d'activité PTI n 2

Réalisation d un portail captif d accès authentifié à Internet

Documentation technique OpenVPN

Installer un serveur de messagerie avec Postfix

M2-RADIS Rezo TP13 : VPN

Mise en place d un proxy Squid avec authentification Active Directory

TP4 : Firewall IPTABLES

Accès aux ressources informatiques de l ENSEEIHT à distance

L'art de centraliser et d'exploiter les messages journaux (logs) de manière sécuritaire avec Syslog-NG & LogZilla

(Fig. 1 :assistant connexion Internet)

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

A B A C U S DESCRIPTIF D'INSTALLATION SAAS ABAWEB. septembre 2014 / OM / COB. Version 5.5

Annexes. OpenVPN. Installation

Installation et utilisation d'un certificat

Projet Administration Réseaux

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

CASE-LINUX CRÉATION DMZ

Serveur proxy Squid3 et SquidGuard

Mise en place d un serveur Proxy sous Ubuntu / Debian

DNS et Mail. LDN 15 octobre DNS et Mail. Benjamin Bayart, Fédération FDN. DNS - fichier de zone. DNS - configuration

IUT Charlemagne, NANCY. Serveur Mail Sécurisé. CROUVEZIER Thibaut, FOLTZ Guillaume, HENRIOT François, VOISINET Florian

Installation GLPI-OCSNG-SSL Linux Debian Sarge

CONFIGURATION DU SERVEUR DE MAILS EXIM. par. G.Haberer, A.Peuch, P.Saade

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

Mise en œuvre de Rembo Toolkit

Configuration matériel. Tâche 2 : Installation proprement dite de l application sur un serveur de test virtualisé sous VmWare Workstation.

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

RAPPORT DE STAGE OUVRARD VALENTIN. «Assistance et Conseils en Informatique». LYCEE DU GRAND NOUMEA DU 04/11 AU 29/

Projet Semestre2-1SISR

Bon ben voilà c est fait!

Serveur de sauvegardes incrémental

L auto-hébergement. Sébastien Dufromentel, Clément Février ALDIL, Conférence jeudi du libre. 7 février 2013

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Ajout et Configuration d'un nouveau poste pour BackupPC

Mise en place d'un Réseau Privé Virtuel

Service d'authentification LDAP et SSO avec CAS

SQUID Configuration et administration d un proxy

TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

Installer un serveur web de développement avec VirtualBox

PPE GESTION PARC INFORMATIQUE

Transcription:

CHAPITRE 7 Postfix & Courrier-imap Postfix est certainement un des meilleurs serveurs d' e-mail existant, c'est pourquoi mon choix se porte sur celui-ci. Le sujet des e-mails est un sujet compliqué ou les documentations sont nombreuses et confusent assez souvent, je n'en ferai aujourd'hui toujours pas ma spécialité. Je vais donc ne pas m'étendre sur ce sujet. Nous voulons ici créer un serveur MX principal qui recevra nos mails et les enverra au reste du monde. Nous souhaitons pouvoir envoyé des e-mails depuis ce serveur depuis n'importe où. Dans cette configuration pour ne pas finir en open relay, il n'y a que l'authentification SMTP qui puisse nous protégé de ceci. J'ai testé auparavant le pop-before-smtp qui permet d'en faire autant mais ce n'est qu'un bricolage face à l'authentification SMTP. C'est pourquoi ici on fera une véritable authentification bien sur avec un peu de SSL. Commençons par installer Postfix et ce qui sera nécessaire à l'authentification SMTP. ALBAN@bebeserv:~$ sudo -i Password: bebeserv:~# apt-get update bebeserv:~# apt-get install postfix libsasl2-modules sasl2-bin L'installateur vous pose deux questions pour la configuration de Postfix. Répondez à la première "Site internet" et laisser la seconde qui devrait ressembler à «bebeserv.bebenet.local» tel quel. Maintenant que c'est fait, stoppez Postfix : bebeserv:~# /etc/init.d/postfix stop Maintenant configurons notre serveur d'e-mail : bebeserv:~# cd /etc/postfix bebeserv:/etc/postfix# nano main.cf Afin de garantir la sécurité du MTA faisons le passer pour un serveur Sendmail (un concurrent plus ancien) : Page 1

mail_name = Sendmail mail_version = 8.12.10 smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) Maintenant quelques fonctionnalités et configuration : append_dot_mydomain = yes mynetwork_style = host proxy_interfaces = 10.0.0.1 relay_domains= masquerade_domains = bebenet.local local_transport = virtual:$myhostname Les utilisateurs virtuels virtual_alias_domains = hash:/etc/postfix/conf.d/virtual_alias_domains virtual_alias_maps = hash:/etc/postfix/conf.d/virtual_alias virtual_mailbox_domains = hash:/etc/postfix/conf.d/virtual_mailbox_domains virtual_mailbox_base = /var/mail/virtual virtual_mailbox_maps = hash:/etc/postfix/conf.d/virtual_mailbox virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 Encore un peu de sécurité et pour l'authentification SMTP smtp_helo_timeout = 10s smtpd_recipients_limit = 16 smtpd_soft_error_limit = 3 smtpd_hard_error_limit = 12 smtpd_helo_required = yes smtpd_delay_reject = yes disable_vrfy_command = yes strict_rfc821_envelopes = yes broken_sasl_auth_clients = yes smtpd_sasl_auth_enable = yes smtpd_sasl_path = smtpd smtpd_sasl_exceptions_networks = $mynetworks smtpd_sasl_security_options = noanonymous smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_unknown_hostname, reject_non_fqdn_hostname Page 2

smtpd_client_restrictions = sleep 1, reject_unauth_pipelining smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_unauth_destination, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_non_fqdn_recipient smtpd_sender_restrictions = reject_unknown_sender_domain, reject_non_fqdn_sender, Pour le SSL : smtpd_use_tls=yes smtpd_tls_cert_file = /etc/postfix/smtpd.cert smtpd_tls_key_file = /etc/postfix/smtpd.key Enregistrez et quittez. Générons directement les nouveaux certificats SSL pour Postfix : bebeserv:/etc/postfix# openssl req -new -outform PEM -out /etc/postfix/smtpd.cert -newkey rsa:2048 -nodes -keyout /etc/postfix/smtpd.key -keyform PEM -days 365 -x509 bebeserv:/etc/postfix# chmod 640 smtpd.key Le fait d'utiliser Sasl (un serveur d'authentification) nous impose de lui montré comment nous souhaitons authentifier les utilisateurs : Pour ceci nous créons comme précisé par notre configuration : «smtpd_sasl_path» le fichier «/etc/postfix/sasl/smtpd.conf» bebeserv:/etc/postfix# cd sasl bebeserv:/etc/postfix/sasl# nano smtpd.conf Entrez ceci : pwcheck_method: saslauthd mech_list: plain login Page 3

Enregistrer et quitter. Visiblement la commande suivante est utile pour remédier à une histoire de bug... bebeserv:/etc/postfix/sasl# ln -s /etc/postfix/sasl/smtpd.conf /usr/lib/sasl2/smtpd.conf Éditez le fichier de configuration de Sasl : bebeserv:/etc/postfix/sasl# nano /etc/default/saslauthd Modifier les lignes suivantes : START=yes MECHANISMS="rimap" MECH_OPTIONS="localhost" OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd" Enregistrez et quitter. Maintenant ajoutons l'utilisateur Postfix au groupe Sasl et faisons en sorte que Sasl puisque créer ses fichiers dans la cage de postfix (ça aussi ça ne s'invente pas) : bebeserv:/etc/postfix/sasl# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd bebeserv:/etc/postfix/sasl# adduser postfix sasl Maintenant il va falloir alimenter les différentes bases de Postfix : bebeserv:/etc/postfix/sasl# cd.. bebeserv:/etc/postfix# mkdir conf.d bebeserv:/etc/postfix# cd conf.d bebeserv:/etc/postfix/conf.d# nano virtual_mailbox_domains Entrez : bebeserv.local x Enregistrez et quitter. Page 4

bebeserv:/etc/postfix/conf.d# nano virtual_mailbox Entrez : test@bebeserv.local bebeserv.local/test/ Enregistrez et quitter. bebeserv:/etc/postfix/conf.d# nano virtual_alias Entrez : postmaster@bebeserv.local test@bebeserv.local hostmaster@bebeserv.local test@bebeserv.local webmaster@bebeserv.local test@bebeserv.local www@bebeserv.local test@bebeserv.local ALBAN@bebeserv.local test@bebeserv.local Enregistrez et quitter. bebeserv:/etc/postfix/conf.d# nano virtual_alias_domains Entrez : localhost bebeserv.local Enregistrez et quitter. Créons maintenant les bases compilées à l'aide de «postmap» : bebeserv:/etc/postfix/conf.d# postmap virtual_alias bebeserv:/etc/postfix/conf.d# postmap virtual_alias_domains bebeserv:/etc/postfix/conf.d# postmap virtual_mailbox bebeserv:/etc/postfix/conf.d# postmap virtual_mailbox_domains Redirigeons «root» qui est normalement alias de tous les autres démon vers notre utilisateur principal : Page 5

bebeserv:/etc/postfix/conf.d# nano /etc/aliases Entrez à la fin du fichier : root: ALBAN Enregistrez et quittez. Remettons, de la même manière que les autres tables, celle-ci à jour : bebeserv:/etc/postfix/conf.d# postalias /etc/aliases Créons l'utilisateur et le groupe «virtual» et le dossier des boites e-mail virtuelles : bebeserv:/etc/postfix/conf.d# cd /var/mail bebeserv:/var/mail# mkdir virtual bebeserv:/var/mail# groupadd -g 5000 virtual bebeserv:/var/mail# useradd -u 5000 -g virtual -d /var/mail/virtual -s /usr/sbin/nologin virtual bebeserv:/var/mail# chown virtual.virtual virtual Parfait! Maintenant Postfix est fonctionnel et bien configuré. Nous l'avons configuré de sorte que les e-mails émis par les utilisateurs locaux soit traiter par le relay virtual, que localhost soit assimilé à notre domaine, que les sous domaines de notre domaine soit assimilé à notre domaine. Il ne nous reste plus qu'à installer un client IMAP pour lire nos messages. Installons «courier-imap-ssl» : bebeserv:/var/mail# apt-get install courier-imap-ssl Stoppons les serveur nouvellement installés : bebeserv:/var/mail# /etc/init.d/courier-authdaemon stop bebeserv:/var/mail# /etc/init.d/courier-imap stop bebeserv:/var/mail# /etc/init.d/courier-imap-ssl stop Regénérons un certificat propre à notre domaine pour IMAP : Page 6

bebeserv:/var/mail# cd /etc/courier bebeserv:/etc/courier# rm imapd.pem bebeserv:/etc/courier# nano imapd.cnf Modifiez ceci : [ req_dn ] C=FR ST=FRANCE L=Paris O=Courier Mail Server OU=IMAP SSL key CN=imap.bebenet.local emailaddress=postmaster@bebenet.local Enregistrez et quittez. Maintenant créons un beau certificat : bebeserv:/etc/courier# dpkg-reconfigure courier-imap-ssl Ceci fait, ré-arretons le serveur qui a été redémarrer et configurons l'authentification (ici authdaemon à ne pas confondre avec saslauthd) : bebeserv:/etc/courier# /etc/init.d/courier-imap-ssl stop bebeserv:/etc/courier# nano authdaemonrc Modifiez cette ligne : authmodulelist="authuserdb" Enregistrez et quittez. Maintenant nous allons créer la base des utilisateurs qui vont pouvoir se connecter à IMAP. Pour simplifier les choses je vous ai concocté un petit script: bebeserv:/etc/courier# mkdir userdb bebeserv:/etc/courier# chmod 0000 userdb bebeserv:/etc/courier# nano userdb-utils Entrez ceci : Page 7

#!/bin/bash cd /etc/courier case "$1" in add) if [ $# -lt 2 ]; then echo "Usage:./userdb-utils add user@domain.tld" exit 1 fi EMAIL=$2 DIR=/var/mail/virtual USER=$(echo $EMAIL cut -d@ -f1) DOMAIN=$(echo $EMAIL cut -d@ -f2) userdb $DOMAIN/$EMAIL set mail=$dir/$domain/$user home=$dir/$domain/$user uid=5000 gid=5000 userdbpw -md5 userdb $DOMAIN/$EMAIL set systempw makeuserdb ;; del) if [ $# -lt 2 ]; then echo "Usage:./userdb-utils del user@domain.tld" exit 1 fi TODAY=$(date +%Y%m%d) FILE=/tmp/userdbcreate$TODAY EMAIL=$2 USER=$(echo $EMAIL cut -d@ -f1) DOMAIN=$(echo $EMAIL cut -d@ -f2) DB=/etc/courier/userdb/$DOMAIN sed -e /^$EMAIL/d $DB > $FILE rm $DB mv $FILE $DB makeuserdb ;; list) authenumerate ;; *) echo "Usage:./userdb-utils {add del list} [user@domain.tld]" exit 1 esac exit 0 Enregistrez et quittez. Maintenant rendons notre script exécutable et disponible dans notre banque de script : bebeserv:/etc/courier# chmod 700 userdb-utils bebeserv:/etc/courier# ln -s userdb-utils /usr/local/bin/ Ok, créons deux utilisateurs pour voir comment ceci fonctionne : bebeserv:/etc/courier#./userdb-utils add test@bebenet.local Page 8

Password : bebeserv:/etc/courier#./userdb-utils add test2@bebenet.local Password : bebeserv:/etc/courier#./userdb-utils list bebeserv:/etc/courier#./userdb-utils del test2@bebenet.local bebeserv:/etc/courier#./userdb-utils list C'est terminé. Il reste à mettre à jour «iptables» bebeserv:/etc/courier# nano /etc/network/iptables Rajouter ces lignes : iptables -t filter -A INPUT -i eth0 -p tcp --dport 25 -d $MYIP -j iptables -t filter -A INPUT -i eth0 -p tcp --dport 993 -d $MYIP -j iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 25 -s $MYIP -j iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 25 -s $MYIP -j iptables -t filter -A OUTPUT -o eth0 -p tcp --dport 993 -s $MYIP -j iptables -t filter -A OUTPUT -o eth0 -p tcp --sport 993 -s $MYIP -j Enregistrez et quittez : Redémarrons les serveurs : bebeserv:/var/mail# /etc/init.d/iptables-conf restart bebeserv:/var/mail# /etc/init.d/postfix start bebeserv:/var/mail# /etc/init.d/courier-authdaemon start bebeserv:/var/mail# /etc/init.d/courier-imap-ssl start bebeserv:/var/mail# /etc/init.d/courier-imap start Et voilà! Nos utilisateurs doivent se loguer forcément en IMAP et en SMTP le tout couvert du SSL. Prochain chapitre on ajoute un antivirus et un antispam! Page 9

bebeserv:/var/mail# exit logout ALBAN@bebeserv:~$ Page 10