SSH 是一种网络协议,用于与 Linux 系统进行远程安全通信。默认情况下,SSH 服务使用端口 22。
您可以通过修改服务器的 SSH 端口来添加额外的安全层,并降低黑客和机器人攻击的风险。
在本教程中,您将学习如何在 Linux 服务器修改 SSH 端口,本教程几乎涵盖所有发行版修改 SSH 服务端口的设置。
选择一个新端口
Linux 系统为常用的服务保留低于 1024 的端口。 您也可以使用 1-1024 范围内的端口作为 SSH 服务的端口。
但建议选择高于 1024 的端口以避免将来出现问题。 您可以为 SSH 服务最多选择 65535 个端口号。
我们将在本教程使用 4567 端口用于 SSH 服务,您可以根据自己的喜欢进行选择,建议选择一个易于记忆的。
设置防火墙
如果您的服务器启用了防火墙,那么您需要在修改之前,也就是使用新的 SSH 端口之前对防火墙进行调整。设置防火墙允许新的 SSH 端口的流量。
FirewallD 是 CentOS 系统默认的防火墙管理工具。您可以在 CentOS 服务器运行以下命令打开新端口:
sudo firewall-cmd --permanent --zone=public --add-port=4567/tcp
sudo firewall-cmd --reload
在基于 CentOS 或 RHEL Linux 的发行版,另一个要求是调整 SELinux 规则允许新的 SSH 端口 4567。您可以运行以下命令来完成 SELinux 设置:
sudo semanage port -a -t ssh_port_t -p tcp 4567
在 Ubuntu 系统,默认的防火墙工具是 UFW。运行命令 sudo ufw allow 4567 允许新的 SSH 端口 4567 进行连接:
sudo ufw allow 4567
如果你已经在你的 Linux 服务器安装 iptables 并用作防火墙,你可以运行以下命令打开端口 4567:
sudo iptables -A INPUT -p tcp --dport 4567 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
配置 SSH
在 Linux 中,SSH 服务默认端口存储在 /etc/ssh/sshd_config 文件中。首先,您需要使用您喜欢的文本编辑器打开 SSH 配置文件进行编辑。
在本教程中我们将使用 vim 编辑器,运行命令 sudo vim /etc/ssh/sshd_config:
sudo vim /etc/ssh/sshd_config
现在在文件中搜索以port 22 开头的行。大多数情况下,此行用井号 # 注释掉。 删除 # 并输入您将使用的新 SSH 端口号,而不是标准的 SSH 端口 22。
修改后的最终结果它应该如下所示:
Port 4567
完成上述更改后,保存文件并重新启动 SSH 服务。
sudo systemctl restart ssh
在基于 CentOS 或 RHEL Linux 的发行版中,ssh 服务名称是 sshd,因此您需要运行命令 sudo systemctl restart sshd 来重启 sshd 服务:
sudo systemctl restart sshd
您可以运行命令 ss-an | grep 4567 来验证 SSH 服务是否正在监听新端口 4567:
ss-an | grep 4567
它将打印如下输出:
tcp LISTEN 0 128 0.0.0.0:4567 0.0.0.0:*
tcp LISTEN 0 128 [::]:4567 [::]:*
使用新端口连接 SSH 服务器
现在,您已成功修改 SSH 服务的端口。要使用新端口建立连接,您必须使用 SSH 命令的 -p 选项指定端口号。如下所示:
ssh -p 4567 username@remote_ip_address
结论
您已学习如何修改 Linux 系统的 SSH 端口。如果您有任何问题或建议,可以在下面发表评论。