GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Port frappant est une technique astucieuse de contrôle d'accès à un port en autorisant uniquement les utilisateurs légitimes à accéder au service exécuté sur un serveur. Cela fonctionne de telle manière que lorsque la bonne séquence de tentatives de connexion est effectuée, le pare-feu ouvre volontiers le port qui a été fermé.

La logique derrière le port knocking est de protéger votre système Linux des scanners de port automatisés qui rôdent pour les ports ouverts. Dans ce guide, nous examinons comment vous pouvez installer le port knocking et comment vous pouvez le configurer pour sécuriser le service SSH. À des fins de démonstration, nous utiliserons Ubuntu 18.04 .

Étape 1 :Installer et configurer knockd

Pour commencer, connectez-vous à votre système Linux et installez le knockd démon comme indiqué.

$ sudo apt install knockd

Une fois installé, ouvrez le knockd.conf configuration avec votre éditeur de texte préféré. Ici, nous utilisons l'éditeur de texte en ligne de commande vim.

$ sudo vim /etc/knockd.conf

Le fichier de configuration par défaut apparaît comme suit.

Sous le [openSSH] section, nous devons changer la séquence de frappe par défaut - 7000,8000,9000 – à autre chose. En effet, ces valeurs sont déjà connues et peuvent compromettre la sécurité de votre système.

À des fins de test, nous avons défini les valeurs sur 10005, 10006, 10007 . Il s'agit de la séquence qui sera utilisée pour ouvrir le port SSH depuis un système client.

Dans la troisième ligne - commençant par commande , changez -A à -I juste après le /sbin/iptables commande et avant INPUT .

Et enfin, sous le [closeSSH] section, encore une fois, changez la séquence par défaut en votre choix préféré. Il s'agit de la séquence qui sera utilisée pour fermer la connexion SSH une fois que l'utilisateur aura terminé et se déconnectera du serveur.

Voici notre configuration complète.

Une fois que vous avez terminé, enregistrez les modifications et quittez.

Une autre configuration que nous devons modifier est le /etc/default/knockd . Encore une fois, ouvrez-le à l'aide de votre éditeur de texte.

$ sudo vim /etc/default/knockd

Localisez la ligne START_KNOCKD=0 . Décommentez-le et définissez la valeur sur 1 .

Ensuite, dirigez-vous vers la ligne KNOCKD_OPTS=”-i eth1” Décommentez-le et remplacez le eth1 par défaut valeur avec l'interface réseau active de votre système. Pour vérifier votre interface réseau, exécutez simplement la commande ip addr ou la commande ifconfig.

Pour notre système, enp0s3 est la carte réseau active.

La configuration complète est comme indiqué.

Enregistrez les modifications et quittez.

Ensuite, démarrez et activez knockd démon comme indiqué.

$ sudo systemctl start knockd
$ sudo systemctl enable knockd

Pour vérifier l'état de knockd démon, exécutez la commande :

$ sudo systemctl status knockd

Étape 2 :Fermez le port 22 SSH sur le pare-feu

Depuis l'objectif du knockd service est d'accorder ou de refuser l'accès au service ssh, nous allons fermer le port ssh sur le pare-feu. Mais d'abord, vérifions l'état du pare-feu UFW.

$ sudo ufw status numbered

À partir de la sortie, nous pouvons clairement voir que SSH port 22 est ouvert sur IPv4 et IPv6 protocoles numérotés 5 et 9 respectivement.

Nous devons supprimer ces deux règles comme indiqué, en commençant par la valeur la plus élevée - qui est 9 .

$ sudo ufw delete 9
$ sudo ufw delete 5

Maintenant, si vous essayez de vous connecter à distance au serveur, vous obtiendrez une erreur de délai de connexion comme indiqué.

Étape 3 :Configurer un client knock pour se connecter au serveur SSH

Dans la dernière étape, nous configurerons un client et tenterons de nous connecter en envoyant d'abord la séquence de frappe que nous avons configurée sur le serveur.

Mais d'abord, installez knockd démon comme vous l'avez fait sur le serveur.

$ sudo apt install knockd

Une fois l'installation terminée, envoyez la séquence de frappe en utilisant la syntaxe indiquée

$ knock -v server_ip knock_sequence

Dans notre cas, cela se traduit par :

$ knock -v 192.168.2.105 10005 10006 10007

Vous devriez obtenir une sortie similaire à celle que nous avons, en fonction de votre séquence. Cela montre que les tentatives de frappe ont réussi.

À ce stade, vous devriez être en mesure de vous connecter avec succès au serveur à l'aide de SSH.

Une fois que vous avez terminé votre travail sur le serveur distant, fermez le port SSH en envoyant la séquence de frappe de fermeture.

$ knock -v 192.168.2.105 10007 10006 10005

Toute tentative de connexion au serveur échouera comme démontré.

Réflexions finales

Ceci conclut ce guide sur la façon de tirer parti du port knocking pour sécuriser le service SSH sur votre serveur. Une approche meilleure et plus simple consisterait à configurer l'authentification SSH par mot de passe à l'aide de paires de clés SSH. Cela garantit que seul l'utilisateur disposant de la clé privée peut s'authentifier auprès du serveur sur lequel la clé publique est stockée.


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

  2. Comment utiliser Fail2ban pour sécuriser SSH sur CentOS 7

  3. Comment changer le port SSH sous Linux

  4. Comment changer le port SSH sur Lubuntu 20.04 Linux

  5. Comment utiliser Chromecast ?

Comment changer le port SSH sous Linux

Comment utiliser systemctl sous Linux

Comment activer le service SSH sur Rocky Linux 8 / CentOS 8

Comment installer Mosh Shell comme alternative SSH sous Linux

Comment changer le port SSH sous Linux - Un guide facile

Comment effectuer une installation Redis sécurisée sous Linux