1.5.3. 为 SSH 设置非默认端口
默认情况下,sshd 守护进程侦听 TCP 端口 22。更改端口可降低系统暴露给基于自动网络扫描的攻击,从而通过隐蔽性提高了安全性。
注意
更改 SSH 端口仅提供有限的安全优势。无论端口号如何,攻击者执行完整的端口扫描可以发现该服务。实际的安全改进包括禁用密码身份验证、使用基于密钥的身份验证并实施正确的访问控制。
重要
更改 SSH 端口后,更新客户端配置以使用新端口。这包括:
-
用户 SSH 配置文件(
~/.ssh/config) - 连接到服务器的自动化工具和脚本
- 监控系统和备份工具
- 负载均衡器和代理配置
如果没有这些更新,到服务器的连接会失败。
先决条件
-
以
#命令提示符开头的命令需要sudo提供的管理特权或 root 用户访问权限。有关如何配置sudo访问权限的详情,请参考 启用非特权用户,以运行某些命令。 -
policycoreutils-python-utils软件包安装在您的系统中。
流程
-
在您选择的文本编辑器中打开
/etc/ssh/sshd_config配置文件。 删除
Port指令前面的#字符,并指定与 22 不同的端口号,例如:Port <49286>更新默认 SELinux 策略以允许使用非默认端口:
# semanage port -a -t ssh_port_t -p tcp <49286>更新
firewalld配置:# firewall-cmd --add-port <49286>/tcp # firewall-cmd --remove-port=22/tcp # firewall-cmd --runtime-to-permanent重启
sshd服务:# systemctl restart sshd
验证
使用显示运行的服务的端口号的工具,例如:
# ss -tulpn | grep sshd tcp LISTEN 0 128 [::]:49286 [::]:* users:(("sshd",pid=1784,fd=8))检查新端口号的输出。