Informations importantes sur la sécurité de votre serveur Linux (Partie 2/2)

Cette série d'articles explique quelques recommandations et mesures de sécurité importantes qui peuvent aider à augmenter le niveau de sécurité de votre serveur Linux.

Cet article fournit des recommandations de sécurité spécifiques pour configurer en toute sécurité votre serveur Linux et assurer son bon fonctionnement.

Veuillez noter

Ces recommandations de sécurité ne s'appliquent qu'aux serveurs avec accès root.

Désactiver le login root SSH

Par défaut, l'utilisateur root est créé comme premier utilisateur sur chaque système Linux. L'utilisateur root a les droits les plus complets. Avec l'utilisateur root, vous avez accès à toutes les commandes et à tous les fichiers et vous disposez des droits de lecture, d'écriture et d'exécution. Si ce compte d'utilisateur est utilisé de manière incorrecte ou inappropriée, cela peut avoir un impact significatif sur votre serveur. Par conséquent, vous ne devez utiliser cet utilisateur que pour configurer le serveur après sa création.

Parce que le nom d'utilisateur root est utilisé comme nom d'utilisateur par défaut pour l'utilisateur root, root est souvent une cible pour les attaques. Pour cette raison, il est recommandé de configurer un autre compte utilisateur, puis de désactiver le login root SSH. Lors de la configuration du compte utilisateur, assurez-vous qu'il peut obtenir les droits d'utilisateur root en entrant la commande sudo. Alternativement, vous pouvez désactiver l'authentification par mot de passe pour l'utilisateur root dans le fichier /etc/ssh/sshd_config en utilisant l'entrée PermitRootLogin prohibit-password. Dans ce cas, l'utilisateur root ne peut se connecter au serveur qu'en utilisant l'authentification par clé publique SSH.

Vous trouverez de plus amples informations dans l'article suivant :

Désactiver la connexion root SSH

Changer le port SSH

Par défaut, le port 22 est utilisé pour établir une connexion SSH. Ce port est automatiquement saisi lors de l'installation de votre système d'exploitation.

Pour réduire le nombre d'attaques par force brute, vous pouvez configurer un autre port pour l'accès SSH.

Veuillez noter

Avant de changer le port, assurez-vous que les applications et services installés sur le serveur peuvent être configurés sans le port par défaut 22. Dans le cas contraire, le changement du port par défaut peut entraîner l'arrêt du fonctionnement de ces applications et services.

Vous trouverez de plus amples informations dans l'article suivant :

Modifier le port SSH

Configurer une notification par email pour signaler les connexions SSH

Pour surveiller l'activité à distance, vous devez configurer une notification par email pour signaler les connexions SSH réussies. Cette notification par email peut être utilisée pour déterminer si un accès non autorisé au serveur a lieu. Il suffit d'un simple script shell qui envoie automatiquement un email de notification à votre adresse pour chaque connexion à distance réussie à votre serveur.

Remarque

Si un utilisateur établit une connexion SSH à l'aide d'un programme tel que WinSCP qui n'effectue pas une connexion complète, le script décrit ici n'enverra pas d'email.

Voici comment créer un exemple de script pour être notifié des connexions SSH :

Instructions pas-à-pas
  • Ouvrez l'éditeur.

  • Insérez le script souhaité dans le format suivant :#!/bin/bash

    echo "Connexion à $(hostname) le $(date +%Y-%m-%d) à $(date +%H:%M)"
    echo "Utilisateur: $USER"
    echo
    finger

  • Sauvegardez le script dans le répertoire /opt avec le nom de fichier suivant : shell-login.sh

  • Pour exécuter le script, ajoutez la ligne suivante au fichier /etc/profile :
    /opt/shell-login.sh | mailx -s "Connexion SSH à VOTRE-NOM-DHOTE" adresse@exemple.com

  • Attribuez les droits 755 au script :chmod 755 /opt/shell-login.sh

Protéger la connexion SSH contre les attaques par force brute avec fail2ban

Fail2Ban est un logiciel qui analyse les fichiers journaux tels que /var/log/pwdfail ou /var/log/apache/error_log et bloque temporairement les adresses IP qui ont trop de tentatives de connexion ratées. De cette façon, ce Fail2Ban peut détecter et repousser les attaques par force brute.

Vous pouvez télécharger ici Fail2Ban.

Installer un système de détection d'intrusion

Un système de détection d'intrusion est un système avec lequel vous pouvez détecter des attaques sur des serveurs ou des réseaux à un stade précoce. Les systèmes de détection d'intrusion bien connus sont Tripwire, Aide et Psad.

Vérifier les ports ouverts sur votre serveur avec Nmap

Nmap est un logiciel open source qui vous permet d'effectuer des contrôles de sécurité. Avec ce logiciel open source, vous pouvez déterminer quels hôtes sont disponibles sur le réseau. De plus, vous pouvez utiliser Nmap pour identifier les ports ouverts d'un hôte et identifier les services qui répondent aux ports ouverts.

Vous trouverez plus d'informations sur Nmap sur la page suivante :

http://nmap.org

Consulter d'autres guides de "hardening"

Afin de renforcerle système d'exploitation de votre serveur de manière optimale contre les attaques, nous vous recommandons de consulter les Hardening Guides, qui sont proposés par les fournisseurs de distribution respectifs.

CentOS 7

https://wiki.centos.org/HowTos/OS_Protection

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/index

Ubuntu

https://ubuntu.com/security?_ga=2.263273356.1615448989.1569829053-453270342.1569829053

Debian

https://www.debian.org/doc/manuals/securing-debian-howto/

Vérifier les processus suspects

Si vous soupçonnez que votre serveur est compromis malgré toutes les mesures de sécurité, vous devriez vérifier les processus en cours. Pour vérifier l'absence de processus suspects sur votre serveur, procédez comme suit :


Ubuntu

  • Connectez-vous au serveur en tant qu'administrateur.

  • Pour afficher la liste des processus en cours d'exécution, entrez la commande suivante :root@localhost:~# ps aux
    Alternativement, vous pouvez rediriger les processus en cours d'exécution vers un fichier en utilisant la commande suivante :ps aux > prozesse.txt
    less prozesse.txt

CentOS 7

  • Connectez-vous au serveur en tant qu'administrateur.

  • Pour afficher la liste des processus en cours d'exécution, entrez la commande suivante :root@localhost:~# ps aux Alternativement, vous pouvez rediriger les processus en cours d'exécution vers un fichier en utilisant la commande suivante :ps aux > prozesse.txt
    less prozesse.txt

Portez attention aux programmes qui se trouvent dans des répertoires inhabituels. Exemples :

/usr/local/bin
/var/www/tmp
/tmp

Si vous voyez un processus que vous ne pouvez pas identifier, nous vous recommandons de commencer par rechercher si le processus est exécuté par défaut sur votre système d'exploitation ou sur une application installée par défaut.

De plus, recherchez les logiciels malveillants et les virus sur votre serveur à l'aide d'un scanner de logiciels malveillants et d'un programme antivirus.

Conseils de sécurité pour les applications et les bases de données

Protéger ou renommer les sous-répertoires des applications

Les pirates recherchent souvent certains sous-répertoires d'applications, tels que /phpmyadmin. Quand ils trouvent ce qu'ils cherchent, ils essaient toutes les failles de sécurité pour y accéder. Si vous ne pouvez pas protéger ces sous-répertoires, vous devez les renommer.

Si vous n'avez pas besoin de ces applications, vous devriez les désinstaller pour des raisons de sécurité.

Sauvegarder vos bases de données

Si vous utilisez une base de données telle que MySQL ou MariaDB, assurez-vous de la sauvegarder. Certaines mesures de sécurité importantes sont énumérées ci-dessous :

  • Assurez-vous que l'utilisateur local "root" doit s'authentifier.

  • Utilisez les algorithmes de hachage les plus puissants disponibles pour l'authentification.

  • Vérifiez que votre stratégie de sauvegarde est correctement mise en œuvre et testez la récupération de la base de données. Une sauvegarde normale des fichiers peut s'avérer insuffisante. Créez plutôt une exportation de base de données avec des outils comme mysqldump ou pg_dump.

Plus d'articles de cette série

Vous pouvez trouver le premier article de cette série d'articles ici :

Informations importantes sur la sécurité de votre serveur Linux (Partie 1/2)