Inoltre sulla stessa porta ho messo anche in ascolto un server NX che mi permette di condividere anche la sessione grafica se il terminale non fosse sufficiente. In pratica funziona come VNC ma in più si ha la sicurezza di una connessione crittografata, visto che VNC o il remote desktop integrato di Ubuntu (VINO) in quanto a sicurezza lasciano un po' a desiderare.
Ma, purtroppo,una macchina che rimane costantemente in rete con un servizio così importante abilitato è sempre esposta a qualche rischio.
C'è sempre la possibilità che qualche lamer tenti un port scanning e attacchi la porta SSH con un brute force attack o con un dictionary attack.
La prima precauzione da prendere per evitare questo tipo di problemi è, ovviamente, quella di impostare una password robusta. Più la complessità della password è alta minori sono le possibilità che possa essere violata. Inseriamo nella nostra password sempre caratteri Maiuscoli e minuscoli, magari anche numeri e almeno un simbolo, e se possibile cerchiamo di evitare parole di senso compiuto.
Un altro accorgimento da adottare per limitare il numero dei possibili attacchi è quello di cambiare la porta del servizio. La porta predefinita di SSH è la 22, per cambiarla non bisogna fare altro che dare il comando
sudo gedit /etc/ssh/sshd_confige cambiare la riga Port 22 scegliendo un'altra porta libera, ricordandoci dopo la modifica di riavviare il demone con
sudo /etc/init.d/ssh restartCon questi semplici accorgimenti già potremmo essere soddisfatti, ma se volete dormire sonni davvero tranquilli vi consiglio l'installazione di DenyHosts.
DenyHosts è uno script Python che analizza il log del server ssh per determinare quali host stanno tentando di introdursi nel sistema. Dopo aver scoperto una serie di attacchi ripetuti provenienti da un singolo host chiude definitivamente la porta a quell'IP impedendogli di eseguire altri tentativi di intrusione.
Dulcis in fundo, è possibile farsi inviare una mail ogni volta che un nuovo host viene inserito nella blacklist in modo da essere sempre aggiornati sui tentativi di attacco senza bisogno di leggere i log.
L'installazione è tutto sommato semplice, ma richiede qualche piccolo accorgimento per una perfetta configurazione.
Su Ubuntu si installa semplicemente con
sudo apt-get install denyhostsIl file di configurazione è situato in /etc/denyhosts.conf e permette la gestione di moltissimi parametri e se non si hanno esigenze particolari si può anche lasciare così com'è.
Io però ho preferito diminuire la soglia dei tentativi di accesso portandola ad 1 per l'utente root e a 5 per tutti gli altri .
#######################################################################Per quanto riguarda l'invio dell'email a seguito del tentativo di intrusione la configurazione è, anche qui, abbastanza semplice.
#
# DENY_THRESHOLD_INVALID: block each host after the number of failed login
# attempts has exceeded this value. This value applies to invalid
# user login attempts (eg. non-existent user accounts)
#
DENY_THRESHOLD_INVALID = 5
#
#######################################################################
#######################################################################
#
# DENY_THRESHOLD_VALID: block each host after the number of failed
# login attempts has exceeded this value. This value applies to valid
# user login attempts (eg. user accounts that exist in /etc/passwd) except
# for the "root" user
#
DENY_THRESHOLD_VALID = 5
#
#######################################################################
#######################################################################
#
# DENY_THRESHOLD_ROOT: block each host after the number of failed
# login attempts has exceeded this value. This value applies to
# "root" user login attempts only.
#
DENY_THRESHOLD_ROOT = 1
#
#######################################################################
Se si dispone di un account di posta elettronica con SMTP senza protezione SSL, basta configurare correttamente i campi in grassetto:
#######################################################################Se invece disponiamo di una email con server SMTP che richiede la protezione SSL dobbiamo ricorrere ad un piccolo barbatrucco :) che passa per l'installazione di un tunnel SSL visto che lo script non supporta nativamente questo tipo di autenticazione.
#
# ADMIN_EMAIL: if you would like to receive emails regarding newly
# restricted hosts and suspicious logins, set this address to
# match your email address. If you do not want to receive these reports
# leave this field blank (or run with the --noemail option)
#
# Multiple email addresses can be delimited by a comma, eg:
# ADMIN_EMAIL = foo@bar.com, bar@foo.com, etc@foobar.com
#
ADMIN_EMAIL = tua@email
#######################################################################
#######################################################################
#
# SMTP_HOST and SMTP_PORT: if DenyHosts is configured to email
# reports (see ADMIN_EMAIL) then these settings specify the
# email server address (SMTP_HOST) and the server port (SMTP_PORT)
#
#
SMTP_HOST = server smtp
SMTP_PORT = 25
#
#######################################################################
#######################################################################
#
# SMTP_USERNAME and SMTP_PASSWORD: set these parameters if your
# smtp email server requires authentication
#
SMTP_USERNAME = nome_utente_smtp
SMTP_PASSWORD = pwd_email
#
######################################################################
#######################################################################
#
# SMTP_FROM: you can specify the "From:" address in messages sent
# from DenyHosts when it reports thwarted abuse attempts
#
SMTP_FROM = Tuo Nome <tua@email>
#
#######################################################################
#######################################################################
#
# SMTP_SUBJECT: you can specify the "Subject:" of messages sent
# by DenyHosts when it reports thwarted abuse attempts
SMTP_SUBJECT = Rapporto Intrusione DenyHosts
#
######################################################################
Installiamo stunnel4
sudo apt-get install stunnel4
quindi
sudo gedit /etc/default/stunnel4e impostiamo ENABLED=1 (serve per attivare il servizio automaticamente all'avvio).
Quindi creiamo un nuovo file che chiameremo denyhosts.conf nella cartella
/etc/stunnel
sudo gedit /etc/stunnel/denyhosts.confche dovrà essere composto così
client = yes
[ssmtp]
accept = 25
connect = server_smtp:porta
a titolo di esempio questa è la configurazione per il server Yahoo :
client = yes
[ssmtp]
accept = 25
connect = smtp.mail.yahoo.com:465
Una volta salvato il file andiamo a modificare la sezione email della configurazione di DenyHosts (/etc/denyhosts.conf) per utilizzare il tunnell SSL appena creato:
#######################################################################Il resto della configurazione rimane identica alla precedente.
#
# SMTP_HOST and SMTP_PORT: if DenyHosts is configured to email
# reports (see ADMIN_EMAIL) then these settings specify the
# email server address (SMTP_HOST) and the server port (SMTP_PORT)
#
#
SMTP_HOST = localhost
SMTP_PORT = 25
#
#######################################################################
Concluse le personalizzazioni riavviamo i servizi :
sudo /etc/init.d/denyhosts restart
sudo /etc/init.d/stunnel4 restart (se lo avete installato)La configurazione è conclusa, voglio lasciarvi però con un ultimo appunto.
In caso di attacco DenyHost elencherà l'indirizzo IP "bannato" nel file /etc/hosts.deny.
Nel caso vogliate evitare che un vostro indirizzo finisca nella blacklist (ad esempio qualche IP della rete locale) inseritelo nel file /etc/hosts.allow.
Durante le prove post installazione può capitare che qualche indirizzo finisca per sbaglio nella blacklist. Per sbloccarlo seguite questa procedura:
- Fermare il servizio: sudo /etc/init.d/denyhosts stop
- Rimuovere l'IP da sbloccare dal file /etc/hosts.deny
- Rimuovere ogni linea contenente l'IP da sbloccare dai seguenti files:
/var/lib/denyhosts/hosts
/var/lib/denyhosts/hosts-restricted
/var/lib/denyhosts/hosts-root
/var/lib/denyhosts/hosts-valid
/var/lib/denyhosts/users-hosts
- Riavviare il servizio: sudo /etc/init.d/denyhosts start
Nessun commento:
Posta un commento