2013-04-04 16 views
32

Recentemente ho iniziato a esaminare i miei registri di autenticazione e ho scoperto sorprendentemente i bot provenienti dalla Cina che cercavano di forzarli in questo modo (non provarci duramente). Sono andato tutto per cambiare molte cose che i robot non avrebbero mai controllato, e reso più difficile la forza bruta.Elenco di tutti gli utenti che possono connettersi tramite SSH

La mia domanda è:

Sto cercando di trovare un elenco di tutti gli utenti che possono accedere al mio server tramite SSH. So che/etc/passwd ha una lista di tutti gli utenti, ma non so se qualcuno di essi (eccetto 1) può essere registrato.

Il mio obiettivo è avere solo 1 utente che può essere registrato in, e avendo quell'utente ha una vera password forte.

+0

Si prega di cancellare una cosa che si desidera conoscere l'elenco di tutti i popoli che sono collegati a voi tramite SSH.right? – Freak

+0

Perché non negare semplicemente un IP dopo X tentativi di accesso falliti? Mi sembra più facile. –

+4

Questa è più una questione di amministratore di sistema che di programmazione e probabilmente dovrebbe essere migrata su serverfault.com. – Barmar

risposta

32

Read man sshd_config per ulteriori dettagli, ma è possibile utilizzare la direttiva AllowUsers in /etc/ssh/sshd_config per limitare il set di utenti che possono accedere.

ad es.

AllowUsers boris 

significherebbe che solo l'utente boris potrebbe effettuare il login tramite ssh.

+2

Correggetemi se ho torto, ma senza la direttiva 'AllowUsers', non ci sono restrizioni su cui gli utenti possono accedere tramite ssh.? – matty

5

Qualsiasi utente la cui shell di login in /etc/passwd è una shell interattiva può accedere. Non penso che ci sia un modo totalmente affidabile per dire se un programma è una shell interattiva; verificare se è in /etc/shells è probabilmente il buono come si può ottenere.

Altri utenti possono anche accedere, ma il programma che eseguono non dovrebbe consentire loro di ottenere molto accesso al sistema. E gli utenti che non hanno il permesso di accedere a tutti dovrebbero avere /etc/false come loro shell - questo li registrerà immediatamente.

+2

Gli utenti con una password non valida non sono nemmeno in grado di accedere. (Era '*' or '!' In '/ etc/shadow', non ricordo quale ...) – glglgl

+1

Puoi usare la direttiva' AllowUsers' in '/ etc/ssh/sshd_config' per impostare la lista di utenti che possono accedere tramite ssh. – dave4420

+0

@ dave4420 Buon punto, dovresti postarlo come risposta. – Barmar

21

Qualsiasi utente con una shell valida in /etc/passwd può potenzialmente accedere. Se vuoi migliorare la sicurezza, imposta SSH con autenticazione a chiave pubblica (ci sono molte informazioni sul web per farlo), installa una chiave pubblica nel file ~/.ssh/authorized_keys di un utente e disabilita l'autenticazione basata su password. Ciò impedirà a chiunque tranne che un utente effettui il login e richiederà che l'utente abbia in suo possesso la chiave privata corrispondente. Assicurati che la chiave privata abbia una passphrase decente.

Per impedire ai bot di tentare di entrare, eseguire SSH su una porta diversa da 22 (ovvero 3456). Questo non migliora la sicurezza ma impedisce ai robot di script e ai bot di ingombrare i tuoi log con tentativi falliti.

Problemi correlati