L'esecuzione SSHsu 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_configcome indicato da @Anthon, quindi implementa la sicurezza direttamente in PAM.
Creare due gruppi luserse rusers. Aggiungi gli utenti mobili remoti al rusersgruppo. 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 sshdlimitando 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' matchimpostazione 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_confige devi solo eseguire ssh su una singola porta, il che semplifica la tua gestione.
modifica 21-01-2017 - Limitare l'uso dei authorized_keysfile.
Se vuoi assicurarti che gli utenti non possano semplicemente auto-generare una chiave ssh e usarla con un authorized_keysfile 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.
lusersgruppo ma non nelrusersgruppo genera una coppia di chiavi e aggiorna la propria~/.ssh/authorized_keys, sarà in grado di accedere da remoto.