Protezione della porta SSH

Oggi come oggi sono sempre di più le persone che decidono di installare il proprio sito web o progetto all’interno di VPS come quelle offerte da AWS, Digital Ocean, Azure, ecc…
bhè che dire? Personalmente sono contento che ci si sposti da società di hosting condiviso (a volte di dubbie prestazioni e spesso basate su versioni di cPanel datate e obsolete) però è anche vero che il self-management hosting non è così facile e scontato da gestire.

Per esempio vedo sempre più VPS (anche di progetti molto importanti) con la porta SSH (la porta 22) aperta e accessibile al root.
Gravissimo! Innanzitutto perchè ci sono centinaia di bot in giro per il mondo che ogni istante cercano di effettuare “brute force” all’interno degli SSH trovati aperti.
 

Come puoi proteggere il tuo server?

Installare Fail2ban
Sicuramente una delle prime soluzioni è installare sulla propria macchina Fail2ban.
A questo link potrai trovare le istruzioni per farlo su Ubuntu 18.04.
 

Modificare la porta del servizio SSH
Una cosa che rende più complicato il lavoro di un hacker è sicuramente il dover cercare una porta non standard per l’accesso SSH… ci sono 65000 porte a disposizione e quello che ti consiglio è di modificare la tua porta di default 22 con un numero casuale a tuo piacimento esempio… 52931.
A questo link potrai trovare le istruzioni per farlo su Ubuntu.
 

Disabilitare l’accesso diretto a root
Premesso che la prassi migliore per “stare tranquilli” sarebbe utilizzare chiavi RSA ma che personalmente non amo e trovo scomodo l’uso di chiavi (almeno per i server non di produzione ma di staging ai quali mi connetto da più postazioni anche non mie e spesso non ho dietro le chiavi con me), quello che sicuramente consiglio è di dire a linux di non accettare il login diretto di root. In questo modo bisognerà loggarsi prima come utente (e bisogna quindi conoscere user e password di un utente valido) per poi scalare l’accesso al root. 
A questo link potrai trovare le istruzioni per farlo su server Ubuntu.

Utilizzare usarname e password complicati
Sempre premettendo (come scritto poco fa) che la prassi migliore sarebbe l’utilizzo di chiavi RSA, nel caso in cui non si utilizzi questa strada, sicuramente utilizzare username e password complicati è essenziale per proteggersi da eventuali attacchi hacker e questo vale per tutti i servizi utilizzati (non solo l’SSH) quindi prendetela come regola generale!

Quello che consiglio personalmente è di utilizzare sequenze “senza logica” composte da maiuscole, minuscole, numeri e caratteri speciali per la creazione delle proprie username e password.
Sicuramente una password deve essere di almeno 16 caratteri alfanumerici… un piccolo trucco che consiglio è di prendere una canzone in inglese che ci ricordiamo e di scriverla letteralmente per come la pronunciamo in italiano aggiungendo numeri e caratteri speciali… esempio:

[email protected]

Come noterai ho aggiunto anche una data utile per cambiare spesso (anche mensilmente) password pur mantenendo la stessa “base” che ci si augura si ricordi a memoria… in questo caso la password è composta da:

  • il simbolo del dollaro.
  • le parole pronunciate “male” all’italiana di “Lucy In The Sky With Diamonds” con la prima lettera sempre in maiuscolo e separate alternativamente da underscore e trattini partendo dagli underscore.
  • il simbolo della chiocciola.
  • il nome della VPS a cui abbiamo assegnato questa password (esempio vps AMS che sta per Datacenter di Amsterdam).
  • l’anno e il mese in numero separati da un trattino.

Pui testare la sicurezza della tua password grazie a servizi come questo.

I caratteri dopo la chiocciola ci permettono di variare la password server per server (o servizio per servizio) e di rinnovarla spesso in diversi periodi dell’anno in modo da avere password sempre diverse e rinnovate senza dimenticarle.

Per la username ti sconsiglio di utilizzare semplicemente il tuo nome ma di complicare le cose in questa maniera.

  • togliere tutte le vocali dal tuo cognome e nome.
  • aggiungere una data per te importante AAAAMMGG.
  • aggiungere il servizio al quale la user è associata.

Esempio su di me (Andrea Pollastri con avvenimento particolare l’8 settembre del 2004 impostata su una VPS nel datacenter di Amsterdam):

pllstrndr20040908vpsAMS

Questa procedura renderà difficile individuare in modo casuale un’utenza all’interno del tuo server e permetterà di differenziare l’utenza server per server.

firewall
società come AWS, Azure, Vultr, Digital Ocean ecc… permettono di impostare dei firewall interni ai propri datacenter in modo da limitare l’accesso a determinate come quella SSH solo ed esclusivamente a determinati IP in whitelist come quello del tuo appartamento o del tuo ufficio.
Questa misura è davvero notevole e consistente se si vogliono evitare spiacevoli sorprese e ti consiglio di applicarla.

Io personalmente utilizzo server Digital Ocean ed essa offre un comodo ed intuitivo pannello di controllo per compiere questa operazione in modo efficace e veloce con pochi click e senza troppe conoscenze tecniche.