Protezione avanzata SSH su un server Debian 9

7

Sto usando la seguente versione di GNU / Linux Debian:

cat /etc/issue

dice:

Debian GNU/Linux 9

Utilizzando il seguente kernel:

uname -r

dice:

4.9.0-2-amd64

E in esecuzione la seguente versione di OpenSSH:

apt-cache policy openssh-server | grep Installed

dice:

Installed: 1:7.4p1-7

La mia intenzione è quella di indurire la sicurezza SSH di un piccolo server, dal momento che è necessario avere accesso da qualsiasi IP, anche da qualsiasi VPN.

Questi passaggi ho fatto finora:

  1. Disabilitare l'accesso diretto alla directory principale:

    cat /etc/ssh/sshd_config | grep PermitRootLogin
    

    è impostato su:

    PermitRootLogin no
    
  2. Applicazione del protocollo SSH versione 2:

    cat /etc/ssh/sshd_config | grep Protocol
    

    è impostato su:

    Protocol 2
    
  3. Porta modificata a una casuale, che non scriverò qui, quindi diciamo 12345:

    cat /etc/ssh/sshd_config | grep Port
    

    è impostato su:

    Port 12345
    
  4. Ho creato un buco nel firewall per questo:

    sudo iptables -A INPUT -p tcp -m tcp --dport 12345 -m comment --comment "ssh" -j ACCEPT
    
  5. Ho generato una nuova chiave di lunghezza di 8 kilobit (sono consapevole del sovraccarico della CPU e di altri svantaggi di una chiave così grande):

    ssh-keygen -t rsa -b 8192
    
  6. Ho quindi verificato la corrispondenza delle dimensioni:

    ll /home/fictional_user/.ssh/id_rsa*
    

    è come dovrebbe essere, così come i diritti di accesso:

    -rw------- 1 fictional_user fictional_group 6.3K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa
    -rw-r--r-- 1 fictional_user fictional_group 1.4K Mar 16 11:53 /home/fictional_user/.ssh/id_rsa.pub
    
  7. Ho aggiunto questa chiave e ho verificato che non ce n'è un'altra:

    eval 'ssh-agent -s'
    ssh-add
    ssh-add -l
    

    restituisce:

    8192 SHA256:gibberish /home/fictional_user/.ssh/id_rsa (RSA)
    8192 SHA256:gibberish fictional_user@fictional_computer (RSA)
    
  8. Ho importato la chiave su due macchine, che manterranno il server:

    ssh-copy-id fictional_user@public_ip -p 12345
    
  9. In seguito, ho completamente disabilitato l'autenticazione della password:

    cat /etc/ssh/sshd_config | grep PasswordAuthentication
    

    è impostato su:

    PasswordAuthentication no
    

Domanda: Ho dimenticato qualcosa o questo è il massimo che posso fare?

    
posta Vlastimil 16.03.2017 - 15:51
fonte

2 risposte

5

Ci sono un certo numero di cose che puoi fare:

  • Configura una chiave privata che utilizza un algoritmo di allungamento della chiave per proteggere brute-forzando la passphrase.
  • Configura AllowUsers in sshd in modo che solo gli account con nome possano accedere
  • Utilizza fail2ban o fwknop per prevenire ulteriormente attacchi esterni (ricorda che CVE-2008-0166 ha consentito agli utenti Debian di generare solo una delle 32.767 chiavi possibili)
  • Monitora attivamente il tuo computer per gli attacchi
risposta data 16.03.2017 - 16:10
fonte
1

Solo alcuni pensieri:

  • sshd supporta tcpwrappers, questo aggiunge protezione quando il firewall non funziona.
  • il tuo file system supporta gli attributi su quelle chiavi pubbliche? Piuttosto rendili di sola lettura il più possibile.
  • prendi in considerazione l'uso di ssh-keysigning per limitare il tempo in cui le chiavi sono utilizzabili.
risposta data 08.02.2018 - 09:19
fonte

Leggi altre domande sui tag