Accueil > HowTo Mail > Installation Serveur Mail Postfix, Amavisd, Mysql, Spama

Accueil > HowTo Mail > Installation Serveur Mail Postfix, Amavisd, Mysql, Spamas sassin, Dspam, (...) Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin, Dspam, Dovecot vendredi 2 mai 2014, par tonio Cet article, initié en 2007, est mis à jour régulièrement. Le système sur lequel est basé ce document est une DEBIAN stable (Jessie). Le tuto est aussi entièrement compatible avec la version Testing (Stretch). Ce tuto fonctionne également sous Ubuntu mais certains paquets présentent de légères dif férences. On essaiera de les indiquer si possible. Mise à jour du 14/11/2016->http://www.starbridge.org/spip/spip.php?article12&artpa ge=12-12#outil_sommaire_22] Table des matières Préparation de l'environnement Cache DNS Local Postfix et Mysql Paramétrage de Postfix Activation du TLS Dovecot : SASL, LDA, IMAP et SIEVE Installation PostfixAdmin La gestion des Quotas Antispam / Antivirus Vérification des Headers, du Body et du Type Mime par Postfix. Amavisd et SA Installation Spamassassin Installation Amavisd Installation Clamav Paramétrage Spamassassin Dspam Fonctions Avancées d'amavisd : Penpals et gestion des users Mailzu DKIM Policyd V2 Maintenance et automatismes : Tâches Cron Vacation AutoReply Reporting et analyses des logs Firewall Versions du Document (ChangeLog) Préparation de l’environnementRetour à la table des matières On prendra comme base pour l’exemple le domaine starbridge.org et le hostname du s erveur de mail sera spike. On met le système à jour : aptitude update aptitude full-upgrade On vérifie les fichiers : /etc/hostname : spike.starbridge.org /etc/hosts : 127.0.0.1 spike.starbridge.org localhost.localdomain localhost spike Cache DNS LocalRetour à la table des matières Le fonctionnement d’un serveur de mail nécessite l’utilisation intensive de requêtes DNS . Pour des raisons de performances, il est très fortement conseillé d’installer un cache DNS local. aptitude install unbound La configuration de base sous Debian fournie un serveur cache (on peut bien sur le configurer pour gérer son domaine local voire son domaine public mais ce n’est pa s le sujet de cet article). On modifie le /etc/resolv.conf pour pointer en local : nameserver 127.0.0.1 search starbridge.org on relance le serveur DNS : /etc/init.d/unbound restart Puis on teste la résolution avec nslookup ou dig nslookup >server doit retourner : Default server: 127.0.0.1 Address: 127.0.0.1#53 puis : >yahoo.fr La résolution doit se faire correctement. On installe ensuite les outils pour la compilation, ils seront nécessaires tout au long de l’installation : aptitude install bzip2 gcc libpcre3-dev libpcre++-dev g++ libtool libmysqlclient -dev make libssl-dev libmysqld-dev libdb-dev automake autoconf bzip2 lbzip2 libb z2-1.0 libbz2-dev curl libcurl3 libcurl4-openssl-dev libexpat1 libexpat1-dev On crée le dossier de configuration général : mkdir /etc/caremail Postfix et MysqlRetour à la table des matières La version stable de Debian (Jessie) utilise postfix 2.11.3. La derniere version de Postfix est la 3.1 La version Testing de Debian utilise la version 3.1 Le fait de rester en 2.11 n’impacte pas les fonctionnalités mises en place dans le t uto (retrocompatibilité), donc pour le moment il n’est pas forcément nécessaire de passe r en 3.1 pour ceux qui sont en debian stable On lance l’installation de postfix : aptitude install postfix-mysql postfix-pcre l’installeur va demander l’effacement de exim que l’on valide puis il va demander le type d’installation pour postfix, on laisse tout par défaut. on installe ensuite les autres paquets nécessaires : aptitude install mysql-client mysql-server libsasl2-2 libsasl2-modules sasl2-bin openssl ntp voir le sujet sur le forum concernant l’optimisation de mysql : https://www.starbridge.org/support/viewtopic.php?f=6&t=1599 On installe apache + php5 pour gérer plus tard le tout avec l’interface postfixadmin . aptitude install libapache2-mod-php5 php5-mysql Note : Il est fortement conseillé d’installer le SSL avec Apache pour sécuriser les écha nges. Cette configuration sera détaillée plus loin lors de l’installation de Postfixad min. Pour ceux qui le préfère, on peut tout de suite installer Phpmyadmin pour effectuer l’étape suivante. (on ne détaillera pas cette installation, en dehors du scope de ce document) On passe donc à la création de la base sql Postfix : Note : Si l’on a mis un password lors de l’installation du paquet mysql, il faut sau ter la première commande ci dessous et exécuter directement la seconde. mysqladmin -u root password ***** mysqladmin -u root --password= ***** create postfix Création de l’user postfix : $ mysql -u root -p Enter password: GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY ****** ; On crée les tables suivantes dans la base Postfix : Evidemment on modifie la commande sed pour inclure son domaine. cd ~ svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/postfix.sql sed -i s/starbridge.org/toto.com/g postfix.sql mysql -u root -p < postfix.sql Explications : Seules 3 tables sont nécessaires à Postfix. Le reste est pour l’interface Postfixadmin que l’on installera plus tard. Le password (MD5) est "secret" Le premier INSERT permet à Postfix de savoir que ce domaine est virtuel et qu’il doi t donc le gérer. Le 3ème INSERT est un alias virtuel pointant vers un user de la table mailbox. Cet alias vers lui même sera utilisé par Postfixadmin. le 4ème INSERT est un simple alias virtuel. Le 7ème INSERT est un compte (boite email) virtuel, qui utilise un mot de passe en crypté en MD5. Les deux derniers INSERT permettent de créer le superadministrateur que l’on utilise ra plus tard dans Postfixadmin. #PAGINATION Paramétrage de PostfixRetour à la table des matières On remplace tout le /etc/postfix/main.cf par le contenu ci dessous : n’oubliez pas de remplacer myhostname = spike.starbridge.org par votre domaine smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no myhostname = spike.starbridge.org alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = $mydomain mydestination = $myhostname, localhost.$mydomain, localhost mynetworks = 127.0.0.0/8 recipient_delimiter = + home_mailbox = Maildir/ notify_classes = 2bounce, bounce, delay, policy, protocol, resource, software smtpd_helo_required = yes strict_rfc821_envelopes = yes relay_domains = proxy:mysql:/etc/postfix/mysql_relay_domains_maps.cf relay_recipient_maps = proxy:mysql:/etc/postfix/mysql_relay_recipients_maps.cf virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf,proxy: mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf,proxy:mysql:/etc/postfix/m ysql_virtual_alias_domain_catchall_maps.cf virtual_gid_maps = static:20001 virtual_mailbox_base = /home/virtual virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf,pr oxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf virtual_minimum_uid = 20001 virtual_uid_maps = static:20001 transport_maps = proxy:mysql:/etc/postfix/mysql_transport.cf,proxy:mysql:/etc/po stfix/mysql_transport2.cf proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virt ual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipien t_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonica l_maps $relocated_maps $transport_maps $mynetworks $smtpd_recipient_restrictions $smtpd_sender_login_maps $has_our_domain_as_sender message_size_limit = 50240000 smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, permit smtpd_data_restrictions = reject_unauth_pipelining, permit Ceux qui sont en postfix 2.10 et supérieur doivent ajouter cette ligne au dessus d u bloc smtpd_recipient_restrictions smtpd_relay_restrictions = ce qui donne : smtpd_relay_restrictions = smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, permit smtpd_data_restrictions = reject_unauth_pipelining, permit On modifie le /etc/postfix/master.cf comme ci dessous : # # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: "man 5 master"). # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd #smtp inet n - n - 1 postscreen #smtpd pass - - n - - smtpd #dnsblog unix - - n - 0 dnsblog #tlsproxy unix - - n - 0 tlsproxy #submission inet n - n - - smtpd 587 inet n - n - - smtpd -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_etrn_restrictions=reject -o smtpd_client_restrictions=permit_sasl_authenticated,reject #smtps inet n - - - - smtpd # -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_sasl_authenticated,reject #628 inet n - - - - qmqpd pickup fifo n - n 60 1 pickup -o receive_override_options=no_header_body_checks -o content_filter= cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - - 300 1 oqmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - n - - smtp # -o fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache # # # See the Postfix UUCP_README file for configuration details. # uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) On crée le groupe et le user vmail avec l’uid et gid 20001, ainsi que le répertoire de s mails : groupadd -g 20001 vmail useradd -g vmail -u 20001 vmail -d /home/virtual -m On sécurise : chown -R vmail: /home/virtual chmod 770 /home/virtual On crée les fichiers d’appel des tables par Postfix : (la commande sed permet de specifier votre password d’accès à la base, dans l’exemple ic i c’est toto) cd /etc/postfix svn export http://smtp04.spamguard.fr/svn/Procmail/postfix/mysql_virtual_alias_m aps.cf svn uploads/s3/ installation-complete-serveur-email 1 .pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager