centos 更改22端口
在CentOS系统中,SSH默认使用22端口进行远程访问,但该端口常成为安全攻击目标。更改SSH端口可有效降低未授权访问风险,加强系统保护。本指南详细介绍变更过程,涉及SSH配置文件编辑、防火墙规则调整和连接测试。
变更原因
默认SSH端口22易被自动化工具扫描,修改为不常用端口可减少暴力攻击尝试。这提高系统防御能力,且不影响功能,适合生产环境部署。
准备工作
确保具备root权限或sudo权限。准备新端口号(如2222),使用1024以上数字避免冲突。检查当前端口使用:ss -tunlp | grep :22
确认SSH监听状态。
配置步骤
- 编辑SSH配置文件:打开
/etc/ssh/sshd_config
文件,使用sudo nano /etc/ssh/sshd_config
。定位#Port 22
行,取消注释并将值改为新端口,示例:Port 2222
。保存文件。 - 重启SSH服务:应用变更,运行
sudo systemctl restart sshd
。检查服务状态:sudo systemctl status sshd
确保无错误。 - 配置防火墙:添加新端口规则。使用firewalld:执行
sudo firewall-cmd --permanent --add-port=2222/tcp
然后sudo firewall-cmd --reload
。验证:sudo firewall-cmd --list-ports
显示新端口。 - 锁定端口:移除旧端口规则避免残留风险。命令:
sudo firewall-cmd --permanent --remove-port=22/tcp
随后sudo firewall-cmd --reload
。 - SELinux处理:若系统使用SELinux,授权新端口:运行
sudo semanage port -a -t ssh_port_t -p tcp 2222
。检查状态:sudo semanage port -l | grep ssh
。
测试与验证
尝试新端口连接:从另一设备执行ssh user@server_ip -p 2222
。确认成功登录。内部检查:使用sudo ss -tunlp | grep sshd
验证监听端口已更新。
常见问题与优化
连接失败:防火墙规则未更新时,确保新端口已开放。SELinux冲突通过审计日志解决:sudo ausearch -c 'sshd' --raw | audit2allow -M mypol
。
安全强化:建议结合密钥认证和禁用root登录:在sshd_config
中设置PermitRootLogin no
和PasswordAuthentication no
。
结论
更改SSH端口22是基本安全措施,配合防火墙和SELinux可显著减少入侵概率。测试通过后,系统将使用新端口响应,提升整体防护水平。定期更新规则保持效果。