如何更改SFTP端口
SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。
它还允许我们对远程文件执行各种文件操作并恢复文件传输。
SFTP可以替代旧版FTP协议。
它具有FTP的所有功能,但连接更加安全。
本文介绍了如何在Linux中更改默认的SFTP端口。
我们还将向我们展示如何配置防火墙以允许在新端口上使用。
不要将SFTP与FTPS混淆。
两种协议具有相同的目的。
但是,FTPS代表FTP Secure,它是对标准FTP协议的扩展,并支持TLS。
SFTP使用什么端口
SFTP是SSH的子系统,并提供与SSH相同级别的安全性。
默认的SFTP端口为22.
更改SFTP端口
更改默认的SFTP/SSH端口可以降低自动攻击的风险,从而为服务器增加一层另外的安全保护。
保护服务器免受攻击的最佳方法是将防火墙配置为仅允许从受信任的主机访问端口22并设置基于SSH密钥的身份验证。
以下步骤描述了如何在Linux计算机上更改SSH端口。
1.选择一个新的端口号
在Linux中,低于1024的端口号是为知名服务保留的,只能由root绑定。
尽管可以将1-1024范围内的端口用于SSH服务以避免端口分配问题,但建议选择1024以上的端口。
本示例说明如何将SFTP/SSH端口更改为4422,但是我们可以选择自己喜欢的任何端口。
2.调整防火墙
更改SFTP/SSH端口之前,我们需要在防火墙中打开新端口。
如果我们正在使用UFW(Ubuntu中的默认防火墙),请运行以下命令以打开端口:
sudo ufw allow 4422/tcp
在CentOS中,默认的防火墙管理工具是FirewallD。
要打开端口,请输入以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=4422/tcpsudo firewall-cmd --reload
CentOS用户还需要调整SELinux规则以允许新的SSH端口:
sudo semanage port -a -t ssh_port_t -p tcp 4422
如果我们使用的是另一个运行iptables的Linux发行版,请打开新的端口运行:
sudo iptables -A INPUT -p tcp --dport 4422 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
3.配置SFTP/SSH
SSH服务器配置存储在“/etc/ssh/sshd_config”文件中。
使用文本编辑器打开文件:
sudo vim /etc/ssh/sshd_config
搜索以“ Port 22”开头的行。
通常,此行使用井号('#')注释掉。
删除井号“#”,然后输入新的SSH端口号:
/etc/ssh/sshd_config
Port 4422
编辑配置文件时要非常小心。
错误的配置可能会阻止SSH服务启动。
完成后,保存文件并重新启动SSH服务以使更改生效:
sudo systemctl restart ssh
在CentOS中,SSH服务名为“ sshd”:
sudo systemctl restart sshd
确认SSH守护程序正在新端口上侦听:
ss -an | grep 4422
输出应如下所示:
tcp LISTEN 0 128 0.0.0.0:4422 0.0.0.0:* tcp ESTAB 0 0 192.168.121.108:4422 192.168.121.1:57638 tcp LISTEN 0 128 [::]:4422 [::]:*
使用新的SFTP端口
要指定端口号,请在“ sftp”命令中使用“ -P”选项,后跟新的端口号:
sftp -P 4422 username@remote_host_or_ip
如果使用的是GUI SFTP客户端,只需在客户端界面中输入新端口即可。