Projet Mail Final
Projet Mail Final
Projet Mail Final
Touts
l’installation a été réalisé sous ubuntu v.16.04.
Tout d’abord, je choisi le serveur mail NGINX comme interface web vu qu’il est plus rapide
que l’APACHE. Ainsi, j’utiliserai le logiciel Postfix comme agent de transfert de courrier
(MTA), aussi appelé serveur SMTP. Il assurera l’envoi de messages depuis le serveur et la
réception de courriers en provenance d’autres serveurs d’e-mails via leurs MTA. Ainsi, les
clients de messagerie (comme Microsoft Outlook ou Mozilla Thunderbird) communiqueront
directement avec le MTA pour envoyer un e-mail, via le protocole SMTP. Pour la
récupération des courriers reçus sur le serveur par les clients de messagerie, je mettrai en
place le logiciel Dovecot. Celui-ci permet de récupérer les e-mails via les protocoles POP et
IMAP. Afin d’avoir un serveur d’e-mails complet, je détaillerai la mise en place
de l’antivirus ClamAv et du filtre anti-spam Spamassassin. Ces deux logiciels
seront exploités par le filtre de contenu Amavis qui analysera directement les courriers
stockés sur le serveur.
Afin de faciliter la gestion des différents comptes e-mails sur le serveur, j’installerai
l’application Web Postfix Admin. Ainsi, il sera possible de gérer plusieurs comptes e-
mails mais également plusieurs noms de domaines. Pour terminer, j’aborderai l’installation
du Webmail Roundcube afin que les utilisateurs puissent accéder à leurs e-mails depuis
n’importe quel navigateur Web.
Définition :
Postfix est l’un des gestionnaires de messagerie les plus utilisés sur Internet. Destiné à
remplacer Sendmail dont les problèmes de sécurité étaient nombreux, Postfix a tout de suite
été conçu autour de trois objectifs :
- Un système de configuration simple.
- Une forte compatibilité avec les commandes de Sendmail
- Une conception hautement sécurisée.
Mode de fonctionnement :
Intérêt
/https://www.axigen.com/articles/axigen-comparative-benchmarks_27.html//
//
http://cjovet.free.fr/cours/postfix.htm//
• Dovecot vs Cyrus
Définition :
Dovecot est un serveur IMAP et POP3 pour les systèmes d'exploitation Unix et
dérivés, conçu avec comme premier but la sécurité.
Parmi les plus performants des serveurs IMAP compatibilité complète avec des outils
de manipulation de boites à lettres. Les boites à lettres sont indexées de manière transparente.
Dovecot permet boîtes aux lettres et leurs index pour être modifiés par plusieurs
ordinateurs en même temps, tout en performant. Cela signifie que Dovecot fonctionne bien
avec les systèmes de fichiers en cluster.
Dovecot la conception et la mise en œuvre est fortement axé sur la sécurité.
Architecture :
Définition : Roundcube :
Il est un client Webmail pour le protocole IMAP écrit en PHP et JavaScript.
peut être installé sur une plateforme LAMP.
Il est compatible avec les serveurs web Apache, Nginx, etc.
Roundcube offre beaucoup plus agréable, interface assez intuitive conviviale et
pour vos e - mails par rapport à squire mail.
Fonctionnalités :
• la fonction glissé-déposer
• l'accusé réception d'envois
• le correcteur d'orthographe
• lecture emails en threads
• un carnet d'adresses complet et la possibilité d'utiliser un éditeur
texte (Avec utilisation de gras, insertion d'images,...). utilise la
technologie AJAX
• cryptage Support S / MIME
• extraits de pièces jointes
• Recherche avancée sur tous les dossiers
• Les dossiers virtuels (Recherches aka sauvegardés)
• Raccourcis clavier
• le soutien de l'historique du navigateur
• module de calendrier en ligne
• Interface d'administration
SquirrelMail :
SquirrelMail a toutes les fonctionnalités de base si on veut partir un client de messagerie,
calendrier, vérifier orthographe, y compris soutien fort de MIME, carnets d'adresses, et
dossier manipulation. Il a interface simple où il fondamentalement liste de tous les emails.
Recommandé pour ceux qui recherchent des fonctions base de lecture et réponse email.
Horde :
Il est considéré comme plus email entièrement sélectionnée rapport à la précédente deux
Squire mail & Roundcube et il a fonctions similaires à Outlook.
Webmail Horde est livré avec des fonctionnalités telles que le calendrier, liste de tâches,
bloc-notes, carnet d'adresses, et plus encore. Le système de gestion du courrier électronique
inclut le support pour les filtres avancés, les pièces jointes, la vérification orthographique, et
affiche HTML e-mail ainsi.
Horde est également livré avec des fonctions de gestion des tâches, de sorte que on peut
inscrire la tâche, définir la tâche de rappels et de garder une trace son état
Définition :
ViMbAdmin (prononcé vim-être-admin et le sens virtuel d’administration de boîtes aux
lettres) fournit un système d'administration de la messagerie basée sur le Web virtuel pour une
utilisation avec des agents de transport de courrier tels que Postfix, Sendmail et qmail par
• Sécurité :
Le spam : Les pourriels ou spams sont des e-mails de masse, par exemple : des envois
de publicité, diffusés sur Internet. Ces spams sont envoyés à des millions d'adresses e-mail
sans qu'ils aient été sollicités.
Avec la solution du filtre anti-spam externalisé ou ASP, la sécurité des messageries
électroniques est optimisée. Comme les courriers électroniques entrants seront déroutés vers
le serveur de l’hébergeur, tous les spams seront filtrés et éliminés avant que les emails
légitimes ne rejoignent le serveur de messagerie de l’entreprise. Le seul hic avec ce type de
filtre anti-spam est que la possibilité en matière de configuration est limitée.
Pour modifier le nom d'hôte, exécutez la commande suivante (n'oubliez pas de remplacer
"hostname" par le nom d'hôte de votre serveur) :
Nano /etc/hostname
# nano /etc/hosts
2) Installation de postfix
On commence par installer Postfix avec le support de mysql. Les domaines, comptes
utilisateurs et alias seront ainsi gérés directement au sein d'une base de données, que vous
pourrez administrer grâce à vos outils habituels, comme phpMyAdmin par exemple.
apt-get install postfix postfix-mysql
Lors de l'installation de Postfix, vous devez choisir le type du serveur de messagerie,
choisissez "Site Internet" pour utiliser SMTP :
4) nginx :
6) postfixadmin :
cd /var/www
wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-
2.92/postfixadmin-2.92.tar.gz
tar -xzf postfixadmin-2.92.tar.gz
mv postfixadmin-2.92 postfixadmin
rm -rf postfixadmin-2.92.tar.gz
chown -R www-data:www-data postfixadmin
*restart le service :
service nginx restart
ok
nano /etc/postfix/main.cf
#######################
## GENERALS SETTINGS ##
#######################
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
delay_warning_time = 4h
mailbox_command = procmail -a "$EXTENSION"
recipient_delimiter = +
disable_vrfy_command = yes
message_size_limit = 502400000
mailbox_size_limit = 1024000000
inet_interfaces = all
inet_protocols = ipv4
myhostname = hostname.domain.tld
myorigin = hostname.domain.tld
mydestination = localhost localhost.$mydomain
cd /etc/ssl/
mv ca.key.pem private/
mv ca.cert.pem certs/
mv mailserver.key private/
mv mailserver.crt certs/
openssl dhparam -out /etc/postfix/dh2048.pem 2048
openssl dhparam -out /etc/postfix/dh512.pem 512
hosts = 127.0.0.1
user = postfix
password = Azerty@123
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = 0 and
active= 1
nano /etc/postfix/mysql-virtual-alias-maps.cf
hosts = 127.0.0.1
user = postfix
password = Azerty@123
dbname = postfix
nano /etc/postfix/mysql-sender-login-maps.cf
hosts = 127.0.0.1
user = postfix
password = Azerty@123
dbname = postfix
query = SELECT username FROM mailbox WHERE username='%s' AND active = 1
nano /etc/postfix/master.cf
submission inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_dh1024_param_file=${config_directory}/dh2048.pem
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtp inet n - - - - smtpd
8)dovecot
Installation de Dovecot
apt-get install dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
Configuration de dovecot
Nano /etc/dovecot/dovecot.conf
!include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp
listen = *
!include conf.d/*.conf
Nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/mail/vhosts/%d/%n/mail
maildir_stat_dirs=yes
namespace inbox {
inbox = yes
nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = yes
auth_mechanisms = plain login
!include auth-sql.conf.ext
Nano /etc/dovecot/conf.d/auth-sql.conf.ext
# Le mot de passe est obtenu à partir de la base de donnée
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext
}
# Par contre le nom d'utilisateur est obtenu de manière statique à partir du conteneur local
# %d = domaine.tld
# %n = utilisateur
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
Nano /etc/dovecot/dovecot-sql.conf.ext
# Paramètres de connexion
driver = mysql
connect = host=127.0.0.1 dbname=postfix user=postfix password=MOT DE PASSE
ssl = required
ssl_cert = </etc/ssl/certs/mailserver.crt
ssl_key = </etc/ssl/private/mailserver.key
ssl_protocols = !SSLv2 !SSLv3
ssl_cipher_list =
ALL:!aNULL:!eNULL:!LOW:!MEDIUM:!EXP:!RC2:!RC4:!DES:!3DES:!MD5:!PSK
:!SRP:!DSS:!AECDH:ADH:@STRENGTH
mysql -u root -p
mysql> quit
Redémarrage des services et vérification des ports
service postfix restart
service dovecot restart
9)roundcube :
sudo apt-get install mysql-server nginx php5-fpm php5-mysql php5-pspell php5-curl
sudo mysql_install_db
sudo mysql_secu_installation
cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata
sudo cd /etc/ssl
sudo openssl genrsa -out ca.key 1024
sudo openssl req -new -key ca.key -out ca.csr
sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
cd /var/www/html
sudo cd /etc/nginx/sites-available
sudo nano mail.tc.com
server {
listen 80;
server_name mail.tc.com;
return 301 https://mail.tc.com$request_uri;
}
server {
# llisten 80 is modified to listen 443 ssl;
listen 443 ssl;
server_name mail.tc.com;
root /usr/share/nginx/roundcube;
index index.php index.html index.htm;
access_log /var/log/nginx/roundcube_access.log;
error_log /var/log/nginx/roundcube_error.log;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ ^/(README.md|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ {
deny all;
}
location ~ ^/(config|temp|logs)/ {
deny all;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
nano /etc/default/spamassassin
ENABLED=1
SPAMD_HOME="/home/spamd/"
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir
${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"
PIDFILE="${SPAMD_HOME}spamd.pid"
CRON=1
nano /etc/spamassassin/local.cf
nano /etc/postfix/master.cf
smtp inet n - - - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
*start service
service spamassassin start
service postfix restart
[1] :https://wow.serverfreak.com/2011/webmail-squirrelmail-roundcube-horde/
[2]: http://forum.hardware.fr/hfr/OSAlternatifs/reseaux-securite/dovecot-cyrus-courier-
sujet_70962_1.htm
[3] : https://www.opensolutions.ie/open-source/vimbadmin
[4]: https://linuxfr.org/news/faille-de-s%C3%A9curit%C3%A9-importante-dans-sendmail
[5] https://www.atlantic.net/community/howto/postfix-mail-server-setup-ubuntu-14-04/
https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-
lemp-stack-in-ubuntu-16-04
http://www.rudraraj.net/2015/01/26/how-to-install-roundcube-with-nginx/
https://mondedie.fr/d/5750-Tuto-Installer-un-serveur-de-mail-avec-Postfix-Dovecot-et-
Rainloop/2
https://blog.onee3.org/2014/08/tutorials-how-to-set-up-a-mail-server-on-ubuntu-with-postfix-
dovecot-2-mysql-and-postfixadmin/#step7
http://www.rudraraj.net/2015/01/26/how-to-install-roundcube-with-nginx/
https://www.digitalocean.com/community/tutorials/how-to-configure-a-mail-server-using-
postfix-dovecot-mysql-and-spamassassin
http://fr.wikipedia.org/wiki/Postfix
http://www.postfix.org/documentation.html