Al di là dell’utilizzo di un Firewall, che è sempre un componente indispensabile, si possono mettere dei “paletti” qua e la per complicare la vita ad un eventuale attaccante, ed in parte anche noi poiché certe cose vanno ricordate quando si devono effettuare modifiche avanti nel tempo. Ad ogni modo è possibile istruire il server OpenSSH affinché gli accessi possano avvenire esclusivamente da un certo indirizzo ip o una certa classe di indirizzi IP. Ribadisco che questa soluzione debba essere affiancata da un Firewall e non usata in modo preferenziale visto che questa è una semplice opzione e non un programma specifico per la sicurezza.
Il file dove andremo ad operare è [textmarker color=”000000″]/etc/ssh/sshd_config[/textmarker] .
La tecnica da applicare sarà quella di disabilitare l’autenticazione via password in modo globale, ed attivarla solo per gli indirizzi da cui andremo ad accedere.
PasswordAuthentication no
Match address 192.0.2.0/24
PasswordAuthentication yes
Quindi riavviamo il servizio ssh
sudo service ssh restart
Come possiamo notare solo la classe indirizzi elencata potrà fruire dell’accesso SSH. Se l’ip è uno solo omettete la subnet /24. Se dovete elencare più subnet o più indirizzi sarà sufficiente separarli con una virgola. Ad esempio
Match address 192.168.0.1/24, 10.0.0.0/24
E’ possibile anche negare un particolare indirizzo o subnet, in questo caso la sintassi sarà:
Match address *, !1.80.0.0/13, !1.92.0.0/14
In questo caso abbiamo abilitato l’accesso a chiunque eccetto le due subnet relative al continente asiatico.
Con questo trucco è possibile attuarlo solamente se abbiamo a disposizione un IP statico da cui ci connettiamo. Ma potenzialmente potremo mettere tutte le subnet /8 relative all’Italia. Questo non ci mette al riparo da un attaccante italiano, ma se non altro mettiamo un ulteriore livello di difficoltà verso le regioni asiatiche, indiane e russe, dove gran parte degli scan provengono.
Sorgente iniziale da dove ho preso esempio: How can I allow SSH password authentication from only certain IP addresses?