Intendi consentire il servizio SSH al mondo? O solo ai membri del team in luoghi particolari? La mia risposta dipende un po 'dalla gravità della tua sfida.
In entrambi i casi, una cosa che dovresti fare è assicurarti che il server SSH non consenta l'accesso con password per l'utente root.
- In / etc / ssh / sshd_config assicurati di non consentire mai un login root se non con una chiave SSH.
Nei miei sistemi, ho questa impostazione
PermitRootLogin without-password
ma noto in Ubuntu più recente che hanno
PermitRootLogin prohibit-password
Se leggi "man sshd_config" penso che significhi che questa nuova "password proibita" significa la stessa cosa ed è certamente più ovvia nel significato. Questo NON è predefinito su alcuni sistemi Linux, ma probabilmente dovrebbe esserlo.
Ora, riguardo al tuo problema. Il tuo server di sistema utilizza solo alcuni utenti in determinati luoghi? Fai questo!
modifica /etc/hosts.deny e inserisci
TUTTO TUTTO
Quindi modifica /etc/hosts.allow ed elenca i numeri IP o un intervallo che desideri consentire l'utilizzo di SSH. La notazione è un po 'confusa perché se si desidera consentire tutti i sistemi con numeri IP come da 111.222.65.101 a 111.222.65.255, si inserisce una voce come questa in hosts.allow
ALL: 127.0.0.1
sshd: 111.222.65.
sshdfwd-X11: 111.222.65.
Questa è una soluzione potente e bruta. Se i tuoi utenti possono essere elencati per intervallo IP, fallo!
Questa soluzione esisteva prima della creazione delle tabelle IP, è (penso) molto più facile da amministrare, ma non è buona come una soluzione di tabelle IP perché le routine di tabelle IP individueranno i nemici prima dei programmi gestiti da hosts.allow e hosts .negare. Ma questo è un incendio sicuro, un modo semplice per chiudere molti problemi, non solo da SSH.
Nota il problema che crei per te stesso. Se si desidera aprire un server FTP, un server Web o quant'altro, è necessario inserire le voci negli host.
Puoi raggiungere lo stesso scopo di base armeggiando con iptables e il firewall. In un certo senso, questa è una soluzione preferita perché stai bloccando i nemici al limite esterno. Ubuntu ha "ufw" (firewall semplice) e "man ufw" ha molti esempi. Preferirei avere una bella interfaccia grafica per superare questo, non devo farlo tutto il tempo. Forse altri possono dirci se ce n'è uno ora.
- Altri post qui suggeriti di usare la chiave pubblica SSH solo per i tuoi utenti. Ciò sarà sicuramente di aiuto, a prezzo di complessità e frustrazione per i tuoi utenti. Nel nostro laboratorio ci sono 15 computer. Gli utenti vanno tra i computer. Richiedere l'autenticazione con chiave SSH causerebbe una grande seccatura perché le persone passano da un computer all'altro.
Un'altra fonte di frustrazione accadrà quando alcuni utenti accumuleranno chiavi ssh diverse per vari server. Poiché ho chiavi SSH per circa 12 progetti diversi, ora ssh non riesce perché ho troppe chiavi pubbliche (richiede "ssh -o PubkeyAuthentication = false" o la creazione di una voce nel file .ssh / config. È una PITA)
- Se devi lasciare il server aperto su SSH dal grande mondo, allora sicuramente dovresti usare una routine di rifiuto per bloccare le posizioni che spesso tentano di accedere. Ci sono 2 bei programmi per questo, quelli che abbiamo usato sono denyhosts e fail2ban . Questi programmi hanno impostazioni che ti consentono di vietare i trasgressori, per la durata che desideri.
Nei nostri sistemi Centos Linux, ho notato che hanno abbandonato il pacchetto denyhosts e offrono solo fail2ban. Mi è piaciuto denyhosts perché ha creato un elenco di utenti problematici / gamme ip e quindi in hosts.deny, quell'elenco è stato notato. Abbiamo invece installato fail2ban ed è OK. La mia comprensione è che preferiresti bloccare questi cattivi utenti sul bordo esterno del server, quindi i blocchi basati su tabelle ip, come fail2ban, sono effettivamente migliori. Denyhosts funziona al livello secondario, dopo che i nemici hanno superato iptables vengono respinti dal demone sshd.
In entrambi questi programmi, è un po 'noioso far uscire gli utenti dal carcere se dimenticano la password e provano alcune volte ad accedere. È un po' difficile riavviare le persone quando commettono errori di accesso. Avresti indovinato che ci sarebbe una GUI punta e clicca in cui potresti semplicemente puntare e far rientrare le persone, ma non è così. Devo farlo solo ogni pochi mesi e dimenticare come tra le volte, quindi ho scritto istruzioni per me stesso sulla mia pagina web http://pj.freefaculty.org/blog/?p=301