详细的Centos9系统加固方案

admin 2026-03-03 09:38:53 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详述了CentOS9系统加固方案,涵盖系统更新、用户权限、SSH防火墙配置、SELinux及日志审计等基础措施。深入讲解了内核优化、Web与数据库加固、容器安全及自动化扫描脚本编写。方案提供了具体命令示例与配置修改建议,强调定期复查与持续改进,旨在构建高安全性服务器环境,具备极高的实战参考价值。 综合评分: 88 文章分类: 安全建设,解决方案,实战经验,安全运营,终端安全


cover_image

详细的Centos9系统加固方案

原创

刘军军 刘军军

运维星火燎原

2026年2月15日 00:36 山西

一、系统更新与基础准备

  1. 系统软件包更新

通过dnf命令更新系统所有软件包至最新版本,获取最新安全补丁:

sudo dnf update -y && sudo dnf upgrade -y

二、用户权限管理

  1. 创建受限用户并授权
  • 步骤1:创建普通用户
  sudo useradd secure_user  # 创建名为secure_user的普通用户
  sudo passwd secure_user   # 为用户设置密码
  • 步骤2:赋予sudo权限

将用户加入wheel组以获取sudo权限:

sudo usermod -aG wheel secure_user

三、SSH服务加固

  1. 禁止root远程登录并禁用密码认证
  • 步骤1:编辑SSH配置文件

用vim打开SSH配置文件:

sudo vim /etc/ssh/sshd_config
PermitRootLoginno       # 禁止root用户远程登录
PasswordAuthentication no  # 禁用密码认证,改用密钥认证
  • 步骤2:重启SSH服务
  sudo systemctl restart sshd
  sudo systemctl enable sshd  # 确保开机自启

四、防火墙配置(firewalld)

  1. 配置防火墙规则
  • 步骤1:启动并设置防火墙开机自启
  sudo systemctl enable --now firewalld
  • 步骤2:开放必要端口

以开放HTTP(80)、HTTPS(443)、SSH(22)为例:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload  # 重载防火墙规则使配置生效

五、SELinux配置

  1. 启用SELinux强制模式
  • 步骤1:编辑SELinux配置文件
  sudo vim /etc/selinux/config
  SELINUX=enforcing  # 将SELinux模式设为强制模式
  • 步骤2:重启系统使配置生效
  sudo reboot

六、日志审计与监控(auditd)

  1. 配置审计服务
  • 步骤1:编辑审计配置文件

编辑auditd.conf:

sudo vim /etc/audit/auditd.conf
max_log_file = 50  # 日志文件最大50MB
max_log_file_action = rotate  # 日志满时轮转
  • 步骤2:配置审计规则

编辑审计规则文件:

sudo vim /etc/audit/rules.d/audit.rules
# 审计/etc/shadow文件修改
-a always,exit -F arch=b64 -S open -S creat -S fchmod -S fchown -F path=/etc/shadow -F perm=0600 -k shadow_changes
# 审计sudo操作
-a always,exit -F arch=b64 -S sudo -F auid>=1000 -F auid!=4294967295 -k sudo_actions
  • 步骤3:重启审计服务
  sudo systemctl restart auditd
  sudo systemctl enable auditd

七、关闭不必要的服务

  1. 禁用无关系统服务
  • 以禁用邮件服务(postfix)和telnet服务为例:
  sudo systemctl disable --now postfix
  sudo systemctl disable --now telnet

八、文件权限配置

  1. 调整关键文件权限
  • 步骤1:限制关键系统文件权限
  sudo chmod 0600 /etc/shadow   # 限制/etc/shadow文件仅root可读可写
  sudo chmod 0600 /etc/gshadow  # 限制/etc/gshadow文件权限
  sudo chmod 0750 /etc/sudoers  # 限制/etc/sudoers文件权限
  sudo chown root:root /etc/sudoers  # 确保文件属主为root

九、内核参数优化

  1. 调整sysctl.conf配置

通过编辑/etc/sysctl.conf文件优化内核参数,增强系统安全性与性能,示例配置:

sudo vim /etc/sysctl.conf

添加或修改以下内容:

# 关闭IP源路由检查,防止伪造源地址攻击
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# 开启SYN Cookies,抵御SYN洪水攻击
net.ipv4.tcp_syncookies = 1

# 限制系统核心进程可打开的最大文件描述符数
fs.file-max = 65535

# 调整TCP连接超时相关参数
net.ipv4.tcp_fin_timeout = 15        # TCP连接关闭超时时间
net.ipv4.tcp_keepalive_time = 1200  # TCP保持连接时间

# 禁止发送ICMP重定向,防止路由欺骗
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# 限制IPv4碎片处理,防止碎片攻击
net.ipv4.ipfrag_low_thresh = 4096
net.ipv4.ipfrag_high_thresh = 8192
net.ipv4.ipfrag_max_dist = 1024

使配置生效:

sudo sysctl -p

十、Web服务(如Apache)加固

  1. Apache服务安全配置
  • 步骤1:安装并配置Apache
  sudo dnf install -y httpd
  sudo systemctl start httpd
  sudo systemctl enable httpd
  • 步骤2:编辑Apache配置文件

例如限制目录列表、禁用不必要模块等,编辑/etc/httpd/conf/httpd.conf:

Options -Indexes  # 禁止目录列表显示
ServerTokens Prod  # 隐藏Apache版本信息
LoadModule userdir_module modules/mod_userdir.so  # 按需启用或禁用模块
  • 步骤3:配置防火墙允许HTTP流量
  sudo firewall-cmd --permanent --add-service=http
  sudo firewall-cmd --reload

十一、数据库服务(如MySQL)加固

  1. MySQL服务加固(示例)

若服务器部署MySQL,进行如下加固:

  • 步骤1:创建专用用户与目录
  sudo useradd mysql-secure
  sudo mkdir /var/lib/mysql-secure
  sudo chown -R mysql-secure:mysql-secure /var/lib/mysql-secure
  • 步骤2:配置MySQL配置文件

编辑/etc/my.cnf,添加安全相关配置:

[mysqld]
user = mysql-secure        # 使用专用用户运行
bind-address = 127.0.0.1   # 仅允许本地连接(若需远程访问,配置具体IP)
skip-networking=1          # 禁止远程网络访问,如需远程需谨慎开启
secure_file_priv = /tmp/   # 限制导入导出文件路径
innodb_file_per_table = 1  # 每个表独立表空间
  • 步骤3:初始化MySQL并设置密码
  sudo mysqld --initialize --user=mysql-secure --basedir=/usr --datadir=/var/lib/mysql-secure
  sudo systemctl start mysqld
  sudo mysql_secure_installation  # 运行安全初始化向导,设置root密码、移除匿名用户等

十二、定期安全扫描与自动化脚本

  1. 定制化安全扫描脚本

编写自动化脚本定期执行系统更新与漏洞扫描,示例脚本:

#!/bin/bash
# 文件:security_auto_check.sh
# 功能:自动更新系统、执行漏洞扫描并记录日志

# 系统更新
sudo dnf update -y

# 运行rkhunter深度扫描
sudo dnf install -y rkhunter
sudo rkhunter --update
sudo rkhunter --check --sk  # --sk跳过交互式提示

# 运行chkrootkit检查
sudo dnf install -y chkrootkit
sudo chkrootkit

# 检查SELinux状态
selinux_status=$(sudo getenforce)
echo"SELinux当前状态:$selinux_status"

# 检查防火墙规则
echo"防火墙规则列表:"
sudo firewall-cmd --list-all

# 记录日志
log_file="/var/log/security_auto_check_$(date +%Y%m%d).log"
{
echo"==== $(date +%Y-%m-%d%H:%M:%S) ===="
echo"系统更新结果:$?"
echo"rkhunter扫描结果:"
  sudo rkhunter --report-file stdout
echo"chkrootkit扫描结果:"
  sudo chkrootkit
echo"SELinux状态:$selinux_status"
echo"防火墙规则:"
  sudo firewall-cmd --list-all
} >> $log_file

赋予执行权限:

sudo chmod +x security_auto_check.sh

通过cron定时执行,例如每天2点执行:

sudo crontab -e

添加行:

02 * * * /path/to/security_auto_check.sh

十三、SSH密钥认证强化

  1. 配置SSH密钥登录并禁用旧密钥
  • 步骤1:生成SSH密钥对(在管理端执行)
  ssh-keygen-trsa-b 4096 -C "[email protected]"
  • 步骤2:将公钥复制到目标服务器
  ssh-copy-id restricted_user@server_ip
  • 步骤3:禁用密码认证并重启SSH服务

编辑/etc/ssh/sshd_config,确保:

PasswordAuthenticationno
sudo systemctl restart sshd

十四、系统资源限制与进程监控

  1. 使用ulimit限制用户进程资源

通过/etc/security/limits.conf文件限制用户可使用的系统资源,例如限制普通用户secure_user的最大进程数和文件打开数:

sudo vim /etc/security/limits.conf

添加以下内容:

secure_user  hard  nproc  1024   # 最大进程数限制为1024
secure_user  hard  nofile 65535  # 最大文件打开数限制为65535
secure_user  soft  nproc  512    # 软限制进程数
secure_user  soft  nofile 32768  # 软限制文件打开数

十五、容器化环境安全加固(若有容器部署)

  1. Docker安全加固(示例)
  • 步骤1:配置Docker守护进程

编辑/etc/docker/daemon.json,添加安全相关配置:

{
  "selinux-enabled": true,  # 启用SELinux集成
"userns-remap": "default",  # 启用用户命名空间,限制容器对主机的访问
"live-restore": true,  # 容器故障时保留服务运行
"tls": true,  # 启用TLS加密通信
"tlscert": "/etc/docker/tls/server.pem",  # TLS证书路径
"tlskey": "/etc/docker/tls/server.key",   # TLS私钥路径
"tlscacert": "/etc/docker/tls/ca.pem"# CA证书路径
}
  • 步骤2:重启Docker服务
  sudo systemctl restart docker
  sudo systemctl enable docker

十六、文件系统完整性与配额管理

  1. 文件系统配额配置(可选)

若需要限制用户对文件系统的存储空间使用,可启用文件系统配额:

  • 步骤1:检查文件系统是否支持配额

例如根分区为/dev/sda2且为xfs文件系统,检查支持情况:

sudo xfs_info /dev/sda2 | grep quota
  • 步骤2:启用配额功能

编辑/etc/fstab,为需要配额的分区添加usrquota,grpquota选项:

/dev/sda2 /                       xfs     defaults,usrquota,grpquota 00
  • 步骤3:挂载并初始化配额
  sudo mount -o remount /
  sudo quotacheck -cvug /  # 初始化用户和组的配额数据库
  • 步骤4:设置用户配额

例如限制用户secure_user的磁盘空间为10GB:

sudo edquota secure_user
/dev/sda2: blocks=10240000

十七、系统服务依赖检查与清理

  1. 清理多余无用服务依赖
  • 步骤1:使用rpm-ostree(若为CoreOS等变体)

对于基于rpm-ostree的系统,清理多余包:

sudo rpm-ostree prune --keep=0
  • 步骤2:通用系统使用yum/dnf清理

清理无用依赖包:

sudo dnf autoremove -y

十八、安全启动配置(UEFI环境)

  1. 检查UEFI安全启动状态
  • 步骤1:查看安全启动状态
  mokutil --sb-state

十九、网络安全之IP伪装与NAT限制

  1. 配置IP伪装(NAT)限制

若服务器作为网关使用,配置IP伪装:

  • 步骤1:启用内核IP转发

编辑/etc/sysctl.conf,添加:

net.ipv4.ip_forward = 1
sudo sysctl -p
  • 步骤2:配置防火墙NAT规则(以MASQUERADE为例)
  sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE  # 替换enp0s3为实际外网网卡

二十、系统安全基线核查工具集成

  1. 使用cis-anaconda-config符合CIS基准
  • 步骤1:安装CIS合规工具
  sudo dnf install -y cis-anaconda-config
  • 步骤2:执行CIS合规检查
  sudo cis-anaconda-check

二十一、远程管理工具的安全扩展

  1. 配置Mosh替代SSH(可选)
  • 步骤1:安装Mosh
  sudo dnf install -y mosh
  • 步骤2:配置防火墙允许Mosh端口

Mosh默认使用UDP端口60000-61000,开放范围端口:

sudo firewall-cmd --permanent --add-port=60000-61000/udp
sudo firewall-cmd --reload

二十二、系统加固后的定期复查

  1. 制定定期复查清单
  • 每周复查:

  • 检查防火墙规则是否有异常修改

  • 验证SSH密钥登录是否正常

  • 查看日志清理归档是否正常

  • 每月复查:

  • 运行漏洞扫描工具(ClamAV、rkhunter等)

  • 检查文件系统配额是否生效

  • 验证系统服务依赖清理效果

二十三、最终总结与持续改进

  1. 持续优化加固策略
  • 根据系统实际运行情况,定期更新sysctl.conf、防火墙规则、日志策略等
  • 关注CentOS官方安全公告,及时更新系统补丁
  • 对业务影响较小的窗口期内,逐步实施新的安全策略并验证效果

方案总结

本加固方案第四部分聚焦于文件系统配额、服务依赖清理、安全启动、网络NAT、CIS合规、远程工具扩展及定期复查等方面,进一步强化CentOS 9系统的安全性与合规性。实际实施时需结合具体业务环境灵活调整配置,确保系统在稳定运行的基础上满足严格的安全要求。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:运维星火燎原 刘军军 刘军军《详细的Centos9系统加固方案》

评论:0   参与:  0