GNU/Linux >> Tutoriels Linux >  >> Linux

7 étapes pour sécuriser votre serveur Linux

Cette introduction vous présentera la sécurité de base des serveurs Linux. Bien qu'il se concentre sur Debian/Ubuntu, vous pouvez appliquer tout ce qui est présenté ici à d'autres distributions Linux. Je vous encourage également à rechercher ce matériel et à l'étendre le cas échéant.

1. Mettez à jour votre serveur

La première chose à faire pour sécuriser votre serveur est de mettre à jour les référentiels locaux et de mettre à niveau le système d'exploitation et les applications installées en appliquant les derniers correctifs.

Sur Ubuntu et Debian :

$ sudo apt update && sudo apt upgrade -y

Sur Fedora, CentOS ou RHEL :

$ sudo dnf upgrade

2. Créer un nouveau compte d'utilisateur privilégié

Ensuite, créez un nouveau compte utilisateur. Vous ne devez jamais vous connecter à votre serveur en tant que root . Au lieu de cela, créez votre propre compte (" "), donnez-lui sudo droits et utilisez-le pour vous connecter à votre serveur.

Commencez par créer un nouvel utilisateur :

$ adduser <username>

Donnez à votre nouveau compte utilisateur sudo droits en ajoutant (-a ) le sudo groupe (-G ) à l'appartenance au groupe de l'utilisateur :

$ usermod -a -G sudo <username>

3. Téléchargez votre clé SSH

Vous voudrez utiliser une clé SSH pour vous connecter à votre nouveau serveur. Vous pouvez télécharger votre clé SSH pré-générée sur votre nouveau serveur en utilisant le ssh-copy-id commande :

$ ssh-copy-id <username>@ip_address

Vous pouvez maintenant vous connecter à votre nouveau serveur sans avoir à saisir de mot de passe.

4. SSH sécurisé

Ensuite, apportez ces trois modifications :

  • Désactiver l'authentification par mot de passe SSH
  • Restreindre racine de se connecter à distance
  • Restreindre l'accès à IPv4 ou IPv6

Ouvrez /etc/ssh/sshd_config en utilisant l'éditeur de texte de votre choix et assurez-vous que ces lignes :

PasswordAuthentication yes
PermitRootLogin yes

ressembler à ceci :

PasswordAuthentication no
PermitRootLogin no

Ensuite, limitez le service SSH à IPv4 ou IPv6 en modifiant la AddressFamily option. Pour le modifier afin d'utiliser uniquement IPv4 (ce qui devrait convenir à la plupart des gens), procédez comme suit :

AddressFamily inet

Redémarrez le service SSH pour activer vos modifications. Notez que c'est une bonne idée d'avoir deux connexions actives à votre serveur avant de redémarrer le serveur SSH. Cette connexion supplémentaire vous permet de réparer quoi que ce soit en cas de problème de redémarrage.

Sur Ubuntu :

$ sudo service sshd restart

Sur Fedora ou CentOS ou quoi que ce soit utilisant Systemd :

$ sudo systemctl restart sshd

5. Activer un pare-feu

Vous devez maintenant installer un pare-feu, l'activer et le configurer uniquement pour autoriser le trafic réseau que vous désignez. Le pare-feu non compliqué (UFW) est une interface facile à utiliser pour iptables qui simplifie grandement le processus de configuration d'un pare-feu.

Vous pouvez installer UFW avec :

$ sudo apt install ufw

Par défaut, UFW refuse toutes les connexions entrantes et autorise toutes les connexions sortantes. Cela signifie que n'importe quelle application sur votre serveur peut accéder à Internet, mais tout ce qui tente d'atteindre votre serveur ne peut pas se connecter.

Tout d'abord, assurez-vous que vous pouvez vous connecter en activant l'accès à SSH, HTTP et HTTPS :

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Activez ensuite UFW :

$ sudo ufw enable

Vous pouvez voir quels services sont autorisés et refusés avec :

$ sudo ufw status

Si jamais vous souhaitez désactiver UFW, vous pouvez le faire en tapant :

$ sudo ufw disable

Vous pouvez également utiliser firewall-cmd, qui est déjà installé et intégré dans certaines distributions.

6. Installez Fail2ban

Fail2ban est une application qui examine les journaux du serveur à la recherche d'attaques répétées ou automatisées. S'il en trouve, il modifiera le pare-feu pour bloquer l'adresse IP de l'attaquant de manière permanente ou pour une durée spécifiée.

Vous pouvez installer Fail2ban en tapant :

$ sudo apt install fail2ban -y

Copiez ensuite le fichier de configuration inclus :

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Et redémarrez Fail2ban :

$ sudo service fail2ban restart

C'est tout ce qu'on peut en dire. Le logiciel examinera en permanence les fichiers journaux à la recherche d'attaques. Au bout d'un moment, l'application constituera toute une liste d'adresses IP interdites. Vous pouvez afficher cette liste en demandant l'état actuel du service SSH avec :

$ sudo fail2ban-client status ssh

7. Supprimer les services réseau inutilisés

Presque tous les systèmes d'exploitation de serveur Linux sont livrés avec quelques services réseau activés. Vous voudrez garder la plupart d'entre eux. Cependant, il y en a quelques-uns que vous voudrez peut-être supprimer. Vous pouvez voir tous les services réseau en cours d'exécution en utilisant le ss commande :

$ sudo ss -atpu

La sortie de ss sera différent selon votre système d'exploitation. Ceci est un exemple de ce que vous pourriez voir. Cela montre que les services SSH (sshd) et Ngnix (nginx) sont à l'écoute et prêts pour la connexion :

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

Comment procédez-vous pour supprimer un service inutilisé (" ") diffère en fonction de votre système d'exploitation et du gestionnaire de packages qu'il utilise.

Pour supprimer un service inutilisé sur Debian/Ubuntu :

$ sudo apt purge <service_name>

Pour supprimer un service inutilisé sur Red Hat/CentOS :

$ sudo yum remove <service_name>

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Exécutez ss -atup à nouveau pour vérifier que les services inutilisés ne sont plus installés et en cours d'exécution.

Réflexions finales

Ce tutoriel présente le strict minimum nécessaire pour durcir un serveur Linux. Des couches de sécurité supplémentaires peuvent et doivent être activées en fonction de la manière dont un serveur est utilisé. Ces couches peuvent inclure des éléments tels que des configurations d'application individuelles, un logiciel de détection d'intrusion et l'activation de contrôles d'accès, par exemple une authentification à deux facteurs.


Linux
  1. Configurez votre serveur OpenVPN sous Linux

  2. Installez OpenVPN sur votre PC Linux

  3. 9 choses à faire dans vos 10 premières minutes sur un serveur Linux

  4. Comment surveiller votre serveur Linux ?

  5. Meilleures pratiques de sécurité des serveurs Linux

Comment vérifier la charge de votre serveur sous Linux

Comment vérifier la charge de votre serveur dans le système Linux

Guide de configuration du serveur SFTP sous Linux

Comment vérifier la disponibilité de votre serveur Linux

Comment configurer un démon Rsync sur votre serveur Linux

Comment configurer un pare-feu sur votre serveur Linux