Installation sur une Squeeze d'un serveur mail complet (Postfix Postfixadmin Dovecot Mysql Amavisd-new Spamassassin Clamav Postgrey Squirrelmail Roundcube) avec gestion des filtres Imap et des quotas
Article original extrait le 1/12/2011 depuis http://www.isalo.org/wiki.debian-fr/index.php?title=Installation_sur_une_Squeeze_d%27un_serveur_mail_complet_%28Postfix_Postfixadmin_Dovecot_Mysql_Amavisd-new_Spamassassin_Clamav_Postgrey_Squirrelmail_Roundcube%29_avec_gestion_des_filtres_Imap_et_des_quotas
Nous allons détailler l'installation sur une squeeze minimale d'un serveur de mail.
La base de notre serveur mail: Postfix avec gestion des domaines et utilisateurs dans une base Mysql. Pourquoi Postfix et non Exim4 (qui est le serveur de mail installé par défaut sur Debian) ? Tout simplement pour la simplicité de configuration et la robustesse de Postfix...
Les programmes :
- Postfix comme serveur de messagerie;
- Dovecot comme interface Imap/Pop3;
- Mysql comme base de donnée;
- Amavisd new comme interface entre le serveur de messagerie et les filtres pourriels et anti-virus;
- Clamav comme anti-virus;
- Spamassassin et Postgrey comme moyens de lutte contre les pourriels;
- Apache2 comme serveur Web (qui nous permettra de supporter Postfixadmin, et notre (nos...) Webmails;
- Postfixadmin comme interface Web pour la gestion des domaines virtuels et des utilisateurs;
- Squirrelmail et Roundcube comme Webmail;
- Vacation - Notification d'absence
Prérequis[modifier]
Je vous recommande la lecture de ceci avant de vous lancer : Configuration d'un serveur mail avec Postfix - Prérequis
En effet, inutile d'installer un serveur de mails si vous n'avez pas la possibilité de le faire fonctionner.
Il vous faut :
- un nom de domaine
- une IP fixe
- un PC allumé si possible 24h/24
- Accessoirement un DNS local fonctionnel
Installation d'une squeeze minimale[modifier]
Installez une Debian minimale. A partir d'une ISO au format "carte de visite" (Businesscard) par exemple, installez seulement les utilitaires standard:
A partir d'une "Businesscard" Installez seulement les utilitaires standard
Préparation du système[modifier]
Installation de Rkhunter[modifier]
Modification du sources.list[modifier]
# nano /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ squeeze main non-free contrib #deb-src http://ftp.fr.debian.org/debian/ squeeze main non-free contrib deb http://security.debian.org/ squeeze/updates main contrib non-free #deb-src http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free #deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
root@facteur:~# apt-get update root@facteur:~# apt-get dist-upgrade
ou: Attention l'option -y lance le dist-upgrade sans vous demander de confirmation!
root@facteur:~# apt-get update && apt-get dist-upgrade -y
Install-Recommends et diminution des priorités debconf[modifier]
L'installation des paquets "recommandés" et "suggérés" n'est pas nécessaire, nous désactivons donc cette fonctionnalité:
root@facteur:~# nano /etc/apt/apt.conf.d/20norecommends
APT
{
Install-Recommends "false";
Install-Suggests "false";
};
Les priorités de debconf sont élevées par défaut. Choisir "dialogue", puis "intermédiaire". De cette façon, vous ne manquez aucune question primordiale lors de la configuration des paquets, et le nombre de questions sera "raisonnable".
root@facteur:~# dpkg-reconfigure debconf
Interface à utiliser: "Dialogue" Ignorer les questions de priorité inférieures à "intermédiaire"
Définition du "hostname"[modifier]
Cette étape est nécessaire, votre machine doit disposer d'un nom de machine et de domaine complet. Editez le fichier hosts pour ajouter votre nom complet de machine :
root@facteur:~# nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 facteur.zehome.org facteur # <= Ligne suivante à ajouter => # 192.168.3.114 facteur.zehome.org facteur # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters
root@facteur:~# cat /etc/hostname facteur
root@facteur:~# nano /etc/hostname facteur.zehome.org
root@facteur:~# service hostname.sh start
Testez vos noms de machine et de domaine:
root@facteur:~# hostname -s facteur root@facteur:~# hostname -d zehome.org root@facteur:~# hostname -f facteur.zehome.org
Modification de votre fichier interfaces[modifier]
Il est préférable pour un serveur d'avoir une IP fixe. Si cela n'a pas été configuré au moment de l'installation, c'est le moment de la faire. Ajoutez aussi les DNS de votre FAI et le domaine de recherche.
root@facteur:~# nano /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.3.114 netmask 255.255.252.0 network 192.168.0.0 broadcast 191.168.3.255 gateway 192.168.0.254 dns-nameservers 41.188.9.130 196.192.32.5 dns-search zehome.org
Installation et configuration des programmes[modifier]
Le DNS[modifier]
Un serveur Mail impose des requêtes DNS fréquentes, il est donc fortement conseillé d'en installer un localement.
L'objet ici n'est pas de vous expliquer en profondeur l'installation d'un DNS, nous nous contenterons donc du minimum. Pour de plus amples détails, voir ici: Bind
root@facteur:~# apt-get install bind9
Rien à voir, mais vous aurez à répondre à une question au sujet de man-db...
Faut-il exécuter les programmes man et mandb avec les droits de l'utilisateur "man"?
Modifiez votre fichier interfaces pour prendre en compte votre DNS local:
root@facteur:~# nano /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.3.114 netmask 255.255.252.0 network 192.168.0.0 broadcast 191.168.3.255 gateway 192.168.0.254 dns-nameservers 127.0.0.1 41.188.9.130 196.192.32.5 dns-search zehome.org
Vérifiez votre resolv.conf, il doit contenir l'adresse locale de votre DNS (devant les autres). Si vous avez un dhcp sur votre réseau, pensez à y ajouter votre DNS.
root@facteur:~# nano /etc/resolv.conf
domain zehome.org search zehome.org nameserver 127.0.0.1 nameserver 192.168.0.3 nameserver 41.188.9.130
Un test rapide:
root@facteur:~# nslookup > server Default server: 127.0.0.1 Address: 127.0.0.1#53 Default server: 192.168.0.3 Address: 192.168.0.3#53 Default server: 41.188.9.130 Address: 41.188.9.130#53 > google.com Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: google.com Address: 209.85.143.99 Name: google.com Address: 209.85.143.104 > exit
Rappel: au minimum, votre DNS (et n'importe quel DNS sur le Net si vous voulez qu'on puisse vous envoyer des e-mails...) doit être configuré pour répondre convenablement à cette question:
root@facteur:~# host -t MX zehome.org zehome.org mail is handled by 10 smtp.zehome.org.
Mysql[modifier]
MySQL est un système de gestion de base de données (SGBD). Sa licence est libre. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels.
root@facteur:~# apt-get install mysql-server
Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : libdbd-mysql-perl libdbi-perl libmysqlclient16 libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-common mysql-server-5.1 mysql-server-core-5.1 Paquets suggérés : libterm-readkey-perl tinyca Paquets recommandés : mailx libhtml-template-perl Les NOUVEAUX paquets suivants seront installés : libdbd-mysql-perl libdbi-perl libmysqlclient16 libnet-daemon-perl libplrpc-perl mysql-client-5.1 mysql-common mysql-server mysql-server-5.1 mysql-server-core-5.1 0 mis à jour, 10 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 24,0 Mo dans les archives. Après cette opération, 60,9 Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? o ...
N'oubliez pas de définir un mot de passe pour l'administrateur du serveur Mysql
Nouveau mot de passe superutilisateur de MySQL Confirmation du mot de passe superutilisateur de MySQL
Suppression des programmes inutiles et installation de Postfix[modifier]
Exim4 et consort ne nous servant pas, et afin d'éviter des conflits et de conserver des paquets inutiles, nous enlevons complètement celui-ci:
Depuis quelques jours (entre fin mars et début avril 2011) la suppression des programmes ci-dessus entraîne l'installation de Postfix et ssl-cert:
Les paquets supplémentaires suivants seront installés :
postfix ssl-cert
root@facteur:~# apt-get --purge remove exim4 exim4-base exim4-config exim4-daemon-light
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets suivants seront ENLEVÉS :
bsd-mailx* exim4* exim4-base* exim4-config* exim4-daemon-light*
0 mis à jour, 0 nouvellement installés, 5 à enlever et 0 non mis à jour.
Après cette opération, 4 391 ko d'espace disque seront libérés.
Souhaitez-vous continuer [O/n] ? o
(Lecture de la base de données... 36264 fichiers et répertoires déjà installés.)
Suppression de bsd-mailx ...
Purge des fichiers de configuration de bsd-mailx ...
Suppression de exim4 ...
Purge des fichiers de configuration de exim4 ...
Suppression de exim4-daemon-light ...
Stopping MTA: exim4_listener.
Purge des fichiers de configuration de exim4-daemon-light ...
Suppression de exim4-base ...
Purge des fichiers de configuration de exim4-base ...
Suppression de exim4-config ...
Purge des fichiers de configuration de exim4-config ...
dpkg-statoverride : avertissement : Pas de dérogation (« override ») présente.
Traitement des actions différées (« triggers ») pour « man-db »...
Veuillez choisir la configuration... Configuration type du serveur de messagerie: Nom de courrier: Destinataire des courriels de "root" et "postmaster": Autres destinations pour lesquelles le courrier sera accepté: Faut-il forcer des mises à jour synchronisées de la file d'attente des courriels?
Postfix/Dovecot/Apache2/sasl/php[modifier]
Avec la commande ci-dessous, nous installons: apache2 dovecot php5 postfix et sasl2
root@facteur:~# apt-get install php5-mysql php5-imap postfix-mysql dovecot-imapd dovecot-pop3d libsasl2-modules sasl2-bin
Nom du fichier de sauvegarde de /etc/sasldb2 ?
Vous verrez passer ce message d'avertissement:
update-rc.d: warning: saslauthd stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (1) To enable saslauthd, edit /etc/default/saslauthd and set START=yes ... (warning).
Activons donc saslauthd au démarrage. Remplacez START=no par START=yes dans :
root@facteur:~# nano /etc/default/saslauthd
root@facteur:~# service saslauthd start Starting SASL Authentication Daemon: saslauthd.
Activation du mode SSL de Apache[modifier]
Afin de sécuriser les échanges entre l'interface Web et le serveur, nous allons activer le mode SSL de Apache. C'est crucial en particulier pour les échanges de noms d'utilisateurs et mots de passe.
Créons un lien symbolique entre site-available et site enabled pour rendre disponible le SSL:
root@facteur:~# ln /etc/apache2/sites-available/default-ssl /etc/apache2/sites-enabled/001-ssl
Vous pouvez éditer et modifier ce fichier pour qu'il soit adapté à votre domaine (nom de domaine, adresse mail du "webmaster"...)
Activons le mode SSL de Apache:
root@facteur:~# a2enmod ssl Enabling module ssl. See /usr/share/doc/apache2.2-common/README.Debian.gz on how to configure SSL and create self-signed certificates. Run '/etc/init.d/apache2 restart' to activate new configuration!
Vérifiez que les lignes suivantes sont présentes et dé-commentées dans le fichier /etc/apache2/ports.conf
<IfModule mod_ssl.c>
...
Listen 443
</IfModule>
Enfin, redémarrons Apache
root@facteur:~# service apache2 restart Restarting web server: apache2 ... waiting .
Vous aurez désormais accès à vos services (Webmails et Postfixadmin) au travers du https (ce qui est nettement plus sécurisant...).
Testez en vous rendant à cette adresse: https://votre_IP/ ou https://localhost/ si vous travaillez en local. Vous devriez avoir accès à la page d'accueil suivante:
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Installation et configuration de Postfixadmin[modifier]
Création de la base de donnée de Postfixadmin[modifier]
Nous allons maintenant créer la base de donnée qui centralisera les données utilisée par Postfix et Dovecot. La gestion de cette base se fera au travers de l'interface "WebGui" de Postfixadmin
root@facteur:~# mysql -u root -p Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.1.49-3 (Debian)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database postfix;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON postfix.* TO 'postfixadmin'@'localhost' IDENTIFIED BY 'monmotdepasse';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'monmotdepasse2';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
Postfixadmin[modifier]
Téléchargez postfixadmin, ici: http://sourceforge.net/projects/postfixadmin/files/postfixadmin/
La dernière version (ce 6 avril 2011) est "postfixadmin-2.3.3" (1,53 Mio)
root@facteur:~# tar xzvf postfixadmin-2.3.3.tar.gz -C /var/www/ root@facteur:~# mv /var/www/postfixadmin-2.3.3/ /var/www/postfixadmin/ root@facteur:~# chown -R www-data:www-data /var/www/postfixadmin/ root@facteur:~# cp /var/www/postfixadmin/config.inc.php /var/www/postfixadmin/config.inc.php.sos root@facteur:~# sed -i 's/facteur.zehome.org/example_domain.tld/g' /var/www/postfixadmin/config.inc.php
root@facteur:~# nano /var/www/postfixadmin/config.inc.php
$CONF['configured'] = true;
$CONF['default_language'] = 'fr';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfixadmin';
$CONF['database_password'] = 'monmotdepasse';
$CONF['database_name'] = 'postfix';
$CONF['encrypt'] = 'md5crypt';
root@facteur:~# service apache2 restart Restarting web server: apache2 ... waiting .
Rendez-vous maintenant à l'adresse suivante: https://votre_IP/postfixadmin/setup.php
Entrez le mot de passe du "setup" afin que le programme génère un HASH de sécurité que vous irez coller dans le fichier /var/www/postfixadmin/config.inc.php
If you want to use the password you entered as setup password, edit config.inc.php and set $CONF['setup_password'] = 'c4861ab90fcf650da20d5d2b6258a7d9:94922063c5569077df0a65dff7ae1e3d349b7732';
root@serveur:~# nano /var/www/postfixadmin/config.inc.php
Et Remplacez:
$CONF['setup_password'] = 'changeme';
Par:
$CONF['setup_password'] = 'c4861ab90fcf650da20d5d2b6258a7d9:94922063c5569077df0a65dff7ae1e3d349b7732';
Ensuite, retapez le mot de passe de sécurité, choisissez un administrateur et donnez lui un mot de passe:
Vous pouvez maintenant vous rendre à la page d'accueil https://votre_IP/postfixadmin/ :
Fichier:Snapshot191.jpeg Fichier:Snapshot175.jpeg
Postfix admin est maintenant configuré et opérationnel.
Postfix[modifier]
Passons à la configuration de postfix...
Nous créons tout d'abord notre utilisateur/groupe virtuel
Nous lui donnerons comme GID/UID le numéro 3000
root@facteur:~# groupadd -g 3000 facteur root@facteur:~# useradd -d /home/facteur -m -u 3000 -g 3000 facteur
Sauvegardons la configuration de postfix
root@facteur:~# cp /etc/postfix/main.cf /etc/postfix/main.cf.sos root@facteur:~# cp /etc/postfix/master.cf /etc/postfix/master.cf.sos
Créons maintenant les fichiers qui contiendront les informations de connexions à notre base Mysql
root@facteur:~# nano /etc/postfix/mysql_virtual_mailbox_domains.cf
hosts = 127.0.0.1
user = postfix
password = monmotdepasse2
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 0 and active = 1
root@facteur:~# nano /etc/postfix/mysql_virtual_mailbox_maps.cf
hosts = 127.0.0.1
user = postfix
password = monmotdepasse2
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
root@facteur:~# nano /etc/postfix/mysql_virtual_alias_maps.cf
hosts = 127.0.0.1
user = postfix
password = monmotdepasse2
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = 1
root@facteur:~# nano /etc/postfix/mysql_relay_domains.cf
hosts = 127.0.0.1
user = postfix
password = monmotdepasse2
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 1
Configurons maintenant l'authentification par sasl
root@facteur:~# nano /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
auxprop_plugin: rimap
Mettons à jour /etc/default/saslauthd avec ces paramètres (ne touchez pas au reste...)
Sauvegarde avant modification...
root@facteur:~# cp /etc/default/saslauthd /etc/default/sasauthd.sos
root@facteur:~# nano /etc/default/saslauthd
START=yes
MECHANISMS="rimap"
- imap server address
MECH_OPTIONS="localhost"
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
Ajoutons postfix au groupe sasl:
root@facteur:~# adduser postfix sasl Ajout de l'utilisateur « postfix » au groupe « sasl »... Ajout de l'utilisateur postfix au groupe sasl Fait.
Et redémarrons le service :
root@facteur:~# service saslauthd restart Stopping SASL Authentication Daemon: saslauthd. Starting SASL Authentication Daemon: saslauthd.
Ajoutons ce qui suit au fichier /etc/postfix/main.cf:
root@serveur:~# nano /etc/postfix/main.cf
virtual_uid_maps = static:3000
virtual_gid_maps = static:3000
virtual_mailbox_base = /home/facteur
virtual_transport = dovecot
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
relay_domains = mysql:/etc/postfix/mysql_relay_domains.cf
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
Ajoutez ceci à la fin de votre fichier /etc/postfix/master.cf
dovecot unix - n n - - pipe
flags=DRhu user=facteur:facteur argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
Quelques réglages supplémentaires[modifier]
Postfix est maintenant fonctionnel, mais il mérite encore votre attention. Voici quelques options importantes à activer:
# Obtenir une alerte si les emails ne partent pas # Par défaut cette option est réglée à 4 heures, j'ai réduit cette durée: delay_warning_time = 1h
# Ajoutez votre réseau local ici mynetworks = 10.9.8.0/22 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
# Indiquer à Postfix de livrer à un destinataire à la fois # la réception d'un mail en provenance d'un expéditeur unique avec plusieurs destinataire ne fonctionnerais pas sans cette option dovecot_destination_recipient_limit = 1
C'est tout pour l'instant pour postfix...
Dovecot[modifier]
Créons le fichier /etc/dovecot/dovecot-mysql.conf (c'est lui qui contiendra les paramètres de connexion à Mysql)
root@facteur:~# nano /etc/dovecot/dovecot-mysql.conf
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=monmotdepasse2
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/home/facteur/%d/%n' as home, 3000 AS uid, 3000 AS gid FROM mailbox WHERE username = '%u'
password_query = SELECT password FROM mailbox WHERE username = '%u'
Sauvegardons le fichier de configuration de dovecot :
root@facteur:~# cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.sos
Afin d'y voir plus clair (ce fichier est un vrai roman...), voici à quoi il ressemble par défaut, épuré des lignes commentées:
root@serveur:~# cat /etc/dovecot/dovecot.conf
- Dovecot configuration file
protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail
protocol imap {
}
protocol pop3 {
}
protocol managesieve {
}
auth default {
mechanisms = plain
passdb pam {
}
userdb passwd {
}
user = root
}
dict {
}
plugin {
}
Nous modifions notre fichier dovecot.conf pour qu'il ressemble à ce qui suit :
nano /etc/dovecot/dovecot.conf
- Dovecot configuration file
protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail
disable_plaintext_auth = no
mail_location = maildir:/home/facteur/%d/%n:INDEX=/home/facteur/%d/%n/indexes
protocol imap {
}
protocol pop3 {
}
protocol managesieve {
}
protocol lda {
postmaster_address = admin@zehome.org
mail_plugin_dir = /usr/lib/dovecot/modules/lda
auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
userdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
passdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = facteur
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
dict {
}
plugin {
}
Redémarrons les services :
root@facteur:~# service dovecot restart
Restarting IMAP/POP3 mail server: dovecotIf you have trouble with authentication failures,
enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork
This message goes away after the first successful login.
.
root@facteur:~# service saslauthd restart
Stopping SASL Authentication Daemon: saslauthd.
Starting SASL Authentication Daemon: saslauthd.
root@facteur:~# service postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.
Premiers essais[modifier]
A partir de maintenant, nous devrions être capables de tester notre serveur de messagerie
Pour commencer, il faut créer un domaine virtuel et un utilisateur avec l'interface de postfixadmin:
Test de l'ensemble de la chaine[modifier]
Votre serveur mail devrait être dés à présent pleinement fonctionnel; Vous pouvez tester l'ensemble de la chaîne avec la commande suivante: Nous envoyons un email à essai@zehome.org (Le domaine et la boite e-mail doivent évidemment exister...) à partir de root et nous ouvrons les logs.
Il faudra installer mailx pour pouvoir faire des essais d'envois:
root@facteur:~# apt-get install mailutils
root@facteur:~# echo test | mail -s "Premier test SMTP" essai@zehome.org && tail -f /var/log/mail.info
Apr 10 15:14:25 facteur postfix/pickup[11279]: 1B63A6C64D: uid=0 from=<root>
Apr 10 15:14:25 facteur postfix/cleanup[11318]: 1B63A6C64D: message-id=<20110410121425.1B63A6C64D@facteur.zehome.org>
Apr 10 15:14:25 facteur postfix/qmgr[11280]: 1B63A6C64D: from=<root@facteur.zehome.org>, size=314, nrcpt=1 (queue active)
Apr 10 15:14:25 facteur dovecot: deliver(essai@zehome.org): msgid=<20110410121425.1B63A6C64D@facteur.zehome.org>: saved mail to INBOX
Apr 10 15:14:25 facteur postfix/pipe[11326]: 1B63A6C64D: to=<essai@zehome.org>, relay=dovecot, delay=0.06, delays=0.01/0/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service)
Apr 10 15:14:25 facteur postfix/qmgr[11280]: 1B63A6C64D: removed
CTRL + C pour sortir.
Test du SMTP AUTH[modifier]
La première chose que vous devez faire est d'obtenir un codage en base64 de votre nom d'utilisateur et mot de passe. Il y a deux manières de le faire, l'exemple ci-dessous utilise Perl:
$ perl -MMIME::Base64 -e 'print encode_base64("essai\@essai.org");' ZXNzYWkub3Jn
$ perl -MMIME::Base64 -e 'print encode_base64("essai");' ZXNzYWk=
Vous pouvez maintenant vous connecter au serveur de messagerie en utilisant Telnet:
telnet 192.168.3.114 25 Trying 192.168.3.114... Connected to 192.168.3.114. Escape character is '^]'. 220 facteur.zehome.org ESMTP Postfix (Debian/GNU)
Saluons le serveur SMTP...
EHLO facteur.zehome.org
Réponse...
250-facteur.zehome.org 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN
Nous lui faisons savoir que nous voulons nous authentifier:
AUTH LOGIN ZXNzYWlAZXNzYWkub3Jn 334 UGFzc3dvcmQ6 ZXNzYWk= 235 2.7.0 Authentication successful
Maintenant, petit test d'envoi de mail :
mail from:essai@essai.org 250 2.1.0 Ok rcpt to:essai@essai.org 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Test . 250 2.0.0 Ok: queued as E172752683 quit 221 2.0.0 Bye Connection closed by foreign host.
Avant l'envoi du premier mail :
root@facteur:~# ls -a /home/facteur/ . .. .bash_logout .bashrc .profile
Après :
root@facteur:~# ls -a /home/facteur/ . .. .bash_logout .bashrc essai.org .profile
Le dossier est bien créé - Un dossier par domaine sera créé, les utilisateurs des domaines seront rangés dans ces dossiers.
Les logs dans /var/log/mail.log:
Apr 6 11:37:09 facteur postfix/smtpd[1873]: 4463D6C401: client=sidlol.zehome.org[192.168.0.2], sasl_method=LOGIN, sasl_username=essai@essai.org
Apr 6 11:37:17 facteur postfix/cleanup[1882]: 4463D6C401: message-id=<>
Apr 6 11:37:17 facteur postfix/qmgr[1816]: 4463D6C401: from=<essai@essai.org>, size=201, nrcpt=1 (queue active)
Apr 6 11:37:17 facteur dovecot: deliver(essai@essai.org): msgid=: saved mail to INBOX
Apr 6 11:37:17 facteur postfix/pipe[1883]: 4463D6C401: to=<essai@essai.org>, relay=dovecot, delay=18, delays=18/0.03/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service)
Apr 6 11:37:17 facteur postfix/qmgr[1816]: 4463D6C401: removed
Apr 6 11:37:20 facteur postfix/smtpd[1873]: disconnect from sidlol.zehome.org[192.168.0.2]
Test de la connexion IMAP avec telnet[modifier]
$ telnet 192.168.3.114 143
Trying 192.168.3.114...
Connected to 192.168.3.114.
Escape character is '^]'.
- OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN] Dovecot ready.
a1 LOGIN essai@essai.org essai
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
a2 LIST "" "*"
- LIST (\HasNoChildren) "." "INBOX"
a2 OK List completed.
a3 EXAMINE INBOX
- FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
- OK [PERMANENTFLAGS ()] Read-only mailbox.
- 3 EXISTS
- 3 RECENT
- OK [UNSEEN 1] First unseen.
- OK [UIDVALIDITY 1302078677] UIDs valid
- OK [UIDNEXT 4] Predicted next UID
- OK [HIGHESTMODSEQ 1] Highest
a3 OK [READ-ONLY] Select completed.
a4 LOGOUT
- BYE Logging out
a4 OK Logout completed.
Connection closed by foreign host.
Install Amavisd-new, SpamAssassin, And Clamav[modifier]
La commande "tout en un"...
root@facteur:~# apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl p7zip unrar-free
Fichier:Snapshot142.jpeg Fichier:Snapshot178.jpeg Fichier:Snapshot179.jpeg Fichier:Snapshot180.jpeg
Réglages de Dovecot Postfix et Amavis[modifier]
Il faut maintenant organiser le "voyage" des mails entre Postfix/Amavis et Dovecot
Lorsque postfix reçoit un mail il va les passer à Amavis qui, à son tour, va envoyer le message à travers les filtres antispam et antivirus. Il repassera ensuite le mail présumé propre à Postfix, pour sa destination finale.
Nous ajoutons donc ce qui suit à la fin du fichier master.cf :
root@facteur:~# nano /etc/postfix/master.cf
amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_bind_address=127.0.0.1
Ajout de deux lignes à la fin du fichier /etc/postfix/main.cf
root@facteur:~# postconf -e 'content_filter = amavis:[127.0.0.1]:10024' root@facteur:~# postconf -e 'receive_override_options = no_address_mappings'
Rien à faire du côté de Dovecot, nous l'avons déjà configuré.
Activons maintenant les filtres (il suffit de décommenter 4 lignes):
root@facteur:~# nano /etc/amavis/conf.d/15-content_filter_mode
use strict;
- You can modify this file to re-enable SPAM checking through spamassassin
- and to re-enable antivirus checking.
- Default antivirus checking mode
- Please note, that anti-virus checking is DISABLED by
- default.
- If You wish to enable it, please uncomment the following lines:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
- Default SPAM checking mode
- Please note, that anti-spam checking is DISABLED by
- default.
- If You wish to enable it, please uncomment the following lines:
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # ensure a defined return
Nous allons maintenant configurer la quarantaine :
root@facteur:~# nano /etc/amavis/conf.d/50-user
use strict;
- Place your configuration directives here. They will override those in
- earlier files.
- See /usr/share/doc/amavisd-new/ for documentation and examples of
- the directives you can use in this file
$QUARANTINEDIR = '/var/spool/virusmails'; # Quarantine Directory
$spam_quarantine_method = 'local:spam-%b-%i-%n'; # Filename in $QUARANTINEDIR
$spam_quarantine_to = 'spam-quarantine'; # Put Spam in Quarantine Directory
- $spam_quarantine_to = "admin\@$mydomain"; # Send Spam to Adminstrator
- $spam_quarantine_to = undef; # Do nothing with Spam
$final_spam_destiny = D_DISCARD;
$spam_admin = "admin\@$mydomain"; # Where to send Notification
- ------------ Do not modify anything below this line -------------
1; # ensure a defined return
Création du répertoire qui va accueillir les mails infectés:
root@facteur:~# mkdir /var/spool/virusmails root@facteur:~# chown amavis:amavis /var/spool/virusmails
Mise à jour des règles de Spamassassin
root@facteur:~# sa-update -D
Activation du "daemon" de Spamassassin et activation de la mise à jour automatique (Cron) des règles de Spamassassin:
root@facteur:~# nano /etc/default/spamassassin
- Change to one to enable spamd
ENABLED=1
...
- Cronjob
- Set to anything but 0 to enable the cron job to automatically update
- spamassassin's rules on a nightly basis
CRON=1
root@facteur:~# service spamassassin start Starting SpamAssassin Mail Filter Daemon: spamd.
root@facteur:~# adduser clamav amavis Ajout de l'utilisateur « clamav » au groupe « amavis »... Ajout de l'utilisateur clamav au groupe amavis Fait.
root@facteur:~# service amavis restart Stopping amavisd: amavisd-new. Starting amavisd: amavisd-new.
root@facteur:~# service clamav-daemon restart Stopping ClamAV daemon: clamd. Starting ClamAV daemon: clamd .
root@facteur:~# service postfix restart Stopping Postfix Mail Transport Agent: postfix. Starting Postfix Mail Transport Agent: postfix.
Test de Spamassassin et Clamav[modifier]
Test Spamassassin[modifier]
Vous trouverez dans la doc un exemple de Spam: /usr/share/doc/spamassassin/examples/sample-spam.txt Il suffit de coller cette ligne dans un mail et de l'envoyer:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
Il sera détecté comme Spam:
telnet 192.168.3.114 25
Trying 192.168.3.114...
Connected to 192.168.3.114.
Escape character is '^]'.
220 facteur.zehome.org ESMTP Postfix (Debian/GNU)
AUTH LOGIN ZXNzYWlAZXNzYWkub3Jn
334 UGFzc3dvcmQ6
ZXNzYWk=
235 2.7.0 Authentication successful
mail from:essai@essai.org
250 2.1.0 Ok
rcpt to:admin@zehome.org
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Test Spamassassin
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
250 2.0.0 Ok: queued as F19436C405
quit
221 2.0.0 Bye
Connection closed by foreign host.
Et effectivement... "facteur amavis[7057]: (07057-01) Blocked SPAM"
Apr 6 17:29:21 facteur postfix/smtpd[7964]: connect from sidlol.zehome.org[192.168.0.2]
Apr 6 17:30:13 facteur postfix/smtpd[7964]: F19436C405: client=sidlol.zehome.org[192.168.0.2], sasl_method=LOGIN, sasl_username=essai@essai.org
Apr 6 17:35:40 facteur postfix/cleanup[7970]: F19436C405: message-id=<>
Apr 6 17:35:40 facteur postfix/qmgr[7933]: F19436C405: from=<essai@essai.org>, size=281, nrcpt=1 (queue active)
Apr 6 17:35:42 facteur postfix/smtpd[8091]: connect from localhost[127.0.0.1]
Apr 6 17:35:42 facteur postfix/smtpd[8091]: 6CAEE6C413: client=localhost[127.0.0.1]
Apr 6 17:35:42 facteur postfix/cleanup[7970]: 6CAEE6C413: message-id=<SSxt4KviusO2QF@facteur.zehome.org>
Apr 6 17:35:42 facteur postfix/qmgr[7933]: 6CAEE6C413: from=<>, size=2947, nrcpt=1 (queue active)
Apr 6 17:35:42 facteur amavis[7057]: (07057-01) Blocked SPAM, LOCAL [192.168.0.2] [192.168.0.2] <essai@essai.org> -> <admin@zehome.org>, quarantine: x/spam-xt4KviusO2QF.gz, mail_id: xt4KviusO2QF, Hits: 1004.975, size: 281, 1492 ms
Apr 6 17:35:42 facteur postfix/smtp[8088]: F19436C405: to=<admin@zehome.org>, relay=127.0.0.1[127.0.0.1]:10024, delay=348, delays=346/0.05/0.04/1.5, dsn=2.5.0, status=sent (250 2.5.0 Ok, id=07057-01, BOUNCE)
Apr 6 17:35:42 facteur postfix/qmgr[7933]: F19436C405: removed
Apr 6 17:35:42 facteur dovecot: deliver(essai@essai.org): msgid=<SSxt4KviusO2QF@facteur.zehome.org>: saved mail to INBOX
Apr 6 17:35:42 facteur postfix/pipe[8092]: 6CAEE6C413: to=<essai@essai.org>, relay=dovecot, delay=0.1, delays=0.02/0.06/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service)
Apr 6 17:35:42 facteur postfix/qmgr[7933]: 6CAEE6C413: removed
Apr 6 17:35:43 facteur postfix/smtpd[7964]: disconnect from sidlol.zehome.org[192.168.0.2]
Test de l'anti-virus[modifier]
Vous procèderez de la même manière, avec le code suivant, récupéré sur www.eicar.org :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Effectivement le mail est mis en quarantaine: "Passed BAD-HEADER, LOCAL [192.168.0.2] [192.168.0.2] <essai@essai.org> -> <admin@zehome.org>, quarantine: S/badh-SURoiIuWSpyN"
Apr 6 19:19:24 facteur postfix/smtpd[13605]: A60AA6C416: client=sidlol.zehome.org[192.168.0.2], sasl_method=LOGIN, sasl_username=essai@essai.org
Apr 6 19:19:39 facteur postfix/cleanup[13617]: A60AA6C416: message-id=<>
Apr 6 19:19:39 facteur postfix/qmgr[7933]: A60AA6C416: from=<essai@essai.org>, size=275, nrcpt=1 (queue active)
Apr 6 19:19:40 facteur postfix/smtpd[14385]: connect from localhost[127.0.0.1]
Apr 6 19:19:40 facteur postfix/smtpd[14385]: 81CB86C417: client=localhost[127.0.0.1]
Apr 6 19:19:40 facteur postfix/cleanup[13617]: 81CB86C417: message-id=<20110406161940.81CB86C417@facteur.zehome.org>
Apr 6 19:19:40 facteur postfix/qmgr[7933]: 81CB86C417: from=<essai@essai.org>, size=956, nrcpt=1 (queue active)
Apr 6 19:19:40 facteur amavis[13641]: (13641-01) Passed BAD-HEADER, LOCAL [192.168.0.2] [192.168.0.2] <essai@essai.org> -> <admin@zehome.org>, quarantine: S/badh-SURoiIuWSpyN, mail_id: SURoiIuWSpyN, Hits: 4.975, size: 275, queued_as: 81CB86C417, 608 ms
Apr 6 19:19:40 facteur postfix/smtp[13618]: A60AA6C416: to=<admin@zehome.org>, relay=127.0.0.1[127.0.0.1]:10024, delay=21, delays=20/0/0.04/0.59, dsn=2.0.0, status=sent (250 2.0.0 Ok, id=13641-01, from MTA([127.0.0.1]:10025): 250 2.0.0 Ok: queued as 81CB86C417)
Apr 6 19:19:40 facteur postfix/qmgr[7933]: A60AA6C416: removed
Apr 6 19:19:40 facteur postfix/smtp[14386]: 81CB86C417: to=<admin@zehome.org>, relay=smtp.zehome.org[192.168.0.3]:25, delay=0.32, delays=0.02/0.06/0/0.23, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as ED5BC300EDF)
Apr 6 19:19:40 facteur postfix/qmgr[7933]: 81CB86C417: removed
Apr 6 19:19:41 facteur postfix/smtpd[13605]: disconnect from sidlol.zehome.org[192.168.0.2]
Vous le retrouverez dans le sous-répertoire suivant : /var/spool/virusmails/S/badh-SURoiIuWSpyN (voyez les logs: quarantine: S/badh-SURoiIuWSpyN)
Installation de Postgrey[modifier]
Postgrey, qu'est-ce que c'est? Postgrey est un moyen simple et efficace de lutter contre les serveurs émettant des pourriels. Le principe est simple: rejeter temporairement un message, par l'envoi d’un code de refus au serveur smtp émetteur (MTA). La plupart du temps, les MTA réessaye d'envoyer les emails après un certain temps, ce que ne font pas (généralement) les serveurs émettant des pourriels...
Bien sur ce système n'est pas infaillible, et certains serveurs émettant des pourriels sont assez malins pour retenter le coup plus tard. Ils sont finalement très peu nombreux et Postgrey s'avère efficace.
Lors de la mise en place de Postgrey vous aurez beaucoup de mails qui ne vous parviendrons pas. Ce problème sera progressivement réglé une fois la première mise en quarantaine effectuée.
root@facteur:~# apt-get install postgrey
root@facteur:~# nano /etc/default/postgrey
POSTGREY_OPTS="--inet=10023 --delay=300 --hostname=facteur.zehome.org --auto-whitelist-clients"
root@facteur:~# nano /etc/postfix/main.cf
...
smtpd_recipient_restrictions =
...
reject_unauth_pipelining,
check_policy_service inet:127.0.0.1:10023,
reject_invalid_hostname
root@facteur:~# service postgrey restart root@facteur:~# service postfix restart
root@facteur:~# netstat -tulpen | grep LISTEN
...
tcp 0 0 127.0.0.1:10023 0.0.0.0:* LISTEN 0 7338 2271/postgrey.pid -
...
Vous disposez de deux fichiers dans lesquels vous pouvez mettre en "liste blanche" des domaines "amis" ou des adresses de destination:
root@facteur:~# vdir /etc/postgrey/
total 12
-rw-r--r-- 1 root root 7580 12 janv. 00:15 whitelist_clients
-rw-r--r-- 1 root root 189 12 janv. 00:15 whitelist_recipients
Le Webmail[modifier]
Je vous propose deux choix de Webmail :
- Squirrelmail: Simplissime, léger et possédant de multiples plugins;
- Roundcube: Plus lourd mais plus complet;
Squirrelmail[modifier]
Deux méthodes : Méthode via apt et méthode via le paquet source.
Méthode Debian[modifier]
root@facteur:~# apt-get install squirrelmail root@facteur:~# ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
Configurez Squirrelmail:
root@facteur:~# /usr/sbin/squirrelmail-configure
Command >> 2 (Server Settings)
Command >> A (Update IMAP Settings)
Command >> 8 (Server software)
[other]: dovecot
Command >> s
Command >> q
Créez un domaine avec postfixadmin (si ce n'est pas déjà fait). Créez un utilisateur avec postfixadmin (si ce n'est pas déjà fait).
root@facteur:~# service apache2 restart Restarting web server: apache2 ... waiting .
Testez avec cette adresse:
http://192.168.3.114/squirrelmail
Méthode avec les sources[modifier]
La méthode présentée ici est ce que l'on appelle "quick and durty" - Je ne m'attache pas aux locales et plugins intéressants pas exemple. Téléchargeons tout d'abord les sources (tant qu'a faire, choisissons le dernière "snapshot"). Liste ICI
root@facteur:~# tar xzvf squirrelmail-20110406_0200-SVN.stable.tar.gz -C /var/www/ root@facteur:~# mv /var/www/squirrelmail.stable/squirrelmail/ /var/www/ root@facteur:~# rmdir /var/www/squirrelmail.stable/ root@facteur:~# chown -R www-data:www-data /var/www/squirrelmail/
Configuration:
root@facteur:~# /var/www/squirrelmail/configure
Command >> 2 (Server Settings)
Command >> A (Update IMAP Settings)
Command >> 8 (Server software)
[other]: dovecot
Command >> s
Command >> q
Créons les dossiers qui accueilleront les données personnelles (carnet d'adresses, références...) et les pièces jointes:
root@facteur:~# mkdir /var/local/squirrelmail root@facteur:~# mkdir /var/local/squirrelmail/data root@facteur:~# mkdir /var/local/squirrelmail/attach root@facteur:~# chown -R www-data:www-data /var/local/squirrelmail
root@facteur:~# service apache2 restart Restarting web server: apache2 ... waiting .
Roundcube[modifier]
Il est conseillé (mais pas indispensable) d'installer préalablement les codes et modules suivants:
root@facteur:~# apt-get install libiconv-hook1 php5-mcrypt php5-intl
Téléchargement des sources ICI :
root@facteur:~# tar xzvf roundcubemail-0.5.1.tar.gz -C /var/www/ root@facteur:~# mv /var/www/roundcubemail-0.5.1/ /var/www/roundcubemail root@facteur:~# chown -R www-data:www-data /var/www/roundcubemail/
Roundcube à besoin d'une base de donnée, il faut maintenant la créer :
root@facteur:~# mysql -u root -p Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.1.49-3 (Debian)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database roundbase;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON roundbase.* TO 'roundadmin'@'localhost' IDENTIFIED BY 'monmotdepasse';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
Rendez-vous maintenant à l'adresse suivante pour la configuration: http://votre_IP/roundcubemail/installer/
Laissez-vous guider, jusqu’à la page de création de la configuration.
Prenez soin de remplir convenablement les questions concernant la base Mysql, le serveur IMAP et SMTP ainsi que les "locales".
L'installeur vous proposera ensuite deux fichiers main.inc.php et db.inc.php qu'il faudra aller copier dans /var/www/roundcube/config/
Cliquez sur "continuer" (en milieu de page) une fois que vous aurez créé les deux fichiers de configuration pour tester.
Initialisez la base de données :
Quand tous les tests sont "Ok", vous pouvez effacer le répertoire /var/www/roundcubemail/installer/ et vous rendre sur: http://votre_IP/roundcubemail/
root@facteur:~# rm -r /var/www/roundcubemail/installer
Activation du SMTPS[modifier]
La connexion classique se fait sur le port 25 non sécurisée, nous allons ouvrir le port 465 (smtps)
Ajoutons à notre fichier /etc/postfix/master.cf (il suffit de dé-commenter) ceci :
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
root@facteur:~# service postfix restart
Et vérifions que le port 465 est bien ouvert:
root@facteur:~# netstat -laputen | grep master tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 0 14857 3757/master tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 0 14852 3757/master tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 108 3408 828/amavisd (master tcp 0 0 127.0.0.1:10025 0.0.0.0:* LISTEN 0 14986 3757/master
Vous pouvez maintenant tester avec roundcube ou squirrelmail (en changeant la configuration évidemment...)
Sur Squirrelmail:
SMTP Settings
4. SMTP Server : localhost
5. SMTP Port : 465
6. POP before SMTP : false
7. SMTP Authentication : none
8. Secure SMTP (TLS) : true
9. Header encryption key :
Sur Roundcube (dans le fichier /var/www/roundcubemail/config/main.inc.php)
// ----------------------------------
// SMTP
// ----------------------------------
$rcmail_config['smtp_server'] = 'ssl://localhost';
$rcmail_config['smtp_port'] = 465;
$rcmail_config['smtp_user'] = ;
$rcmail_config['smtp_pass'] = ;
$rcmail_config['smtp_auth_type'] = ;
$rcmail_config['smtp_auth_cid'] = null;
$rcmail_config['smtp_auth_pw'] = null;
Plus loin avec Dovecot[modifier]
Managesieve[modifier]
Managesieve est un plugin permettant de gérer les filtres directement sur votre serveur Imap, il est inclu à Dovecot à partir des versions 1.2
Ajoutez le dépôt suivant (valable en i386 et amd64) :
root@facteur:~# nano /etc/apt/sources.list
deb http://xi.rename-it.nl/debian/ stable-auto/dovecot-1.2 main
root@facteur:~# apt-get update
Réglez le problème de clef gpg...
root@facteur:~# apt-get dist-upgrade Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Calcul de la mise à jour... Fait Les paquets suivants seront mis à jour : dovecot-common dovecot-imapd dovecot-pop3d 3 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 4 102 ko dans les archives. Après cette opération, 7 954 ko d'espace disque seront libérés. Souhaitez-vous continuer [O/n] ?
Conservez votre configuration... Fichier:Snapshot209.jpeg
Modifiez la configuration de Dovecot pour activer Managesieve
root@facteur:~# nano /etc/dovecot/dovecot.conf
protocols = imap imaps managesieve pop3 pop3s
...
protocol lda {
...
mail_plugins = sieve quota
}
protocol managesieve {
listen = *:4190
login_executable = /usr/lib/dovecot/managesieve-login
mail_executable = /usr/lib/dovecot/managesieve
}
...
plugin {
## Sieve
sieve_dir = /home/facteur/%d/%n/sieve
sieve = /home/facteur/%d/%n/.dovecot.sieve
}
root@facteur:~# service dovecot restart
Squirrelmail : ajouter le plugin "avelsieve"[modifier]
Téléchargement ICI
root@facteur:~# tar xzvf avelsieve-1.9.8.tar.gz -C /var/www/squirrelmail/plugins/ root@facteur:~# chown -R www-data:www-data /var/www/squirrelmail/plugins root@facteur:~# cd /var/www/squirrelmail/ root@facteur:/var/www/squirrelmail# cp plugins/avelsieve/config/config_sample.php plugins/avelsieve/config/config.php
Téléchargez aussi la librairie java-script (même page) Vous pouvez, si vous êtes un puriste, vous passer de la librairie javascript, mais toutes les options ne fonctionneront pas...
root@facteur:~# tar xzvf javascript_libs-0.1.2.tar.gz -C /var/www/squirrelmail/plugins/ root@facteur:~# chown -R www-data:www-data /var/www/squirrelmail/plugins
Activez les plugins:
root@facteur:~# /var/www/squirrelmail/configure
Command >> 8 (Plugins)
Command >> ? (avelsieve) + (javascript_libs)
Command >> s
Command >> q
Vous avez maintenant accès à une nouvelle option: Filtres!
Si vous activez le répondeur automatique vous aurez une réponse dans ce genre (en-tête du mail de réponse) :
Return-Path: <MAILER-DAEMON>
Delivered-To: essai1@essai.org
Received: from localhost (localhost [127.0.0.1])
by facteur.zehome.org (Postfix) with ESMTP id 6EABF6C36A
for <essai1@essai.org>; Thu, 7 Apr 2011 19:41:53 +0300 (EAT)
X-Virus-Scanned: Debian amavisd-new at facteur.zehome.org
Received: from facteur.zehome.org ([127.0.0.1])
by localhost (facteur.zehome.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 8L-CWt6ZrQIC for <essai1@essai.org>;
Thu, 7 Apr 2011 19:41:53 +0300 (EAT)
Received: by facteur.zehome.org (Postfix, from userid 3000)
id 206AB6C3B8; Thu, 7 Apr 2011 19:41:53 +0300 (EAT)
X-Sieve: Dovecot Sieve 0.1.18
Message-ID: <dovecot-sieve-1302194513-52514-0@facteur.zehome.org>
Date: Thu, 07 Apr 2011 19:41:53 +0300
From: <essai@essai.org>
To: <essai1@essai.org>
Subject: En Vacances!
In-Reply-To: <31730a3411b70b77d45e7e85708c80f9.squirrel@192.168.3.114>
References: <31730a3411b70b77d45e7e85708c80f9.squirrel@192.168.3.114>
Auto-Submitted: auto-replied (vacation)
Precedence: bulk
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Roundcube : ajouter le plugin "managesieve"[modifier]
Le plugin est déjà présent dans Roundcube, il suffit de l'activer :
root@facteur:~/trunk# nano /var/www/roundcubemail/config/main.inc.php
Vers la ligne 324...
// ---------------------------------- // PLUGINS // ---------------------------------- // List of active plugins (in plugins/ directory) $rcmail_config['plugins'] = array('managesieve');
Et de le configurer:
root@facteur:~# cp /var/www/roundcubemail/plugins/managesieve/config.inc.php.dist /var/www/roundcubemail/plugins/managesieve/config.inc.php
Remplacez :
$rcmail_config['managesieve_port'] = 2000;
Par :
$rcmail_config['managesieve_port'] = 4190;
Vous avez maintenant accès à la page de configuration des filtres :
Installer le SSL sur Dovecot[modifier]
Plus loin avec Roundcube[modifier]
Roundcube + Vacation - Notification d'absence[modifier]
Forcer l'utilisation de roundcube en https[modifier]
Plus loin avec Postfixadmin[modifier]
Fetchmail_sur_postfixadmin[modifier]
Dovecot - Mise en place de quotas[modifier]
Dovecot 1.2 supporte la gestion des quotas. Pourquoi ne pas en profiter!
Modification de la configuration de Dovecot:
root@facteur:~# nano /etc/dovecot/dovecot.conf
...
protocol imap {
mail_plugins = quota imap_quota
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
...
protocol lda {
...
mail_plugins = sieve quota
}
...
dict {
quotadict = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
...
plugin {
...
## quota
quota = dict:%u::proxy::quotadict
quota_rule = *:storage=10M:messages=1000
quota_warning = storage=75%% /usr/local/bin/quota-warning.sh 75 %u
quota_warning2 = storage=90%% /usr/local/bin/quota-warning.sh 90 %u
}
Création du fichier en charge d'alimenter la base de donnée concernant les quotas:
root@facteur:~# nano /etc/dovecot/dovecot-dict-sql.conf
connect = host=127.0.0.1 dbname=postfix user=postfixadmin password=monmotdepasse
map {
pattern = priv/quota/storage
table = quota2
username_field = username
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = username
value_field = messages
}
Modification de la requête à la base Mysql:
root@facteur:~# nano /etc/dovecot/dovecot-mysql.conf
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfixadmin password=Perso2
default_pass_scheme = MD5-CRYPT
user_query = SELECT '/home/facteur/%d/%n' AS home, 3000 AS uid, 3000 AS gid, CONCAT('*:bytes=', CAST(quota AS CHAR)) AS quota_rule FROM mailbox WHERE username = '%u' AND active='1'
password_query = SELECT password FROM mailbox WHERE username = '%u'
Prise en charge des quotas dans postfixadmin:
root@facteur:~# nano /var/www/postfixadmin/config.inc.php
...
// Quota
// When you want to enforce quota for your mailbox users set this to 'YES'.
$CONF['quota'] = 'YES';
...
// Optional:
// Show used quotas from Dovecot dictionary backend in virtual
// mailbox listing.
// See: DOCUMENTATION/DOVECOT.txt
// http://wiki.dovecot.org/Quota/Dict
//
$CONF['used_quotas'] = 'YES';
// if you use dovecot >= 1.2, set this to yes.
// Note about dovecot config: table "quota" is for 1.0 & 1.1, table "quota2" is for dovecot 1.2 and newer
$CONF['new_quota_table'] = 'YES';
Création du script chargé d'envoyer les alertes:
root@facteur:~# nano /usr/local/bin/quota-warning.sh
- !/bin/sh
PERCENT=$1
FROM="admin@isalo.org"
qwf="/tmp/quota.warning.$$"
echo "From: $FROM
To: $USER
To: admin@isalo.org
Subject: Votre boite mail est pleine à $PERCENT%
Content-Type: text/plain; charset="UTF-8"
Votre boite mail est pleine à $PERCENT%+, veuillez effacer des messages et vider le corbeille, ou contactez votre administrateur" >> $qwf
cat $qwf | /usr/sbin/sendmail -f $FROM "$USER"
rm -f $qwf
exit 0
root@facteur:~# chown dovecot:facteur /usr/local/bin/quota-warning.sh root@facteur:~# chmod+x /usr/local/bin/quota-warning.sh
Redémarrage de Dovecot
root@facteur:~# service dovecot restart
Prise en charge dans Roundcube[modifier]
Rien à faire, la prise en charge des quotas est déjà activée d'office (en bas à gauche).
Prise en charge dans Squirrelmail[modifier]
Il faut installer 2 plugins :
Procédez de la même façon que vous avez installé le plugin avelsieve.
Pour le plugin "compatibility" rien d'autre à faire. Pour le plugin "Check Quota":
root@facteur:~# cp /var/www/squirrelmail/plugins/check_quota/config.sample.php /var/www/squirrelmail/plugins/check_quota/config.php root@facteur:~# nano /var/www/squirrelmail/plugins/check_quota/config.php
Et passez la variable quota_type de 0 à 1
* Quota Configuration Options *
*******************************/
...
$settings['quota_type'] = 1;
Activez les deux plugins :
root@facteur:~# /var/www/squirrelmail/configure
Visualisation du quota en haut à gauche : Fichier:Snapshot213.jpeg
Lien externes[modifier]
Lol 8 avril 2011 à 11:06 (CDT)