L'esecuzione SSH
su una porta alternativa non conta più come sicurezza. Aggiunge solo un po 'di oscurità e un ulteriore livello di complessità per i tuoi utenti. Aggiunge zero ostacoli alle persone che desiderano interrompere la rete, che utilizzano scanner di porte automatizzati e non si preoccupano della porta su cui è in esecuzione.
Se vuoi rafforzare la sicurezza su un sistema che consente SSH in ingresso basato su Internet remoto, controlla i tuoi utenti sshd_config
come indicato da @Anthon, quindi implementa la sicurezza direttamente in PAM.
Creare due gruppi lusers
e rusers
. Aggiungi gli utenti mobili remoti al rusers
gruppo. Utilizzare il modulo PAM pam_succeed_if.so per consentire l'accesso a tali utenti. Aggiungi righe al tuo pam config per ssh:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
Alcuni moduli pam_succeed_if.so potrebbero richiedere l'uso di una sintassi leggermente diversa, come group = lusers
.
Quindi, non solo sta sshd
limitando gli utenti che possono connettersi, ma in caso di errore sshd
, hai ancora la protezione offerta dalle restrizioni basate su PAM.
Un ulteriore passaggio per gli utenti remoti è forzare l'uso di ssh_keys con passphrase. Pertanto, gli utenti locali possono accedere con chiavi o password, ma gli utenti remoti devono disporre di una chiave e, se si creano le chiavi per loro, è possibile assicurarsi che la chiave abbia un passphrase associato. Limitando così l'accesso a posizioni che possiedono effettivamente la chiave SSH e la passphrase. E limitare i potenziali vettori di attacco se la password di un utente è compromessa.
In sshd_config
:
cambia 2 impostazioni:
ChallengeResponseAuthentication yes
e
PasswordAuthentication yes
per:
ChallengeResponseAuthentication no
e
PasswordAuthentication no
Quindi, l'impostazione predefinita è ora consentire solo l'autenticazione con chiave. Quindi, per gli utenti locali è possibile utilizzare l' match
impostazione di configurazione per modificare l'impostazione predefinita per gli utenti locali. Supponendo che la tua rete privata locale sia 192.168.1.0/24, aggiungi a sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
Ora, gli utenti locali possono connettersi con password o chiavi e gli utenti remoti saranno costretti a utilizzare le chiavi. Sta a te creare le chiavi con passphrase.
Come ulteriore vantaggio, devi solo gestire un singolo sshd_config
e devi solo eseguire ssh su una singola porta, il che semplifica la tua gestione.
modifica 21-01-2017 - Limitare l'uso dei authorized_keys
file.
Se vuoi assicurarti che gli utenti non possano semplicemente auto-generare una chiave ssh e usarla con un authorized_keys
file per accedere, puoi controllare che impostando una posizione specifica per sshd cercherà le chiavi autorizzate.
In /etc/ssh/sshd_config
, cambia:
AuthorizedKeysFile %h/ssh/authorized_keys
a qualcosa come:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
Indicare una directory controllata su cui gli utenti non dispongono delle autorizzazioni per scrivere significa che non possono generare la propria chiave e usarla per aggirare le regole che hai messo in atto.
lusers
gruppo ma non nelrusers
gruppo genera una coppia di chiavi e aggiorna la propria~/.ssh/authorized_keys
, sarà in grado di accedere da remoto.