Come personalizzare le impostazioni SSH per la massima sicurezza

Cum se personalizează setările SSH pentru securitate maximă
⌛ Reading Time: 6 minutes

Il file di configurazione SSH sul sistema Unix controlla il funzionamento della shell sicura. Può essere utilizzato per rendere il comando ssh più facile da usare, configurare funzioni specifiche desiderate dall’utente o rafforzare la sicurezza contro potenziali attacchi. Mentre azioni relativamente semplici, come cambiare la porta ssh sui tuoi dispositivi, possono spesso eliminare un numero enorme di “chiamate a freddo” ssh sulla tua macchina, il file di configurazione ssh può fare molto di più.

Dov’è il file di configurazione SSH?

Sui sistemi Linux, puoi trovare il tuo file di configurazione ssh a livello di sistema in “/ etc / ssh / ssh_config”.

Su sistemi macOS, lo stesso file si trova in “/ private / etc / ssh / ssh_config”, che ha un link simbolico a “/ etc / ssh / ssh_config” per compatibilità.

Un secondo file ssh_config specifico per l’utente può essere posizionato in “~ / .ssh / ssh_config” (il simbolo “~” rappresenta la directory home). Questo file sostituisce il file di configurazione a livello di sistema, consentendo di impostare opzioni specifiche dell’utente senza modificare la configurazione del sistema. I sistemi non sempre vengono forniti con un file “~ / .ssh / ssh_config”, ma può essere creato facilmente.

Andando avanti, faremo riferimento a questo file di configurazione come “ssh_config” per chiarezza e semplicità.

Modifica del file ssh_config

Per modificare il file ssh_config, apri una finestra di Terminale e modifica il file con il tuo editor di testo preferito. Useremo nano in questa demo, ma al suo posto si possono usare vi o emacs.

Questo aprirà un file con dozzine di righe commentate che spiegano cosa fa il file, ma non è una spiegazione completa.

edit-ssh-config-file-edit-ssh-config-in-terminal

Cos’è il file ssh_config e cosa fa ssh_config?

Il file ssh_config viene utilizzato per controllare quanto sia sicura la shell, meglio conosciuta come ssh comando da terminale, opera sul tuo sistema. Il file ssh_config è organizzato dagli host. Ogni host contiene impostazioni specifiche per quell’host. I caratteri jolly come * può essere utilizzato per abbinare più hostname con una singola dichiarazione.

Le opzioni vengono dichiarate utilizzando una coppia chiave / definizione. Sono disponibili molte chiavi. Una spiegazione dettagliata delle funzionalità di ogni tasto può essere trovata sul Pagina man di ssh_config.

Rafforzamento della configurazione SSH

Blocco dei file: prima di modificare il file, assicurarsi che entrambi i file ssh_config e sshd_config abbiano il proprietario e l’utente impostati su root. Nella maggior parte dei casi vorrai anche disabilitare le autorizzazioni a chiunque tranne che a root.

Conferma protocollo SSH 2

Assicurati di utilizzare il protocollo 2 più recente e moderno invece del protocollo 1. Il protocollo precedente funziona con un controllo di integrità più debole ed è generalmente meno sicuro.

Per impostare esplicitamente il protocollo, utilizza quanto segue nel tuo ssh_config:

Puoi anche impostare implicitamente il tuo protocollo usando i cifrari, che imposteranno automaticamente il protocollo su 2 per usare i cifrari moderni.

Non consentire password vuote

Assicurati che ogni account SSH utilizzi una password durante l’accesso bloccando le password vuote.

Non consentire il login di root

Il root dovrebbe essere usato raramente per la maggior parte dell’utilizzo di Linux. Impedire l’accesso come root ti consentirà di bloccare gli account su ciò che è specificamente necessario e non concedere l’utilizzo a livello di sistema. Questo è anche un account mirato agli attacchi. Le opzioni per PermitRootLogin includono “sì”, “senza password”, “solo comandi forzati” o “no”. L’impostazione predefinita è “sì”. Per interrompere completamente il login di root, usa la riga sottostante.

Modificare il numero di porta

È possibile modificare il numero di porta da 22 (impostazione predefinita) per limitare gli accessi diretti al server su quella porta. Ciò limiterà la maggior parte delle persone che utilizzano uno script per accedere a quella porta o che stanno attaccando quella porta manualmente. Tuttavia, questo non limiterà coloro che scansionano le porte aperte e attaccano ciò che è aperto. Inoltre, dovrai assicurarti che chiunque acceda tramite questa porta sia a conoscenza del nuovo numero e che il nuovo numero di porta sia utilizzato da qualsiasi client o software.

Per regolare la porta, modificare il demone ssh principale in “/ etc / ssh / sshd_config”. Ti consigliamo di aggiungere una nuova riga specificando la porta seguendo la sintassi Port XXXXX.

edit-ssh-config-file-change-ssh-port

Accesso limitato

Se hai più persone che accedono al tuo server, potresti voler limitare completamente l’uso di ssh. Per queste istanze, puoi consentire e negare sia utenti che gruppi. Per questo ti consigliamo di utilizzare una delle seguenti chiavi, seguita dai valori che desideri consentire o negare: DenyUsers, AllowUsers, DenyGroups e AllowGroups. Questo viene completato in questo ordine, quindi anche se consenti a un utente se si trova nella sezione “nega utenti”, verrà negato.

Aggiorna il LoginGraceTime

Per impostazione predefinita, il tempo che una persona ha a disposizione per restare inattivo senza effettuare l’accesso è di due minuti. Limitare questo aiuterà a prevenire connessioni non autorizzate. Un suggerimento tipico è di un minuto o meno. Imposta l’ora utilizzando LoginGraceTime.

Personalizzazione delle configurazioni SSH

Creazione di alias

Le opzioni della riga di comando ssh possono essere specificate tramite alias in ssh_config. Il seguente alias consente all’utente di connettersi a dev server con le opzioni specificate semplicemente digitando ssh dev dalla riga di comando.

Questo esegue il seguente comando quando viene eseguito:

Si noti che la porta ssh è stata modificata in 22222 per scoraggiare le chiamate a freddo. Altrimenti, è una connessione ssh molto semplice, abbreviata di molti caratteri per comodità.

Autenticazione con coppie di chiavi sicure

ssh è più sicuro e conveniente se usato con coppie di chiavi pubbliche / private per l’autenticazione, piuttosto che con password. Il file ssh_config può dichiarare una chiave specifica per un host specifico utilizzando l’estensione IdentityFile chiave.

Come negli esempi precedenti, questo comando ssh deve essere eseguito con ssh dev, eseguendo il seguente comando equivalente da riga di comando:

Impostazione di altre opzioni ssh

Le opzioni ssh di seguito sono alcune delle chiavi più comuni presenti nei file ssh_config.

Compression: Questa chiave accetta “sì” o “no” come argomenti e viene utilizzata per abilitare e disabilitare la compressione per un host. Questo in genere non è necessario a meno che la connessione non sia incredibilmente lenta.

LogLevel: Imposta il livello di dettaglio nei log lato client ssh. Dal meno dettagliato al più dettagliato, le opzioni sono QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 e DEBUG3.

StrictHostKeyChecking: Consente di impostare una preferenza per l’aggiunta di host al file known_hosts. “Yes” non aggiungerà mai known_hosts. “No” verrà sempre aggiunto a known_hosts. “Ask”, che è l’opzione predefinita, chiederà all’utente prima di aggiungere al file known_hosts. “Yes” fornisce la massima sicurezza contro gli attacchi dei cavalli di Troia, ma può essere noioso con un file known_hosts mal gestito. “No” è il meno sicuro ma può rendere meno doloroso il collegamento a un gran numero di host temporanei.

UserKnownHostsFile: Specificare il percorso per un file known_hosts specifico dell’utente.

Inoltro della connessione

ssh viene spesso utilizzato per inoltrare le connessioni, consentendo a una connessione locale di eseguire il tunneling attraverso una connessione remota. Le seguenti opzioni possono essere utilizzate per configurare l’inoltro della connessione.

LocalForward: Definire una connessione per inoltrare il traffico di una porta locale a una macchina remota. Questo canalizza la connessione attraverso la rete remota.

RemoteForward: Consente di definire una porta remota di cui eseguire il tunneling da una porta locale. Questo è l’inverso dell’opzione precedente.

DynamicForward: Configurare una porta locale da utilizzare con un protocollo di inoltro dinamico.

Conclusione

La maggior parte delle opzioni ssh_config esistono per fornire modi più convenienti per eseguire attività specifiche utilizzando il comando ssh. È un modo per configurare alias e scorciatoie complessi che aiutano ad aumentare la sicurezza rendendo le parti più sicure di ssh più facili da usare.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.