在CentOS系统中,SSH(Secure Shell)是一种用于远程登录和管理服务器的安全协议,默认情况下,SSH服务监听22端口,这使得服务器容易受到暴力破解攻击,为了提高安全性,可以修改SSH的默认端口,本文将详细介绍如何在CentOS中修改SSH端口,并确保修改后的端口正常工作。
准备工作
在进行任何配置更改之前,建议先备份相关配置文件,以防出现意外情况,可以使用以下命令备份SSH配置文件:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
修改SSH配置文件
1、编辑SSH配置文件
使用文本编辑器打开/etc/ssh/sshd_config
文件:
vim /etc/ssh/sshd_config
2、添加新端口
找到文件中的#Port 22
行,将其前面的#
去掉,并将22改为你想要的新端口号,将端口改为2020:
Port 2020
注意:不要删除原来的Port 22
行,而是保留它,这样,如果新端口出现问题,你仍然可以通过22端口进行连接。
3、保存并退出
保存修改并退出编辑器,对于vim,可以使用以下命令:
:wq
4、重启SSH服务
为了使更改生效,需要重启SSH服务:
systemctl restart sshd.service
配置防火墙规则
1、启动防火墙服务
确保防火墙服务已经启动:
systemctl start firewalld.service
2、添加新端口到防火墙规则
使用以下命令将新端口添加到防火墙规则中:
firewallcmd zone=public addport=2020/tcp permanent
3、重新加载防火墙规则
使更改生效:
firewallcmd reload
验证修改是否成功
1、检查防火墙规则
确认新端口已经被添加到防火墙规则中:
firewallcmd zone=public listports
2、测试新端口连接
使用SSH客户端尝试通过新端口连接到服务器:
ssh p 2020 your_username@your_server_ip
如果能成功连接,说明修改成功,可以返回SSH配置文件,注释掉原来的Port 22
行:
#Port 22
再次重启SSH服务:
systemctl restart sshd.service
五、向SELinux中添加修改的SSH端口(可选)
如果你的系统启用了SELinux,还需要将新端口添加到SELinux策略中,否则,即使防火墙和SSH配置正确,连接也可能被拒绝。
1、安装SELinux管理工具
如果尚未安装,可以使用以下命令安装:
yum install policycoreutilspython y
2、查询当前SSH服务端口
查看当前SSH服务的端口:
semanage port l | grep ssh
3、添加新端口到SELinux
将新端口添加到SELinux策略中:
semanage port a t ssh_port_t p tcp 2020
4、验证添加结果
确认新端口已经添加到SELinux策略中:
semanage port l | grep ssh
5、重启SSH服务
重启SSH服务以应用更改:
systemctl restart sshd.service
常见问题及解决方案
1、防火墙规则未生效
如果防火墙规则未生效,可以尝试手动重启防火墙服务:
systemctl restart firewalld.service
2、SELinux阻止连接
如果SELinux阻止了新的SSH端口连接,确保按照上述步骤将新端口添加到SELinux策略中。
3、无法通过新端口连接
如果无法通过新端口连接,首先检查防火墙和SELinux配置是否正确,确认SSH服务是否正常运行:
systemctl status sshd.service
修改SSH默认端口是提高服务器安全性的重要步骤之一,以下是一些最佳实践建议:
1、选择非标准端口
选择一个大于1024且小于65535的非标准端口,以减少被扫描的风险。
2、定期更换端口
定期更换SSH端口,以进一步提高安全性。
3、使用密钥认证
除了修改端口外,建议使用SSH密钥认证代替密码认证,以增强安全性。
4、限制登录尝试次数
配置SSH服务,限制登录尝试次数,防止暴力破解,可以在/etc/ssh/sshd_config
中添加以下配置:
MaxAuthTries 3
5、监控登录日志
定期检查/var/log/secure
日志,监控异常登录尝试。
FAQs
Q1: 修改SSH端口后无法连接怎么办?
A1: 如果修改SSH端口后无法连接,首先检查以下几点:
确保防火墙规则已正确添加新端口。
确保SELinux策略已包含新端口(如果启用了SELinux)。
确认SSH服务正在运行,并且配置文件中没有语法错误。
如果仍然无法连接,可以尝试暂时恢复默认的22端口,确保基本连接正常,然后再逐步排查问题。
Q2: 如何更改回默认的SSH端口?
A2: 如果需要将SSH端口改回默认的22,可以按照以下步骤操作:
1、编辑/etc/ssh/sshd_config
文件,将Port 2020
改为#Port 2020
,并将#Port 22
改为Port 22
。
2、保存并退出编辑器。
3、重启SSH服务:systemctl restart sshd.service
。
4、如果之前添加了新的防火墙规则和SELinux策略,记得移除它们或将它们恢复到默认状态。