Installer et securiser un serveur web complet mail et ftp sur Debian 12 Bookworm


189 views
Temps de lecture 48min 41s
12/18/2023, 11:13:14 AM
Auteur : Michael

Installer et securiser un serveur web complet mail et ftp sur Debian 12 Bookworm

 

La sécurisation intégrale d'un serveur, qu'il s'agisse du web, de la messagerie, ou du FTP, est une nécessité absolue pour la préservation de la confidentialité des données, la protection contre les vulnérabilités, et la garantie de communications sécurisées.

Dans cet exposé exhaustif, nous explorerons le déploiement et la sécurisation d'un serveur web sous Debian 12 Bookworm, en vous guidant à travers chaque étape avec des commandes pratiques pour établir un environnement robuste.

Nous traiterons en détail chaque aspect essentiel de la sécurisation d'un serveur web, couvrant des éléments tels que la configuration du mot de passe root, la gestion des serveurs DNS, les mises à jour régulières du système, la configuration du nom d'hôte, la gestion des utilisateurs, la mise en place d'un serveur de messagerie sécurisé avec la génération de DKIM, SPF et DMARC, la configuration d'Apache2 avec SSL/TLS, l'utilisation de Cloudflare pour renforcer la sécurité du serveur web, la configuration d'un serveur FTP sécurisé, l'installation et la sécurisation de MySQL/MariaDB, la configuration du monitoring et de la journalisation, le recours à Fail2ban ou CSF pour prévenir les attaques, la mise en place d'une protection anti-DDoS, la configuration de sauvegardes régulières, et bien plus encore.

Chaque étape sera minutieusement détaillée avec des lignes de commandes spécifiques pour vous guider tout au long du processus. De plus, des explications claires sur les meilleures pratiques de sécurité accompagneront chaque aspect de la configuration, vous offrant une compréhension approfondie des implications et des risques potentiels liés à chaque mesure de sécurité.

Il est impératif de souligner que la sécurisation d'un serveur web est un processus dynamique qui exige une vigilance constante pour rester à jour face aux dernières mises à jour de sécurité, aux meilleures pratiques, et aux nouvelles menaces. Une compréhension détaillée de chaque mesure de sécurité et une adaptation de la configuration en fonction des besoins spécifiques de votre environnement restent indispensables. Grâce à ce guide, vous acquerrez les connaissances nécessaires pour installer et sécuriser un serveur web complet, couvrant la messagerie et le FTP, sous Debian 12 Bookworm, assurant ainsi une protection et une sécurité optimales contre les menaces potentielles.

 

Sommaire

  1. Prérequis
  2. Changer le mot de passe root
  3. Configurer la date et sécuriser le port SSH
  4. Configuration des serveurs DNS
  5. Mise à jour du système
  6. Configuration du nom d'hôte
  7. Gestion des utilisateurs
  8. Installation et configuration du serveur mail (Postfix, Exim4)

    • Génération de DKIM, SPF et DMARC

  9. Configuration d'Apache2 avec SSL/TLS
  10. Utilisation de Cloudflare pour la sécurité du serveur web
  11. Configuration d'un serveur FTP sécurisé (vsftpd) et UFW (Firewall)
  12. Installation et sécurisation de MySQL/MariaDB
  13. Configuration du monitoring et de la journalisation (Monit, rsyslog)
  14. Utilisation de Fail2ban et CSF pour la protection contre les attaques
  15. Mise en place d'une protection anti-DDoS (mod_evasive, iptables)
  16. Configuration des sauvegardes régulières (rsync, cron)
  17. Autres mesures de sécurisation
  18. Conclusion

 

 

1. Prérequis

Avant de débuter, assurez-vous d'avoir en place les éléments suivants :

  • Un serveur dédié ou une machine virtuelle avec Debian 12 Bookworm installé
  • Un accès administrateur (root) pour effectuer les tâches de configuration
  • Une connexion Internet stable pour télécharger les paquets et les mises à jour
  • Une connaissance de base de la ligne de commande Linux pour exécuter les commandes (vous pouvez vous référer à notre article sur les commandes Linux)
  • Une adresse IP statique pour le serveur (recommandée pour la configuration des DNS et la sécurisation)
  • Un nom de domaine enregistré et configuré pour pointer vers l'adresse IP du serveur (recommandé pour la configuration des serveurs DNS et SSL/TLS)

Assurez-vous d'avoir ces prérequis en place avant d'entamer l'installation et la sécurisation de votre serveur web sous Debian 12 Bookworm, garantissant ainsi une préparation optimale pour suivre les étapes du guide sans rencontrer de problèmes liés à la configuration de base du serveur.

 

 

2. Changer le mot de passe root

La première étape importante pour sécuriser votre serveur Debian 12 Bookworm est de changer le mot de passe root, qui est le compte administrateur avec des privilèges complets sur le système.

 

Voici comment vous pouvez le faire :

  • Connectez-vous à votre serveur en tant qu'utilisateur avec des privilèges administratifs (par exemple, l'utilisateur root ou un utilisateur avec des droits sudo).
  • Ouvrez un terminal et exécutez la commande suivante pour changer le mot de passe root :
passwd
  • Suivez les instructions à l'écran pour entrer et confirmer un nouveau mot de passe pour le compte root.

Assurez-vous de choisir un mot de passe fort et sécurisé, composé de caractères alphanumériques, de lettres majuscules et minuscules, ainsi que de caractères spéciaux.

 

Une fois que vous avez changé le mot de passe root, assurez-vous de le noter dans un endroit sécurisé pour référence future. Évitez d'utiliser des mots de passe faciles à deviner ou de les partager avec d'autres personnes.

 

Changer le mot de passe root est une étape cruciale pour sécuriser votre serveur Debian 12 Bookworm, car cela empêche l'accès non autorisé au compte administrateur du système. Assurez-vous de choisir un mot de passe fort et de le garder confidentiel pour garantir la sécurité de votre serveur.

 

 

3. Configurer la date et sécuriser le port SSH

  • Vérifier et reconfigurer la date :
date # Vérifier la date actuelle
dpkg-reconfigure tzdata # Reconfigurer le fuseau horaire
date # Vérifier la date après reconfiguration
  • Éditer le fichier .bashrc :
nano ~/.bashrc # Ouvrir le fichier .bashrc dans l'éditeur de texte nano
# Modifier les configurations souhaitées
source ~/.bashrc # Recharger les configurations du fichier .bashrc
  • Éditer le port SSH :
nano /etc/ssh/sshd_config # Ouvrir le fichier de configuration de SSH dans nano
# Modifier la ligne "Port" pour définir le nouveau port SSH souhaité
systemctl restart ssh # Redémarrer le service SSH pour appliquer les changements

Notez bien le nouveau port ! Il faudra se connecter à ce port à l'avenir...

  • Ajouter une clé SSH :
# Générer une paire de clés SSH sur votre machine locale si vous n'en avez pas déjà une
ssh-keygen -t rsa -b 4096
# Copier la clé publique vers le serveur distant
ssh-copy-id user@adresse_ip # Remplacer "user" par votre nom d'utilisateur et "adresse_ip" par l'adresse IP du serveur distant
# Se connecter au serveur distant avec la clé SSH
ssh user@adresse_ip # Vous devriez être en mesure de vous connecter sans entrer de mot de passe

Ajouter une clé SSH à un serveur permet d'améliorer la sécurité de l'authentification à distance en utilisant une clé cryptographique au lieu d'un mot de passe. Lorsque vous ajoutez une clé SSH à un serveur, vous pouvez vous connecter à ce serveur sans avoir besoin de saisir un mot de passe à chaque fois. Cela rend l'accès au serveur plus pratique et réduit les risques d'attaques par force brute ou d'interception de mot de passe.

L'utilisation de clés SSH offre également un niveau supplémentaire de sécurité par rapport à l'authentification par mot de passe, car les clés sont généralement plus longues et plus complexes que les mots de passe, les rendant plus difficiles à deviner ou à craquer. De plus, les clés privées sont généralement stockées localement sur votre machine, ce qui les rend moins exposées aux risques de compromission du serveur.

 

Attention de bien comprendre les modifications que vous apportez aux fichiers de configuration et d'être sûr lors l'édition de ces fichiers ou de l'ajout de clés SSH. Sauvegardez toujours les fichiers d'origine avant de les modifier et vérifiez que vos actions sont conformes à la politique de sécurité de votre système et à vos besoins spécifiques.

 

 

 

4. Configuration des serveurs DNS

La configuration des serveurs DNS (Domain Name System) est essentielle pour permettre à votre serveur web d'être accessible via un nom de domaine plutôt qu'une adresse IP.

 

Avant toutes choses, modifiez les serveurs DNS dans le fichier /etc/resolv.conf en remplaçant les valeurs par celles de votre choix :

nano /etc/resolv.conf

Exemple :

nameserver 1.1.1.1 #rapide
nameserver 1.0.0.1 #rapide 
#nameserver 9.9.9.9 #securise 
#nameserver 149.112.112.112 #securise

 

Si vous utilisez un service tel que Cloudflare, vous pouvez passer la suite!

 

Voici comment vous pouvez installer votre propre serveur DNS :

  • Installez le paquet bind9 qui est un serveur DNS couramment utilisé sous Debian :
apt update
apt install bind9 -y
  • Une fois l'installation terminée, vous pouvez configurer les fichiers de zone pour les domaines que vous souhaitez héberger sur votre serveur. Les fichiers de zone contiennent les informations de configuration pour les noms de domaine, tels que les enregistrements A, CNAME, MX, etc.
  • Les fichiers de zone sont généralement stockés dans le répertoire /etc/bind/zones/. Vous pouvez créer des fichiers de zone pour vos domaines en utilisant un éditeur de texte, par exemple nano :
nano /etc/bind/zones/nomdedomaine.com.zone
  • Dans le fichier de zone, vous pouvez ajouter les enregistrements nécessaires pour vos domaines, tels que les enregistrements A pour les adresses IP, les enregistrements MX pour les serveurs de messagerie, etc.
  • Une fois que vous avez configuré vos fichiers de zone, vous devez redémarrer le service bind9 pour appliquer les changements :
service bind9 restart
  • Enfin, vous devez configurer les enregistrements de vos domaines chez votre registraire de domaine pour pointer vers les serveurs DNS de votre serveur Debian 12 Bookworm. Cela permettra aux requêtes DNS pour vos domaines d'être dirigées vers votre serveur.

 

La configuration des serveurs DNS est une étape clé pour rendre votre serveur web accessible via des noms de domaine et permettre la résolution DNS des adresses IP.

Assurez-vous de configurer correctement vos fichiers de zone et de mettre à jour les enregistrements de vos domaines chez votre registraire de domaine pour rediriger les requêtes DNS vers votre serveur Debian 12 Bookworm.

 

 

4. Mise à jour et configuration du nom d'hôte

Il est important de maintenir votre système Debian 12 Bookworm à jour avec les dernières mises à jour de sécurité et de configurer correctement le nom d'hôte de votre serveur pour garantir son bon fonctionnement.

 

Voici comment vous pouvez le faire :

  • Mettre à jour le système en utilisant la commande suivante :
apt update
apt upgrade -y
  • Une fois que les mises à jour sont terminées, vous pouvez configurer le nom d'hôte de votre serveur en utilisant la commande suivante :
hostnamectl set-hostname votrenomdhotedeserveur

Remplacez "votrenomdhotedeserveur" par le nom d'hôte que vous souhaitez attribuer à votre serveur.

  • Vous pouvez également ajouter le nom d'hôte dans le fichier /etc/hosts pour associer le nom d'hôte à l'adresse IP de votre serveur. Utilisez un éditeur de texte pour ouvrir le fichier /etc/hosts :
nano /etc/hosts
  • Ajoutez la ligne suivante à la fin du fichier en remplaçant "votrenomdhotedeserveur" et "adresse_IP" par le nom d'hôte et l'adresse IP de votre serveur respectivement :
adresse_IP votrenomdhotedeserveur
  • Sauvegardez et fermez le fichier.
  • Redémarrez le service systemd-hostnamed pour appliquer les changements :
systemctl restart systemd-hostnamed
  • Vérifiez que le nom d'hôte a été configuré correctement en utilisant la commande suivante :
hostnamectl

 

Assurez-vous de maintenir votre serveur Debian 12 Bookworm à jour avec les dernières mises à jour de sécurité et de configurer correctement le nom d'hôte de votre serveur pour garantir son bon fonctionnement.

 

 

5. Mise à jour du système

Il est crucial de maintenir votre serveur à jour avec les dernières mises à jour de sécurité pour assurer la stabilité et la sécurité de votre serveur. Voici comment vous pouvez mettre à jour votre système :

  • Connectez-vous à votre serveur en tant qu'utilisateur avec les privilèges sudo.
  • Mettez à jour la liste des paquets disponibles avec la commande suivante :
apt update
  • Mettez à jour les paquets installés sur votre système avec la commande suivante :
apt upgrade -y

Cela mettra à jour tous les paquets installés sur votre système, sauf ceux qui nécessitent une confirmation manuelle pour la mise à jour.

  • Une fois la mise à jour terminée, vous pouvez redémarrer le système pour appliquer les changements, si nécessaire, en utilisant la commande suivante :
reboot
  • Après le redémarrage, vous pouvez vérifier que votre système est à jour en utilisant la commande suivante :
apt list --upgradable

 

Assurez-vous de maintenir régulièrement votre système à jour en effectuant les mises à jour de sécurité appropriées pour garantir la sécurité de votre serveur Debian 12 Bookworm.

 

Note : Il est recommandé de sauvegarder vos données avant de procéder à une mise à jour majeure du système pour éviter toute perte de données en cas de problème lors de la mise à jour.

 

 

6. Configuration du nom d'hôte

Le nom d'hôte est le nom unique qui est attribué à votre serveur et permet de l'identifier sur le réseau. Il est important de configurer correctement le nom d'hôte pour votre serveur Debian 12 Bookworm.

 

Voici la marche à suivre :

  • Connectez-vous à votre serveur en tant qu'utilisateur avec les privilèges sudo.
  • Ouvrez le fichier /etc/hostname avec un éditeur de texte, par exemple nano :
nano /etc/hostname
  • Remplacez le nom d'hôte existant par le nouveau nom d'hôte souhaité pour votre serveur.
  • Enregistrez les modifications et fermez l'éditeur de texte.
  • Ouvrez le fichier /etc/hosts avec un éditeur de texte :
nano /etc/hosts
  • À la fin du fichier, ajoutez une ligne contenant l'adresse IP de votre serveur, suivie du nouveau nom d'hôte que vous avez configuré dans le fichier /etc/hostname, et enfin le nom d'hôte complet du serveur. Par exemple :
127.0.0.1 localhost 192.168.1.100 monserveur monserveur.mondomaine.com

Remarque : Remplacez l'adresse IP, le nouveau nom d'hôte et le nom d'hôte complet par les valeurs appropriées pour votre configuration.

  • Enregistrez les modifications et fermez l'éditeur de texte.
  • Redémarrez votre serveur pour appliquer les modifications avec la commande suivante :
reboot

 

Votre serveur Debian 12 Bookworm aura maintenant le nouveau nom d'hôte que vous avez configuré.

Assurez-vous d'utiliser le nouveau nom d'hôte dans les configurations et les services appropriés sur votre serveur pour une gestion efficace de votre serveur web, de messagerie et FTP.

 

 

7. Gestion des utilisateurs

La gestion des utilisateurs sur votre serveur est essentielle pour garantir la sécurité de votre système et la protection de vos données.

 

Voici les étapes pour gérer les utilisateurs sur votre serveur :

Créer un nouvel utilisateur :

adduser nom_utilisateur

Remarque : Remplacez "nom_utilisateur" par le nom d'utilisateur que vous souhaitez créer.

  • Définir un mot de passe pour l'utilisateur :
passwd nom_utilisateur
  • Ajouter l'utilisateur au groupe sudo :
usermod -aG sudo nom_utilisateur
  • Supprimer un utilisateur :
deluser nom_utilisateur
  • Modifier les informations d'un utilisateur :
usermod -c "Nouveau nom complet" -d /nouveau/repertoire/connexion -s /nouveau/shell nom_utilisateur
  • Modifier le mot de passe d'un utilisateur :
passwd nom_utilisateur
  • Désactiver un utilisateur :
usermod -L nom_utilisateur

Remarque : Ceci verrouillera le compte de l'utilisateur et l'empêchera de se connecter.

  • Réactiver un utilisateur :
usermod -U nom_utilisateur

 

La gestion des utilisateurs sur votre serveur Debian 12 Bookworm est un aspect important de la sécurité et de la gestion de votre système. Assurez-vous de créer des utilisateurs sécurisés avec des mots de passe forts, de gérer correctement les autorisations et les privilèges des utilisateurs, et de supprimer les utilisateurs inutiles pour garantir la sécurité et la stabilité de votre serveur web.

 

 

8. Installation du serveur mail (exim4 ou Postfix)

Un serveur mail est souvent essentiel, a moins d'utiliser un service externe pour gérer votre courrier électronique, ce que nous recommandons, car cela évite souvent bien des tracas... Si vous décidez de gérer ça vous même, les étapes de configuration qu'il faudra prévoir sont :

  • Configuration du serveur mail : Une fois l'installation terminée, vous pouvez configurer le serveur mail en utilisant les fichiers de configuration appropriés. Les fichiers de configuration pour Postfix se trouvent dans le répertoire /etc/postfix/, tandis que ceux pour exim4 se trouvent dans /etc/exim4/.
  • Configuration du nom de domaine : Vous devez configurer le nom de domaine pour votre serveur mail en modifiant les fichiers de configuration appropriés. Cela inclut généralement la configuration du nom d'hôte, du domaine et des enregistrements MX dans les fichiers de configuration du serveur mail.
  • Configuration des utilisateurs et des domaines : Vous pouvez configurer les utilisateurs et les domaines pour lesquels vous souhaitez recevoir et envoyer des e-mails en modifiant les fichiers de configuration du serveur mail. Cela peut inclure la configuration des boîtes aux lettres, des alias d'e-mails, des listes de diffusion et des règles de filtrage.
  • Configuration des fonctionnalités de sécurité : Il est important de configurer les fonctionnalités de sécurité appropriées pour votre serveur mail. Cela peut inclure la configuration des protocoles de sécurité tels que SSL/TLS pour chiffrer les communications, la configuration des politiques de sécurité comme SPF, DKIM et DMARC pour prévenir le spam et l'usurpation d'identité, ainsi que la configuration des règles de pare-feu pour limiter l'accès au serveur mail.
  • Test du serveur mail : Une fois la configuration terminée, il est recommandé de tester le fonctionnement de votre serveur mail en envoyant et en recevant des e-mails à partir de différents clients de messagerie pour vous assurer que tout fonctionne correctement.

 

Vous pouvez commencer par installer et configurer Postfix ou exim4 en utilisant les commande suivantes, selon votre choix :

 

Pour installer Postfix

apt install postfix
  • Configurer le serveur mail :
dpkg-reconfigure postfix

Cette commande vous guidera à travers le processus de configuration initial de Postfix. Vous pouvez sélectionner les options appropriées en fonction de vos besoins, telles que la configuration du type de site (Internet ou envoi vers une boîte aux lettres), la configuration du nom de domaine, la configuration des relais de messagerie sortants (si nécessaire), etc.

  • Configurer les domaines et les utilisateurs :
nano /etc/postfix/virtual/domains

Ce fichier vous permet de configurer les domaines pour lesquels vous souhaitez recevoir des e-mails. Vous pouvez ajouter les domaines que vous souhaitez en utilisant la syntaxe appropriée.

nano /etc/postfix/virtual/users

Ce fichier vous permet de configurer les utilisateurs (boîtes aux lettres) pour les domaines que vous avez configurés. Vous pouvez ajouter les utilisateurs en utilisant la syntaxe appropriée.

  • Configurer les politiques de sécurité :
nano /etc/postfix/main.cf

Ce fichier vous permet de configurer diverses options de sécurité pour Postfix. Vous pouvez configurer des options telles que le chiffrement SSL/TLS pour les communications, SPF, DKIM, DMARC pour prévenir le spam et l'usurpation d'identité, ainsi que d'autres options de sécurité en fonction de vos besoins spécifiques.

  • Redémarrer Postfix pour appliquer les modifications :
service postfix restart

 

 

Pour installer exim4

apt install exim4
  • Configurer le serveur mail :
dpkg-reconfigure exim4-config

Cette commande vous guidera à travers le processus de configuration initial de exim4. Vous pouvez sélectionner les options appropriées en fonction de vos besoins, telles que la configuration du type de site (Internet ou envoi vers une boîte aux lettres), la configuration du nom de domaine, la configuration des relais de messagerie sortants (si nécessaire), etc.

  • Configurer les domaines et les utilisateurs :
nano /etc/exim4/virtual/domains

Ce fichier vous permet de configurer les domaines pour lesquels vous souhaitez recevoir des e-mails. Vous pouvez ajouter les domaines que vous souhaitez en utilisant la syntaxe appropriée.

nano /etc/exim4/virtual/users

Ce fichier vous permet de configurer les utilisateurs (boîtes aux lettres) pour les domaines que vous avez configurés. Vous pouvez ajouter les utilisateurs en utilisant la syntaxe appropriée.

  • Configurer les politiques de sécurité :
nano /etc/exim4/conf.d/main/02_exim4-config_options

Ce fichier vous permet de configurer diverses options de sécurité pour exim4. Vous pouvez configurer des options telles que le chiffrement SSL/TLS pour les communications, SPF, DKIM, DMARC pour prévenir le spam et l'usurpation d'identité, ainsi que d'autres options de sécurité en fonction de vos besoins spécifiques.

  • Redémarrer exim4 pour appliquer les modifications :
systemctl exim4 restart

 

Tester le serveur mail

Vous pouvez envoyer et recevoir des e-mails à partir de différents clients de messagerie pour vous assurer que tout fonctionne correctement. Vous pouvez également consulter les journaux de exim4 ou postfix pour diagnostiquer d'éventuels problèmes ou erreurs.

 

Envoyez un email de test avec la commande suivante :

/usr/lib/sendmail -f [email protected] -v [email protected]

Entrez le texte de l'email et envoyez-le en appuyant sur CTRL+D.

 

Pour vérifier les journaux (logs) de Exim4 et Postfix sur Debian 12 Bookworm, vous pouvez utiliser les commandes suivantes :

Pour Exim4 :

  • Vérifier le journal d'exécution (log) général :
less /var/log/exim4/mainlog
  • Vérifier le journal d'erreurs (log) :
less /var/log/exim4/paniclog

Pour Postfix :

  • Vérifier le journal d'exécution (log) général :
less /var/log/mail.log
  • Vérifier le journal d'erreurs (log) :
less /var/log/mail.err

Vous pouvez utiliser les commandes de recherche et de navigation dans "less" pour parcourir les journaux et trouver les informations pertinentes. Par exemple, pour rechercher un terme spécifique, vous pouvez appuyer sur "/" pour entrer en mode de recherche, puis saisir le terme et appuyer sur "Enter". Pour naviguer dans les résultats de recherche, vous pouvez utiliser les touches "n" (suivant) et "N" (précédent).

 

Notez que la configuration exacte du serveur mail peut varier en fonction du serveur choisi (Postfix ou exim4) ainsi que des besoins spécifiques de votre environnement. Il est important de se référer à la documentation officielle et de suivre les meilleures pratiques de sécurité pour garantir la sécurité et la fiabilité de votre serveur mail.

 

Génération de DKIM, SPF et DMARC (exim4 et postfix)

 

Pour exim4

Génération de la clé DKIM :

  • Vous pouvez générer une clé DKIM à l'aide de la commande suivante :
openssl genrsa -out /etc/exim4/dkim.private 2048

Configuration de DKIM :

  • Ajoutez les lignes suivantes dans le fichier de configuration d'exim4 (/etc/exim4/exim4.conf.template) pour activer DKIM :
# Configuration DKIM
dkim_domain = example.com
dkim_selector = mail
dkim_private_key = /etc/exim4/dkim.private

Remplacez "example.com" par votre nom de domaine.

Configuration de SPF :

  • Ajoutez les lignes suivantes dans le fichier de configuration d'exim4 (/etc/exim4/exim4.conf.template) pour activer SPF :
# Configuration SPF 
spf = true

 

 

 

Pour postfix

Génération de la clé DKIM :

  • Vous pouvez générer une clé DKIM à l'aide de la commande suivante :
openssl genrsa -out /etc/postfix/dkim.private 2048

Configuration de DKIM :

  • Ajoutez les lignes suivantes dans le fichier de configuration de postfix (/etc/postfix/main.cf) pour activer DKIM :
# Configuration DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Configuration de SPF :

  • Ajoutez les lignes suivantes dans le fichier de configuration de postfix (/etc/postfix/main.cf) pour activer SPF :
# Configuration SPF
smtpd_recipient_restrictions =
    permit_mynetworks,
    permit_sasl_authenticated,
    reject_unauth_destination,
    check_policy_service unix:private/policy-spf

Assurez-vous d'avoir installé le service de vérification SPF (spf-policyd) et de le configurer correctement.

 

Pour exim4 et postfix

Configuration de DMARC :

  • Ajoutez les lignes suivantes dans le fichier de configuration d'exim4 /etc/exim4/exim4.conf.template ou dans le fichier de configuration de postfix /etc/postfix/main.cf pour activer DMARC :
# Configuration DMARC
dmarc_domain = example.com
dmarc_records = v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1

Remplacez "example.com" par votre nom de domaine.

Notez que les valeurs "p", "rua", "ruf" et "fo" peuvent être ajustées selon vos besoins.

Assurez-vous également d'avoir configuré les adresses e-mail de rapport DMARC (rua et ruf) pour recevoir les rapports DMARC.

 

  • Redémarrage des services de messagerie :
  • Pour exim4 : Redémarrez le service exim4 pour appliquer les modifications de configuration :
systemctl exim4 restart
  • Pour postfix : Redémarrez le service postfix pour appliquer les modifications de configuration :
systemctl postfix restart

Cela permettra de relancer les services de messagerie avec les nouvelles configurations DKIM, SPF et DMARC.

 

Vérification des enregistrements DKIM, SPF et DMARC :

  • Pour DKIM : Vous pouvez vérifier si la clé DKIM générée est bien ajoutée à votre domaine en vérifiant les enregistrements DNS. Vous devrez ajouter un enregistrement TXT dans la zone DNS de votre domaine avec le nom de sélecteur et la clé DKIM générée.
  • Pour SPF : Vous pouvez vérifier si l'enregistrement SPF est bien configuré en vérifiant les enregistrements DNS. Vous devrez ajouter un enregistrement TXT dans la zone DNS de votre domaine avec la politique SPF que vous avez configurée.
  • Pour DMARC : Vous pouvez vérifier si l'enregistrement DMARC est bien configuré en vérifiant les enregistrements DNS. Vous devrez ajouter un enregistrement TXT dans la zone DNS de votre domaine avec la politique DMARC que vous avez configurée.

 

Assurez-vous que les enregistrements DKIM, SPF et DMARC sont correctement configurés pour votre nom de domaine afin de garantir la sécurité et la fiabilité de vos e-mails.

C'est bon, vous avez maintenant généré et configuré les clés DKIM, SPF et DMARC pour votre serveur de messagerie exim4 ou postfix sur Debian 12 Bookworm. Ces mesures renforceront la sécurité de votre serveur de messagerie et vous aideront à éviter le marquage de vos e-mails comme spam ou leur rejet par les serveurs de messagerie destinataires.

 

 

9. Configuration d'Apache2 avec SSL/TLS

Installez le serveur web Apache2 en utilisant la commande suivante :

apt install apache2

Une fois l'installation terminée, le service Apache2 devrait être en cours d'exécution et configuré pour démarrer automatiquement au démarrage du système.

 

Configuration d'Apache2

La configuration d'Apache2 se fait principalement à travers les fichiers de configuration dans le répertoire /etc/apache2/.

Voici quelques fichiers de configuration couramment utilisés :

  • apache2.conf : Il s'agit du fichier de configuration principal d'Apache2. Vous pouvez y définir des paramètres globaux pour le serveur web, tels que les directives de sécurité, les modules à charger, etc.
  • sites-available/default-ssl.conf : Ce fichier de configuration est utilisé pour configurer un site virtuel (vhost) avec SSL/TLS activé. Vous pouvez y définir les directives de configuration spécifiques à SSL/TLS, telles que le chemin vers les fichiers de certificat, de clé privée, et de chaîne de certificats.
  • sites-available/000-default.conf : Ce fichier de configuration est utilisé pour configurer un site virtuel par défaut sans SSL/TLS. Vous pouvez y définir les directives de configuration pour les sites virtuels sans SSL/TLS.

 

Activation de SSL/TLS

  • Pour activer SSL/TLS dans Apache2, vous devez utiliser le module mod_ssl. Vous pouvez l'activer en utilisant la commande suivante :
a2enmod ssl
  • Une fois le module activé, vous pouvez le configurer en modifiant le fichier de configuration du site virtuel avec SSL/TLS activé (par exemple, default-ssl.conf) pour définir les directives de configuration spécifiques à SSL/TLS, telles que le chemin vers les fichiers de certificat, de clé privée, et de chaîne de certificats.

 

Configuration d'un certificat SSL/TLS

Vous pouvez configurer un certificat SSL/TLS pour votre domaine en utilisant un certificat auto-signé ou en obtenant un certificat SSL/TLS valide auprès d'une autorité de certification (AC).

Voici les étapes générales pour la configuration d'un certificat SSL/TLS :

Vous pouvez générer un certificat auto-signé à l'aide de la commande suivante :

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nom_de_domaine.key -out /etc/ssl/certs/nom_de_domaine.crt

Remarque : Remplacez "nom_de_domaine" par le nom de domaine de votre site web.

  • Obtention d'un certificat SSL/TLS valide auprès d'une AC : Si vous souhaitez obtenir un certificat SSL/TLS valide auprès d'une autorité de certification (AC) reconnue, vous pouvez utiliser des services tels que Let's Encrypt. Let's Encrypt est un service gratuit qui offre des certificats SSL/TLS valides et renouvelables automatiquement.

 

Voici les étapes générales pour obtenir un certificat Let's Encrypt :

  • Installez le client Let's Encrypt en utilisant la commande suivante :
apt install certbot
  • Obtenez et installez un certificat Let's Encrypt pour votre domaine en utilisant la commande suivante :
certbot --apache -d nom_de_domaine

Remarque : Remplacez "nom_de_domaine" par le nom de domaine de votre site web.

  • Suivez les instructions fournies par Let's Encrypt pour configurer et installer le certificat SSL/TLS sur votre site web.

 

Configuration de PHP

  • Pour configurer PHP avec Apache2, vous devez installer le module PHP approprié pour votre version de PHP.
  • Par exemple, si vous utilisez PHP 7.4, vous pouvez installer le module PHP 7.4 pour Apache2 en utilisant la commande suivante :
apt install libapache2-mod-php7.4
  • Une fois le module PHP installé, vous pouvez configurer les directives de configuration PHP dans le fichier de configuration php.ini, qui se trouve généralement dans le répertoire /etc/php/7.4/apache2/ (pour PHP 7.4). Vous pouvez y définir des paramètres tels que la limite de mémoire, le temps d'exécution maximal, les paramètres de sécurité, etc.

 

 

 

10. Utilisation de Cloudflare pour la sécurité du serveur web

Voici comment vous pouvez configurer SSL/TLS et sécuriser votre serveur web avec Cloudflare, un service de proxy inversé offrant des fonctionnalités de sécurité et d'optimisation pour les sites web :

  • Créez un compte Cloudflare et ajoutez votre site web à votre compte.
  • Dans la configuration de votre site web sur Cloudflare, allez dans l'onglet "Crypto" et configurez les paramètres de SSL/TLS selon vos besoins. Vous pouvez activer le SSL/TLS complet, qui chiffre le trafic entre les utilisateurs et Cloudflare ainsi que le trafic entre Cloudflare et votre serveur web.
  • Suivez les instructions fournies par Cloudflare pour configurer les enregistrements DNS de votre domaine afin de rediriger le trafic vers Cloudflare.
  • Une fois que la configuration DNS est terminée, Cloudflare commencera à gérer le trafic SSL/TLS pour votre site web.
  • Cloudflare offre également d'autres fonctionnalités de sécurité, telles que la protection contre les attaques DDoS, les pare-feux d'applications web (WAF), la mise en cache du contenu statique, la vérification de l'intégrité du certificat SSL, et bien plus encore. Configurez ces paramètres en fonction de vos besoins spécifiques et des meilleures pratiques de sécurité pour votre serveur web.
  • Utilisez des règles de sécurité personnalisées pour bloquer des types spécifiques d'attaques, filtrer le trafic indésirable, ou protéger des chemins d'accès sensibles.
  • Activez le mode "Under Attack" en cas d'attaque DDoS ou d'autres types d'attaques sur votre site web pour renforcer les mesures de sécurité.
  • Vérifiez régulièrement les journaux d'accès détaillés fournis par Cloudflare pour détecter toute activité suspecte et prendre des mesures appropriées pour renforcer la sécurité de votre serveur web.

En choisissant Cloudflare pour la sécurité de votre serveur web, vous pouvez bénéficier d'une protection avancée contre les attaques malveillantes et les menaces de sécurité en ligne. Mettez en place ces mesures de sécurité pour protéger votre site web et assurer une expérience utilisateur sécurisée.

 

 

11-Configuration d'un serveur FTP sécurisé (vsftpd)

La configuration d'un serveur FTP sécurisé avec vsftpd sous Debian 12 est relativement simple et peut être réalisée en suivant les étapes suivantes :

 

Configuration du pare-feu

Assurez-vous de configurer le pare-feu de votre serveur pour autoriser uniquement les connexions à vos services. Vous pouvez utiliser un pare-feu logiciel tel que UFW (Uncomplicated Firewall) pour définir les règles de pare-feu appropriées. Par exemple, vous pouvez autoriser uniquement les connexions provenant d'adresses IP spécifiques ou de réseaux de confiance.

apt install ufw
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 3306/tcp

 

  • Installation de vsftpd : Tout d'abord, il faut installer vsftpd sur votre serveur Debian 12. Cela peut être fait en utilisant la commande suivante dans un terminal :
apt-get install vsftpd
  • Configuration de vsftpd : Une fois l'installation terminée, vous pouvez configurer vsftpd en modifiant son fichier de configuration. Le fichier de configuration de vsftpd se trouve généralement dans /etc/vsftpd.conf. Vous pouvez l'ouvrir avec un éditeur de texte tel que nano ou vim, et configurer les options en fonction de vos besoins. Par exemple, vous pouvez activer le chiffrement SSL/TLS, définir les autorisations des utilisateurs, définir les répertoires par défaut, etc. N'oubliez pas de sauvegarder vos modifications après les avoir apportées.
  • Configuration du pare-feu : Pour assurer la sécurité de votre serveur FTP, vous devez configurer votre pare-feu pour autoriser les connexions FTP. Vous pouvez ouvrir les ports nécessaires dans le pare-feu de votre serveur Debian 12 en utilisant des outils tels que iptables ou ufw, en fonction de votre configuration du pare-feu.
  • Gestion des utilisateurs : Vous pouvez ajouter des utilisateurs FTP et définir leurs autorisations en fonction de vos besoins. Vous pouvez créer de nouveaux utilisateurs locaux sur votre serveur Debian 12 en utilisant la commande "adduser" ou "useradd". Une fois les utilisateurs créés, vous pouvez les ajouter au groupe "ftp" pour leur donner les permissions nécessaires pour accéder aux fichiers via FTP.
  • Configuration du chiffrement SSL/TLS : Pour sécuriser les communications entre le client FTP et le serveur FTP, vous pouvez configurer vsftpd pour utiliser le chiffrement SSL/TLS. Cela peut être fait en générant un certificat SSL/TLS et en configurant vsftpd pour utiliser ce certificat. Vous pouvez trouver des tutoriels en ligne pour vous guider dans la génération et l'installation de certificats SSL/TLS sur votre serveur Debian 12.
  • Tests et vérifications : Une fois que vous avez configuré vsftpd selon vos besoins, il est important de procéder à des tests et à des vérifications pour vous assurer que tout fonctionne correctement. Vous pouvez tester les connexions FTP, les autorisations des utilisateurs, la sécurité du chiffrement SSL/TLS, etc. pour vous assurer que votre serveur FTP est configuré de manière sécurisée et fonctionne comme prévu.

En suivant ces étapes de configuration, vous pouvez mettre en place un serveur FTP sécurisé avec vsftpd sous Debian 12, offrant ainsi une solution de partage de fichiers sécurisée pour votre environnement.

 

Si vous avez des problèmes de connexion avec vsftpd, il se peut que c'est un problème de firewall, vous pouvez ajouté au fichier /etc/vsftpd.conf :

pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090

 Vous pouvez éventuellement en profiter pour décommenter ces lignes si nécessaire :

local_enable=YES
write_enable=YES

Ensuite faite ceci, et le problème devrait être réglé :

systemctl restart vsftpd
ufw allow from any to any proto tcp port 10090:10100

 

 

12. Installation et sécurisation de MySQL/MariaDB

Installation de MySQL/MariaDB

Tout d'abord, vous pouvez installer MySQL ou MariaDB sur votre serveur Debian 12 en utilisant la commande suivante dans un terminal :

apt-get update
apt-get install mariadb-server

Cette commande mettra à jour les paquets de votre système et installera le serveur MariaDB.

 

Configuration de MySQL/MariaDB

Une fois l'installation terminée, vous pouvez configurer MySQL/MariaDB en utilisant la commande suivante :

mysql_secure_installation

Cette commande vous guidera à travers un assistant de sécurisation de MySQL/MariaDB pour définir un mot de passe root sécurisé, supprimer les utilisateurs anonymes, désactiver la connexion root à distance, supprimer la base de données de test et recharger les privilèges.

 

Mise à jour régulière de MySQL/MariaDB

Il est important de maintenir MySQL/MariaDB à jour en installant les mises à jour de sécurité et de stabilité. Vous pouvez utiliser la commande suivante pour mettre à jour MariaDB sur votre serveur Debian 12 :

apt-get update
apt-get upgrade mariadb-server

Assurez-vous de vérifier régulièrement les mises à jour disponibles pour MariaDB et de les installer pour maintenir votre serveur sécurisé.

 

Configuration avancée de MySQL/MariaDB

Vous pouvez également configurer MySQL/MariaDB pour des fonctionnalités avancées telles que la gestion des utilisateurs, la configuration du moteur de stockage, la configuration du cache, etc. Vous pouvez éditer le fichier de configuration de MariaDB qui se trouve généralement dans /etc/mysql/mariadb.conf.d/ et modifier les paramètres en fonction de vos besoins spécifiques.

 

Sauvegarde de MySQL/MariaDB

Il est essentiel de sauvegarder régulièrement vos bases de données MySQL/MariaDB pour vous prémunir contre la perte de données en cas de problème. Vous pouvez utiliser des outils de sauvegarde tels que mysqldump pour effectuer des sauvegardes régulières des bases de données MySQL/MariaDB et les stocker dans un emplacement sécurisé.

 

Sécurisation de MySQL/MariaDB

Pour renforcer la sécurité de MySQL/MariaDB, vous pouvez prendre les mesures suivantes :

  • Limiter les privilèges des utilisateurs MySQL/MariaDB en accordant uniquement les privilèges nécessaires pour leurs tâches spécifiques.
  • Utiliser des mots de passe forts pour les comptes MySQL/MariaDB, y compris le compte root.
  • Limiter l'accès à MySQL/MariaDB depuis les adresses IP autorisées uniquement, en configurant le pare-feu ou les listes d'adresses IP autorisées dans les paramètres de configuration de MariaDB.
  • Utiliser le chiffrement SSL/TLS pour sécuriser les communications entre les clients MySQL/MariaDB et le serveur.
  • Activer et configurer l'audit de MariaDB pour surveiller les activités des utilisateurs et détecter les éventuelles anomalies.

 

Utilisation de connexions sécurisées

Pour renforcer la sécurité de MySQL/MariaDB, vous pouvez utiliser des connexions sécurisées via SSL/TLS pour chiffrer les données en transit entre les clients et le serveur. Pour cela, vous devrez générer un certificat SSL/TLS et le configurer dans MySQL/MariaDB. Vous pouvez trouver des guides en ligne détaillant le processus de génération et de configuration de certificats SSL/TLS pour MySQL/MariaDB.

 

Gestion des privilèges

Assurez-vous de gérer les privilèges des utilisateurs MySQL/MariaDB de manière appropriée. Évitez d'utiliser le compte root pour des tâches courantes et créez des utilisateurs avec des privilèges limités pour des tâches spécifiques. Accordez uniquement les privilèges nécessaires à chaque utilisateur pour minimiser les risques d'accès non autorisés.

 

Surveillance et journaux

Mettez en place une surveillance régulière de MySQL/MariaDB en surveillant les journaux d'activité, les erreurs et les performances. Vous pouvez utiliser des outils de surveillance tels que Nagios, Zabbix, ou des outils de journalisation tels que logrotate pour gérer les journaux MySQL/MariaDB et détecter les éventuelles anomalies ou tentatives d'intrusion.

 

En suivant ces étapes, vous pouvez installer et sécuriser MySQL/MariaDB sur votre serveur Debian 12 Bookworm, garantissant ainsi la protection de vos données et assurant un fonctionnement sécurisé de votre base de données. N'oubliez pas de maintenir votre serveur et vos logiciels à jour avec les dernières mises à jour de sécurité et de suivre les meilleures pratiques de sécurité pour protéger votre serveur web complet, y compris le serveur MySQL/MariaDB.

 

 

 

13. Configuration du monitoring et de la journalisation (Monit, rsyslog)

Monit est un outil de supervision qui peut vous aider à surveiller les processus, les services, les fichiers, les systèmes de fichiers et d'autres éléments de votre système.

Vous pouvez configurer Monit pour vous avertir en cas de défaillance ou de problème avec ces éléments, vous permettant ainsi de réagir rapidement et de résoudre les problèmes de manière proactive.

 

Pour configurer Monit, vous pouvez éditer le fichier de configuration de Monit qui se trouve généralement dans /etc/monit/monitrc. Vous pouvez définir les éléments que vous souhaitez surveiller, les actions à entreprendre en cas de défaillance, les seuils d'alerte, et d'autres paramètres de configuration en fonction de vos besoins spécifiques.

 

Voici un exemple de configuration simple pour Monit :

# Exemple de configuration pour Monit

set daemon 60
set logfile /var/log/monit.log

check process apache with pidfile /var/run/apache2/apache2.pid
   start program = "/etc/init.d/apache2 start" with timeout 60 seconds
   stop program = "/etc/init.d/apache2 stop"
   if totalmem > 60.0 MB for 5 cycles then restart
   if failed host localhost port 80 protocol http then restart
   if cpu is greater than 80% for 5 cycles then restart

Cet exemple de configuration vérifie le processus Apache, en vérifiant s'il est en cours d'exécution, s'il utilise trop de mémoire ou de CPU, et s'il est accessible via HTTP. Si l'un de ces éléments échoue, Monit redémarrera automatiquement Apache après un certain nombre de cycles.

 

Rsyslog, quant à lui, est un système de journalisation avancé qui vous permet de collecter, filtrer, analyser et stocker les journaux (logs) générés par différents services et applications sur votre système.

Vous pouvez configurer rsyslog pour centraliser la gestion des journaux et les stocker dans des emplacements spécifiques, les transférer vers d'autres serveurs, ou les filtrer en fonction de critères personnalisés.

 

Pour configurer rsyslog, vous pouvez éditer le fichier de configuration principal de rsyslog qui se trouve généralement dans /etc/rsyslog.conf. Vous pouvez définir les règles de filtrage, les destinations de stockage et d'autres paramètres de configuration en fonction de vos besoins spécifiques.

 

Voici un exemple de configuration simple pour rsyslog :

# Exemple de configuration pour rsyslog

# Stocker les journaux localement
local1.*                       /var/log/local1.log

# Transférer les journaux vers un autre serveur
*.*                            @192.168.1.100:514

# Filtrer les journaux basés sur le niveau de priorité
if $syslogseverity <= 4 then /var/log/low-priority.log
if $syslogseverity <= 6 then /var/log/medium-priority.log
if $syslogseverity <= 7 then /var/log/high-priority.log

Cet exemple de configuration stocke les journaux localement dans /var/log/local1.log, transfère tous les journaux vers un autre

 

 

 

14. Utilisation de Fail2ban et CSF pour la protection contre les attaques

La sécurité est un élément crucial pour tout système en ligne. Les attaques contre les serveurs sont fréquentes et il est important de mettre en place des mesures de sécurité pour protéger votre système contre ces menaces.

Deux outils populaires pour la protection contre les attaques sont Fail2ban et CSF (ConfigServer Security & Firewall). Ils peuvent être utilisés ensemble.

 

Fail2ban est un outil de prévention d'intrusion qui fonctionne en analysant les journaux système pour détecter les tentatives d'intrusion, les attaques par force brute et d'autres activités suspectes. Lorsqu'il détecte une activité suspecte, Fail2ban peut automatiquement bloquer l'adresse IP source de l'attaque en ajoutant des règles de pare-feu pour empêcher toute communication ultérieure avec cette adresse IP pendant une certaine période de temps. Cela peut aider à protéger votre système contre les attaques en bloquant les adresses IP malveillantes.

 

CSF, quant à lui, est un pare-feu de sécurité avancé pour les serveurs Linux. Il offre une gamme de fonctionnalités de sécurité, notamment la détection d'intrusions, la prévention d'intrusions, la gestion des connexions réseau, la surveillance du système de fichiers, la protection contre les attaques DDoS (Distributed Denial of Service), et bien plus encore. CSF offre également une interface conviviale pour la gestion des règles de pare-feu et des fonctionnalités de sécurité.

 

Installation de Fail2ban

apt update
apt install fail2ban

 

Installation de CSF (UNIQUEMENT SI VOUS N AVEZ PAS INSTALLÉ UFW) :

apt update
apt install lsb-release -y
wget https://download.configserver.com/csf.deb
dpkg -i csf.deb
apt update
apt install libwww-perl libcrypt-ssleay-perl -y
csf -r

Notez que CSF (ConfigServer Security & Firewall) est un pare-feu basé sur iptables qui offre une interface plus avancée pour la gestion des règles de pare-feu. Il peut être utilisé en complément de Fail2ban pour renforcer la sécurité du système.

 

Voici un exemple de configuration simple pour Fail2ban /etc/fail2ban/jail.d/defaults-debian.conf :


[DEFAULT]
bantime  = 3600
findtime  = 600
[sshd]
enabled  = true
port     = ssh,22000,22222
maxretry = 10
bantime = 864000
findtime = 36000
[apache-auth]
enabled = true
[apache-noscript]
enabled = true
[apache-overflows]
enabled = true
[apache-nohome]
enabled = true
[apache-botsearch]
enabled = true
[apache-modsecurity]
enabled = true
[apache-shellshock]
enabled = true
[php-url-fopen]
enabled = true
[proftpd]
enabled = true
[mysqld-auth]
bantime=600
findtime=3600
enabled = true
[apache-408]
enabled = true
maxretry = 3
bantime = 300
findtime = 60
port = http,https
logpath = %(apache_access_log)s

Cet exemple de configuration active la détection des tentatives d'intrusion sur le service SSH. Si Fail2ban détecte plus de 6 tentatives d'échec de connexion à SSH à partir de la même adresse IP, il bloquera cette adresse IP pendant 1 heure (3600 secondes)... D'autres règles assez parlante sont également mises en exemple.

 

Voici un exemple de configuration simple pour CSF :

# Exemple de configuration pour CSF

# Activer la détection des tentatives d'intrusion sur SSH
TCP_IN = "22"
LF_SSHD = "5"

Cet exemple de configuration permet au port SSH (22) d'entrée et limite le nombre maximal de connexions SSH concurrentes à 5. Si le nombre de connexions SSH concurrentes dépasse cette limite, CSF bloquera automatiquement l'adresse IP source de l'attaque.

Il est important de noter que ces configurations sont des exemples simples et qu'il est recommandé de consulter la documentation officielle de Fail2ban et CSF pour configurer ces outils en fonction de vos besoins spécifiques de sécurité.

En utilisant Fail2ban ou CSF, vous pouvez renforcer la sécurité de votre système en ajoutant une couche supplémentaire de protection contre les attaques et en bloquant les adresses IP malveillantes avant qu'elles ne puissent causer des dommages.

 

 

 

15. Mise en place d'une protection anti-DDoS (mod_evasive, iptables)

Les attaques DDoS (Distributed Denial of Service) peuvent causer d'énormes perturbations sur un serveur en inondant son réseau ou ses ressources avec un grand nombre de demandes, rendant ainsi les services indisponibles pour les utilisateurs légitimes.

Pour protéger votre serveur contre les attaques DDoS, vous pouvez utiliser des outils tels que mod_evasive et iptables.

 

Installation de mod_evasive

apt update
apt install libapache2-mod-evasive
a2enmod headers,expires,remoteIp
systemctl restart apache2

 

Configuration de mod_evasive

Après l'installation de mod_evasive, vous pouvez configurer les paramètres dans le fichier de configuration /etc/apache2/mods-available/evasive.conf.

Voici un exemple de configuration :

<IfModule mod_evasive24.c>
    # Activation de mod_evasive
    ModEvasive24Enabled On

    # Emplacement du fichier journal
    ModEvasive24LogDir "/var/log/mod_evasive"

    # Niveau de sensibilité pour la détection des attaques (plus le chiffre est bas, plus la sensibilité est élevée)
    ModEvasive24DoSWhitelist 127.0.0.1
    ModEvasive24DoSWhitelist 192.168.0.0/24
    ModEvasive24DoSWhitelist 10.0.0.0/8
    ModEvasive24DoSWhitelist 172.16.0.0/12
    ModEvasive24DoSWhitelist 0.0.0.0/0

    # Page d'erreur personnalisée à afficher pour les adresses IP bloquées
    ModEvasive24URLWhitelist /safe-page.html
    ModEvasive24RedirectUrl /safe-page.html

    # Limite de requêtes autorisées par seconde pour une même adresse IP
    ModEvasive24MaxReqPerSec 10

    # Limite de requêtes autorisées par seconde pour une même URL
    ModEvasive24MaxURLsWithin 10

    # Limite de requêtes autorisées par minute pour une même adresse IP
    ModEvasive24MaxIPsPerMinute 100

    # Durée du blocage en secondes pour une adresse IP bloquée
    ModEvasive24BlockPeriod 3600
</IfModule>

 

Configuration d'iptables

Vous pouvez également configurer iptables pour protéger votre serveur contre les attaques DDoS en limitant le nombre de connexions autorisées par seconde ou par minute pour certaines règles.

Voici un exemple de configuration iptables pour limiter le nombre de connexions SSH autorisées :

# Limiter le nombre de connexions SSH autorisées par seconde
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1 --hitcount 5 -j DROP

# Limiter le nombre de connexions SSH autorisées par minute
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 30 -j DROP

Ces règles iptables permettent de limiter le nombre de connexions SSH autorisées à 5 par seconde et 30 par minute, ce qui peut aider à protéger votre serveur contre les attaques DDoS ciblant le service SSH.

N'oubliez pas de sauvegarder vos règles iptables pour qu'elles soient persistantes après un redémarrage du système. Vous pouvez le faire en utilisant la commande iptables-save ou en sauvegardant les règles dans un fichier et en les rechargeant au démarrage à l'aide d'un script personnalisé.

Il est important de noter que la configuration d'une protection anti-DDoS efficace peut être complexe et nécessite une compréhension approfondie des attaques DDoS, ainsi que des outils et techniques de défense appropriés. Il est recommandé de consulter les ressources appropriées et de faire appel à des experts en sécurité pour vous assurer que votre configuration est adaptée à vos besoins spécifiques et offre un niveau de protection adéquat pour votre environnement.

 

 

 

16-Configuration des sauvegardes régulières (rsync, cron)

La sauvegarde régulière de vos données est essentielle pour protéger vos informations contre les pertes accidentelles ou les erreurs système. Vous pouvez utiliser rsync, un outil de synchronisation de fichiers, combiné avec cron, un planificateur de tâches sous Linux, pour automatiser vos sauvegardes et les exécuter à des intervalles réguliers.

 

Voici les étapes pour configurer des sauvegardes régulières avec rsync et cron :

  • Installer rsync si ce n'est pas déjà fait :
apt-get update 
apt-get install rsync
  • Créer un répertoire de sauvegarde où vous stockerez vos sauvegardes :
mkdir /path/to/backup
  • Créer un script de sauvegarde qui utilise rsync pour copier les fichiers et répertoires que vous souhaitez sauvegarder. Voici un exemple de script qui sauvegarde le répertoire /var/www/
nano /path/to/backup/backup.sh

Contenu du script :

#!/bin/bash rsync -avz /var/www /path/to/backup/

Sauvegarder et quitter le fichier.

  • Rendre le script exécutable :
chmod +x /path/to/backup/backup.sh
  • Configurer une tâche cron pour exécuter le script de sauvegarde à des intervalles réguliers. Par exemple, pour exécuter la sauvegarde tous les jours à minuit, vous pouvez ajouter la ligne suivante dans votre fichier crontab :
0 0 * * * /path/to/backup/backup.sh

Sauvegarder et quitter le fichier.

 

Avec cette configuration, rsync copiera les fichiers du répertoire /var/www/ vers le répertoire de sauvegarde /path/to/backup/ tous les jours à minuit, assurant ainsi une sauvegarde régulière de vos données.

 

N'oubliez pas de personnaliser les chemins de répertoires et les horaires de sauvegarde en fonction de vos besoins spécifiques.

 

 

 

17-Autres mesures de sécurisation

Désactivation des services inutiles

Pour renforcer la sécurité de votre serveur, il est important de désactiver tous les services inutiles qui ne sont pas nécessaires à son fonctionnement. Cela réduit la surface d'attaque potentielle en limitant les services exposés et en évitant les vulnérabilités potentielles liées à des services non utilisés. Vous pouvez lister les services actuellement en cours d'exécution sur votre serveur avec la commande suivante :

systemctl list-units --type=service --state=running

Identifiez les services qui ne sont pas nécessaires à votre configuration spécifique et désactivez-les avec la commande suivante :

systemctl disable <service_name>

Assurez-vous de bien comprendre les services que vous désactivez et de vérifier leur impact sur le fonctionnement de votre serveur avant de les désactiver.

 

Configuration du pare-feu

Un pare-feu bien configuré est essentiel pour protéger votre serveur contre les attaques réseau. Vous pouvez utiliser l'outil "iptables" pour configurer les règles de pare-feu sur votre serveur. Voici un exemple de configuration de base pour un pare-feu qui permet uniquement le trafic entrant sur les ports SSH (22), HTTP (80) et HTTPS (443), et bloque tout autre trafic entrant :

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -j DROP

Vous pouvez personnaliser ces règles en fonction de vos besoins spécifiques, mais assurez-vous de bien comprendre les implications de chaque règle avant de les appliquer.

 

Durcissement du système

En plus des mesures de sécurité mentionnées précédemment, il est important de mettre en place d'autres bonnes pratiques de durcissement du système pour renforcer la sécurité de votre serveur. Cela peut inclure la configuration de la politique de mot de passe forte, la désactivation du compte root, la mise à jour régulière du système d'exploitation et des logiciels, et la configuration appropriée des autorisations de fichiers et de répertoires.

Ces étapes supplémentaires peuvent varier en fonction de votre configuration spécifique et des exigences de sécurité de votre serveur, mais elles peuvent contribuer à améliorer la sécurité globale de votre système.

 

J'espère que ces informations vous aideront dans la configuration de votre serveur Debian 12 en matière de sécurisation. N'hésitez pas à les adapter en fonction de vos besoins spécifiques et à effectuer des recherches supplémentaires pour vous assurer de mettre en place les meilleures pratiques de sécurité pour votre environnement.

 

 

Bravo ! Vous méritez une pause !

Vous avez fait tout ça dans la journée ? Vous avez géré ! Sécuriser un serveur web complet avec les services de messagerie et de FTP sur Debian 12 Bookworm est une tâche complexe mais essentielle pour garantir la protection de vos données et services en ligne. Nous avons passé en revue les différentes étapes, de la configuration initiale du serveur, en passant par la mise en place de mesures de sécurité avancées telles que la génération de DKIM, SPF, DMARC, la configuration d'Apache2, PHP, SSL, Cloudflare, ainsi que la sécurisation de MySQL/MariaDB, la configuration du monitoring et de la journalisation avec Monit et Rsyslog, et l'utilisation de Fail2ban ou CSF pour la protection contre les attaques. Nous avons également abordé la mise en place d'une protection anti-DDoS avec mod_evasive et iptables, ainsi que la configuration des sauvegardes régulières avec rsync et cron. Enfin, nous avons mentionné d'autres mesures de sécurisation telles que la désactivation des services inutiles, la configuration du pare-feu, et le durcissement du système.

Il est important de noter que la sécurité d'un serveur web est un processus continu, et il est recommandé de maintenir régulièrement les mises à jour de sécurité, de surveiller les journaux système et d'appliquer les meilleures pratiques de sécurité pour minimiser les risques d'attaques potentielles. Assurez-vous également de suivre les recommandations de sécurité spécifiques de vos applications et services installés, ainsi que de prendre en compte les politiques de sécurité de votre organisation.

En ayant suivi attentivement les étapes de sécurisation décrites dans ce tutoriel, vous pouvez renforcer la sécurité de votre serveur web complet sur Debian 12 Bookworm et protéger efficacement vos données et vos services en ligne contre les menaces potentielles.