Scopri i dettagli di OpenSSH sul tuo PC Linux

Sommario:

Scopri i dettagli di OpenSSH sul tuo PC Linux
Scopri i dettagli di OpenSSH sul tuo PC Linux

Video: Scopri i dettagli di OpenSSH sul tuo PC Linux

Video: Scopri i dettagli di OpenSSH sul tuo PC Linux
Video: How to Dual Boot macOS Catalina and Windows 10 on a PC (Complete Hackintosh Guide) - YouTube 2024, Maggio
Anonim
Abbiamo esaltato le virtù di SSH numerose volte, sia per la sicurezza che per l'accesso remoto. Diamo un'occhiata al server stesso, ad alcuni importanti aspetti di "manutenzione" e ad alcuni accorgimenti che possono aggiungere turbolenza a una corsa altrimenti fluida.
Abbiamo esaltato le virtù di SSH numerose volte, sia per la sicurezza che per l'accesso remoto. Diamo un'occhiata al server stesso, ad alcuni importanti aspetti di "manutenzione" e ad alcuni accorgimenti che possono aggiungere turbolenza a una corsa altrimenti fluida.

Mentre abbiamo scritto questa guida con Linux in mente, questo può valere anche per OpenSSH in Mac OS X e Windows 7 tramite Cygwin.

Perché è sicuro

Abbiamo menzionato molte volte in che modo SSH è un ottimo modo per connettere e filtrare in modo sicuro i dati da un punto a un altro. Diamo una breve occhiata a come funzionano le cose in modo da avere un'idea migliore del perché le cose possono diventare strane a volte.

Quando decidiamo di iniziare una connessione con un altro computer, utilizziamo spesso protocolli facili da utilizzare. Telnet e FTP vengono entrambi in mente. Inviamo informazioni a un server remoto e quindi riceviamo conferma della nostra connessione. Per stabilire un certo tipo di sicurezza, questi protocolli utilizzano spesso combinazioni di nome utente e password. Ciò significa che sono totalmente sicuri, giusto? Sbagliato!
Quando decidiamo di iniziare una connessione con un altro computer, utilizziamo spesso protocolli facili da utilizzare. Telnet e FTP vengono entrambi in mente. Inviamo informazioni a un server remoto e quindi riceviamo conferma della nostra connessione. Per stabilire un certo tipo di sicurezza, questi protocolli utilizzano spesso combinazioni di nome utente e password. Ciò significa che sono totalmente sicuri, giusto? Sbagliato!

Se pensiamo al nostro processo di connessione come posta, quindi usare FTP e Telnet e simili non è come usare buste postali standard. È più come usare le cartoline. Se qualcuno dovesse intervenire nel mezzo, può vedere tutte le informazioni, inclusi gli indirizzi di entrambi i corrispondenti e il nome utente e la password inviati. Possono quindi modificare il messaggio, mantenendo le informazioni uguali e impersonare un corrispondente o l'altro. Questo è noto come un attacco "man-in-the-middle" e non solo compromette il tuo account, ma chiama in causa ogni messaggio inviato e il file ricevuto. Non puoi essere sicuro che tu stia parlando con il mittente o meno, e anche se lo sei, non puoi essere sicuro che nessuno guardi tutto in mezzo.

Ora, diamo un'occhiata alla crittografia SSL, il tipo che rende l'HTTP più sicuro. Qui, abbiamo un ufficio postale che gestisce la corrispondenza, che controlla se il destinatario è chi afferma di essere, e ha leggi che proteggono la tua posta da essere guardato. È più sicuro in generale, e l'autorità centrale - Verisign è uno, per il nostro esempio HTTPS - fa in modo che la persona a cui stai inviando posta per check-out. Lo fanno non consentendo cartoline (credenziali non criptate); invece impongono buste reali.

Infine, diamo un'occhiata a SSH. Qui, l'installazione è leggermente diversa. Non abbiamo un autenticatore centrale qui, ma le cose sono ancora al sicuro. Questo perché invii lettere a qualcuno di cui già conosci l'indirizzo - ad esempio, chiacchierando con loro al telefono - e stai usando una matematica davvero stravagante per firmare la tua busta. Lo consegni a tuo fratello, fidanzata, papà o figlia per portarlo all'indirizzo, e solo se le partite di matematica di fantasia del ricevente ritengono che l'indirizzo sia quello che dovrebbe essere. Poi, ricevi una lettera indietro, anche protetta da occhi indiscreti da questa fantastica matematica. Infine, invii le tue credenziali in un'altra busta segretamente incantata dall'incantesimo alla destinazione. Se la matematica non corrisponde, possiamo supporre che il destinatario originale si sia trasferito e dobbiamo confermare nuovamente il loro indirizzo.
Infine, diamo un'occhiata a SSH. Qui, l'installazione è leggermente diversa. Non abbiamo un autenticatore centrale qui, ma le cose sono ancora al sicuro. Questo perché invii lettere a qualcuno di cui già conosci l'indirizzo - ad esempio, chiacchierando con loro al telefono - e stai usando una matematica davvero stravagante per firmare la tua busta. Lo consegni a tuo fratello, fidanzata, papà o figlia per portarlo all'indirizzo, e solo se le partite di matematica di fantasia del ricevente ritengono che l'indirizzo sia quello che dovrebbe essere. Poi, ricevi una lettera indietro, anche protetta da occhi indiscreti da questa fantastica matematica. Infine, invii le tue credenziali in un'altra busta segretamente incantata dall'incantesimo alla destinazione. Se la matematica non corrisponde, possiamo supporre che il destinatario originale si sia trasferito e dobbiamo confermare nuovamente il loro indirizzo.

Con la spiegazione fintanto che è, pensiamo che lo taglieremo lì. Se hai qualche approfondimento, sentiti libero di chattare nei commenti, ovviamente. Per ora, però, diamo un'occhiata alla caratteristica più rilevante di SSH, l'autenticazione dell'host.

Chiavi host

L'autenticazione dell'host è essenzialmente la parte in cui qualcuno di cui ti fidi prende la busta (sigillata con la matematica magica) e conferma l'indirizzo del destinatario. È una descrizione abbastanza dettagliata dell'indirizzo, ed è basata su una matematica complicata che salteremo proprio sopra. Ci sono un paio di cose importanti da togliere a questo, però:

  1. Poiché non esiste un'autorità centrale, la vera sicurezza risiede nella chiave dell'host, nelle chiavi pubbliche e nelle chiavi private. (Queste ultime due chiavi sono configurate quando ti viene dato l'accesso al sistema.)
  2. Di solito, quando ci si connette a un altro computer tramite SSH, la chiave host viene memorizzata. Questo rende le azioni future più veloci (o meno prolisse).
  3. Se la chiave dell'host cambia, molto probabilmente sarai avvisato e dovresti essere cauto!

Poiché la chiave host viene utilizzata prima dell'autenticazione per stabilire l'identità del server SSH, è necessario verificare la chiave prima di connettersi. Verrà visualizzata una finestra di dialogo di conferma come di seguito.

Non dovresti preoccuparti, però! Spesso quando la sicurezza è un problema, ci sarà un posto speciale in cui è possibile confermare la chiave host (impronta ECDSA sopra). In imprese interamente online, spesso si troverà su un sito di accesso sicuro. Potrebbe essere necessario (o scegliere di!) Telefonare al reparto IT per confermare questo tasto per telefono. Ho persino sentito di alcuni posti in cui la chiave è sul tuo badge di lavoro o sulla speciale lista "Numeri di emergenza". E, se hai accesso fisico al computer di destinazione, puoi anche controllare tu stesso!
Non dovresti preoccuparti, però! Spesso quando la sicurezza è un problema, ci sarà un posto speciale in cui è possibile confermare la chiave host (impronta ECDSA sopra). In imprese interamente online, spesso si troverà su un sito di accesso sicuro. Potrebbe essere necessario (o scegliere di!) Telefonare al reparto IT per confermare questo tasto per telefono. Ho persino sentito di alcuni posti in cui la chiave è sul tuo badge di lavoro o sulla speciale lista "Numeri di emergenza". E, se hai accesso fisico al computer di destinazione, puoi anche controllare tu stesso!

Controllo della chiave host del sistema

Esistono 4 tipi di algoritmi di crittografia utilizzati per creare le chiavi, ma l'impostazione predefinita per OpenSSH all'inizio di quest'anno è ECDSA (con alcune buone ragioni). Ci concentreremo su quello oggi.Ecco il comando che puoi eseguire sul server SSH a cui hai accesso:

ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key.pub -l

L'output dovrebbe restituire qualcosa di simile a questo:

256 ca:62:ea:7c:e4:9e:2e:a6:94:20:11:db:9c:78:c3:4c /etc/ssh/ssh_host_ecdsa_key.pub

Il primo numero è il bit-length della chiave, quindi la chiave stessa e infine il file in cui è memorizzato. Confronta quella porzione centrale con ciò che vedi quando ti viene richiesto di accedere da remoto. Dovrebbe corrispondere, e tu sei tutto pronto. In caso contrario, potrebbe accadere qualcos'altro.

Puoi visualizzare tutti gli host a cui sei connesso tramite SSH guardando il tuo file known_hosts. Di solito si trova in:

~/.ssh/known_hosts

Puoi aprirlo in qualsiasi editor di testo. Se si guarda, cercare di prestare attenzione a come vengono memorizzate le chiavi. Sono memorizzati con il nome del computer host (o indirizzo web) e il suo indirizzo IP.

Modifica delle chiavi e dei problemi dell'host

Ci sono alcuni motivi per cui le chiavi host cambiano o non corrispondono a ciò che viene registrato nel file known_hosts.

  • Il sistema è stato reinstallato / riconfigurato.
  • Le chiavi host sono state modificate manualmente a causa di protocolli di sicurezza.
  • Il server OpenSSH è aggiornato e utilizza standard diversi a causa di problemi di sicurezza.
  • Il lease IP o DNS è cambiato. Ciò significa spesso che stai tentando di accedere a un altro computer.
  • Il sistema è stato compromesso in un modo tale da modificare la chiave dell'host.

Molto probabilmente, il problema è uno dei primi tre e puoi ignorare il cambiamento. Se il lease IP / DNS è cambiato, potrebbe esserci un problema con il server e si potrebbe essere indirizzati a un altro computer. Se non sei sicuro di quale sia la ragione del cambiamento, probabilmente dovresti assumere che sia l'ultimo della lista.

Come OpenSSH gestisce host sconosciuti

OpenSSH ha un'impostazione per come gestisce gli host sconosciuti, riflessa nella variabile "StrictHostKeyChecking" (senza virgolette).
OpenSSH ha un'impostazione per come gestisce gli host sconosciuti, riflessa nella variabile "StrictHostKeyChecking" (senza virgolette).

A seconda della configurazione, le connessioni SSH con host sconosciuti (le cui chiavi non sono già presenti nel file known_hosts) possono essere utilizzate in tre modi.

  • StrictHostKeyChecking è impostato su no; OpenSSH si connetterà automaticamente a qualsiasi server SSH indipendentemente dallo stato della chiave dell'host. Questo non è sicuro e non è raccomandato, tranne se stai aggiungendo un gruppo di host dopo una reinstallazione del tuo sistema operativo, dopodiché lo cambierai.
  • StrictHostKeyChecking è impostato per chiedere; OpenSSH mostrerà le nuove chiavi host e chiederà conferma prima di aggiungerle. Impedirà alle connessioni di passare a chiavi host modificate. Questo è l'impostazione predefinita.
  • StrictHostKeyChecking è impostato su yes; L'opposto di "no", questo ti impedirà di connetterti a qualsiasi host che non sia già presente nel tuo file known_hosts.

È possibile modificare facilmente questa variabile sulla riga di comando utilizzando il seguente paradigma:

ssh -o 'StrictHostKeyChecking [option]' user@host

Sostituisci [opzione] con "no", "chiedi" o "sì". Ricorda che ci sono singole virgolette che circondano questa variabile e le sue impostazioni. Sostituisci anche utente @ host con il nome utente e il nome host del server a cui ti stai connettendo. Per esempio:

ssh -o 'StrictHostKeyChecking ask' [email protected]

Host bloccati a causa di chiavi modificate

Se si dispone di un server a cui si sta tentando di accedere e la cui chiave è già stata modificata, la configurazione predefinita di OpenSSH impedirà l'accesso. È possibile modificare il valore StrictHostKeyChecking per quell'host, ma ciò non sarebbe completamente, completamente, paranoicamente sicuro, vero? Invece, possiamo semplicemente rimuovere il valore offendente dal nostro file known_hosts.

Questa è decisamente una brutta cosa da avere sul tuo schermo. Fortunatamente, il nostro motivo per questo era un sistema operativo reinstallato. Quindi, ingrandiamo la linea di cui abbiamo bisogno.
Questa è decisamente una brutta cosa da avere sul tuo schermo. Fortunatamente, il nostro motivo per questo era un sistema operativo reinstallato. Quindi, ingrandiamo la linea di cui abbiamo bisogno.
Eccoci. Guarda come cita il file che dobbiamo modificare? Ci dà persino il numero di linea! Quindi apriamo il file in Nano:
Eccoci. Guarda come cita il file che dobbiamo modificare? Ci dà persino il numero di linea! Quindi apriamo il file in Nano:
Image
Image
Ecco la nostra chiave offendente, nella riga 1. Tutto ciò che dobbiamo fare è premere Ctrl + K per tagliare l'intera linea.
Ecco la nostra chiave offendente, nella riga 1. Tutto ciò che dobbiamo fare è premere Ctrl + K per tagliare l'intera linea.
È molto meglio! Quindi, ora premiamo Ctrl + O per scrivere (salvare) il file, quindi Ctrl + X per uscire.
È molto meglio! Quindi, ora premiamo Ctrl + O per scrivere (salvare) il file, quindi Ctrl + X per uscire.

Ora invece riceviamo un bel prompt, al quale possiamo semplicemente rispondere con "sì".

Image
Image

Creazione di nuove chiavi host

Per la cronaca, non c'è davvero un motivo in più per cambiare la chiave dell'host, ma se ne trovi la necessità, puoi farlo facilmente.

Innanzitutto, passare alla directory di sistema appropriata:

cd /etc/ssh/

Questo di solito è dove sono le chiavi globali dell'host, anche se alcune distribuzioni li hanno posizionati altrove. In caso di dubbi, controlla la tua documentazione!

Successivamente, elimineremo tutte le vecchie chiavi.

sudo rm /etc/ssh/ssh_host_*

In alternativa, è possibile spostarli in una directory di backup sicura. Solo un pensiero!

Quindi, possiamo dire al server OpenSSH di riconfigurarsi:

sudo dpkg-reconfigure openssh-server

Verrà visualizzato un messaggio mentre il computer crea le nuove chiavi. Ta-da!

Image
Image

Ora che sai come funziona SSH un po 'meglio, dovresti essere in grado di tirarti fuori dai luoghi difficili. L'avviso / errore "Remote Host Identification Has Changed" è qualcosa che getta via molti utenti, anche quelli che hanno familiarità con la riga di comando.

Per i punti bonus, puoi consultare Come copiare i file da remoto su SSH senza inserire la tua password. Qui imparerai qualcosa in più sugli altri tipi di algoritmi di crittografia e su come utilizzare i file chiave per una maggiore sicurezza.

Consigliato: