WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception et déploiement d?une architecture réseau sécurisée : cas de SUPEMIR

( Télécharger le fichier original )
par Angeline Kone
SUPEMIR - Ingénieur 2011
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy
d. Serveur de mails

La plupart des serveurs de messagerie possèdent ces deux fonctions (envoi/réception), mais elles sont indépendantes et peuvent être dissociées physiquement en utilisant plusieurs serveurs. L'agent de transfert de courriel communément appelé MTA (Mail Transfert Agent), en anglais est un programme qui reçoit et envoie les courriels depuis votre serveur, et par conséquent, en est la pierre angulaire. On distingue plusieurs sortes de MTA dont les plus connus sont : Postfix, Exim4, SendMail, Google Mail, Fetchmail, Mailman Xmail et Zimbra. Pour notre projet, nous avons choisi d'utiliser Postfix. Pour permettre le téléchargement des courriels depuis les postes clients, il est nécessaire de configurer un serveur IMAP ou POP3. Il en existe de nombreux. On a par exemple Dovecot, Cyrus et Courier. Tous les serveurs cités dessus peuvent être installés depuis le dépôt principal, et donc bénéficier des mises à jour de sécurité lorsque cela est nécessaire. Mais celui pour lequel nous avons opté pour ce projet est le serveur Dovecot.

Postfix est un serveur de messagerie électronique et un logiciel libre développé par Wietse Venema et plusieurs contributeurs. Il se charge de la livraison de courriers électroniques ( courriels) et a été conçu comme une alternative plus rapide, plus facile à administrer et plus sécurisée que l'historique Sendmail.

Postfix permet de gérer presque tous les cas d'une utilisation professionnelle, il permet d'éviter bon nombre de spams sans même devoir scanner les contenus de message.

La mise en place de ce serveur passe par plusieurs étapes :

Vérification du nom du serveur

Cette opération se fait à l'ai de la commande hostname de la manière suivante :

Figure 16 : Vérification du nom d'hôte.

Installation des paquets requis

Une mise à jour de la liste des fichiers disponibles dans les dépôts APT présents dans le fichier de configuration /etc/apt/sources.list et une mise à jour de tous les paquets installés sur le système vers les dernières versions sont nécessaires pour la suite. Pour cela nous avons utilisé  les commandes ci-après :

apt-get update

apt-get upgrade

Les paquets postfix, mysql, dovecot et bien d'autres sont installés comme suit :

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server dovecot-common dovecot-imapd dovecot-pop3d postfix libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl telnet mailutils

Lors de cette installation, nous avons configuré dans différentes boîtes de dialogues les paramètres suivants :

Ø Le mot de passe root pour MySQL

Ø Le type de configuration du serveur mail : 'Site internet'

Ø Le nom de domaine pleinement qualifié du système de messagerie : 'labs.supemir.ma'.

Configuration de Mysql pour les domaines et utilisateurs virtuels

Pour ce faire nous nous sommes connectés à la base de données au travers de cette commande :

Figure 17 : Connexion à la base de données.

Nous avons créé la base de données pour notre serveur de messagerie de la manière suivante :

CREATE DATABASE mail;

USE mail;

Après sa création nous nous sommes connectés à elle pour créer les différentes tables qu'elle doit contenir. Nous avons créé un compte administrateur « mail_admin » avec mot de passe pour gérer la base de données des mails, nous lui avons donné les droits adéquats :

Figure 18 : Création d'un utilisateur avec d'c droits.

Nous avons crée les tables :

Ø domains qui contient les domaines virtuels

Ø forwardings qui gère l'acheminement des mails

Ø users qui enregistre les adresses email des utilisateurs

Ø transport

Après ces manipulations, il faut quitter l'invite de commande avec la commande « quit » pour pourvoir continué la configuration.

Il faut vérifier dans le fichier /etc/mysql/my.cnf que Mysql est configuré pour utiliser localhost c'est-à-dire l'adresse IP 127.0.0.1 ; ceci est confirmé par la présence de la ligne « bind-address = 127.0.0.1 » dans le dit fichier. Cette ligne permet à postfix de communiquer avec le serveur de base de données en local.

Il faut redémarrer mysql pour la prise en compte des modifications : service mysql restart .

Configuration de postfix pour utiliser Mysql

Nous avons créé des fichiers de configurations suivants :

Ø /etc/postfix/mysql-virtual_domains.cf pour la gestion du domaine virtuel postfix, ci-dessous son contenu :

user = mail_admin

password = password_admin

dbname = mail

query = SELECT domain AS virtual FROM domains WHERE domain='%s'

hosts = 127.0.0.1

Ø /etc/postfix/mysql-virtual_forwardings.cf pour le transfert postfix, ci-dessous son contenu :

user = mail_admin

password = password_admin

dbname = mail

query = SELECT destination FROM forwardings WHERE source='%s'

hosts = 127.0.0.1

Ø /etc/postfix/mysql-virtual_mailboxes.cf pour les boîtes aux lettres virtuelles, ci-dessous son contenu :

user = mail_admin

password = password_admin

dbname = mail

query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'

hosts = 127.0.0.1

Ø /etc/postfix/mysql-virtual_email2email.cf, ci-dessous son contenu :

user = mail_admin

password = password_admin

dbname = mail

query = SELECT email FROM users WHERE email='%s'

hosts = 127.0.0.1

La valeur de password_admin dans les fichiers ci-dessus est le mot de passe de l'administrateur `mail_admin' que nous avons précédemment créé.

Nous avons attribué des autorisations appropriées au groupe utilisant ces fichiers de configurations ainsi :

chmod o= /etc/postfix/mysql-virtual_*.cf

chgrp postfix /etc/postfix/mysql-virtual_*.cf

Nous avons aussi créé un utilisateur et un groupe pour le traitement des courriers électroniques, ainsi toutes les boîtes aux lettres des utilisateurs sont stockées dans ce répertoire :

Groupadd -g 5000 vmail

Useradd -g vmail -u 5000 vmail -d /home/vmail -m

Pour compléter la suite de la configuration, nous avons exécuté la suite des commandes ci-dessous :

Figure 19 : Suite configuration postfix.

Création d'un certificat SSL pour postfix

Nous avons créé ce certificat avec la commande suivante :

Figure 20 : Création du certificat SSL.

Le certificat créé, nous lui avons attribué les droits nécessaires pour l'utilisation de la clé par cette commande : chmod o = /etc/postfix/smtpd.key

Configuration de saslauthd pour utiliser Mysql

Le saslauthd est le processus démon qui prend en charge l'authentification en texte plein des requêtes des utilisateurs. Il faut créer un répertoire pour saslauthd avec la commande :

mkdir -p /var/spool/postfix/var/run/saslauthd

Ensuite, il faut faire une sauvegarde du fichier /etc/default/saslauthd avec la commande :

cp -a /etc/default/saslauthd/etc/default/saslauthd.bak

Nous avons remplacé son contenu comme suit :

START=yes

DESC="SASL Authentication Daemon"

NAME="saslauthd"

MECHANISMS="pam"

MECH_OPTIONS=""

THREADS=5

OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Il faut aussi crée le fichier /etc/pam.d/smtp avec ce contenu :

auth required pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

account sufficient pam_mysql.so user=mail_admin passwd=mail_admin_password host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

Le dernier fichier à créer est /etc/postfix/sasl/smtp.conf avec ce contenu :

pwcheck_method: saslauthd

mech_list: plain login

allow_plaintext: true

auxprop_plugin: mysql

sql_hostnames: 127.0.0.1

sql_user: mail_admin

sql_passwd: mail_admin_password

sql_database: mail

sql_select: select password from users where email = '%u'

Nous avons donné des permissions et droits adéquats pour l'utilisation de ces fichiers de configuration de la manière suivante :

chmod o= /etc/pam.d/smtp

chmod o= /etc/postfix/sasl/smtpd.conf

Pour que postfix puisse utiliser les services du deomon saslauthd, il faut ajouter l'utilisateur postfix au groupe sasl, puis redémarrer les services pour la prise en compte des configurations faites :

adduser postfix sasl

service postfix restart

service saslauthd restart

Configuration de Dovecat

Nous avons choisi ce serveur IMAP/POP3 pour sa aisance à configurer et son efficacité. Pour configurer Divecot, nous avons édité le fichier /etc/postfix/master.cf et ajouté en fin de ligne :

dovecot unix - n n - - pipe

flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Avant la modification du fichier /etc/dovecot/dovecot.conf de sauvegarde avec cette commande :

cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak

Nous l'avons édité ensuite remplacé son contenu par celui-ci :

protocols = imap imaps pop3 pop3s

log_timestamp = "%Y-%m-%d %H:%M:%S "

mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem

ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {

separator = .

prefix = INBOX.

inbox = yes

}

protocol lda {

log_path = /home/vmail/dovecot-deliver.log

auth_socket_path = /var/run/dovecot/auth-master

postmaster_address = postmaster@labs.supemir.ma

mail_plugins = sieve

global_script_path = /home/vmail/globalsieverc

}

protocol pop3 {

pop3_uidl_format = %08Xu%08Xv

}

auth default {

user = root

passdb sql {

args = /etc/dovecot/dovecot-sql.conf

}

userdb static {

args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes

}

socket listen {

master {

path = /var/run/dovecot/auth-master

mode = 0600

user = vmail

}

client {

path = /var/spool/postfix/private/auth

mode = 0660

user = postfix

group = postfix

}

}

}

Etant donné que Mysql est utilisé pour stocker les mot de passe, nous avons faites une copie de sauvegarde et l'avons ainsi modifié :

driver = mysql

connect = host=127.0.0.1 dbname=mail user=mail_admin password=mail_admin_password

default_pass_scheme = CRYPT

password_query = SELECT email as user, password FROM users WHERE email='%u';

La configuration de dovecot terminées, il faut redémarrer pour se rassurer qu'il fonctionne: service dovecot restart .

Une vérification également dans le fichier /var/log/mail.log est nécessaire en utilisant la commande tail : tail /var/log/mail.log , nous avons obtenu ceci

Figure 21 : Aperçu des fichiers logs.

Avant de tester dovecot, nous avons modifié les permissions sur le fichier /etc/dovecot/dovecot.conf pour permettre à l'utilisateur vmail d'y accéder :

chgrp vmail /etc/dovecot/dovecot.conf

chmod g +r /etc/dovecot/dovecot.conf

Test de connexion au serveur pop

Figure 22 : Test de connexion au serveur POP.

Configuration des alias massagerie

Pour ce faire, nous avons édité le fichier /etc/aliases et l'avons ainsi modifié :

postmaster: root

root: postmaster@labs.supemir.ma

Après avoir modifié ce fichier, un redémarrage de Postfix est requis pour mettre à jour les alias. La configuration de Postfix est complète, nous sommes au test du serveur mail pour être sûr qu'il fonctionne correctement.

Figure 23 : Redémarrage de postfix

Test de Postfix

Pour ce faire, il faut saisir la commande suivante : telnet localhost 25

Etant connecté, il faut saisir cette commande pour continuer le test : ehlo localhost

Nous obtenons ceci :

Figure 24 : Aperçu du test de connexion au serveur.

Pour quitter Postfix, il faut entrer la commande quit.

Configuration des domaines et des utilisateurs

Nous avons dans cette partie, ajouté notre domaine labs.supemir.ma à la table domains et ajouté également un utilisateur nommé test à la table users . Ceci a nécessité une connexion à la base de données comme suit :

mysql -u root -p

USE mail;

INSERT INTO domains (domain) VALUES ('labs.supemir.ma');

INSERT INTO users (email, password) VALUES ('test@labs.supemir.ma', ENCRYPT('password'));

Quit

Pour activer les nouveaux comptes emails, il faut leur envoyer un message afin qu'ils soient accessibles par IMAP ou POP3. Ceci est au fait que les emails des nouveaux utilisateurs ne sont pas créés jusqu'à ce qu'un mail ne leur soit envoyés.

Nous nous sommes servis de mailutils pour envoyer un message à notre nouvel utilisateur test, pour ce faire on tape la commande :

Figure 25 : Envoi de mail.

La combinaison de touche ctrl+D est utilisé pour compléter le message.

Ensuite une vérification des fichiers de log de Dovecot situé dans /var/log/mail.log est requise, nous avons obtenu le message ci-dessous, ce qui signifier que le mail a bien été envoyé :

Figure 26 : Aperçu du fichier mail.log

Enfin une vérification des fichiers de log de Dovecot situé dans /home/vmail/dovecot-deliver.log est requise, nous avons obtenu le message ci-dessous, ce qui signifier que le mail a bien été envoyé :

La configuration de notre serveur mail s'achève ici, mais pour permettre à nos utilisateurs de pouvoir accéder à leur mail en interface graphique nous avons donc à cet effet mis en place un webmail.

Installation de squirrelmail

Un webmail ou messagerie Web, est une interface Web rendant possible l'émission, la consultation et la manipulation de courriers électroniques directement sur le Web depuis un navigateur.

Un logiciel de webmail est un client de messagerie qui s'exécute sur un serveur Web, Il sert d'interface entre un serveur de messagerie et un navigateur web contrairement au client lourd qui permet les mêmes opérations à partir d'un logiciel installé localement sur un ordinateur personnel. Les avantages du webmail pour l'utilisateur sont de ne pas avoir à installer un logiciel spécialisé sur sa ou ses machines, de ne pas avoir à faire la configuration de base pour envoyer et recevoir le courrier et de déporter la responsabilité de la sécurité de l'installation vers le serveur. Les inconvénients de cette solution sont d'être dépendant en performance de la rapidité du réseau, en particulier si le nombre de message est grand ou s'il y a des pièces jointes de taille importante dans les messages.

Nous avons plusieurs sortes de webmail sous la distribution GNU/Linux dont les plus connus sont : Squirrelmail et Roundcube. Dans la suite de notre projet, nous avons utilisé Squirrelmail pour sa facilité de déploiement, sa rapidité et sa configuration assez simple.

Nous avons installé Squirrelmail en saisissant la commande :

apt-get install squirrelmail

Il est fournit avec une interface qui facilite sa configuration. Cette interface est accessible par la commande : squirrelmail-configure

Figure 27 : Interface de configuration de squirrelmail.

Le menu 2 'Server settings' (paramètres du serveur de messagerie) permet de renseigner les paramètres IMAP tels que le nom du serveur, le port utilisé et dans le menu 4 `General options', nous avons activé l'option `Allow server-side sorting' pour permettre le tri des mails côté serveur.

Squirrelmail est livré avec un fichier de configuration apache dans /etc/squirrelmail/apache.conf . Pour permettre l'accès à squirrelmail via un navigateur, nous avons copié ce fichier dans /etc/apache2/sites-available/squirrelmail avec la commande:

cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail

Ensuite nous avons créé un lien vers le répertoire sites-enabled avec la commande :

ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail

Nous avons terminé la configuration, en saisissant en fin la commande : a2ensite squirrelmail

Test d'utilisation

Squirrelmail est accessible à travers cette url http://labs.supemir.ma/squirrelmail et nous obtenons cette interface qi permet à l'utilisateur de s'identifier pour accéder à sa boîtes aux lettres.

Figure 28 : Aperçu de l'interface de connexion à squirrelmail.

En entrant le login test@labs.supemir.ma et le mot de passe de notre utilisateur `test', nous entrons dans la boîte mail et nous apercevons ci-dessous le contenu de sa boîte aux lettres.

Figure 29 : Interface de la boîte aux lettres d'un utilisateur.

Nous avons créé des mails virtuels pours les membres de l'administration et les étudiants par niveau, tous ces utilisateurs peuvent désormais accéder à leurs boîte aux lettres à partir de toutes les machines du réseau local en saisisant l'adresse : http://labs.supemir.com/squirrelmail .

Après la mise en place de notre serveur mail et d'un webmail, nous avons pensé à implémenter une sécurité contre les spams, qui représentent une réelle entrave pour les serveurs mail. C'est ainsi que pour pallier au problème des spams, nous avons d'installer SpamAssassin.

Mise en place de SpamAssassin

Ce logiciel a pour but de filtrer le trafic des courriels pour éradiquer les courriels reconnus comme pourriels ou courriels non sollicités. Face à l'augmentation importante du spam, ce logiciel connaît un engouement important et est adaptable sur de nombreux serveurs de courriels Postfix.

SpamAssassin est un programme (en Perl) qui fait passer un certain nombre de tests au message. En fonction du résultat de ces tests, il attribue un score au message. Si le score dépasse un certain seuil, le courriel est alors considéré comme du Spam. SpamAssassin modifie alors le titre du message (il l'encadre par ** SPAM **). De plus, SpamAssassin positionne deux nouveaux en-têtes au message : X-Spam-Status et X-Spam-Level. Ces deux en-têtes permettent alors de créer des filtres dans votre client de messagerie pour orienter le message (par exemple vers la corbeille). Tous les messages doivent donc passer par SpamAssassin pour être traités, avant d'arriver dans leur dossier définitif. Nous allons donc procéder à l'installation de SpamAssassin. Ubuntu possède par défaut un anti-spam Bogofilter, il est installé et activé par défaut, il faut donc au préalable le désinstaller, cela se fait en ligne de commande ou en passant par la logithèque Ubuntu. Ensuite on peut installer SpamAssassin, en tapant la commande :

apt-get install spamassassin spamc

Nous avons souhaité qu'il ne démarre pas en tant que root, de ce fait nous avons créé un groupe et un utilisateur spamd de la manière suivante :

groupadd spamd

useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd

mkdir /var/log/spamassassin

chown spamd:spamd /var/log/spamassassin

Pour automatiser le demarrage de spamassassin au démarrage du système, nous avons faites la modification suivante dans le fichier /etc/default/spamassassin :

ENABLED=1

SAHOME="/var/log/spamassassin/"

OPTIONS="--create-prefs --max-children 2 --username spamd \-H ${SAHOME} -s ${SAHOME}spamd.log"

-max-children définit le nombre de processus enfant

-username définit le nom d'utilisateur de spamd précédemment créé

-H définit le répertoire de base

-s définit le fichier de log

Ensuite le redémarrage du deamon spamassassin se fait en exécutant la commande : /etc/init.d/spamassassin start .

Pour permettre à spamassassin d'utiliser Postfix, nous avons modifié le fichier /etc/postfix/master.cf en ajoutant cette ligne en début de ce fichier :

smtp inet n - - - - smtpd

-o content_filter=spamassassin

Puis en ajoutant cette autre à la fin du même fichier :

spamassassin unix - n n - - pipe

user=spamd argv=/usr/bin/spamc -f -e

/usr/sbin/sendmail -oi -f ${sender} ${recipient}

Ceci fait, nous avons redémarré, nous avons redémarré Postfix pour charger la modification effectuée.

Il a été important de faire un test pour s'assurer du bon fonctionnement se spamassassin, de cet fait nous avons envoyé des spams volontairement à notre adresse test@labs.supemir.ma et une vérification des fichiers de log nous a donné le resultat ci-dessous qui attest le bon fonctionnement du filtre antispam.

Jul 26 14:56:10 localhost postfix/pipe[12139]: 9CBD5DA4BF: \

to=<test@labs.supemir.ma>, relay=spamassassin, delay=17, status=sent (localhost)

Le serveur srvsupemir4 hébergeant plusieurs services, l'administration, la supervision de tous ces services en ligne de commande s'avère très lourde ; afin faciliter ces tâches d'administration, nous avons installé un logiciel qui prend en charge une vue générale sur tous les services que nous avons installés sur ce serveur. C'est dans ce cadre qu'est intervenu Webmin.

Installation de Webmin

Webmin est un outil permettant d'administrer une machine Linux. Il s'utilise par le biais d'un navigateur web. Webmin est une mine d'or pour les administrateurs réseaux : presque tout peut être configuré avec Webmin.

Nous avons procédé à l'installation de Webmin en ajoutant d'abord sa clé à notre système en tapant :

cd /root

wget http://www.webmin.com/jcameron-key.asc

apt-key add jcameron-key.asc

la modification se fait également dans le fichier /etc/apt/sources.list en ajoutant cette ligne :

deb http://download.webmin.com/download/repository sarge contrib

Ceci fait, l'installation en ligne de commande est donc possible en exéxutant ces commandes :

apt-get update

apt-get install webmin

Pour utiliser Webmin, il faut entrer dans notre navigateur l'adresse https://localhost:10000. Et nous avons l'interface de login :

Figure 30 : Interface de connexion à Webmin.

Après avoir renseigné les champs de login et de mot de passe correctement, nous obtenons le panneau visuel ci-dessous :

Figure 31 : Aperçu de la page d'accueil de Webmin.

Au travers de cette interface, nous avons une visibilité sur l'ensemble des services du système, nous pouvons leur apporter des modifications d'une manière aisée. Il reste à noter que pour des configurations affinées, il serait primordial de faire recourt aux fichiers de configuration afin de faire les modifications manuellement.

Notre serveur est désormais fonctionnel, tout en respectant le cahier de charge qui a été définit.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"I don't believe we shall ever have a good money again before we take the thing out of the hand of governments. We can't take it violently, out of the hands of governments, all we can do is by some sly roundabout way introduce something that they can't stop ..."   Friedrich Hayek (1899-1992) en 1984