Conclusione
Per impostazione predefinita, SSH è in ascolto sulla porta 22. La modifica della porta SSH predefinita aggiunge un ulteriore livello di sicurezza al server riducendo il rischio di attacchi automatici.
Invece di cambiare la porta è molto più semplice e sicuro configurare il firewall per consentire l'accesso alla porta 22 solo da host specifici.
Questo tutorial spiega come modificare la porta SSH predefinita in Linux. Ti mostreremo anche come configurare il firewall per consentire l'accesso alla nuova porta SSH.
Modificare la porta SSH
Seguire i passaggi seguenti per cambiare la porta SSH sul proprio sistema Linux.
Scegliere il numero di porta
Il primo step consiste nello scegliere il numero della nuova porta. In Linux, i numeri di porta inferiori a 1024 sono riservati a servizi noti e possono essere associati solo da root. Sebbene sia possibile utilizzare una porta nell'intervallo 1-1024 per il servizio SSH per evitare problemi con l'allocazione delle porte in futuro, si consiglia di scegliere una porta sopra 1024.
In questo esempio cambierà la porta SSH in 3344, puoi scegliere qualsiasi porta.
Regolare il Firewall
Il secondo step consiste nel regolare il firewall. Prima di cambiare la porta SSH, devi prima regolare il firewall per consentire il traffico sulla nuova porta SSH.
Se si utilizza UFW, lo strumento di configurazione del firewall predefinito per Ubuntu esegue il comando seguente per aprire la nuova porta SSH:
sudo ufw allow 3344/tcp
In CentOS lo strumento di gestione firewall predefinito è FirewallD. Per aprire la nuova porta, eseguire i comandi seguenti:
sudo firewall-cmd --permanent --zone=public --add-port=3344/tcp
sudo firewall-cmd --reload
Gli utenti di CentOS dovranno inoltre adattare le regole SELinux per consentire la nuova porta SSH:
sudo semanage port -a -t ssh_port_t -p tcp 3344
Se si utilizza iptables come firewall, il comando seguente aprirà la nuova porta SSH:
sudo iptables -A INPUT -p tcp --dport 3344 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Configurazione SSH
Il terzo step consiste nel modificare il file di configurazione di SSH.
Apri il file di configurazione SSH /etc/ssh/sshd_config
con il tuo editor di testo:
sudo nano /etc/ssh/sshd_config
Cerca la riga che inizia con Port 22
. Nella maggior parte dei casi, questa riga inizierà con un hash #
. Rimuovi l'hash #
e inserisci il tuo nuovo numero di porta SSH che verrà utilizzato al posto della porta SSH standard 22, in questo modo:
Port 3344
Prestare particolare attenzione quando si modifica il file di configurazione SSH. Una configurazione errata potrebbe impedire l'avvio del servizio SSH.
Salvare e chiudere il file premendo CTRL+X, seguito da Y per salvare le modifiche e quindi ENTER se stai utilizzando nano.
Una volta terminato, salvare il file e riavviare il servizio SSH per applicare le modifiche:
sudo systemctl restart ssh
In CentOS il servizio ssh è chiamato sshd
:
sudo systemctl restart sshd
Per verificare che il daemon SSH sia in ascolto sulla nuova porta 3344
digitare:
ss -an | grep 3344
L'output dovrebbe assomigliare a questo:
tcp LISTEN 0 128 0.0.0.0:3344 0.0.0.0:*
tcp ESTAB 0 0 192.168.111.111:3344 192.168.111.1:57638
tcp LISTEN 0 128 [::]:3344 [::]:*
Utilizzare la nuova porta SSH
Ora che hai cambiato la porta SSH quando accedi al computer remoto dovrai specificare la nuova porta.
Utilizzare l'opzione -p <port_number>
specificare la porta:
ssh -p 3344 username@remote_host_or_ip
Conclusione
In questo tutorial, hai imparato a cambiare la porta SSH sul tuo server Linux. È inoltre possibile configurare un'autenticazione basata su chiave SSH e connettersi ai server Linux senza immettere una password.