Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Open SSH: la configurazione del Server

Link copiato negli appunti

Dopo aver parlato di come sia possibile utilizzare le feature offerte da OpenSSH per rendere più sicure alcune delle operazioni che vengono svolte comunemente ogni giorno con strumenti poco sicuri. Abbiamo visto come sia possibile eseguire comandi da remoto, copiare files, oppure fare un tunnel.

A questo punto ci sembra opportuno dedicare un pò di spazio alla configurazione del server ssh, sshd. Lo scopo di questo articolo è quello di dare alcuni consigli per rendere ancora più sicuro uno dei server maggiormente orientati alla sicurezza esistenti. Per le sue caratteristiche OpenSSH una volta installato in genere è già configurato per funzionare perfettamente per un utilizzo tipico. Questo articolo non sarà quindi orientato a spiegare ogni singola opzione offerta da sshd, che in genere vanno bene così a meno di casi particolari.

I file di configurazione di ssh, sia lato client che server sono presenti nella directory /etc/ssh. Nel nostro caso parleremo in particolare di /etc/ssh/sshd_config. All'interno di questo file tutte le righe che iniziano con # (e ovviamente quelle vuote) sono considerate commento. Come prima cosa cerchiamo nel file l'opzione Port, in genere situata all'inizio del file. Questa opzione consente di specificare su quale porta lasciare in ascolto SSH.

Di default SSH è in ascolto sulla porta 22, ma può essere un'idea come primo accorgimento quello di usare un'altra porta. Non è una misura molto affidabile, in quanto non è difficile riconoscere che su una determinata porta è in ascolto SSH, ma è pur sempre un'ulteriore misura preventiva che potrebbe metterci al riparo da qualche script kiddie.

Inoltre è certamente un'idea quella di impedire l'accesso diretto all'utente root. Non consentendo a un utente di eseguire un ssh root@server costringiamo chiunque voglia utilizzare i permessi di amministratore di loggarsi come normale utente e in seguito lanciare su per assumere l'identità di root. Questo ha il vantaggio di richiedere la conoscenza della password di due account per poter accedere come "superuser". Se anche la password di root fosse conosciuta a un attaccante, questo non saprebbe cosa farsene senza un regolare account come normale utente. Inoltre l'utente root è l'unico utente certamente presente sulla macchina, consentirne l'accesso diretto faciliterebbe anche un attacco basato su brute force. Per impedirlo basta inserire all'interno del file sshd_config una riga con: PermitRootLogin no

A questo punto sempre per maggiore sicurezza disabilitiamo l'accesso a tutti gli utenti con password "vuota" presenti sul server. Per questo possiamo usare l'opzione PermitEmptyPassword no.

Possiamo inoltre specificare quali utenti e gruppi abbiano la possibilità di collegarsi con SSH con le opzioni AllowUsers user1 user2 user3 e AllowGroups gruppo1 gruppo2 gruppo3. Analogamente DenyUsers e DenyGroup consentono di inibire l'accesso con ssh a determinati utenti o gruppi.

Un'altra possibilità offerta dalle ultime versioni di OpenSSH è quella della Privilege Separation. Usando l'opzione UsePrivilegeSeparation yes (usata comunque di default da SSH) consentiamo a OpenSSH di eseguire il minor numero di codice come root. Infatti verrà fatto un fork ed eseguito il relativo processo figlio come normale utente. Questo vuol dire che nella pratica le possibilità di avere un bug che comprometta il sistema a "livello di amministratore" passano da 27000 righe di codice a 2500 circa.

Le possibilità offerte da SSH sono veramente tante. Con questo articolo abbiamo messo in luce quelle più di uso comune e utili per rendere più sicura con poco sforzo la nostra LinuxBox. Una volta fatto pratica, potrete cimentarvi ad esempio con altri meccanismi di autenticazione offerti da SSH come ad esempio quello basato su chiave.


Ti consigliamo anche