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