La prima volta che si apre un server SSH su Internet, cosa controllare


9

Ho eseguito alcuni server per un tempo relativamente lungo, ma li ho sempre solo noleggiati, quindi non ho molta esperienza nel proteggere il server effettivo (al contrario dell'applicazione in esecuzione su di esso).

Ora ho voglia di aprire il mio piccolo server SSH domestico su Internet.

Sarò l'unico ad usarlo, le mie password sono abbastanza complicate, ho cambiato la porta SSH predefinita in qualcosa intorno al 4000, l'unica porta accessibile è questa porta SSH attraverso il port forwarding sul mio router / firewall e viene aggiornata automaticamente ogni notte (esegue Arch Linux, una distribuzione a rilascio continuo).

Quali sono, se del caso, altre cose che dovrei fare per proteggerlo?

Grazie!

Risposte:


22

Assicurarsi che gli accessi root siano disabilitati PermitRootLogin no. Vorrei anche considerare la disabilitazione delle password del tutto PasswordAuthentication noe utilizzare le chiavi pubbliche PubkeyAuthentication yes.


+1 mi ha battuto ...
Gravyface

1
Se stai per utilizzare le password, potresti provare a cercare un sistema di autenticazione a due fattori. In caso contrario, sconsiglio di digitare la password su un sistema di Internet café / biblioteca casuale.
Mark Wagner,

4
Se si autorizza l'autenticazione della password, prendere in considerazione l'installazione di fail2ban per prevenire attacchi di forza bruta e utilizzare password complesse per qualsiasi account autorizzato ad accedere tramite ssh
uSlackr

@embobo - perché? Le password inviate attraverso il filo sono criptate in ssh. Sì, la chiave di autenticazione è di gran lunga superiore in molti modi, ma fintanto che le password sono sufficientemente forti e hai verificato che nessuno è il surf a spalla, allora non è un grosso problema.
EEAA,

3
@Erika Penso che embobo stia alludendo alla diffidenza generale di qualsiasi sistema straniero. Anche se SSH è crittografato, una macchina straniera può ancora dire, registra i tuoi tasti. Quindi password = compromessa.
rthomson,

9

Assicurati che sia consentito solo SSH-2 (poiché SSH-1 ha sollevato alcuni problemi di sicurezza in passato):

Protocol 2

Specifica quali sono gli unici utenti autorizzati ad accedere tramite SSH:

AllowUsers bob, john

Per una maggiore sicurezza, non consentire l'autenticazione con password e utilizzare l'autenticazione con chiave pubblica:

PasswordAuthentication no
PubkeyAuthentication yes

Nota: questa esercitazione contiene istruzioni per la creazione di chiavi e la configurazione dell'autenticazione con chiave pubblica.


5

Oltre ai punti sulla disabilitazione dell'accesso root o sull'utilizzo dell'autenticazione con chiave pubblica, verificherei anche che sul sistema non vi siano account utente con password banali o vuote. Hai detto che le tue password personali vanno bene, ma ciò non esclude che un account con una password scadente sia stato creato per qualche altro motivo.

Ad esempio: ho dovuto sistemare una rete in cui l'amministratore precedente aveva installato i nagios su tutti i suoi sistemi dalla fonte e creato un utente nagios senza password o la password "nagios", quindi ho ottenuto tre macchine diverse compromessa.


4

Potresti voler esaminare una sorta di strumento di blacklist IP come http://denyhosts.sourceforge.net/ . Blocca tutti gli IP che tentano di accedere troppe volte senza successo ed è altamente configurabile.


Probabilmente una perdita di tempo se gli accessi root sono disabilitati. Nella mia esperienza (2 anni di un server SSH su Internet), solo una coppia ha mai avuto il mio nome utente (ovvio) giusto. I robot stanno solo controllando le password ovvie su nomi utente comuni (il 99% degli accessi non riusciti sul mio server sono per root, che ovviamente è disabilitato).
Brendan Long,

4
Sicuramente non è una perdita di tempo - ma dai un'occhiata a fail2ban
symcbean

+1 per fail2ban.
JamesBarnett,

1
root non è l'unico account ovvio che i bot controllano, vedi nagios come menzionato sopra. Ci sono anche account di database come mysql e postgres. Inoltre qualsiasi altro account dell'applicazione.
JamesBarnett,

Sì, in realtà ho avuto il mio 'SSH net face subentrato da un bot che indovinava una password non root, quindi sicuramente non è una perdita di tempo. Inoltre, dato che ottenere un blacklister come questo, guardando i registri, una percentuale molto piccola di tentativi è effettivamente per root.
Lynden Shields


0

Revisioni ricorrenti dei registri tra le parti / i componenti pertinenti dei sistemi (a seconda della configurazione effettiva / specifica) ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.