在日常的服务器管理过程中,确保系统的安全性是每个管理员必须要关注的重点。CentOS7作为一款广泛使用的Linux操作系统,提供了稳定的运行环境和强大的功能。由于SSH(SecureShell)协议广泛用于远程登录,如果服务器的默认SSH端口(22端口)未经过有效保护,便容易成为黑客攻击的目标。因此,修改SSH端口是增强服务器安全性的一项有效措施。
本文将详细介绍如何在CentOS7中修改SSH端口,并为您提供逐步的操作指南,帮助您轻松完成这一过程,从而提高服务器的安全防护能力。
为什么要修改SSH端口?
默认情况下,SSH协议使用22端口进行通信,而这一端口常常是攻击者首先尝试的目标。黑客通过暴力破解或扫描工具,针对22端口进行大量的密码猜测,从而获取到系统的控制权限。如果您没有采取有效的安全措施,您的服务器可能会受到频繁的攻击,甚至被入侵。
为了防止这种情况,修改SSH端口成为了一个简单而有效的解决方案。通过将SSH端口更改为一个非标准端口,您可以有效地减少暴力破解攻击的风险,因为攻击者需要先识别新的端口号,才有可能进行进一步的攻击。
修改SSH端口还可以帮助管理员更好地管理日志文件,因为大量的暴力破解攻击通常会产生异常的登录记录。将SSH端口修改为其他端口,可以帮助减少无关的日志信息,更好地分析真实的安全事件。
修改SSH端口的步骤
步骤1:备份当前配置文件
在修改任何系统配置之前,首先要做好备份工作,以防万一出现问题时能够恢复到原先的配置。在CentOS7中,SSH的配置文件位于/etc/ssh/sshd_config。使用以下命令进行备份:
sudocp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak
这样,您就可以在遇到问题时,通过恢复备份文件来恢复到原先的状态。
步骤2:修改SSH配置文件
使用文本编辑器(如vim或nano)打开SSH配置文件进行修改。以vim为例,执行以下命令:
sudovim/etc/ssh/sshd_config
在打开的文件中,找到#Port22这一行。默认情况下,这一行的前面有一个#符号,这表示它是被注释掉的。去掉#符号,并将端口号改为您希望使用的新端口(例如,Port2222):
Port2222
这里我们将端口号修改为2222,但您可以根据自己的需求选择任何未被占用的端口号(确保选择的端口号在1024到65535之间,以避免使用系统保留的端口)。
步骤3:调整防火墙设置
更改SSH端口后,您需要更新防火墙规则,允许新的端口通过。CentOS7使用firewalld作为默认防火墙管理工具,您可以执行以下命令,允许新的端口:
sudofirewall-cmd–permanent–add-port=2222/tcp
sudofirewall-cmd–reload
这两条命令分别用于将新的端口添加到防火墙规则中,并重新加载防火墙配置,以确保规则生效。
如果您还使用iptables防火墙,可以通过以下命令添加规则:
sudoiptables-AINPUT-ptcp–dport2222-jACCEPT
sudoserviceiptablessave
步骤4:重新启动SSH服务
完成配置修改后,您需要重新启动SSH服务以使更改生效。可以通过以下命令重新启动SSH服务:
sudosystemctlrestartsshd
至此,您的CentOS7服务器的SSH端口已经成功修改为新的端口号。
步骤5:验证配置
为了确认SSH端口修改是否成功,您可以尝试使用新的端口通过SSH连接到服务器。例如,如果您的新端口是2222,可以使用以下命令进行连接:
ssh-p2222user@your-server-ip
如果连接成功,说明SSH端口修改已经生效。
修改SSH端口后的注意事项
确保防火墙和SELinux配置正确:更改端口后,除了防火墙外,您还需要确保SELinux(安全增强Linux)不会阻止新端口的访问。您可以通过执行以下命令来查看当前SELinux的状态:
getsebool-a|grepssh
如果SELinux正在限制新的端口,可以使用以下命令为新的端口添加规则:
sudosemanageport-a-tssh_port_t-ptcp2222
更新相关的连接工具配置:如果您使用某些自动化工具(如Ansible)或脚本进行SSH连接,记得在这些工具的配置文件中更新新的SSH端口。
记录和管理新端口:为了避免遗忘新端口,建议您在文档中记录下所有修改过的端口号,并在必要时进行审查。
不要修改为常见的高端口:虽然可以选择任意未使用的端口,但建议避免使用一些常见的端口号(如2222、8080等),以免增加被扫描的风险。您可以选择一个更加随机且不容易猜测的端口号。
SSH端口修改的额外安全措施
除了修改SSH端口外,还有一些其他的安全措施可以帮助您进一步提升服务器的安全性:
1.使用SSH密钥对进行身份验证
比起传统的用户名/密码登录,SSH密钥对身份验证方式更为安全。通过生成一对公私密钥,您可以将公钥添加到服务器的~/.ssh/authorized_keys文件中,并在登录时使用私钥进行身份验证,而无需输入密码。这不仅能避免暴力破解攻击,还能提高服务器的安全性。
您可以通过以下命令生成SSH密钥对:
ssh-keygen-trsa-b2048
然后,将公钥复制到服务器:
ssh-copy-id-i~/.ssh/id_rsa.pubuser@your-server-ip
2.禁止密码登录
如果您已经配置了SSH密钥对身份验证,可以考虑禁用基于密码的登录方式。这样,即使攻击者知道您的密码,也无法通过SSH登录到服务器。您只需编辑/etc/ssh/sshd_config文件,将PasswordAuthentication选项设置为no:
PasswordAuthenticationno
然后,重启SSH服务:
sudosystemctlrestartsshd
3.使用Fail2ban进行自动封锁
为了防止暴力破解攻击,您可以安装并配置Fail2ban。Fail2ban是一款基于日志的安全工具,可以自动检测并封锁频繁尝试登录的IP地址。安装Fail2ban后,它可以有效地防止黑客通过暴力破解方式获取服务器控制权限。
安装Fail2ban:
sudoyuminstallfail2ban
配置Fail2ban进行SSH保护:
sudovim/etc/fail2ban/jail.local
在文件中添加以下配置:
[sshd]
enabled=true
port=2222
logpath=/var/log/secure
bantime=3600
findtime=600
maxretry=3
完成后,重新启动Fail2ban服务:
sudosystemctlrestartfail2ban
4.限制SSH登录用户
您可以通过限制哪些用户可以通过SSH登录来提高安全性。在/etc/ssh/sshd_config文件中,使用AllowUsers或AllowGroups选项来指定允许登录的用户或组。例如:
AllowUsersuser1user2
这表示只有user1和user2可以通过SSH登录到服务器。
总结
通过修改CentOS7的SSH端口,您可以有效降低服务器受到暴力破解攻击的风险,并提高服务器的整体安全性。仅仅修改端口号并不足够,您还需要结合其他安全措施,如使用SSH密钥对进行身份验证、禁止密码登录、安装Fail2ban等,才能最大限度地提高服务器的安全防护能力。
通过本文提供的详细操作步骤,您可以轻松完成SSH端口的修改,并采取适当的安全措施,让您的CentOS7服务器更加坚固和安全。