Qual è il modo più sicuro di ssh su una macchina dietro un router?

3

Sto pensando di inoltrare la porta 22, a 22 sulla macchina dietro il router, ma è sicura? Chiunque può provare a connettersi al mio IP pubblico sulla porta 22 e quindi cercare indefinitamente di indovinare user e password.

Non sembra una buona idea. Eventuali suggerimenti? Come è fatto correttamente?

    
posta so_user 12.12.2014 - 01:53
fonte

2 risposte

6

Ci sono molti robot automatizzati che tenteranno di attaccare i server SSH, ma se prendi alcune precauzioni puoi rendere SSH davvero sicuro.

  1. Disattiva completamente il login basato su password e rendi le coppie di chiavi pubbliche / private l'unico modo per accedere. Questa pagina fornisce informazioni su come disabilitare l'accesso tramite password e questo mostra come impostare le coppie di chiavi. È praticamente impossibile forzare una chiave, quindi questo passo da solo aumenterà drasticamente la sicurezza SSH. L'unico svantaggio è che dovrai copiare la chiave su ogni computer di cui hai bisogno per accedere.
  2. Imposta la limitazione della velocità: blocca un indirizzo IP dopo un certo numero di tentativi di password errati. Ci sono molti modi per farlo; Io uso fail2ban ma se tu cerca su Google troverai molte alternative. Questo è importante perché se non blocchi gli IP, avrai i robot che indovinano le password letteralmente per ore e ore. Concesso se si utilizzano login basati su chiavi, probabilmente non ci riusciranno mai, ma continueranno a utilizzare una buona porzione di larghezza di banda generando un sacco di traffico SSH indesiderato (e anche il riempimento dei log).
  3. Se sai che accederai a questo server solo da determinati indirizzi IP, puoi consentire solo quegli indirizzi IP e bloccare tutti gli altri .
  4. Disabilita il login come root - la stragrande maggioranza di i bot proveranno a scegliere come target il nome utente root.
  5. Controllare i log di accesso di volta in volta per l'accesso non autorizzato.

Se segui questi passaggi dovresti essere pronto per aprire SSH su Internet. Finché le tue chiavi sono al sicuro e i pacchetti del tuo server aggiornati, non dovresti avere problemi con la sicurezza SSH.

EDIT: se hai due macchine a cui devi accedere ma solo un indirizzo IP pubblico, hai due opzioni: puoi configurare il port forwarding su una macchina, e se devi accedere alla seconda macchina, devi effettuare il login al primo e SSH all'indirizzo IP privato del secondo dal primo.

L'altra opzione è quella di cambiare la porta SSH del secondo computer da 22 a qualcos'altro (ad esempio 2222). Quindi è possibile inoltrare la porta 22 alla prima macchina e la 2222 alla seconda macchina. Se è necessario accedere alla seconda macchina, specificare la porta 2222 nel client SSH. (Nota a margine: se lo desideri, puoi utilizzare porte non standard su entrambe le macchine per ridurre il traffico di bot.)

    
risposta data 12.12.2014 - 02:19
fonte
1

Se sei l'unico ad accedere alla macchina, trovo che aiuta a mantenere i tuoi registri ssh puliti selezionando una porta non standard per ssh.

Sì, è banale da bypassare se l'attaccante utilizza una botnet per effettuare una semplice scansione delle porte, quindi non aggiunge alcuna protezione contro un attaccante serio (anche se non ti impedisce di essere il frutto più basso). Ha ancora senso avere passphrase / chiavi ssh e altre buone pratiche (ad es. Disabilitare login di root). Ma sul mio VPS, ho scoperto che riduceva gli attacchi di login falliti che vedevo nei registri da indirizzi IP casuali da migliaia di tentativi al giorno a zero negli ultimi tre mesi.

Fondamentalmente scegli una porta che non viene utilizzata per altri scopi (e tendo a selezionare le porte che non vengono utilizzate per nulla controllando /etc/services per assicurarti di non utilizzare un servizio ben noto - - e seleziono anche le porte nell'intervallo di porte di sistema inferiore a 1024), ad esempio 501. Quindi esegui semplicemente il port forwarding nel router per inoltrare le richieste TCP in ingresso sulla porta 501 alla porta 22 sul computer locale.

Quindi ti connetti con ssh -p 501 $your_routers_ip dal mondo esterno. Se imposti un file .ssh/config puoi inserire la porta qui:

 host example
      Hostname example.com  # or ip address
      User jimbob
      Port 501
      ForwardAgent no
      ForwardX11 no

e quindi può solo fare ssh example e andrà automaticamente alla destra / destra del nome utente (e disabiliterà l'inoltro X11 / Agent).

    
risposta data 12.12.2014 - 02:44
fonte

Leggi altre domande sui tag