GNU/Linux >> Tutoriels Linux >  >> Linux

CentOS / RHEL :Comment désactiver ssh pour les utilisateurs non root (autoriser ssh uniquement pour l'utilisateur root)

Par défaut, tous les utilisateurs peuvent se connecter en SSH à un système avec un mot de passe/clé publique valide. Pour certains Serveurs dédiés avec des rôles spécifiques, tels que Serveur FTP, Serveur de messagerie, etc. ; il est généralement recommandé de désactiver les utilisateurs non root pour se connecter via SSH. La publication détaille les étapes pour désactiver l'accès de connexion ssh de l'utilisateur non root aux systèmes. Il y a 3 façons différentes discutées ici. L'une des trois façons ci-dessous pourrait atteindre l'objectif.

Méthode 1 - en utilisant le fichier /etc/ssh/sshd_config

Cette méthode peut être utilisée pour permettre à quelques utilisateurs de se connecter en SSH. Modifiez le fichier /etc/ssh/sshd_config (fichier de configuration du démon OpenSSH SSH) et ajoutez le mot-clé AllowUsers avec pour argument racine .

# vi /etc/ssh/sshd_config
AllowUsers root
Remarque :les mots clés sont insensibles à la casse et les arguments sont également sensibles à la casse.

Redémarrez maintenant le service sshd :

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

Vérifiez que les utilisateurs non root ne peuvent pas se connecter via SSH mais que l'utilisateur root le peut.

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).
# ssh root@host1
root@host1's password: 
Last login: Wed Sep 13 10:47:14 2017 from 10.10.10.10
[root@host1 ~]#

Méthode 2 – utilisation du fichier /etc/nologin

C'est le moyen le plus rapide de bloquer tous les utilisateurs non root de la connexion SSH.

1. Créez un fichier /etc/nologin sur l'hôte distant.

# touch /etc/nologin
# ls -lrt /etc/nologin
-rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologin
Remarque :Si ce fichier existe, seul l'utilisateur root est autorisé à se connecter au système via SSH. Si le fichier /etc/nologin.txt existe, nologin affiche son contenu à l'utilisateur au lieu du message par défaut.

Assurez-vous que la ligne ci-dessous se trouve dans le fichier /etc/pam.d/sshd :

account    required     pam_nologin.so
Note: backup the file /etc/pam.d/sshd before modifying it.

Redémarrez ensuite le service sshd :

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

Vérifiez la connexion SSH de l'utilisateur non root :

# ssh test@host1
test@host1's password: 
Connection closed by 192.168.10.10

Méthode 3 - en utilisant le fichier /etc/sshd/sshd.allow

Le fichier /etc/sshd/sshd.allow est utilisé pour spécifier la liste des utilisateurs auxquels nous voulons donner un accès ssh. Si nous mentionnons simplement l'utilisateur root dans ce fichier, tous les autres utilisateurs se verront refuser l'accès ssh à l'hôte.

1. Ajoutez l'utilisateur root au fichier /etc/sshd/sshd.allow (si le répertoire/fichier n'existe pas, créez-le manuellement).

# cat /etc/sshd/sshd.allow 
root

2. Remplacez la ligne auth comme ci-dessous dans le fichier /etc/pam.d/sshd :

auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=fail

Ici,
auth requis pam_listfile.so  :Nom du module requis lors de l'authentification des utilisateurs.
item=user  :Vérifiez le nom d'utilisateur de l'élément.
sense=allow  :Autoriser l'utilisateur.
file=/etc/sshd/sshd.allow  :Fichier de liste d'utilisateurs.
onerr=fail :Si le nom d'utilisateur n'est pas dans le fichier, il ne permettra pas de se connecter.

3. Redémarrez le service sshd une fois que vous avez terminé avec toutes les modifications ci-dessus.

# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

4. Vérifiez la connexion SSH de l'utilisateur non root :

# ssh test@host1
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied, please try again.
test@host1's password: 
Permission denied (publickey,gssapi-with-mic,password).

Vérifiez également si vous pouvez vous connecter en ssh avec l'utilisateur root :

# ssh root@host1
ssh root@host1's password: 
Last login: Wed Sep 13 14:53:47 2017 from 10.10.10.10
[root@host1 ~]#


Linux
  1. CentOS / RHEL 7 :Comment désactiver IPv6 sur une interface spécifique uniquement

  2. Comment exécuter rsyslog en tant qu'utilisateur non root dans CentOS/RHEL 7

  3. SSH sans mot de passe ne fonctionne pas pour les utilisateurs locaux sur les serveurs LDAP - CentOS/RHEL 7

  4. CentOS / RHEL 6 :Comment désactiver IPv6

  5. CentOS / RHEL :Comment définir la prison chroot pour vsftp uniquement pour des utilisateurs spécifiques

Comment créer un utilisateur SFTP pour une racine de document de serveur Web

Comment désactiver l'accès root SSH sur CentOS 7

Comment configurer SSH sur CentOS et RHEL

Comment limiter l'utilisateur root dans CentOS

Comment désactiver la connexion SSH pour l'utilisateur root sous Linux ?

Comment désactiver la liste des utilisateurs sur l'écran de connexion GNOME dans CentOS/RHEL 8