CentOS系统的安全防护可以从多个方面入手,以下是一些关键的技巧:
-
账户安全及权限管理:
- 禁用root以外的超级用户:检测并管理user_id为0的用户,锁定不必要的超级账户,或将用户shell改为/sbin/nologin禁止其登录。
- 删除不必要的账号:删除如adm, lp, sync, shutdown, halt, mail, operator, games, ftp等不用的用户和组。
- 用户口令策略:设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,长度大于10位。修改/etc/login.defs文件设置密码策略。
- 保护口令文件:使用chattr命令给/etc/passwd, /etc/shadow, /etc/group, 和/etc/gshadow文件加上不可更改属性。
- 设置root账户自动注销时限:修改/etc/profile文件中的tmout参数,设置自动注销时限。
- 限制su命令:编辑/etc/pam.d/su文件,限制只有特定组的用户才能使用su命令切换到root。
-
系统服务及启动项安全:
- 设置开机启动服务文件夹权限:确保只有root用户可以操作/etc/rc.d/init.d/目录下的文件。
- 禁用不必要的服务:使用systemctl或chkconfig命令禁用不需要的系统服务,减少系统漏洞和攻击面。
-
字符集配置:
- 配置字符集:推荐使用utf-8字符集,确保系统、应用程序、数据库和Web应用程序的字符集一致性和稳定性。
-
其他安全措施:
- 配置主机名:使用静态主机名或FQDN,并规范化命名规则,方便管理和维护。
- 禁止root用户远程登录:修改/etc/ssh/sshd_config文件,设置PermitRootLogin no,并重启sshd进程。
- 更改SSH端口:修改/etc/ssh/sshd_config文件,更改端口并重启sshd进程。
- 关闭不必要的端口:在安全组中关闭没必要的端口,只放行必要的业务协议和端口。
通过这些措施,可以显著提升CentOS系统的安全性,减少潜在的风险。