CentOS SSH服务端安全加固方法主要包括以下几个方面:
- 设置复杂的密码策略:
- 编辑
/etc/login.defs
文件,设置密码最长使用天数(PASS_MAX_DAYS
)为 900 天以上,最短使用天数(PASS_MIN_DAYS
)为 20 天以上,最小长度(PASS_MIN_LEN
)为 8 个字符以上,并设置密码过期提醒天数(PASS_WARN_AGE
)为 7 天。 - 使用
chage
命令设置 root 用户密码使用天数,例如chage -M 90 root
。
- 限制用户登录尝试次数:
- 编辑
/etc/pam.d/sshd
文件,添加auth required pam_tally2.so deny=5 unlock_time=300 even_deny_root root_unlock_time=60
配置,限制账户认证失败次数为 5 次,锁定时间为 300 秒。
- 禁用 root 用户直接登录:
- 编辑
/etc/ssh/sshd_config
文件,将PermitRootLogin
的值改为no
,并重启 SSH 服务。
- 配置防火墙:
- 使用
firewalld
或iptables
配置防火墙规则,限制对服务器的访问,只允许必要的端口对外开放。
- 配置 SELinux:
- 使用
getenforce
命令查看 SELinux 是否开启,编辑/etc/selinux/config
文件,将 SELINUX 值修改为enforcing
或permissive
,然后重启机器使修改生效。
- 限制 SSH 访问:
- 编辑
/etc/ssh/sshd_config
文件,设置AllowUsers
参数,限制允许登录的用户列表,例如AllowUsers user1 user2
。
- 定期更新系统和软件:
- 定期运行
yum update
命令来更新系统和软件包,以修复已知的安全漏洞。
- 监控系统日志:
- 使用
rsyslog
或systemd-journald
收集和存储日志,配置日志轮换防止磁盘空间过满。
- 使用加密通信:
- 为远程访问和数据传输配置加密协议,如 SSH 和 HTTPS。
- 备份重要数据:
- 定期备份关键数据,以防数据丢失或损坏。
请注意,在进行上述任何配置更改后,建议先在测试环境中验证更改的效果,并在生产环境中实施之前进行充分的测试。此外,安全加固是一个持续的过程,需要定期审查和更新安全策略以应对新的威胁。