CentOS系统安全加固是一个复杂的过程,涉及到多个方面的配置和调整。以下是一些关键的安全加固步骤:
账户安全及权限管理
- 禁用root以外的超级用户:通过查看
/etc/passwd
文件,检测并锁定不必要的超级账户。 - 删除不必要的账号和组:删除所有不必要的默认账户,如
adm
,lp
,sync
等,以减少系统受攻击的风险。 - 强化用户口令:设置复杂的口令,包含大写字母、小写字母、数字和特殊字符,并且长度大于10位。可以通过修改
/etc/login.defs
文件来强制执行这些要求。 - 检查空口令账户:如果发现有空口令账户,应立即强制设置符合规格的口令。
- 口令文件加锁:使用
chattr
命令给/etc/passwd
,/etc/shadow
,/etc/group
, 和/etc/gshadow
文件加上不可更改属性,以防止未授权访问。
服务和端口管理
- 关闭不必要的服务:关闭不必要的服务和端口,减少攻击面。例如,使用
systemctl disable <服务名>
命令设置服务在开机时不自动启动。 - SSH服务安全:编辑
/etc/ssh/sshd_config
文件,设置PermitRootLogin
的值为no
,禁止root用户直接登录。修改SSH使用的协议版本,设置Protocol
的版本为2
,限制密码错误次数和允许登录尝试次数。
文件系统安全
- 设置umask值:设置默认的
umask
值,增强安全性。例如,使用umask 027
,即新创建的文件属主拥有读写执行权限,同组用户拥有读和执行权限,其他用户无权限。 - 设置登录超时:通过修改
/etc/profile
文件中的TMOUT
参数,设置系统登录后连接超时时间。
防火墙配置
- 使用firewalld或iptables:配置防火墙规则,限制对服务器的访问。例如,允许SSH服务通过防火墙:
sudo firewall-cmd --zone public --add-port 22/tcp --permanent sudo firewall-cmd --reload
SELinux配置
- 启用并配置SELinux:使用
getenforce
命令检查SELinux状态,如果未启用,则使用setenforce 1
命令启用它。编辑/etc/selinux/config
文件,将SELINUX
设置为enforcing
。
定期更新和监控
- 定期更新系统:使用
yum update
命令更新系统和软件包,以修复已知漏洞和安全问题。 - 监控日志文件:定期检查系统日志,及时发现异常行为并采取相应措施。
其他安全措施
- 加密通信:使用SSL/TLS加密协议来保护网络通信。
- 安装安全软件:安装杀毒软件、入侵检测系统等安全软件来提高系统安全性。
- 定期进行安全审计:定期对系统进行安全审计和漏洞扫描,及时发现并解决安全问题。
通过上述步骤,可以显著提高CentOS系统的安全性,减少受到网络攻击的风险。请注意,这些安全措施需要定期审查和更新,以应对不断变化的安全威胁。