Vous êtes sur la page 1sur 31

INSTITUT SUPERIEUR D’INFORMATIQUE

RAPPORT DE PROJET :
Licence de Cybersecurity, 3eme année

Réalisé par :

Yamar THIOUNE

CONFIGURATION SERVERUR DEBIAN


(DNS, DHCP, Apache2, MariaDb, Postfix, Dovecot, LDAP, Roundcube)

Encadré par :

Mr. Lo

Année Universitaire 2023-2024


Table de matières
Introduction

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

I. Configuration de base du serveur Debian 12

1. Installation du système d'exploitation :


• Téléchargez l'image ISO de Debian 12 depuis le site officiel :
http://cdimage.debian.org/debian-cd/
• Dans VMware, créez une nouvelle machine virtuelle et configurez-la pour
utiliser l'image ISO téléchargée comme support d'installation.
• Suivez les instructions du programme d'installation pour sélectionner les
options de langue, de fuseau horaire et de partitionnement du disque.
Choisissez d'installer le système de base sans environnement de bureau.
2. Configuration réseau :
• Une fois l'installation terminée, connectez-vous en tant qu'administrateur
(root).
• Ouvrez le fichier de configuration réseau /etc/network/interfaces avec un
éditeur de texte tel que Nano ou Vim.
• Ajoutez les lignes suivantes pour configurer l'interface réseau eth0 avec une
adresse IP statique :
• Enregistrez et fermez le fichier, puis redémarrez le service réseau :

systemctl restart networking

3. Mise à jour du système :


• Mettez à jour la liste des paquets disponibles avec la commande :

apt update

• Mettez à jour tous les paquets installés avec la commande :

apt -y upgrade

•Acceptez les modifications proposées par le gestionnaire de paquets en


appuyant sur 'Y' et en appuyant sur Entrée.
4. Installation des outils de base :
• Installez le serveur SSH pour la gestion à distance :

apt -y install openssh-server

/etc/ssh/sshd_config
# ligne 33 : décommenter et remplacer par [no]

PermitRootConnexion No

systemctl restart ssh

II. Service DNS (Domain Name System)

Le DNS (Domain Name System) est un système de noms de domaine hiérarchique et


distribué utilisé pour traduire les noms de domaine conviviaux en adresses IP numériques
et vice versa. Il joue un rôle essentiel dans l'Internet moderne en permettant aux
utilisateurs d'accéder aux ressources en ligne en utilisant des noms de domaine faciles à
retenir plutôt que des adresses IP complexes.

Rôle du DNS Le DNS remplit plusieurs fonctions vitales, notamment :

o Résolution de Noms : Il convertit les noms de domaine en adresses IP, permettant


ainsi aux utilisateurs d'accéder à des sites Web, des services et des ressources en
ligne en utilisant des noms conviviaux.
o Résolution Inverse : Il permet de rechercher le nom de domaine associé à une
adresse IP donnée, facilitant ainsi l'identification des hôtes sur le réseau.
o Distribution de Charge : Il peut être utilisé pour répartir la charge du trafic sur
plusieurs serveurs en associant un même nom de domaine à plusieurs adresses IP
(enregistrements de type A).
o Messagerie : Il permet la localisation des serveurs de messagerie en spécifiant les
enregistrements MX (Mail Exchanger) pour les domaines.
1. Installation et configuration de BIND9

• Installation de bind9 :

apt -y installer bind9 bind9utils

• Configuration de bind9 : vim /etc/bind/named.conf.internal-zones

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".

2. Configuration des zones de recherche directe et inverse

A. Fichier direct : vim /etc/bind/ymrdirect

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.

b. @ IN SOA debian.yamar.sn. root.debian.yamar.sn. (...): Cet enregistrement SOA


(Start of Authority) définit des informations sur la zone elle-même, y compris le
nom du serveur primaire (debian.yamar.sn) et l'adresse e-mail de l'administrateur
(root.debian.yamar.sn). Les valeurs suivantes sont spécifiées :

• 2023061501: Numéro de série, utilisé pour suivre les changements dans la


zone. Il est recommandé d'utiliser un format de date suivi d'un numéro
incrémentiel.

• 3600: Intervalle de rafraîchissement, spécifie combien de temps un serveur


esclave doit attendre avant de vérifier si la zone a été modifiée sur le serveur
maître.

• 1800: Intervalle de réessai, spécifie combien de temps un serveur esclave


doit attendre avant de tenter à nouveau de contacter le serveur maître s'il
ne peut pas le contacter lors d'une tentative précédente.

• 604800: Délai d'expiration, spécifie combien de temps un serveur esclave


doit conserver les données de la zone avant de les considérer comme
expirées.

• 86400: TTL minimum, spécifie le TTL par défaut pour les enregistrements
dans la zone.

c. IN NS debian.yamar.sn.: Définit le serveur de noms (Name Server) pour la zone.

d. IN A 10.0.0.30: Associe l'adresse IP 10.0.0.30 au nom de domaine debian.yamar.sn.

e. IN MX 10 debian.yamar.sn.: Définit le serveur de messagerie (Mail Exchanger


Server) pour le domaine, avec une priorité de 10 et le nom du serveur de
messagerie debian.yamar.sn.

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.

B. Fichier inverse : vim /etc/bind/ymrreverse


a. IN NS debian.yamar.sn.: Définit le serveur de noms (Name Server) pour la zone.

b. Les lignes suivantes définissent les enregistrements de résolution inverse (PTR)


associant chaque adresse IP à un nom de domaine :

• 30 IN PTR debian.yamar.sn.: Associe l'adresse IP 10.0.0.30 au nom de


domaine debian.yamar.sn.

• 31 IN PTR www.yamar.sn.: Associe l'adresse IP 10.0.0.31 au nom de


domaine www.yamar.sn.

• 32 IN PTR mail.yamar.sn.: Associe l'adresse IP 10.0.0.32 au nom de


domaine mail.yamar.sn.

Ces enregistrements permettent la résolution inverse des adresses IP vers les noms
de domaine associés dans le domaine "yamar.sn".

3. Vérification du fonctionnement du service DNS


A. Redémarrez BIND pour appliquer les modifications :
systemctl restart named

B. Vérifiez la résolution du nom et de l’adresse


dig -x 10.0.0.30

La réponse du serveur DNS à la requête de résolution inverse pour l'adresse IP 10.0.0.30


montre que le nom de domaine associé est "debian.yamar.sn". Voici une analyse de la
réponse :

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

• Dans la section de réponse (ANSWER SECTION), il y a un enregistrement PTR


(Pointer Record) qui associe l'adresse IP 10.0.0.30 au nom de domaine
"debian.yamar.sn".

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

III. Service DHCP (Dynamic Host Configuration Protocol)


Le DHCP (Dynamic Host Configuration Protocol) est un protocole réseau largement utilisé
pour automatiser la configuration des paramètres réseau sur les périphériques clients, tels
que les ordinateurs, les téléphones, les imprimantes, etc. Son rôle principal est de fournir
une configuration IP dynamique à ces périphériques, ce qui simplifie grandement la
gestion des réseaux.

Voici quelques-uns des rôles principaux du DHCP :

1. Attribution dynamique des adresses IP : Le DHCP attribue automatiquement des


adresses IP aux périphériques du réseau, ce qui évite les conflits d'adresses IP et
simplifie la gestion des adresses.
2. Attribution d'autres paramètres réseau : Outre les adresses IP, le DHCP peut
également fournir d'autres informations réseau aux périphériques, telles que les
adresses de passerelle par défaut, les adresses des serveurs DNS, les serveurs de
temps, etc.
3. Gestion centralisée : Le DHCP permet une gestion centralisée de la configuration
réseau. Au lieu de configurer manuellement chaque périphérique, un
administrateur réseau peut configurer les paramètres DHCP sur un serveur DHCP
centralisé, qui distribuera ensuite ces paramètres aux périphériques sur demande.
4. Réduction des erreurs de configuration : En automatisant la configuration des
paramètres réseau, le DHCP réduit les erreurs de configuration humaine, ce qui
contribue à la stabilité et à la fiabilité du réseau.
5. Optimisation de l'utilisation des adresses IP : Le DHCP alloue des adresses IP de
manière dynamique en fonction des besoins actuels du réseau. Lorsqu'un
périphérique n'a plus besoin d'une adresse IP, elle est libérée et peut être réutilisée
par un autre périphérique.

En résumé, le DHCP simplifie la gestion des réseaux en automatisant la configuration des


paramètres réseau des périphériques, ce qui permet un déploiement rapide, une gestion
centralisée et une utilisation efficace des ressources d'adressage IP.
1. Installation et configuration de DHCPD
apt -y installer le serveur isc-dhcp
2. Configuration des plages d'adresses IP et des options :
A. Interface : vim /etc/default/isc-dhcp-server
# ligne 4 : décommenter

DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
# ligne 17 : spécifiez l'interface à écouter (remplacez-la par votre environnement)

INTERFACESv4="ens33"

B. Configuration : vim /etc/dhcp/dhcpd.conf

Ce fichier de configuration est utilisé pour configurer un serveur DHCP (Dynamic


Host Configuration Protocol) sur un réseau. Voici une explication de chaque section :

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".

b. option domain-name-servers debian.yamar.sn;: Définit le serveur DNS par


défaut pour les clients DHCP sur le réseau comme "debian.yamar.sn".
c. default-lease-time 600;: Spécifie la durée de location par défaut pour les adresses
IP attribuées aux clients DHCP. Dans ce cas, la durée de location par défaut est de
600 secondes (10 minutes).

d. max-lease-time 7200;: Spécifie la durée de location maximale pour les adresses IP


attribuées aux clients DHCP. Dans ce cas, la durée de location maximale est de 7200
secondes (2 heures).

e. ddns-update-style none;: Désactive les mises à jour dynamiques DNS. Cela


signifie que le serveur DHCP ne mettra pas à jour les enregistrements DNS
dynamiquement.

f. authoritative;: Indique que ce serveur DHCP est l'autorité sur le réseau pour les
adresses IP qu'il attribue.

g. subnet 10.0.0.0 netmask 255.255.255.0 { ... }: Définit les paramètres de


configuration pour le sous-réseau spécifié. Dans ce cas, le sous-réseau est
10.0.0.0/24.

• range 10.0.0.100 10.0.0.200;: Spécifie la plage d'adresses IP disponibles


pour attribution aux clients DHCP. Dans ce cas, les adresses IP de 10.0.0.100
à 10.0.0.200 peuvent être attribuées.

• option routers 10.0.0.30;: Définit l'adresse IP du routeur par défaut pour


les clients DHCP sur ce sous-réseau comme 10.0.0.30.

• option subnet-mask 255.255.255.0;: Définit le masque de sous-réseau


pour ce sous-réseau comme 255.255.255.0.

• option broadcast-address 10.0.0.255;: Définit l'adresse de diffusion pour


ce sous-réseau comme 10.0.0.255.

• default-lease-time 600; et max-lease-time 7200;: Redéfinit la durée de


location par défaut et maximale pour ce sous-réseau, bien que ces
paramètres aient déjà été définis précédemment.

C. Redémarrer le service
systemctl restart isc-dhcp-server

IV. Base de données MariaDB


MariaDB est un système de gestion de base de données relationnelle (SGBDR) open source qui
est une version améliorée, compatible avec MySQL. Son rôle principal est de stocker, organiser et
gérer des données de manière structurée, ce qui permet aux utilisateurs de stocker, accéder et
manipuler ces données de manière efficace et sécurisée. MariaDB est largement utilisé dans les
applications web, les systèmes d'entreprise et d'autres environnements où la gestion des données
est essentielle. Il fournit un ensemble complet de fonctionnalités de base de données, y compris
la prise en charge des transactions ACID, des index, des clés étrangères, des déclencheurs, des
procédures stockées, etc.
1. Installation de MariaDB Server
A. Installation : apt -y installer le serveur mariadb
B. Parametres initiaux : mysql_secure_installation

La commande mysql_secure_installation est une commande utilisée pour sécuriser une


installation de MySQL en effectuant plusieurs tâches essentielles pour renforcer la sécurité
du serveur MySQL. Voici les paramètres initiaux généralement proposés par cette
commande :

a. Configurer le mot de passe du super utilisateur (root) : Lors de l'installation de


MySQL, aucun mot de passe n'est défini pour le compte root par défaut. La
première étape consiste donc à définir un mot de passe sécurisé pour le compte
root.
b. Supprimer les comptes d'utilisateurs anonymes : Par défaut, MySQL peut
autoriser l'accès anonyme sans mot de passe à certaines bases de données. Cette
étape supprime ces comptes, ce qui renforce la sécurité du serveur.
c. Interdire la connexion à distance en tant que root : Il est recommandé de
n'autoriser les connexions à distance en tant que super utilisateur (root) que
lorsque c'est absolument nécessaire. Cette étape modifie les paramètres de
configuration de MySQL pour empêcher la connexion à distance en tant que root.
d. Supprimer la base de données de test et y accès : MySQL installe une base de
données de test par défaut, qui n'est généralement pas nécessaire dans un
environnement de production. Cette étape supprime la base de données de test et
révoque les privilèges d'accès à cette base de données.
e. Recharger les privilèges : Après avoir apporté des modifications aux autorisations
d'accès et aux comptes d'utilisateurs, il est nécessaire de recharger les privilèges
pour que les modifications prennent effet immédiatement.

2. Création de bases de données et d'utilisateurs : mysql

MariaDB [(none)]> create database mydatabase;


Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> use mydatabase;


# create test table on test database
MariaDB [(none)]> create table user (id int, name varchar(50), address varchar(50
), primary key (id));
Query OK, 0 rows affected (0.108 sec)

# insert data to test table


MariaDB [(none)]> insert into user(id, name, address) values("001", "Yamar", "Dak
ar");
Query OK, 1 row affected (0.036 sec)

# show test table


MariaDB [(none)]> select * from user;
+----+--------+-----------+
| id | name | address |
+----+--------+-----------+
| 1 | Yamar | Dakar |
+----+--------+-----------+
1 row in set (0.000 sec)

MariaDB [(none)]> exit

V. Serveur web Apache 2

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.

1. Installation et configuration d'Apache 2


A. Installation : apt -y installer apache2
B. Configuration : vim /etc/apache2/conf-enabled/security.conf

# 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

root@debian:~#systemctl reload apache2

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

B. Activation des parametres SSL :


vim /etc/apache2/sites-available/default-ssl.conf

# line 2 : change admin email

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

Le fichier "/etc/apache2/sites-available/default-ssl.conf" est un fichier de configuration


pour le site par défaut utilisant SSL dans Apache2. Son rôle est de définir la configuration
spécifique au serveur Apache2 pour les connexions sécurisées via SSL. Dans ce fichier, vous
pouvez spécifier des détails tels que l'adresse e-mail de l'administrateur, les chemins vers
les certificats SSL utilisés par le serveur, les paramètres de sécurité SSL, et d'autres
configurations liées à la gestion des connexions sécurisées.
VI. Service de messagerie (Postfix et Dovecot)
Postfix et Dovecot sont deux logiciels essentiels dans l'infrastructure d'un serveur de
messagerie électronique. Voici leurs définitions et leurs rôles :

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

+------+ Configuration de Postfix +-------+


| Type général de configuration de messagerie : |
| |
| Aucune configuration |
| Site Internet |
| Internet avec hôte intelligent |
| Système satellitaire |
| Local seulement |
| |
| |
| <Ok> <Annuler> |
| |
+----------------------------+

B. Configuration : cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf


vim /etc/postfix/main.cf

# line 82 : uncomment
mail_owner = postfix

# line 98 : uncomment and specify hostname


myhostname = yamar.sn

# line 106 : uncomment and specify domainname


mydomain = yamar.sn

# line 127 : uncomment


myorigin = $mydomain

# line 141 : uncomment


inet_interfaces = all

# line 189 : uncomment


mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

# line 232 : uncomment


local_recipient_maps = unix:passwd.byname $alias_maps
# line 277 : uncomment
mynetworks_style = subnet

# line 294 : add your local network


mynetworks = 127.0.0.0/8, 10.0.0.0/24

# line 416 : uncomment


alias_maps = hash:/etc/aliases

# line 427 : uncomment


alias_database = hash:/etc/aliases

# line 449 : uncomment


home_mailbox = Maildir/

# line 585: comment out and add


#smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_banner = $myhostname ESMTP

# line 659 : add


sendmail_path = /usr/sbin/postfix

# line 664 : add


newaliases_path = /usr/bin/newaliases

# line 669 : add


mailq_path = /usr/bin/mailq

# line 675 : add


setgid_group = postdrop

# line 679 : comment out


#html_directory =

# line 683 : comment out


#manpage_directory =

# line 688 : comment out


#sample_directory =

# line 692 : comment out


#readme_directory =

# line 692 : if also listen IPv6, change to [all]


inet_protocols = ipv4

# add follows to the end


# disable SMTP VRFY command
disable_vrfy_command = yes

# require HELO command to sender hosts


smtpd_helo_required = yes

# limit an email size


# example below means 10M bytes limit
message_size_limit = 10240000

# 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

Cette configuration concerne le serveur de messagerie Postfix et les directives spécifiées


dans le fichier de configuration principal de Postfix, généralement situé à
"/etc/postfix/main.cf":

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.

Les lignes ajoutées à la fin de la configuration ajoutent des paramètres supplémentaires


pour renforcer la sécurité et configurer l'authentification SMTP avec Dovecot. Ces
paramètres restreignent les connexions SMTP, définissent des options de sécurité et
limitent la taille des messages.

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

3. Configuration de Dovecot pour l'accès au courrier


A. Installation : apt -y install dovecot-core dovecot-pop3d dovecot-imapd
B. Configuration :

root@debian:~# vim /etc/dovecot/dovecot.conf


# line 30 : uncomment

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)

LDAP, ou Lightweight Directory Access Protocol, est un protocole ouvert et standardisé


utilisé pour accéder et interroger des services d'annuaire distribués sur un réseau. Il a été
conçu pour offrir une méthode légère et efficace pour rechercher et récupérer des
informations dans un annuaire, qui peut inclure des données sur les utilisateurs, les
groupes, les ressources réseau et d'autres objets.
Le rôle principal d'un service d'annuaire LDAP est de fournir un référentiel centralisé et
organisé pour stocker et gérer des informations sur les ressources et les entités d'un
réseau. Les services d'annuaire LDAP peuvent être utilisés dans une variété de contextes,
notamment pour la gestion des identités et des accès, la gestion des utilisateurs et des
groupes, l'authentification et l'autorisation, ainsi que pour la recherche et la récupération
de données dans des structures hiérarchiques.

1. Installation et configuration d'OpenLDAP


A. Installation : apt -y install slapd ldap-utils
B. Configration : dpkg-reconfigure slapd

La commande `dpkg-reconfigure slapd` est utilisée pour reconfigurer le serveur LDAP


OpenLDAP sur une distribution Debian. Elle permet de relancer l'assistant de configuration
interactif pour modifier les paramètres de configuration de l'annuaire LDAP. Voici un
résumé de ce que fait cette commande :
Relance de l'assistant de configuration :
- Lorsque vous exécutez cette commande, elle relance l'assistant de configuration
interactif pour OpenLDAP.

Modification des paramètres de configuration :


- L'assistant vous guide à travers différentes étapes pour configurer des paramètres tels
que le nom de domaine LDAP, le mot de passe administrateur, le type de backend (base
de données) à utiliser, etc.
Validation des paramètres :
- Vous pouvez vérifier et modifier les paramètres de configuration existants ou en définir
de nouveaux selon vos besoins.
Redémarrage du service slapd :
- Une fois que vous avez terminé de reconfigurer OpenLDAP, la commande peut
redémarrer le service slapd pour appliquer les modifications de configuration.
En résumé, `dpkg-reconfigure slapd` est une commande pratique pour ajuster la
configuration de base d'un serveur LDAP OpenLDAP sur une distribution Debian, en
permettant une configuration interactive des paramètres essentiels.
# set LDAP admin password during installation like follows

+--------------------------| Configuring slapd |-------------------------+


| Please enter the password for the admin entry in your LDAP directory. |
| |
| Administrator password: |
| |
| ********______________________________________________________________ |
| |
| <Ok> |
| |
+------------------------------------------------------------------------+

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

root@debian:~# vim /etc/roundcube/config.inc.php


// line 27 : specify IMAP server (STARTTLS setting)

$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

$config['product_name'] = 'YAMAR.sn Webmail';


// add follows to the end
// specify SMTP auth type
$config['smtp_auth_type'] = 'LOGIN';

// specify SMTP HELO host


$config['smtp_helo_host'] = yamar.sn;

// specify domain name


$config['mail_domain'] = 'yamar.sn';

// specify UserAgent
$config['useragent'] = 'YAMAR.sn Webmail';

// specify SMTP and IMAP connection option


$config['imap_conn_options'] = array(
'ssl' => array(
'verify_peer' => true,
'CN_match' => 'yamar.sn',
'allow_self_signed' => true,
'ciphers' => 'HIGH:!SSLv2:!SSLv3',
),
);
$config['smtp_conn_options'] = array(
'ssl' => array(
'verify_peer' => true,
'CN_match' => 'yamar.sn',
'allow_self_signed' => true,
'ciphers' => 'HIGH:!SSLv2:!SSLv3',
),
);

root@debian:~# vim /etc/apache2/conf-enabled/roundcube.conf


# line 3 : uncomment

Alias /roundcube /var/lib/roundcube/public_html


# line 11 : change access permission if need

Require ip 127.0.0.1 10.0.0.0/24

root@debian:~# systemctl restart apache2 .


.
C. Connexion à la base de données MariaDB
1. Creation de la base de donnee : mysql

MariaDB [(none)]> create database roundcube;


Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on roundcube.* to roundcube@'localhost' id


entified by 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> exit

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

D. Accès client : https://yamar.sn/roundcube


E. Configuration de l'authentification LDAP

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.

En conclusion, ce projet a permis de mettre en place une infrastructure serveur robuste et


fonctionnelle, répondant aux exigences de base d'une entreprise ou d'une organisation. Il
fournit une base solide pour étendre et développer davantage les fonctionnalités et les
services en fonction des besoins spécifiques. En continuant à suivre les meilleures
pratiques de gestion et de sécurité, cette infrastructure peut servir de fondation stable et
fiable pour les opérations informatiques à long terme.

Vous aimerez peut-être aussi