要防止 CentOS SSH 被攻击,可以采取以下措施:
-
更改默认端口:将 SSH 服务的默认端口从 22 更改为其他端口,以减少自动扫描攻击的可能性。
-
禁用 root 登录:编辑
/etc/ssh/sshd_config文件,将PermitRootLogin设置为no,以禁止 root 用户直接登录。 -
使用密钥认证:禁用密码认证,改用 SSH 密钥对进行身份验证。在
/etc/ssh/sshd_config文件中,将PasswordAuthentication设置为no。 -
限制用户登录:在
/etc/ssh/sshd_config文件中,使用AllowUsers选项限制允许登录的用户。 -
使用 Fail2ban:安装并配置 Fail2ban,它可以监控 SSH 登录失败次数,并在达到阈值时暂时封禁攻击者的 IP 地址。
-
保持系统更新:定期更新 CentOS 系统,以修复已知的安全漏洞。
-
使用防火墙:配置防火墙(如 firewalld 或 iptables),仅允许受信任的 IP 地址访问 SSH 端口。
-
监控日志:定期检查
/var/log/secure文件,以便发现异常登录尝试和其他可疑活动。 -
使用公钥认证:将用户的公钥添加到服务器的
~/.ssh/authorized_keys文件中,以使用公钥认证代替密码认证。 -
限制连接速率:在
/etc/ssh/sshd_config文件中,使用MaxAuthTries和MaxSessions选项限制用户的认证尝试次数和并发会话数。
通过实施这些措施,可以大大降低 CentOS SSH 服务受到攻击的风险。