温馨提示×

CentOS如何进行系统安全加固

小樊
39
2025-06-18 13:10:38
栏目: 智能运维

CentOS系统安全加固是一个复杂的过程,涉及到多个方面的配置和调整。以下是一些关键的安全加固步骤和建议:

账户安全及权限管理

  • 禁用root以外的超级用户:检查并删除不必要的超级账户,如 root 以外的用户拥有root权限。
  • 删除不必要的账号和组:删除所有不必要的默认账户,如 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 值:通过编辑 /etc/profile 或用户特定的配置文件(如 /etc/bashrc ),设置 umask 值为 027 ,以增强文件系统的安全性。
    • 保护重要文件:使用 chattr i 命令给关键系统文件(如 /etc/passwd/etc/shadow 等)添加不可更改属性。

防火墙配置

  • 使用firewalld或iptables:配置防火墙规则,限制对服务器的访问。例如,允许SSH服务通过防火墙:
    sudo firewall-cmd --zone public --add-port 22/tcp --permanent
    sudo firewall-cmd --reload
    

SELinux配置

  • 启用SELinux:使用 getenforce 命令检查SELinux状态,并通过编辑 /etc/selinux/config 文件将其设置为 enforcing 或 permissive 模式。
  • 限制进程权限:通过SELinux策略限制进程的权限,提高系统安全性。

软件更新

  • 定期更新系统:使用 yum update 命令更新系统和软件包,以修补已知漏洞和安全问题。

监控和日志记录

  • 配置系统日志记录:确保系统日志(如 /var/log/secure )记录所有用户的登录和操作日志。
  • 定期审计系统:使用 ausearch 等工具定期检查系统日志,发现异常行为并采取相应措施。

数据备份与恢复

  • 定期备份:定期备份重要数据和配置文件,以防数据丢失或系统损坏。使用 rsynctar 等工具进行备份。

加密静态数据

  • 对静态敏感数据进行加密,使用LUKS或dm-crypt等解决方案提供磁盘加密。

实施双因素身份验证

  • 要求用户在获得访问权限前提供两种形式的身份验证,如密码和移动设备或安全令牌。

禁用root登录

  • 限制root访问,禁用通过SSH直接root登录,使用 sudo 命令执行管理任务。

使用SSH密钥验证

  • 配置SSH密钥认证,避免使用密码登录。生成SSH密钥对,并将公钥添加到远程服务器的 ~/.ssh/authorized_keys 文件中。

通过实施上述措施,可以显著提高CentOS系统的安全性,减少受到网络攻击的风险。请注意,这些安全措施需要定期审查和更新,以应对不断变化的安全威胁。

0