Per impostazione predefinita, tutti gli utenti possono accedere a un sistema tramite SSH con una password/chiave pubblica valida. Per alcuni Server dedicati con ruoli specifici, come Server FTP, Server di Posta, ecc.; In genere si consiglia di disabilitare gli utenti non root per accedere tramite SSH. Il post descrive in dettaglio i passaggi per disabilitare l'accesso ssh login dell'utente non root ai sistemi. Ci sono 3 modi diversi discussi qui. Uno dei tre modi seguenti potrebbe raggiungere lo scopo.
Metodo 1:utilizzo del file /etc/ssh/sshd_config
Questo metodo può essere utilizzato per consentire ad alcuni utenti di accedere tramite SSH. Modifica il file /etc/ssh/sshd_config (File di configurazione del demone SSH OpenSSH) e aggiungi la parola chiave AllowUsers con argomento radice .
# vi /etc/ssh/sshd_config AllowUsers rootNota :le parole chiave non fanno distinzione tra maiuscole e minuscole e anche gli argomenti fanno distinzione tra maiuscole e minuscole.
Ora riavvia il servizio sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
Verifica che gli utenti non root non siano in grado di accedere tramite SSH ma l'utente root può farlo.
# 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 ~]#Metodo 2:utilizzo del file /etc/nologin
Questo è il modo più rapido per bloccare tutti gli utenti non root dall'accesso SSH.
1. Crea un file /etc/nologin sull'host remoto.
# touch /etc/nologin # ls -lrt /etc/nologin -rw-r--r-- 1 root root 0 Sep 13 13:23 /etc/nologinNota :se questo file esiste, solo l'utente root può accedere al sistema tramite SSH. Se il file /etc/nologin.txt esiste, nologin mostra il suo contenuto all'utente invece del messaggio predefinito.Assicurati che la riga seguente sia nel file /etc/pam.d/sshd :
account required pam_nologin.soNote: backup the file /etc/pam.d/sshd before modifying it.Quindi riavvia il servizio sshd:
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]Verifica l'accesso SSH dell'utente non root:
# ssh test@host1 test@host1's password: Connection closed by 192.168.10.10Metodo 3:utilizzo del file /etc/sshd/sshd.allow
Il file /etc/sshd/sshd.allow viene utilizzato per specificare l'elenco di utenti a cui vogliamo concedere l'accesso ssh. Se menzioniamo semplicemente l'utente root in questo file, a tutti gli altri utenti verrà negato l'accesso ssh all'host.
1. Aggiungi l'utente root al file /etc/sshd/sshd.allow (se la directory/il file non esiste, crearlo manualmente).
# cat /etc/sshd/sshd.allow root2. Sostituisci la riga di autenticazione come di seguito nel file /etc/pam.d/sshd :
auth required pam_listfile.so item=user sense=allow file=/etc/sshd/sshd.allow onerr=failQui,
auth richiesto pam_listfile.so :Nome del modulo richiesto durante l'autenticazione degli utenti.
item=user :controlla il nome utente dell'elemento.
sense=allow :Consenti utente.
file=/etc/sshd/sshd.allow :File elenco utenti.
onerr=fail :Se il nome utente non è nel file, non consentirà il login.3. Riavvia il servizio sshd una volta che hai finito con tutte le modifiche precedenti.
# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]4. Verifica l'accesso SSH dell'utente 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).Verifica anche se puoi eseguire ssh con l'utente 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 ~]#