Académique Documents
Professionnel Documents
Culture Documents
RAPPORT DE PROJET :
Licence de Cybersecurity, 3eme année
Réalisé par :
Yamar THIOUNE
Encadré par :
Mr. Lo
• Objectifs du projet
• Contexte et justification
• Méthodologie de configuration
I. Configuration de base du serveur Debian 12
1. Installation du système d'exploitation
2. Configuration réseau
3. Mise à jour du système
4. Installation des outils de base (SSH, etc.)
II. Service DNS (Domain Name System)
1. Installation et configuration de BIND9
2. Configuration des zones de recherche directe et inverse
3. Vérification du fonctionnement du service DNS
III. Service DHCP (Dynamic Host Configuration Protocol)
1. Installation et configuration de DHCPD
2. Configuration des plages d'adresses IP et des options
IV. Base de données MariaDB
1. Installation de MariaDB Server
2. Création de bases de données et d'utilisateurs
V. Serveur web Apache 2
1. Installation et configuration d'Apache 2
2. Configuration SSL
VI. Service de messagerie (Postfix et Dovecot)
1. Installation et configuration de Postfix pour le transfert de courrier
2. Configuration de Dovecot pour l'accès au courrier
VII. Service d'annuaire LDAP (Lightweight Directory Access Protocol)
1. Installation et configuration d'OpenLDAP
2. Création de schémas et d'attributs personnalisés
VIII. Client de messagerie web (Roundcube)
1. Installation et configuration de Roundcube
2. Connexion à la base de données MariaDB
3. Configuration de l'authentification LDAP
Conclusion
Introduction:
Ce rapport présente la configuration d'un serveur Debian 12, mettant en œuvre une
gamme de services essentiels pour répondre aux besoins d'une infrastructure
informatique moderne. Ces services incluent le DNS, le DHCP, MariaDB, Apache 2, Postfix,
Dovecot, LDAP et Roundcube. L'objectif est de déployer un serveur robuste et polyvalent,
offrant des fonctionnalités telles que la résolution de noms de domaine, l'attribution
dynamique des adresses IP, le stockage de données, l'hébergement web, la gestion des e-
mails, la centralisation des informations d'authentification et l'accès convivial aux boîtes
aux lettres électroniques via une interface web. Ce rapport détaille les étapes de
configuration de chaque service, mettant l'accent sur la sécurité, la performance et la
facilité d'utilisation, afin de fournir un guide complet pour la mise en place d'un
environnement serveur fonctionnel.
apt update
apt -y upgrade
/etc/ssh/sshd_config
# ligne 33 : décommenter et remplacer par [no]
PermitRootConnexion No
• Installation de bind9 :
Ce fichier de configuration est utilisé par le serveur DNS BIND (Berkeley Internet Name
Domain) pour définir les zones de domaine et leurs paramètres associés. Voici ce que
chaque section de ce fichier signifie :
a. zone "yamar.sn" IN { ... }: Cette section définit une zone de domaine pour le
domaine "yamar.sn". Voici ce que signifient les paramètres :
• type master;: Indique que ce serveur BIND est le serveur maître pour cette
zone de domaine.
• file "/etc/bind/ymrdirect";: Spécifie le chemin du fichier de zone qui
contient les enregistrements de cette zone de domaine. Dans ce cas, le
fichier de zone est situé à "/etc/bind/ymrdirect".
• allow-update { none; };: Indique que les mises à jour dynamiques de cette
zone de domaine ne sont pas autorisées. Cela signifie que les
enregistrements dans cette zone doivent être modifiés manuellement dans
le fichier de zone.
b. zone "0.0.10.in-addr.arpa" IN { ... }: Cette section définit une zone de domaine
pour la résolution inverse de l'adresse IP "10.0.0.0". Voici ce que signifient les
paramètres :
• file "/etc/bind/ymrreverse";: Spécifie le chemin du fichier de zone qui
contient les enregistrements de cette zone de domaine. Dans ce cas, le
fichier de zone est situé à "/etc/bind/ymrreverse".
Ces configurations permettent au serveur BIND de répondre aux requêtes DNS pour le
domaine "yamar.sn" et de gérer la résolution inverse pour l'adresse IP "10.0.0.0".
a. $TTL 86400: Définit la durée de vie par défaut (Time-To-Live) des enregistrements
dans cette zone, en secondes. Dans ce cas, la durée de vie est de 86400 secondes,
ce qui équivaut à 24 heures.
• 86400: TTL minimum, spécifie le TTL par défaut pour les enregistrements
dans la zone.
f. Les lignes suivantes définissent les enregistrements d'hôtes pour les noms de
domaine debian.yamar.sn, www.yamar.sn et mail.yamar.sn, associant chacun à une
adresse IP spécifique.
Ce fichier de zone est utilisé pour résoudre les requêtes DNS concernant les hôtes
du domaine "yamar.sn" vers leurs adresses IP correspondantes.
Ces enregistrements permettent la résolution inverse des adresses IP vers les noms
de domaine associés dans le domaine "yamar.sn".
• Le statut de réponse est "NOERROR", ce qui indique qu'il n'y a pas eu d'erreur lors
du traitement de la requête.
• Le temps de vie (TTL) de cet enregistrement PTR est de 86400 secondes (24 heures).
• La réponse a été obtenue à partir du serveur DNS local qui est également le serveur
autoritaire pour la zone inversée correspondante (10.0.0.30#53).
En résumé, la résolution inverse de l'adresse IP 10.0.0.30 vers le nom de domaine
"debian.yamar.sn" a été réussie.
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
# ligne 17 : spécifiez l'interface à écouter (remplacez-la par votre environnement)
INTERFACESv4="ens33"
a. option domain-name "yamar.sn";: Définit le nom de domaine par défaut pour les
clients DHCP sur le réseau comme "yamar.sn".
f. authoritative;: Indique que ce serveur DHCP est l'autorité sur le réseau pour les
adresses IP qu'il attribue.
C. Redémarrer le service
systemctl restart isc-dhcp-server
Apache HTTP Server, souvent appelé Apache, est un serveur web open-source largement
utilisé dans le monde entier. Il est développé et maintenu par la Apache Software
Foundation. Voici quelques-unes des principales caractéristiques d'Apache2 et son rôle :
o Serveur Web : Apache2 fonctionne comme un serveur web, ce qui signifie qu'il
reçoit les requêtes HTTP des clients (navigateurs web) et fournit les réponses
correspondantes, généralement des pages web, des images, des fichiers, etc.
o Open-source : Apache2 est distribué sous licence open-source, ce qui signifie qu'il
est disponible gratuitement pour une utilisation et une distribution libre. Cela
favorise sa large adoption et sa contribution par la communauté.
o Extensibilité : Apache2 est hautement extensible grâce à son architecture
modulaire. Il prend en charge l'utilisation de modules tiers pour étendre ses
fonctionnalités de base. Ces modules peuvent être utilisés pour ajouter des
fonctionnalités telles que la gestion de contenu dynamique, la sécurisation des
connexions, la compression de contenu, etc.
o Plateforme multi-plateforme : Apache2 est conçu pour fonctionner sur plusieurs
plates-formes, y compris les systèmes d'exploitation Linux, Unix, Windows, et
d'autres.
o Sécurité : Apache2 offre diverses fonctionnalités de sécurité pour protéger les
serveurs web contre les attaques, y compris la prise en charge du protocole HTTPS
(HTTP sécurisé) via SSL/TLS, la gestion des autorisations d'accès aux fichiers et aux
répertoires, et la prévention des attaques par déni de service (DoS) grâce à la
configuration appropriée.
o Fiabilité et performance : Apache2 est réputé pour sa fiabilité et ses bonnes
performances, ce qui en fait un choix populaire pour les sites web à fort trafic. Il est
capable de gérer de nombreuses requêtes simultanées et offre des options de
configuration avancées pour optimiser ses performances.
En résumé, Apache2 est un serveur web flexible, fiable et extensible, largement utilisé pour
héberger des sites web et des applications web sur Internet. Son rôle principal est de
répondre aux requêtes HTTP des clients et de fournir des ressources web de manière
sécurisée et efficace.
# line 12 : change
ServerTokens
Prod
root@www:~#
vi /etc/apache2/mods-enabled/dir.conf
# add file name that it can access only with directory's name
DirectoryIndex
index.html index.htm
root@www:~#
vi /etc/apache2/apache2.conf
# line 70 : add to specify server name
ServerName www.yamar.sn
root@www:~#
vi /etc/apache2/sites-enabled/000-default.conf
# line 11 : change to webmaster's email
ServerAdmin webmaster@yamar.sn
2. Configuration SSL
A. Génération de certificats :
a. Génèration de clé privée chiffrée :
openssl genrsa -aes128 2048 > server.key
b. Création de demande de signature de certificat :
openssl req -utf8 -new -key server.key -out server.csr
c. Signature de la demande :
openssl x509 -in server.csr -out server.crt -req -signkey server.key -extfile /et
c/ssl/openssl.cnf -extensions srv.world -days 3650
d. Modification des permissions:
chmod 600 server.key
ServerAdmin webmaster@yamar.sn
# line 31,32 : change to the certs gotten in section [1]
SSLCertificateFile /etc/ssl/private/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key
1. Postfix :
Postfix est un serveur de transfert de courrier (MTA - Mail Transfer Agent) open source
largement utilisé. Il est conçu pour router et livrer des e-mails sur des systèmes de
messagerie.
Le rôle principal de Postfix est de recevoir, router et transmettre des e-mails entre les
utilisateurs sur Internet. Il gère les protocoles de transfert de courrier tels que SMTP
(Simple Mail Transfer Protocol) pour la réception et la transmission des e-mails. Postfix est
généralement installé sur le serveur qui gère les e-mails entrants et sortants pour un
domaine spécifique.
2. Dovecot :
Dovecot est un logiciel serveur de messagerie électronique open source qui fournit des
services d'accès aux e-mails pour les utilisateurs finaux. Il est principalement utilisé pour
la gestion des boîtes aux lettres électroniques.
Dovecot agit en tant que serveur IMAP (Internet Message Access Protocol) et POP3 (Post
Office Protocol version 3). Son rôle est de stocker et de récupérer les e-mails des boîtes
aux lettres des utilisateurs, leur permettant ainsi d'accéder à leurs messages électroniques
à partir de clients de messagerie sur différents appareils. Dovecot assure également la
sécurité des connexions en offrant la prise en charge des protocoles SSL/TLS pour le
chiffrement des données lors de la transmission.
En résumé, Postfix est responsable du transfert des e-mails entre les serveurs, tandis que
Dovecot offre un accès sécurisé aux e-mails stockés sur le serveur pour les utilisateurs
finaux. Ensemble, ils forment une infrastructure de messagerie électronique complète.
1. Installation et configuration de Postfix pour le transfert de courrier :
A. Installation : apt -y installer postfix sasl2-bin
# line 82 : uncomment
mail_owner = postfix
# SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination, permit
_sasl_authenticated, reject
a. mail_owner = postfix :
• Cette ligne définit l'utilisateur propriétaire des processus de Postfix. Dans ce cas, il est défini
comme "postfix".
b. myhostname = yamar.sn :
• Cette ligne spécifie le nom d'hôte du serveur. Ici, il est défini comme "yamar.sn".
c. mydomain = yamar.sn :
• Cette ligne spécifie le nom de domaine du serveur. Ici, il est également défini comme
"yamar.sn".
d. myorigin = $mydomain :
• Cette ligne spécifie l'origine par défaut pour les e-mails envoyés depuis le serveur. Dans ce
cas, il est défini comme le domaine spécifié précédemment.
e. inet_interfaces = all :
• Cette ligne spécifie les interfaces réseau sur lesquelles le serveur Postfix écoute les
connexions entrantes. En définissant "all", il écoute sur toutes les interfaces.
f. mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain :
• Cette ligne spécifie les destinations locales pour les e-mails. Les e-mails destinés à ces
domaines seront remis localement.
g. local_recipient_maps = unix:passwd.byname $alias_maps :
• Cette ligne spécifie la méthode utilisée pour déterminer les destinataires locaux des e-mails.
h. mynetworks = 127.0.0.0/8, 10.0.0.0/24 :
• Cette ligne spécifie les réseaux qui sont autorisés à envoyer des e-mails via ce serveur.
i. alias_maps = hash:/etc/aliases et alias_database = hash:/etc/aliases :
• Ces lignes spécifient les bases de données d'alias utilisées pour la résolution des alias d'e-
mails.
j. home_mailbox = Maildir/ :
• Cette ligne spécifie le répertoire où les boîtes aux lettres des utilisateurs seront stockées.
k. smtpd_banner = $myhostname ESMTP :
• Cette ligne définit le message de bannière envoyé par le serveur lorsqu'une connexion
SMTP est établie.
l. inet_protocols = ipv4 :
• Cette ligne spécifie le protocole Internet utilisé pour les connexions. Dans ce cas, seule IPv4
est activée.
root@debian:~# newaliases
La commande newaliases est utilisée pour reconstruire la base de données des alias utilisée par le
serveur de messagerie.
Redemarrage du service : root@debian:~# systemctl restart postfix
listen = *, ::
root@debian:~# vim /etc/dovecot/conf.d/10-auth.conf
# line 10 : uncomment and change (allow plain text auth)
disable_plaintext_auth =
no
# line 100 : add
auth_mechanisms = plain
login
root@debian:~# vim /etc/dovecot/conf.d/10-mail.conf
# line 30 : change to Maildir
mail_location =
maildir:~/Maildir
root@debian:~# vim /etc/dovecot/conf.d/10-master.conf
# line 107-109 : uncomment and add
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
a. dovecot.conf:
• Ligne 30 : Décommentée la directive listen = *, :: pour permettre à Dovecot
d'écouter sur toutes les interfaces réseau IPv4 et IPv6 disponibles.
b. 10-auth.conf:
• Ligne 10 : Décommentée et modifiée disable_plaintext_auth = no pour permettre
l'authentification en texte clair, nécessaire pour certaines méthodes
d'authentification.
• Ajout de auth_mechanisms = plain login pour spécifier les mécanismes
d'authentification pris en charge.
c. 10-mail.conf:
• Ligne 30 : Modifiée mail_location = maildir:~/Maildir pour définir l'emplacement
des boîtes aux lettres des utilisateurs au format Maildir.
d. 10-master.conf:
• Lignes 107-109 : Décommentées et ajoutées pour configurer Dovecot pour
communiquer avec le serveur de messagerie Postfix via un socket Unix.
Ces modifications ont été apportées pour permettre l'authentification des utilisateurs,
définir l'emplacement des boîtes aux lettres et faciliter la communication avec le serveur
de messagerie Postfix. Ces ajustements sont destinés à optimiser et sécuriser le
fonctionnement de Dovecot dans l'environnement spécifié.
4. Ajout d’utilisateurs et Test :
A. Installation du client de messagerie : apt -y install mailutils
B. Definition des variables d'environnement pour utiliser Maildir : echo 'export
MAIL=$HOME/Maildir/' >> /etc/profile.d/mail.sh
C. Ajout d’un utilisateur : adduser mailowner
D. Test mail en local :
Ces instructions visent à établir un environnement de messagerie sur un système Linux. Tout
d'abord, le client de messagerie Mailutils est installé via la commande "apt -y install mailutils".
Ensuite, les variables d'environnement sont configurées pour utiliser le format de stockage Maildir
en définissant l'emplacement du répertoire Maildir dans le fichier "/etc/profile.d/mail.sh". Enfin, un
nouvel utilisateur, "mailowner", est ajouté au système à l'aide de la commande "adduser
mailowner", ce qui facilite la gestion des e-mails. Ces étapes fournissent une base pour l'envoi, la
réception et la gestion des e-mails sur le système Linux.
VII. Service d'annuaire LDAP (Lightweight Directory Access
Protocol)
# confirm settings
C. Ajout de noms de bases pour les utilisateurs et les groupes : vim base.ldif
Ce script LDIF (LDAP Data Interchange Format) crée deux nouvelles unités
organisationnelles (UO) dans l'annuaire LDAP avec le suffixe dc=yamar,dc=sn. Voici une
explication brève de cette configuration pour un rapport :
a. Création des UO :
A. ou=personnes,dc=yamar,dc=sn : Cette UO est destinée à stocker des entrées pour des
personnes ou des utilisateurs dans l'annuaire LDAP.
B. ou=groups,dc=yamar,dc=sn : Cette UO est destinée à stocker des entrées pour des groupes
d'utilisateurs dans l'annuaire LDAP.
b. Attributs des UO :
A. Chaque UO utilise l'objet organizationalUnit, indiquant qu'il s'agit d'une unité
organisationnelle.
B. Le champ ou indique le nom de l'unité organisationnelle.
c. Ajout dans l'annuaire LDAP :
A. La commande ldapadd est utilisée pour ajouter les entrées définies dans le fichier LDIF à
l'annuaire LDAP.
B. L'option -x spécifie une authentification simple.
C. L'option -D cn=admin,dc=yamar,dc=sn spécifie le DN (Distinguished Name) de l'utilisateur
admin qui effectue l'opération.
D. L'option -W demande à l'utilisateur de saisir le mot de passe LDAP de l'utilisateur admin.
E. L'option -f base.ldif indique le fichier LDIF contenant les entrées à ajouter.
d. Résultats :
A. Lorsque la commande est exécutée avec succès, le système affiche un message confirmant
l'ajout de chaque entrée dans l'annuaire LDAP.
Cette configuration établit une structure de base pour l'annuaire LDAP, en créant des
unités organisationnelles pour stocker des utilisateurs et des groupes. Cela peut servir de
fondation pour la gestion des identités au sein d'une organisation, permettant de stocker
des informations sur les utilisateurs et les groupes, facilitant ainsi l'authentification et
l'autorisation dans divers systèmes et applications.
2. Ajout d’utilisateurs
A. Generation de mot de passe crypte : slappasswd
B. Definition des users et des groupes : vim ldapuser.ldif
Ce fichier LDIF définit des utilisateurs et des groupes dans un annuaire LDAP avec les attributs
appropriés pour les propriétés des utilisateurs (comme le nom, le mot de passe, etc.) et des
groupes (comme le nom et les membres du groupe). Cette configuration peut être utilisée pour
gérer les utilisateurs et les groupes au sein d'un système LDAP, facilitant ainsi l'authentification et
l'autorisation des utilisateurs dans un environnement informatique.
C. Accès client : https://yamar.sn/lam
VIII. Client de messagerie web (Roundcube)
Roundcube est une application de messagerie web basée sur PHP et JavaScript, conçue
pour être installée sur un serveur web. Elle offre une interface utilisateur intuitive et
moderne pour accéder aux boîtes aux lettres électroniques et gérer les e-mails.
Le rôle principal de Roundcube est de fournir aux utilisateurs une interface web conviviale
pour accéder à leurs e-mails à partir de n'importe quel navigateur web. Avec Roundcube,
les utilisateurs peuvent lire, envoyer, répondre et organiser leurs e-mails de manière
efficace et intuitive.
1. Installation et configuration de Roundcube
A. Installation : apt -y install roundcube roundcube-mysql
B. Configuration :
$config['imap_host'] = ["yamar.sn:143"];
// line 31 : specify SMTP server (STARTTLS setting)
$config['smtp_host'] = 'yamar.sn:25';
// line 35 : change (use the same user for SMTP auth and IMAP auth)
$config['smtp_user'] = '%u';
// line 39 : change (use the same password for SMTP auth and IMAP auth)
$config['smtp_pass'] = '%p';
// line 46 : change to any title you like
// specify UserAgent
$config['useragent'] = 'YAMAR.sn Webmail';
2. Connexion a la base
root@debian:~# cd /usr/share/dbconfig-common/data/roundcube/install
root@debian:/usr/share/dbconfig-common/data/roundcube/install#
mysql -u root -D roundcube -p < mysql
Enter password: # MariaDB roundcube password
root@debian:/usr/share/dbconfig-common/data/roundcube/install# cd
root@debian:~# vim /etc/roundcube/debian-db.php
vim /etc/roundcube/config.inc
Puis ajouter à la fin
Conclusion
Dans le cadre de ce projet, nous avons mis en place une infrastructure de serveur Debian
12 complète, en configurant différents services essentiels pour répondre aux besoins de
notre environnement. L'objectif principal était de créer un environnement fonctionnel et
sécurisé, capable de fournir des services de base tels que DNS, DHCP, serveur web,
messagerie et annuaire LDAP.
Grâce à une méthodologie de configuration étape par étape, nous avons réussi à installer
et configurer chaque service de manière rigoureuse, en suivant les meilleures pratiques et
en garantissant la cohérence et la stabilité de l'ensemble de l'infrastructure.
Nous avons commencé par la configuration de base du serveur Debian 12, en installant le
système d'exploitation, en configurant le réseau, en mettant à jour le système et en
installant les outils de base nécessaires. Ensuite, nous avons mis en place un serveur DNS
avec BIND9, suivi de la configuration d'un serveur DHCP avec DHCPD pour la gestion
dynamique des adresses IP.
La base de données MariaDB a été déployée pour assurer la gestion efficace des données,
tandis qu'Apache 2 a été configuré comme serveur web avec prise en charge SSL pour
sécuriser les communications. Le service de messagerie a été mis en place avec Postfix
pour le transfert de courrier et Dovecot pour l'accès aux courriers électroniques.
Enfin, nous avons configuré un annuaire LDAP pour centraliser la gestion des utilisateurs,
et un client de messagerie web Roundcube pour permettre aux utilisateurs d'accéder
facilement à leurs e-mails via une interface web conviviale.