Vous êtes sur la page 1sur 22

• 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 :

Les avantages de Dovecot sur Cyrus en termes d'administration :


- les outils de migration pour les boîtes mail existantes
- la gestion/maintenance des boîtes plus aisées
- la configuration plus souple/extensible via ses propres scripts
-L'approche de Cyrus est moins "immédiate" dans le sens où plus d'étapes sont nécessaire
pour effectuer certaines tâches d'administration (là où Dovecot regroupe certaines d'entre elles

Année Universitaire 2016/2017 Page 1


; par ex. pour tout ce qui a trait à la gestion des boîtes), mais également parce que celui-ci fait
appel à plus d'outils dédiés pour l'administration.
- Comparé à Cyrus, Dovecot est plus agréable à administrer et un moins couteux en
ressources système (bien que ce sera plutôt visible sur de larges volumes de boîtes). [2]

• Roundcube vs Horde vs Squirrelmail

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.
Le Webmail Roundcube est disponible avec un cryptage HTTPS grâce
au protocole SSL.

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 :

Année Universitaire 2016/2017 Page 2


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

Recommandé Les utilisateurs qui ont Les utilisateurs qui ont Les utilisateurs qui ont
pour: besoin d'une suite besoin d'une interface besoin d'une interface très
complète de web conviviale avec basique à partir duquel
fonctionnalités qui quelques fonctionnalités lire et répondre aux e-
inclut l'accès e-mail supplémentaires mails.
mobile et des outils de disponibles.
productivité avancés.
Type d'interface * Le format de trois * Le format de trois volet * Format de liste à deux
volet avec vue volet. avec vue volet. volets.
* Interface mobile
disponible.
Caractéristiques * Pièces jointes * Pièces jointes * Pièces jointes
de la * composition HTML * composition HTML * Texte uniquement
composition: * Vérification * Vérification composition
orthographique orthographique
Caractéristiques * Manipulation de * Organisation Drag-and- * Manipulation de
de dossiers drop dossiers
l'Organisation: * Les filtres de * manipulation de * drapeaux de message
courrier dossiers * Recherche courriel
* drapeaux de * drapeaux de message * Threaded
message * Recherche courriel (Conversation) Vue
* Recherche courriel * Threaded
* Threaded (Conversation) Vue
(Conversation) Vue
Caractéristiques * Carnet d'adresses * Carnet d' adresses * Carnet d'adresses
supplémentaires: (avancé) (avancé) (simple)
* Calendrier (avancé) * Les administrateurs

Année Universitaire 2016/2017 Page 3


* rappels système peuvent utiliser
d'événements des plugins pour ajouter
* Nouvelles feed des fonctionnalités
* Remarques personnalisées.
* Liste des tâches
(avancé)
Site officiel Le projet Horde Roundcube Projet Le Projet SquirrelMail
Webmail

Panel d’administration : Nginx (vimbadmin) :

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
exemple. Il permet aux administrateurs système d'ajouter et de gérer les domaines et d'ajouter
ensuite, éditer et supprimer des boîtes aux lettres et des alias pour ces domaines.
ViMbAdmin (prononcé vim-be-admin et qui signifie l'administration virtuel boîte aux lettres)
est conçu comme une alternative à (et une quasi-fente en remplacement) pour l'application
Postfix Administrateur populaire, mais daté.
Caractéristiques :
Depuis la version 2.0.0 publiée en Mars 2012, les caractéristiques standard et améliorés par
rapport à Postfix Admin comprennent:
• Super niveau de l'utilisateur de l'administrateur avec un accès complet;
• niveau de l'utilisateur d'administration avec accès uniquement aux domaines
affectés et leurs boîtes aux lettres et alias.
• Admins super peut créer et modifier les admins et les super-administrateurs;
• JQuery Datatable tout au long de rapide dans la recherche du navigateur et la
pagination;
• Créer, modifier et purger les domaines, y compris la limitation du nombre de
boîtes aux lettres et alias un administrateur non-super peut créer par domaine;
• Activer / désactiver les admins, les domaines, les boîtes aux lettres et les alias
au clic d'un bouton;
• journalisation complète.
• Facilité pour les utilisateurs finaux (propriétaires de boîtes aux lettres) pour
changer leur mot de passe;

Année Universitaire 2016/2017 Page 4


• Un seul point de connexion pour tous les administrateurs si super-ou non [3]

• 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.
- Amavis est une interface entre Postfix et le contenu des paquets de filtrage tels que
SpamAssassin et ClamAV.
- ClamAV est un moteur antivirus haute performance pour les trojans de détection,
les virus, leslogiciels malveillants et autres menaces malveillantes.
- SpamAssassin est une haute performance plate - forme anti-spam célèbre pour ses
bayésiens capacités de filtrage de spam. Il donne aux administrateurs système un filtre pour
classer lesmessages et bloquer tous les courriels de masse non sollicités.[6]

Année Universitaire 2016/2017 Page 5


III. Tutoriel d’utilisation
Comme tutoriel d’utilisation dans notre projet on a choisie :
https://mondedie.fr/d/5750-Tuto-Installer-un-serveur-de-mail-avec-Postfix-Dovecot-et-
Rainloop/2
Ce tutoriel nous a aidées à installer un serveur mail sous GNU/Linux. Il s'adresse à des
personnes qui ont déjà une bonne expérience en administration système sous Linux car il est
très important de comprendre ce que l'on fait afin de mieux réagir en cas de
disfonctionnement surtout dans le cas où l'on se sert tous les jours de son serveur pour
envoyer/recevoir des mails.

1) Configuration du nom d'hôte, du FQDN et du champ MX

- Nom de domaine principal : tc.com


- Nom d'hôte : mail
- FQDN : mail.tc.com
- MX : mail.domain.tld

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

Pour modifier le FQDN, il faut editer le fichier /etc/hosts :

Année Universitaire 2016/2017 Page 6


# nano /etc/hosts

127.0.0.1 localhost.tc.com mail.tc.com localhost


127.0.1.1 projetmail-machinevirtual
192.168.3.146 mail.tc.com mail

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 :

Ensuite une autre fenêtre apparaît et vous demande le nom du système de mail, entrez alors
le FQDN de votre serveur.

3) Création de la base de données


# Connexion au serveur MySQL en tant que root
mysql -u root -p

# Création de la base de données "postfix"


mysql> CREATE database postfix;

# Création de l'utilisateur "postfix" et ajout des permissions


mysql> CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'MOT DE PASSE';
mysql> GRANT USAGE ON *.* TO 'postfix'@'localhost';
mysql> GRANT ALL PRIVILEGES ON postfix.* TO 'postfix'@'localhost';

# On quitte la console MySQL


mysql> exit

4) nginx :

Année Universitaire 2016/2017 Page 7


5) phpMyadmin :

6) postfixadmin :

Année Universitaire 2016/2017 Page 8


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

apt-get install php5-imap

*restart le service :
service nginx restart
ok

7)Configuration de Postfix
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak

nano /etc/postfix/main.cf
#######################
## GENERALS SETTINGS ##
#######################
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
Année Universitaire 2016/2017 Page 9
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
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
relayhost =
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
####################
## TLS PARAMETERS ##
####################
# Smtp ( OUTGOING / Client )
smtp_tls_loglevel =1
smtp_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs/ca.cert.pem
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_ciphers = high
smtp_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, 3DES, RC2, RC4, MD5,
PSK, SRP, DSS, AECDH, ADH
smtp_tls_note_starttls_offer = yes
# ---------------------------------------------------------------------------------------------------
# Smtpd ( INCOMING / Server )
smtpd_tls_loglevel =1
smtpd_tls_auth_only = yes
smtpd_tls_security_level = may
smtpd_tls_received_header = yes
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers = medium
# Infos (voir : postconf -d)
# Medium cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH
# High cipherlist = aNULL:-
aNULL:ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH
# smtpd_tls_exclude_ciphers = NE PAS modifier cette directive pour des raisons de
compatibilité
# avec les autres serveurs de mail afin d'éviter une erreur du type
# "no shared cipher" ou "no cipher overlap" puis un fallback en
# plain/text...
# smtpd_tls_cipherlist = Ne pas modifier non plus !
smtpd_tls_CAfile = $smtp_tls_CAfile

Année Universitaire 2016/2017 Page 10


smtpd_tls_cert_file = /etc/ssl/certs/mailserver.crt
smtpd_tls_key_file = /etc/ssl/private/mailserver.key
smtpd_tls_dh1024_param_file = $config_directory/dh2048.pem
smtpd_tls_dh512_param_file = $config_directory/dh512.pem
tls_preempt_cipherlist = yes
tls_random_source = dev:/dev/urandom
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
lmtp_tls_session_cache_database = btree:${data_directory}/lmtp_scache
# ----------------------------------------------------------------------
#####################
## SASL PARAMETERS ##
#####################
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = $smtpd_sasl_security_options
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes
##############################
## VIRTUALS MAPS PARAMETERS ##
##############################
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_minimum_uid = 5000
virtual_mailbox_base = /var/mail
virtual_transport = lmtp:unix:private/dovecot-lmtp
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
######################
## ERRORS REPORTING ##
######################
# notify_classes = bounce, delay, resource, software
notify_classes = resource, software
error_notice_recipient = mail@tc.com
# delay_notice_recipient = mail@tc.com
# bounce_notice_recipient = mail@tc.com
# 2bounce_notice_recipient = mail@tc.com
##################
## RESTRICTIONS ##
##################
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unknown_recipient_domain,

Année Universitaire 2016/2017 Page 11


reject_rbl_client zen.spamhaus.org
smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_invalid_helo_hostname,
reject_non_fqdn_helo_hostname
# reject_unknown_helo_hostname
smtpd_client_restrictions =
permit_mynetworks,
permit_inet_interfaces,
permit_sasl_authenticated
# reject_plaintext_session,
# reject_unauth_pipelining
smtpd_sender_restrictions =
reject_non_fqdn_sender,
reject_unknown_sender_domain

cd /etc/ssl/

openssl genrsa -out ca.key.pem 4096


openssl req -x509 -new -nodes -days 1460 -sha256 -key ca.key.pem -out ca.cert.pem

Country Name (2 letter code) [AU]: FR


State or Province Name (full name) [Some-State]: France
Locality Name (eg, city) []: Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Corp Ltd
Organizational Unit Name (eg, section) []: Certificate Authority
Common Name (e.g. server FQDN or YOUR name) []: Root CA
openssl genrsa -out mailserver.key 4096
openssl req -new -sha256 -key mailserver.key -out mailserver.csr

Country Name (2 letter code) [AU]: FR


State or Province Name (full name) [Some-State]: France
Locality Name (eg, city) []: Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Corp Ltd
Organizational Unit Name (eg, section) []:Mail server
Common Name (e.g. server FQDN or YOUR name) []: mail.domain.tld
openssl x509 -req -days 1460 -sha256 -in mailserver.csr -CA ca.cert.pem -CAkey ca.key.pem
-CAcreateserial -out mailserver.crt

chmod 444 ca.cert.pem


chmod 444 mailserver.crt
chmod 400 ca.key.pem
chmod 400 mailserver.key

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

Année Universitaire 2016/2017 Page 12


openssl dhparam -out /etc/postfix/dh512.pem 512

Configuration de Postfix pour MySQL


Nano /etc/postfix/mysql-virtual-mailbox-domains.cf

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-mailbox-maps.cf
hosts = 127.0.0.1
user = postfix
password = Azerty@123
dbname = postfix

query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1

nano /etc/postfix/mysql-virtual-alias-maps.cf
hosts = 127.0.0.1
user = postfix
password = Azerty@123
dbname = postfix

query = SELECT goto FROM alias WHERE address='%s' AND active = 1

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
Année Universitaire 2016/2017 Page 13
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
}
mail_uid = 5000
mail_gid = 5000
first_valid_uid = 5000
last_valid_uid = 5000
mail_privileged_group = vmail
mkdir -p /var/mail/vhosts/tc.com
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail
chown -R vmail:vmail /var/mail

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

# Permet de définir l'algorithme de hachage.

Année Universitaire 2016/2017 Page 14


# Pour plus d'information: http://wiki2.dovecot.org/Authentication/PasswordSchemes
# /!\ ATTENTION : ne pas oublier de modifier le paramètre $CONF['encrypt'] de
PostfixAdmin
default_pass_scheme = MD5-CRYPT

# Requête de récupération du mot de passe du compte utilisateur


password_query = SELECT password FROM mailbox WHERE username = '%u'
cd /etc/dovecot
chown -R vmail:dovecot /etc/dovecot
chmod -R o-rwx /etc/dovecot
nano /etc/dovecot/conf.d/10-master.conf
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
service_count = 0
}
service imap {
}
service lmtp {
# On autorise Postfix à transférer les emails dans le spooler de Dovecot via LMTP
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
service auth {
# On autorise Postfix à se connecter à Dovecot via LMTP
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# On indique à Dovecot les permissions du conteneur local
unix_listener auth-userdb {
mode = 0600
user = vmail
group = vmail
}
user = dovecot
}
service auth-worker {

Année Universitaire 2016/2017 Page 15


user = vmail
}
Nano /etc/dovecot/conf.d/10-ssl.conf

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
ssl_prefer_server_ciphers = yes # Dovecot
> 2.2.x
ssl_dh_parameters_length = 2048 # Dovecot > 2.2.x
# On génère le hash correspondant au mot de passe
doveadm pw -s MD5-CRYPT -p MOT_DE_PASSE | sed 's/{MD5-CRYPT}//'

mysql -u root -p

mysql> connect postfix


mysql> UPDATE admin SET password = 'HASH' WHERE username = 'admin@tc.com';

Query OK, 1 row affected (0.00 sec)


Rows matched: 1 Changed: 1 Warnings: 0

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

sudo mysql -u root -p


create database roundcube;
grant all on roundcube.* to 'roundcubeuser'@'localhost' identified by 'Azerty@123';
flush privileges;
quit

sudo cp -R /etc/php5/fpm/php.ini /etc/php5/fpm/php.ini.bak

cgi.fix_pathinfo=0
date.timezone = Asia/Kolkata

sudo php5-fpm restart

Année Universitaire 2016/2017 Page 16


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
wget
http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/1.0.5/roundcubemail-
1.0.5.tar.gz
tar -xf roundcubemail-1.0.5.tar.gz
mv roundcubemail-1.0.5 roundcube
sudo cp -R roundcube /usr/share/nginx
sudo chown -R www-data.root /usr/share/nginx/roundcube

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;

Année Universitaire 2016/2017 Page 17


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;
}
ssl_certificate /etc/ssl/ca.crt;
ssl_certificate_key /etc/ssl/ca.key;
ssl_prefer_server_ciphers On;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers
ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES
:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
}
sudo cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/mail.tc.com
sudo service nginx restart

sudo nano /usr/share/nginx/roundcube/config/config.inc.php


$config['mail_domain'] = '%d';
sudo service nginx restart

Année Universitaire 2016/2017 Page 18


10) SpamAssassin
apt-get install spamassassin spamc

adduser spamd --disabled-login

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

Année Universitaire 2016/2017 Page 19


rewrite_header Subject ***** SPAM _SCORE_ *****
report_safe 0
required_score 5.0
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
skip_rbl_checks 0
use_razor2 0
use_dcc 0
use_pyzor 0

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

Bibliographies

[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

Année Universitaire 2016/2017 Page 20


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

Année Universitaire 2016/2017 Page 21


Année Universitaire 2016/2017 Page 22

Vous aimerez peut-être aussi