Sécuriser simplement sa machine
Dans cet article, nous passerons en revue plusieurs étapes :
- Mise à jour de votre système
- Changement du port SSH
- Changement du mot de passe root
- Bloquer les connexions root à distance
- Installation et configuration d'un Fail2Ban
- Installation et configuration d'IPTables
Note : Ces différentes protections sont basiques mais vous permettent d'éviter certaines dégradations/attaques.
Cet article a été réalisé uniquement pour une distribution Ubuntu/Debian.
Mise à jour de votre système
Ici, il y aura simplement deux commandes :
- Mise à jour de la liste des paquets :
- Mise à jour des paquets :
sudo apt update
sudo apt upgrade
Cette opération doit être effectuée régulièrement afin de maintenir un système à jour.
Changement du port SSH
Avant toute chose, le port par défaut du protocole SSH est le 22
.
Pour réduire le nombre d'attaques par bruteforce, nous avons la possibilité de modifier ce port.
Connectez-vous à votre machine en tant que root.
Ouvrez le fichier de configuration SSH avec votre éditeur préféré : nano /etc/ssh/sshd_config
Cherchez la ligne où le port 22 est défini (Ctrl+W dans nano pour chercher)
Remplacez le port 22 par le port que vous souhaitez. Vérifier cependant que le port n'est pas déjà utilisé.
Enregistrez la configuration (Ctrl+X dans nano).
Vous pouvez maintenant redémarrer le service ssh avec la commande suivante : /etc/init.d/ssh restart
Changement du mot de passe root
Pour modifier le mot de passe root, il suffit d'entrer la commande suivante : passwd root
Note : Le mot de passe ne s'affichera pas à l'écran lorsque vous l'entrerez
Bloquer les connexions root à distance
Attention : avant d'effectuer cette étape, vous devez nécessairement avoir un autre compte sur votre machine sinon vous risquez de perdre l'accès à votre machine.
Pour ce faire, retournez dans le fichier de configuration SSH avec la commande suivante : nano /etc/sshd/sshd_config
Trouvez dans la configuration la ligne PermitRootLogin yes
Vous l'avez compris, passez PermitRootLogin
de yes
à no
Enregistrez la configuration (Ctrl+X dans nano).
Vous pouvez maintenant redémarrer le service ssh avec la commande suivante : /etc/init.d/ssh restart
Désormais, la connexion root à distance est impossible
Installation et configuration d'un Fail2Ban
Fail2Ban est un framework de prévention contre les intrusions qui analyse les logs de divers services (SSH, Apache, FTP…) en cherchant des correspondances entre des motifs définis dans ses filtres et les entrées des logs.
Ce framework est recommandé et même essentiel pour éviter toute attaque brutale contre un service de votre machine
Pour l'installer, rien de plus simple : apt install fail2ban
Une fois le paquet installé, nous allons modifier la configuration afin de l'adapter à notre machine. Comme le recommande Fail2ban, créez un fichier de configuration local de vos services en copiant le fichier jail : cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Ouvrez ensuite le fichier avec nano par exemple : nano /etc/fail2ban/jail.local
Pour chaque service présent sur votre machine et exécutés, activer fail2ban. Exemple :
[sshd]
enabled = true
port = ssh
filter = sshd
maxretry = 3
findtime = 5m
bantime = 30m
Une bonne pratique à avoir afin d'éviter de se couper l'herbe sous le pied est d'ajouter son IP en exception fail2ban. Pour ce faire, dans le même fichier, cherchez la ligne suivante : ignoreip = 192.168.0.1/16 [...] VOTRE_IP_ICI
Une fois vos modifications terminées pour l'ensemble de vos services, enregistrez votre configuration et redémarrez le service : sudo service fail2ban restart
Installation et configuration d'Iptables
Iptables est installé par défaut sur la plupart des systèmes Linux. Pour vérifier si Iptables est installé, utilisez la commande suivante : sudo apt install iptables
Pour afficher les règles déjà existantes sur votre serveur, utilisez la commande sudo iptables -L
Commençons par ajouter notre adresse IP comme IP autorisé grâce à la commande suivante : sudo iptables -A INPUT -s votre_adresse_IP_à_autoriser -j ACCEPT
Ensuite, nous allons autoriser le trafic local avec la commande suivante : sudo iptables -A INPUT -i lo -j ACCEPT
Maintenant, il faut autoriser le trafic sur les ports nécessaires. On ajoute par exemple notre port SSH avec la commande suivante : sudo iptables -A INPUT -p tcp --dport 2000 -j ACCEPT
Ici, 2000 représente le port SSH modifié.
Si vous définissez des règles Iptables, vous devez empêcher les accès non autorisés en supprimant le trafic provenant d'autres ports : sudo iptables -A INPUT -j DROP
Si vous vous êtes trompé dans une règle, vous pouvez la supprimer simplement. Premièrement, entrez la commande iptables -L --line-numbers
pour avoir votre liste de règles numérotée
Pour supprimer la règle désirée, entrez la commande suivante en remplaçant les valeurs : sudo iptables -D [CHAIN] [NUMERO]
.
Exemple : sudo iptables -D INPUT 4
Enfin, enregistrez vos modifications : sudo -s iptables-save -c
Note : Pour aller plus loin dans la configuration et l'utilisation d'Iptables, cliquez-ici