GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sécuriser le service SSH avec Port Knocking

Si vous souhaitez autoriser les utilisateurs à accéder à des services spécifiques sur votre serveur sans ouvrir de pare-feu, vous pouvez utiliser le port knocking. Port knocking est une méthode qui vous permet de sécuriser votre service contre les utilisateurs non autorisés. Le port knocking autorise les connexions entrantes lorsqu'une séquence correcte de tentatives de connexion est reçue.

Dans cet article, nous allons sécuriser le port SSH ouvert 22 avec le port knocking. Ce port ne sera ouvert que lorsque quelqu'un demandera les ports 7000, 8000, 9000 dans l'ordre.

Prérequis

  • Un serveur Ubuntu 20.04 sur la plate-forme cloud Atlantic.Net
  • Un mot de passe root configuré sur votre serveur

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 20.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur Ubuntu 20.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

apt-get update -y

Étape 2 - Installer et configurer Knockd

apt-get install knockd -y

Une fois le package installé, modifiez le fichier de configuration par défaut du port knocking :

nano /etc/knockd.conf

Trouvez la séquence par défaut ci-dessous :

        sequence    = 7000,8000,9000
        sequence    = 9000,8000,7000

Et remplacez-les par la séquence suivante :

        sequence    = 7777,8888,9999
        sequence    = 9999,8888,7777

Recherchez également la ligne suivante :

        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Et remplacez-le par la ligne suivante :

        command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Enregistrez et fermez le fichier lorsque vous avez terminé.

Dans le fichier de configuration ci-dessus, la séquence 7777, 8888, 9999 est utilisée pour ouvrir le port 22 pour un système client, et la séquence 9999, 8888, 7777 est utilisée pour fermer le port 22 pour un système client.

Ensuite, modifiez le /etc/default/knockd fichier de configuration :

nano /etc/default/knockd

Modifiez les lignes suivantes :

# Start the Knockd service
START_KNOCKD=1

# Name of your network interface
KNOCKD_OPTS="-i eth0"

Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez le service Knockd et activez-le pour qu'il démarre au redémarrage du système :

systemctl restart knockd
systemctl enable knockd

Ensuite, vérifiez l'état du service Knockd avec la commande suivante :

systemctl status knockd

Exemple de sortie :

● knockd.service - Port-Knock Daemon
     Loaded: loaded (/lib/systemd/system/knockd.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2021-08-15 13:26:31 UTC; 5s ago
       Docs: man:knockd(1)
   Main PID: 6555 (knockd)
      Tasks: 1 (limit: 2353)
     Memory: 296.0K
     CGroup: /system.slice/knockd.service
             └─6555 /usr/sbin/knockd -i eth0

Aug 15 13:26:31 ubuntu2004 systemd[1]: Started Port-Knock Daemon.
Aug 15 13:26:31 ubuntu2004 knockd[6555]: starting up, listening on eth0

Étape 3 - Installer et configurer Iptables

Knockd utilise la règle Iptables pour ouvrir et fermer le port SSH, vous devrez donc installer le package Iptables sur votre serveur.

Exécutez la commande suivante pour installer le package Iptables :

apt-get install iptables iptables-persistent -y

Une fois le package installé, créez une règle Iptables pour bloquer le port SSH 22 pour tous les utilisateurs :

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j REJECT

Ensuite, enregistrez la règle Iptables et rechargez-la avec la commande suivante :

netfilter-persistent save
netfilter-persistent reload

À ce stade, le port knocking est configuré pour OpenSSH sur votre serveur.

Étape 4 - Vérifier la connexion OpenSSH à partir du système client

Ensuite, accédez au système client et vérifiez si le port OpenSSH 22 est bloqué ou non.

Vous pouvez le vérifier à l'aide de la commande NMAP :

nmap your-server-ip

Vous devriez voir que le port 22 est filtré sur le serveur.

Nmap scan report for your-server-ip
Host is up (0.38s latency).
Not shown: 998 closed ports
PORT   STATE    SERVICE
21/tcp open     ftp
22/tcp filtered ssh
Nmap done: 1 IP address (1 host up) scanned in 277.58 seconds

Maintenant, essayez de vous connecter à votre serveur en utilisant SSH depuis la machine client :

ssh [email protected]

Vous devriez voir le message de connexion refusée :

ssh: connect to host your-server-ip port 22: Connection refused

Étape 5 - Configurer Knockd sur le client pour connecter le serveur SSH

Vous devez maintenant installer le client Knock sur le système client pour vous connecter au serveur SSH.

Tout d'abord, exécutez la commande suivante pour installer le package client Knockd :

apt-get install knockd -y

Utilisez maintenant la séquence de frappe suivante pour ouvrir le port SSH 22 sur le serveur.

knock -v your-server-ip 7777 8888 9999

Lorsque votre serveur reçoit une séquence correcte que vous avez définie dans le fichier de configuration de Knockd, il ouvrira le port SSH 22 pour votre machine cliente et vous pourrez vous connecter au serveur SSH.

ssh [email protected]

Après avoir terminé votre tâche sur le serveur SSH distant, vous pouvez utiliser la séquence suivante à partir de la machine cliente pour fermer à nouveau le port SSH.

knock -v your-server-ip 9999 8888 7777

Conclusion

Dans le guide ci-dessus, vous avez appris comment sécuriser un serveur SSH avec le port knocking. Vous pouvez utiliser la même méthode pour sécuriser d'autres ports sur un serveur Linux. Essayez-le sur l'hébergement VPS d'Atlantic.Net !


Linux
  1. Comment installer le service SSH (Secure Shell) sur Kali Linux

  2. SSH vers un port autre que 22 :comment le faire (avec exemples)

  3. Comment activer le service SSH dans Ubuntu 22.04 LTS

  4. Comment changer le port SSH sous Linux

  5. Comment configurer le tunnel SSH

Comment gérer à distance le serveur Ubuntu avec SSH

Comment installer le serveur SSH dans Ubuntu 20.04

Comment utiliser Port Knocking pour sécuriser le service SSH sous Linux

Comment SSH au serveur via Linux

Comment verrouiller votre serveur CentOS avec IPTables

Comment sécuriser SSH avec Fail2Ban