Buone pratiche con OpenSSH

OpenSSH (Apri Secure Shell) è un insieme di applicazioni che consentono comunicazioni crittografate su una rete, utilizzando l'estensione protocollo SSH. È stato creato come alternativa gratuita e aperta al programma Secure Shell, che è un software proprietario. « wikipedia.

Alcuni utenti potrebbero pensare che le buone pratiche dovrebbero essere applicate solo sui server e non lo sono. Molte distribuzioni GNU / Linux includono OpenSSH per impostazione predefinita e ci sono alcune cose da tenere a mente.

Sicurezza

Questi sono i 6 punti più importanti da tenere a mente quando si configura SSH:

  1. Usa una password complessa.
  2. Cambia la porta predefinita di SSH.
  3. Usa sempre la versione 2 del protocollo SSH.
  4. Disabilita l'accesso root.
  5. Limita l'accesso degli utenti.
  6. Usa l'autenticazione con chiave.
  7. Altre opzioni

Una password complessa

Una buona password è quella che contiene caratteri alfanumerici o speciali, spazi, lettere maiuscole e minuscole... ecc. Qui dentro DesdeLinux Abbiamo mostrato diversi metodi per generare buone password. Può visitare questo articolo y quest'altro.

Cambia la porta predefinita

La porta predefinita di SSH è 22. Per cambiarla, tutto ciò che dobbiamo fare è modificare il file /etc/ssh/sshd_config. Cerchiamo la riga che dice:

#Port 22

lo decommentiamo e cambiamo il 22 con un altro numero .. per esempio:

Port 7022

Per conoscere le porte che non stiamo utilizzando nel nostro computer / server possiamo eseguire nel terminale:

$ netstat -ntap

Ora per accedere al nostro computer o server dobbiamo farlo con l'opzione -p come segue:

$ ssh -p 7022 usuario@servidor

Usa protocollo 2

Per assicurarci di utilizzare la versione 2 del protocollo SSH, dobbiamo modificare il file /etc/ssh/sshd_config e cerca la riga che dice:

# Protocollo 2

Lo rimuoviamo dal commento e riavviamo il servizio SSH.

Non consentire l'accesso come root

Per evitare che l'utente root possa accedere da remoto tramite SSH, guardiamo nel file/etc/ssh/sshd_config la linea:

#PermitRootLogin no

e lo rimuoviamo dal commento. Penso che valga la pena chiarire che prima di fare ciò dobbiamo assicurarci che il nostro utente disponga delle autorizzazioni necessarie per eseguire attività amministrative.

Limita l'accesso da parte degli utenti

Inoltre non fa male consentire l'accesso tramite SSH solo a determinati utenti fidati, quindi torniamo al file /etc/ssh/sshd_config e aggiungiamo la riga:

ConsentiUtenti elav usemoslinux kzkggaara

Dove ovviamente, gli utenti elav, usemoslinux e kzkggaara sono quelli che potranno accedere.

Usa l'autenticazione con chiave

Sebbene questo metodo sia il più consigliato, dobbiamo prestare particolare attenzione perché accediamo al server senza inserire la password. Ciò significa che se un utente riesce ad accedere alla nostra sessione o il nostro computer viene rubato, possiamo essere nei guai. Tuttavia, vediamo come farlo.

La prima cosa è creare una coppia di chiavi (pubblica e privata):

ssh-keygen -t rsa -b 4096

Quindi passiamo la nostra chiave al computer / server:

ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7

Infine dobbiamo avere decommentato, nel file /etc/ssh/sshd_config la linea:

AuthorizedKeysFile .ssh/authorized_keys

Altre opzioni

Il contributo di Yukiteru

Possiamo ridurre a 30 secondi il tempo di attesa durante il quale un utente può accedere con successo al sistema

LoginGraceTime 30

Per evitare attacchi ssh tramite TCP Spoofing, lasciando attivo il criptato sul lato ssh per un massimo di 3 minuti, possiamo attivare queste 3 opzioni.

TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3

Disabilitare l'uso di file rhosts o shosts, che per motivi di sicurezza si raccomanda di non essere utilizzati.

IgnoreRhosts sì IgnoreUserKnownHosts sì RhostsAuthentication no RhostsRSAAuthentication no

Verificare le autorizzazioni effettive dell'utente durante il login.

StrictModes yes

Abilita la separazione dei privilegi.

UsePrivilegeSeparation yes

Conclusioni:

Eseguendo questi passaggi possiamo aggiungere ulteriore sicurezza ai nostri computer e server, ma non dobbiamo mai dimenticare che c'è un fattore importante: cosa c'è tra la sedia e la tastiera. Ecco perché consiglio di leggere questo articolo.

fonte: ComeForgiare


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   yukiteru suddetto

    Ottimo post @elav e aggiungo alcune cose interessanti:

    AccediGraceTime 30

    Questo ci consente di ridurre a 30 secondi il tempo di attesa durante il quale un utente può accedere con successo al sistema

    TCPKeepAlive non lo fa
    ClienteAliveIntervallo 60
    ClientAliveCountMax 3

    Queste tre opzioni sono molto utili per evitare attacchi ssh tramite TCP Spoofing, lasciando attivo il criptato sul lato ssh per un massimo di 3 minuti.

    IgnoreRhosts sì
    IgnoreUserKnownHosts sì
    RhostsAutenticazione n
    RhostsRSA Autenticazione no

    Disabilita l'uso di file rhosts o shosts, che per motivi di sicurezza si raccomanda di non essere utilizzati.

    StrictModes sì

    Questa opzione viene utilizzata per verificare le autorizzazioni effettive dell'utente durante il login.

    UsePrivilegeSeparation sì

    Abilita la separazione dei privilegi.

    1.    vivace suddetto

      Bene, tra un po 'modifico il post e lo aggiungo al post 😀

  2.   Eugenio suddetto

    Rimuovere i commenti per non modificare la linea è ridondante. Le righe commentate mostrano il valore di default di ogni opzione (leggi il chiarimento all'inizio del file stesso). L'accesso root è disabilitato per impostazione predefinita, ecc. Pertanto, la rimozione del commento non ha assolutamente alcun effetto.

    1.    vivace suddetto

      # La strategia utilizzata per le opzioni nel file sshd_config predefinito fornito con
      # OpenSSH serve a specificare le opzioni con il loro valore predefinito dove
      # possibile, ma lasciali commentati. Le opzioni senza commenti hanno la precedenza su
      # valore predefinito.

      Sì, ma ad esempio, come sappiamo che stiamo utilizzando solo la versione 2 del protocollo? Perché potremmo usare 1 e 2 allo stesso tempo. Come dice l'ultima riga, la rimozione del commento da questa opzione, ad esempio, sovrascrive l'opzione predefinita. Se usiamo la versione 2 per impostazione predefinita, va bene, altrimenti la usiamo SÌ o SÌ 😀

      Grazie per il commento

  3.   Sli suddetto

    Articolo molto buono, sapevo diverse cose ma una cosa che non mi è mai chiara è l'uso delle chiavi, veramente cosa sono e quali vantaggi ha, se uso le chiavi posso usare le password ??? In tal caso, perché aumenta la sicurezza e, in caso contrario, come posso accedervi da un altro PC?

  4.   Adriano suddetto

    Saluti, ho installato Debian 8.1 e non riesco a connettermi dal mio pc Windows a Debian con WINSCP, dovrò usare il protocollo 1? qualsiasi aiuto .. grazie
    Adriano

  5.   francosanabria suddetto

    Potresti essere interessato a questo video su openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Piastrella suddetto

    Voglio provare alcune cose qui, molte le ho già provate grazie ad Arch Wiki, altre per pigrizia o ignoranza. Lo salverò per quando avvierò il mio RPi