Introduzione
SFTP (SSH File Transfer Protocol) è un protocollo file sicuro per il trasferimento di file tra due host tramite una connessione crittografata. Inoltre, consente di eseguire varie operazioni sui file remoti e di riprendere i trasferimenti di file.
SFTP può essere utilizzato come sostituto del protocollo FTP legacy. Ha tutte le funzionalità di FTP ma con una connessione più sicura.
Questo articolo spiega come modificare la porta SFTP predefinita in Linux. Ti mostreremo anche come configurare il tuo firewall per consentire sulla nuova porta.
Non confondere SFTP con FTPS. Entrambi i protocolli hanno lo stesso scopo. Tuttavia, FTPS sta per FTP Secure ed è un'estensione del protocollo FTP standard con supporto per TLS.
Porta SFTP standard
SFTP è un sottosistema di SSH e fornisce lo stesso livello di sicurezza di SSH.
La porta SFTP predefinita è la 22.
Modificare la porta SFTP
La modifica della porta SFTP/SSH predefinita aggiunge un ulteriore livello di sicurezza al server riducendo il rischio di attacchi automatici.
Il modo migliore per proteggere il server dagli attacchi è configurare il firewall per consentire l'accesso alla porta 22 solo da host attendibili e impostare un'autenticazione basata su chiave SSH.
I seguenti passaggi descrivono come modificare la porta SSH su macchine Linux.
Scegliere un nuovo numero di 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 di allocazione delle porte, si consiglia di scegliere una porta superiore a 1024.
Questo esempio mostra come modificare la porta SFTP/SSH su 4422, ma puoi scegliere qualsiasi porta di tuo gradimento.
Regolare il firewall
Prima di cambiare la porta SFTP/SSH, dovrai aprire la nuova porta nel tuo firewall.
Se si utilizza UFW, il firewall UFW predefinito su Ubuntu, eseguire il comando seguente per aprire la porta:
sudo ufw allow 4422/tcp
In CentOS, lo strumento di gestione firewall predefinito è FirewallD. Per aprire la porta, immettere i seguenti comandi:
sudo firewall-cmd --permanent --zone=public --add-port=4422/tcp
sudo firewall-cmd --reload
Gli utenti di CentOS devono inoltre regolare le regole SELinux per consentire la nuova porta SSH:
sudo semanage port -a -t ssh_port_t -p tcp 4422
Se si utilizza un'altra distribuzione Linux che esegue iptables, per aprire la nuova porta eseguire:
sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Configurare SFTP/SSH
La configurazione del server SSH è memorizzata nel file /etc/ssh/sshd_config
. Apri il file con il tuo editor di testo:
sudo vim /etc/ssh/sshd_config
Cerca la riga che inizia con Port 22
. In genere, questa riga viene commentata usando il simbolo hash #
. Rimuovi l'hash #
e inserisci il tuo nuovo numero di porta SSH:
Fai molta attenzione quando modifichi il file di configurazione. Una configurazione errata potrebbe impedire l'avvio del servizio SSH.
Una volta fatto, salva il file e riavvia il servizio SSH per rendere effettive le modifiche:
sudo systemctl restart ssh
In CentOS il servizio SSH è chiamato sshd
:
sudo systemctl restart sshd
Verifica che il demone SSH sia in ascolto sulla nuova porta:
ss -an | grep 4422
L'output dovrebbe assomigliare a questo:
tcp LISTEN 0 128 0.0.0.0:4422 0.0.0.0:*
tcp ESTAB 0 0 192.168.111.111:4422 192.168.111.1:41438
tcp LISTEN 0 128 [::]:4422 [::]:*
Utilizzare la nuova porta SFTP
Per specificare il numero di porta, richiamare il comando sftp
con l'opzione -P
seguita dal nuovo numero di porta:
sftp -P 4422 username@remote_host_or_ip
Se si utilizza un client SFTP della GUI, è sufficiente inserire la nuova porta nell'interfaccia client.
Conclusione
La porta SFTP predefinita è 22. Tuttavia, è possibile cambiare la porta con il numero desiderato.
Se ci si collega regolarmente a più sistemi, è possibile semplificare il flusso di lavoro definendo tutte le connessioni nel file di configurazione SSH.