GNU/Linux >> Tutoriels Linux >  >> Linux

Restreindre la connexion SSH à une adresse IP ou à un hôte spécifique

Cet article décrit comment configurer une connexion Secure Shell (SSH) restreinte à un serveur à partir d'une adresse IP ou d'un nom d'hôte particulier.

Pour ce faire, utilisez des wrappers TCP car ils fournissent un filtrage de base du trafic réseau entrant. Bien que plus complexes en surface, les wrappers TCP utilisent essentiellement deux fichiers :/etc/hosts.allow et /etc/hosts.deny .

Si les fichiers n'existent pas encore, vous pouvez créer. à l'aide de la commande suivante :

sudo touch /etc/hosts.{allow,deny}

Refuser tous les hôtes

Il est recommandé de refuser toutes les connexions SSH entrantes. Pour ce faire, suivez les étapes suivantes :

  1. Ouvrez le fichier /etc/hosts.deny en utilisant un éditeur de texte :

     vi /etc/hosts.deny
    
  2. Ajoutez la ligne suivante pour refuser toutes les connexions SSH entrantes au serveur :

     sshd: ALL
    
  3. Enregistrez et fermez le fichier.

C'est ça. Cela bloque tous les accès SSH à l'hôte

Autoriser les adresses IP

Maintenant, effectuez les étapes suivantes pour configurer les adresses IP avec l'autorisation de se connecter en utilisant SSH :

  1. Ouvrez le fichier /etc/hosts.allow fichier à l'aide d'un éditeur de texte :

     vi /etc/hosts.allow
    
  2. Ajouter un sshd pour permettre à l'adresse IP de votre choix de se connecter en utilisant SSH public. Par exemple, la ligne suivante autorise le réseau 172.168.0.21 :

     sshd: 172.168.0.21
    
  3. Enregistrez et fermez le fichier.

Les fichiers TCP Wrapper acceptent une liste d'entrées séparées par des virgules, vous pouvez donc ajouter des adresses à la première entrée de cette section.

sshd: 172.168.0.21, 10.83.33.77, 10.63.152.9, 10.12.100.11, 10.82.192.28

Ils acceptent également des adresses IP partielles en tant que sous-réseaux, vous pouvez donc autoriser l'intégralité de 172.168.0.0/24 comme :

sshd: 172.168.0.

Ou comme indiqué dans l'exemple suivant :

sshd : localhost
sshd : 192.168.0.
sshd : 99.151.250.7

Vous pouvez autoriser ou refuser en fonction de l'adresse IP, du sous-réseau ou du nom d'hôte. Répertoriez les règles dans l'ordre du plus spécifique au moins spécifique. Gardez à l'esprit que les serveurs basés sur les systèmes d'exploitation Linux® examinent d'abord le fichier hosts.allow fichier commençant de haut en bas, suivi de hosts.deny dossier. Par exemple, une tentative de connexion SSH depuis une adresse IP dans hosts.allow est autorisé, même si hosts.deny bloque toutes les connexions.

Avec cette configuration, tout client répertorié dans hosts.allow sont autorisés via SSH et tout client non répertorié est bloqué.

Remarque  :Le démon SSH n'a pas besoin d'être redémarré pour que les modifications prennent effet.


Linux
  1. Comment autoriser ou refuser la connexion à distance à des comptes d'utilisateurs spécifiques sur le serveur Linux

  2. Autoriser l'accès Ssh à distance ?

  3. Comment désactiver la connexion SSH avec un mot de passe

  4. CentOS / RHEL :Comment restreindre la connexion SSH par heure de la journée

  5. Pourquoi ma connexion SSH est-elle lente ?

Comment configurer une connexion SSH sans mot de passe

Autoriser la connexion racine SSH sur Ubuntu 20.04 Focal Fossa Linux

Autoriser la connexion racine SSH sur Ubuntu 22.04 Jammy Jellyfish Linux

Comment désactiver la connexion SSH à un utilisateur spécifique sous Linux

Comment limiter les utilisateurs SSH à un ensemble prédéfini de commandes après la connexion ?

Restreindre rsync sur ssh en lecture seule/seulement copier depuis l'hôte distant