前言
默认情况下, SSH 侦听端口 22 。 更改默认 SSH 端口可以降低被自动攻击的风险,从而为服务器增加额外的安全层。
和更改默认端口相比,将防火墙配置为仅允许从特定主机访问端口 22 则更加简单和安全。
本教程介绍如何更改 Linux 中的默认 SSH 端口。我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口。
选择新的端口号
在 Linux 中,低于 1024 的端口号保留用于众所周知的服务,并且只能由 root 绑定。虽然您可以使用 1-1024 范围内的端口进行 SSH 服务,但为了避免将来出现端口分配问题,建议选择 1024 以上的端口。
在此示例中,将 SSH 端口更改为 5522 ,当然您可以选择任何您喜欢的端口。
调整防火墙
在更改 SSH 端口之前,首先需要调整防火墙以允许新 SSH 端口上的流量。
如果您使用的是 Ubuntu 的默认防火墙配置工具 UFW , 请运行以下命令来打开新的 SSH 端口:
sudo ufw allow 5522/tcp
在 CentOS 中,默认的防火墙管理工具是 FirewallD 。要打开新端口,请运行以下命令:
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcp
sudo firewall-cmd --reload
CentOS 用户还需要调整 SELinux 规则以允许新的SSH端口:
sudo semanage port -a -t ssh_port_t -p tcp 5522
如果您使用 iptables 作为防火墙,则以下命令将打开新的 SSH 端口:
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
编辑 SSH 配置
使用文本编辑器打开 SSH 配置文件 /etc/ssh/sshd_config :
Port 5522
修改 SSH 配置文件时要格外小心。不正确的配置可能导致 SSH 服务无法启动。
完成后保存文件并重新启动 SSH 服务以应用更改:
sudo systemctl restart ssh
在 CentOS 中, ssh 服务命名为 sshd :
sudo systemctl restart sshd
要验证 SSH 守护程序是否正在侦听新端口 5522 ,请键入:
ss -an | grep 5522
使用新的 SSH 端口
现在您已经更改了要登录远程的计算机 SSH 端口,您需要在登录时指定新端口。
使用 -p <port_number> 选项指定端口:
总结
通过以上方式,就可以修改我们的SSH端口,但是一般情况下不进行修改,SSH本身很安全,但如果在复杂网络环境中,有此需求,就可以考虑。