GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è SSH?

Introduzione

Quando accedono a un computer in rete, gli amministratori di sistema necessitano di una connessione sicura per nascondersi da attacchi informatici dannosi, come lo sniffing delle password. Poiché le reti di grandi dimensioni presentano difetti di sicurezza, per garantire la protezione necessaria sono necessari protocolli di crittografia come TLS/SSL, IPsec, S/MIME, PGP e SSH.

Questo articolo fornisce una panoramica del protocollo SSH:la sua funzione, terminologia e casi d'uso.

Cosa significa SSH?

L'acronimo SSH sta per "Secure Shell". Il protocollo SSH è stato progettato come alternativa sicura ai protocolli shell remote non protetti. Utilizza un paradigma client-server, in cui client e server comunicano tramite un canale sicuro.

Il protocollo SSH ha tre livelli:

  • Il livello di trasporto . Garantisce una comunicazione sicura tra il server e il client, monitora la crittografia/decrittografia dei dati e protegge l'integrità della connessione. Esegue anche la memorizzazione nella cache dei dati e la compressione.
  • Il livello di autenticazione . Esegue la procedura di autenticazione del client.
  • Il livello di connessione . Gestisce i canali di comunicazione dopo l'autenticazione.

Il canale creato da SSH utilizza la crittografia a chiave pubblica per autenticare il client. Una volta stabilita la connessione, SSH fornisce un modo crittografato per scambiare informazioni in modo sicuro indipendentemente dall'infrastruttura di rete sottostante.

SSH è stato progettato per sistemi operativi simili a Unix, come Linux, macOS e BSD. Tuttavia, funziona anche su Windows.

Una breve storia di SSH

SSH è stato creato da Tatu Ylönen nel 1995. Il protocollo è stato progettato per impedire lo sniffing delle password attacchi all'Università di Tecnologia di Helsinki. La prima versione del protocollo, ora denominata SSH-1, è stata progettata per sostituire protocolli non protetti come rsh, rlogin e Telnet. È iniziato come freeware ma è diventato presto un software proprietario.

Dopo che l'SSH-1 di Ylönen è diventato uno strumento popolare in tutto il mondo, l'Internet Engineering Task Force (IETF) ha riunito un gruppo il cui scopo era sviluppare un successore del protocollo. Nel 2006, SSH-2 è diventato un nuovo standard, con miglioramenti della sicurezza come lo scambio di chiavi Diffie-Helman.

La comunità open source ha sviluppato OSSH, una versione del protocollo SSH basata sulla versione 1.2.12 di SSH-1. Gli sviluppatori di OpenBSD hanno successivamente biforcato OSSH per creare OpenSSH, l'implementazione SSH più popolare al mondo oggi. A partire dalla versione 7.6, OpenSSH supporta solo SSH-2. Il supporto per SSH-1 è stato interrotto .

Terminologia SSH

La tabella seguente contiene alcuni termini che potresti incontrare quando lavori con SSH:

Durata Spiegazione
~ o $HOME La home directory di un utente su un sistema Unix o simile a Unix.
Livello di autenticazione Il livello responsabile dell'esecuzione dell'autenticazione SSH.
Cliente Un programma client per stabilire una connessione con il server.
Macchina client Un computer che esegue un client SSH.
Livello di connessione Il livello del protocollo SSH che gestisce i canali di comunicazione.
Computer locale Un computer che esegue un client SSH nella posizione.
Utente locale Un utente che accede a SSH tramite il computer locale.
Chiave privata Parte della coppia di chiavi pubblica-privata per l'autenticazione dell'utente mantenuta segreta sul computer locale.
Chiave pubblica Parte della coppia di chiavi pubblica-privata per l'autenticazione dell'utente copiata sul server SSH durante il processo di autenticazione.
Computer remoto Un computer che esegue un server SSH a cui si connettono i client SSH.
Utente remoto Un utente che accede a SSH da un computer remoto.
Server Un programma server SSH per la comunicazione con i client SSH.
Macchina server Un computer che esegue un server SSH.
SCP Copia protetta:un'utilità CLI che utilizza SSH per il trasferimento sicuro dei file.
SFTP Secure File Transport Protocol:un protocollo che utilizza SSH per proteggere i trasferimenti di file di rete, da non confondere con FTPS, che sfrutta TLS/SSL
Livello di trasporto Il livello del protocollo SSH che sovrasta l'intera sessione SSH.

Utilizzi SSH

SSH è ampiamente utilizzato nei data center per fornire gestione sicura, accesso remoto a risorse, patch software e aggiornamenti. Il protocollo consente inoltre la gestione protetta del router, la manutenzione dell'hardware del server e l'amministrazione della piattaforma di virtualizzazione.

Grazie alla facilità d'uso, alla robustezza e alle numerose funzionalità, SSH può essere applicato in vari scenari.

Questi scenari includono:

  • Connessione a un host remoto.
  • Backup, copia e mirroring dei file tramite SFTP.
  • Mappatura della porta di un client alla porta del server per proteggere TCP/IP e altri protocolli di rete.
  • Inoltro di X Window System dal server ai client.
  • Tunneling dei dati sensibili attraverso un canale sicuro.
  • Utilizzo di una rete privata virtuale.

Le chiavi SSH vengono spesso utilizzate per automatizzare l'accesso al server con accesso senza password, gestione della configurazione e backup.

Come utilizzare SSH?

La connessione a un server SSH viene eseguita utilizzando un client SSH. La maggior parte dei sistemi operativi basati su Unix e simili a Unix vengono forniti con il demone e il client preinstallati. Su questi sistemi, il client SSH è disponibile nel terminale.

Per connettersi a un host remoto utilizzando il terminale, l'utente emette il comando ssh seguito dal nome utente e dall'indirizzo del server o nome host:

ssh [username]@[server_ip_or_hostname]

Ad esempio:

Windows 10 offre client e server OpenSSH a partire dalla versione 1709. Le versioni precedenti di Windows non includevano SSH come funzionalità, quindi strumenti come PuTTY sono stati utilizzati per stabilire una connessione SSH. PuTTY è un client SSH con una GUI per SSH e Telnet:

Alcuni altri client SSH popolari per Windows includono:

  • Bitvise
  • WinSCP
  • KiTTY
  • Mastice Solare
  • SmarTTY

Quanto è sicuro SSH?

Se utilizzato con le precauzioni di sicurezza standard, il protocollo SSH è considerato altamente sicuro. Tuttavia, i fattori umani svolgono un ruolo significativo nel mantenimento della sicurezza delle connessioni SSH.

Gli attacchi di forza bruta sui server SSH sono uno scenario comune. Gli aggressori tentano di connettersi a un gran numero di server SSH utilizzando nomi utente e password comuni. Quando ottengono l'accesso a un server, utilizzano l'escalation dei privilegi per ottenere l'accesso all'account root.

Le chiavi SSH sono consigliate come metodo di autenticazione più sicuro rispetto alle password. Tuttavia, una cattiva gestione delle chiavi SSH rappresenta ancora un rischio significativo per le organizzazioni le cui informazioni critiche dipendono dal mantenimento della segretezza delle chiavi.

Sebbene le chiavi SSH offrano una protezione migliore, il loro uso improprio può fornire a persone malintenzionate l'accesso a informazioni privilegiate. Queste informazioni includono account e risorse, come database, router, sistemi di pagamento, ecc.

Porte SSH esposte sono un altro potenziale punto debole della sicurezza. Alcuni programmi malware attaccano i dispositivi IoT con le porte esposte, utilizzandoli come backdoor di ingresso alla rete locale.

Infine, un gran numero di client SSH sul mercato significa che la sicurezza del protocollo dipende anche dalla sicurezza delle app di terze parti.


Linux
  1. Che cos'è un utente Linux?

  2. Ssh:limitare un utente Ssh/scp/sftp a una directory?

  3. Cosa fa ?

  4. Quale protocollo/standard viene utilizzato dai terminali?

  5. Comprensione dei comandi Ssh sospetti?

Cos'è l'SFTP?

Comando SSH

Rafforzamento della configurazione SSH

Server SSH

Cosa sta arrivando in GNOME 42?

Cos'è l'analfabetismo digitale?