基于 Linux 系统管理最佳实践,兼顾性能调优与等保合规要求
一、系统基础架构优化
1. 系统初始化配置
(1)时区与时间同步
bash
# 设置系统时区为上海
timedatectl set-timezone Asia/Shanghai
# 启用 NTP 时间同步(推荐阿里云 NTP 服务器)
yum install -y chrony
echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf
systemctl restart chronyd && systemctl enable chronyd
# 验证同步状态
chronyc sources -v
(2)主机名规范配置
bash
# 修改静态主机名(建议符合业务命名规范,如 web01.yourdomain.com)
hostnamectl set-hostname "server01.example.com"
# 同步 /etc/hosts 文件
echo "192.168.1.100 server01.example.com server01" >> /etc/hosts
2. YUM 源深度优化
(1)多镜像源负载均衡(可选)
创建 /etc/yum.repos.d/dual-aliyun-tencent.repo,配置阿里云与腾讯云镜像源轮询:
ini
[base]
name=CentOS-$releasever - Base
failovermethod=roundrobin
baseurl=
http://mirrors.aliyun.com/centos/$releasever/base/$basearch/
http://mirrors.cloud.tencent.com/centos/$releasever/base/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
(2)启用 ELRepo 硬件驱动源(适用于服务器)
bash
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
# 例如:安装最新内核(生产环境需谨慎测试)
yum --enablerepo=elrepo-kernel install kernel-ml
二、内核参数与系统资源调优
1. 内核参数精细化配置
编辑 /etc/sysctl.conf,新增以下企业级配置(含注释说明):
bash
# 网络层优化
net.ipv4.tcp_syncookies = 1 # 防御 SYN Flood 攻击
net.ipv4.tcp_max_syn_backlog = 4096 # 增大半连接队列,应对高并发 SYN
net.ipv4.tcp_tw_reuse = 1 # 允许重用 TIME-WAIT sockets
net.ipv4.tcp_tw_recycle = 1 # 快速回收 TIME-WAIT sockets(NAT 环境需谨慎)
net.ipv4.ip_local_port_range = 1024 65000 # 端口范围调整
# 文件系统优化
vm.swappiness = 5 # 内存充足时尽量少用 swap(建议 1-10)
vm.overcommit_memory = 1 # 允许适当内存超用(0=启发式,1=允许,2=严格)
fs.inotify.max_user_watches = 524288 # 解决前端框架(如 Vue/React)监听文件数限制
# 安全增强
net.ipv4.icmp_echo_ignore_broadcasts = 1 # 禁用 ICMP 广播响应
net.ipv4.conf.all.rp_filter = 1 # 严格反向路径过滤(防 IP 欺骗)
net.ipv6.conf.all.disable_ipv6 = 1 # 禁用 IPv6(若无需使用)
应用配置:sysctl -p && sysctl -a | grep [参数关键词]
2. 资源限制与服务优化
(1)用户级资源限制(/etc/security/limits.conf)
bash
# 针对 Node.js/Java 服务场景
* soft nofile 102400 # 单进程最大文件句柄数
* hard nofile 102400
* soft nproc 65535 # 单用户最大进程数
* hard nproc 65535
root soft nofile unlimited
(2)服务启动参数优化(以 Nginx 为例)
bash
# 修改 /etc/nginx/nginx.conf
worker_processes auto; # 自动根据 CPU 核心数调整
worker_rlimit_nofile 102400; # Nginx 进程文件句柄限制
events {
worker_connections 8192; # 单进程最大连接数
use epoll; # 使用高效 I/O 模型
}
三、企业级安全加固体系
1. 网络访问控制(ACL)
(1)firewalld 严格白名单策略
bash
# 清空默认规则(谨慎操作,需保留 SSH 访问)
firewall-cmd --permanent --remove-service=all
# 仅允许必要服务(示例:SSH+HTTP+HTTPS+MySQL)
firewall-cmd --permanent --add-service={ssh,http,https,mysql}
# 限制 SSH 仅允许特定 IP 段访问
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' service name='ssh' accept"
firewall-cmd --reload
(2)TCP Wrappers 深度防护
示例场景:仅允许 example.com 域名下主机访问 FTP 服务
bash
# /etc/hosts.allow
vsftpd: .example.com
# /etc/hosts.deny
vsftpd: ALL
2. 认证授权体系强化
(1)SSH 密钥认证 + 双因素(2FA)
bash
# 生成 RSA 密钥对(客户端操作)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 上传公钥到服务器(追加到 ~/.ssh/authorized_keys)
scp id_rsa.pub user@server:/tmp && ssh user@server "cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys"
# 启用 Google Authenticator 2FA
yum install -y google-authenticator
vi /etc/ssh/sshd_config 添加:
AuthenticationMethods publickey,keyboard-interactive:pam
(2)禁用弱密码策略(PAM 配置)
编辑 /etc/pam.d/system-auth,新增密码强度检查:
bash
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
3. 系统文件与进程防护
(1)关键文件只读锁定
bash
# 锁定 /etc/passwd /etc/shadow 防止篡改
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow
# 验证:尝试修改会提示权限拒绝
echo "test" >> /etc/passwd
(2)实时监控可疑进程(psacct 工具)
bash
yum install -y psacct
systemctl start psacct && systemctl enable psacct
# 查看历史命令记录
accton /var/run/acct/pacct # 开启记录
lastcomm # 查看所有执行过的命令
四、日志与审计体系建设
1. 集中式日志管理
(1)配置 rsyslog 转发(客户端)
编辑 /etc/rsyslog.conf,添加:
bash
*.* @@logserver.example.com:514 # 转发所有日志到集中日志服务器
&~ # 本地不再存储(可选)
(2)审计日志深度配置(auditd)
bash
# 监控 /etc/sudoers 文件变更
auditctl -w /etc/sudoers -p wa -k sudoers_modify
# 监控用户登录失败事件
auditctl -a exit,always -F arch=b64 -S login -S su -S sudo -F exit=-EACCES
# 保存规则到永久配置
augenrules --load && auditctl -l
2. 日志分析与告警(ELK 栈示例)
bash
# 客户端安装 Filebeat
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.0-x86_64.rpm
rpm -ivh filebeat-7.17.0-x86_64.rpm
# 配置转发到 Elasticsearch
vi /etc/filebeat/filebeat.yml
output.elasticsearch:
hosts: ["logserver.example.com:9200"]
setup.kibana:
host: "logserver.example.com:5601"
systemctl start filebeat && systemctl enable filebeat
五、漏洞管理与合规检查
1. 自动化漏洞扫描
(1)OpenVAS 全面扫描
bash
# 安装 OpenVAS(需预留 2GB 以上内存)
yum install -y openvas
openvas-setup && openvas-start
# 访问 Web 界面 https://server:9392 生成漏洞报告
(2)CIS 基准合规检查
使用 oscap 工具执行 CIS CentOS 7 基准扫描:
bash
yum install -y openscap-scanner
oscap download --fetch-remote-resources http://www.cisecurity.org/cis-benchmarks
oscap scan --profile cis_centos7_level1 /usr/share/xml/scap/ssg/content/ssg-centos7-ds.xml
2. 软件供应链安全
bash
# 校验 RPM 包完整性
rpm -Va
# 启用 YUM 插件校验(/etc/yum/pluginconf.d/gpgcheck.conf)
enabled=1
# 定期清理过时软件包
yum autoremove -y && yum clean all
六、高可用性与灾备方案
1. 系统快照与备份策略
bash
# 基于 LVM 的在线快照(适用于文件系统)
lvcreate -L 10G -s -n centos_snap /dev/mapper/centos-root
# 备份关键配置文件(每周自动压缩)
echo "0 0 * * 0 tar czvf /backup/config_$(date +%Y%m%d).tar.gz /etc/hosts /etc/sysctl.conf /etc/ssh/sshd_config" >> /etc/cron.d/backup
2. 灾备切换演练(示例)
bash
# 模拟系统崩溃后恢复
dd if=/dev/zero of=/dev/sda bs=1M count=1024 seek=2048 conv=notrunc # 破坏分区表(危险操作!仅测试用)
# 使用救援模式恢复 LVM 卷组
centos救援模式 > vgscan && vgactivate centos && lvrestore /backup/centos-root_snap.vg
七、性能监控与调优工具链
| 工具 | 功能场景 | 典型命令 |
|---|---|---|
htop | 实时进程监控与资源占用分析 | htop -u $(whoami) |
vmstat | 虚拟内存统计与系统瓶颈定位 | vmstat 5 10 |
tcpdump | 网络流量抓包分析 | tcpdump -i eth0 port 80 -w http.pcap |
perf | 内核级性能剖析(函数调用栈跟踪) | perf record -g -p $(pidof nginx) |
nload | 实时网络带宽监控 | nload -m |
八、最佳实践与注意事项
- 变更管理:所有优化操作需通过 CMDB 系统 记录,附操作人、时间、影响范围说明
- 灰度发布:内核参数或服务配置变更需先在 测试环境 验证,通过后再推送到生产
- 合规审计:涉及等保三级的系统需定期进行渗透测试(建议每季度一次)
- 应急响应:建立系统崩溃应急预案,包含紧急恢复脚本和数据备份验证流程
总结
本文从 基础配置→性能调优→安全防护→日志审计→合规管理 全链路覆盖 CentOS 7 系统优化与加固,结合企业级实战场景提供可落地的技术方案。实际部署时需根据业务特性(如 Web 服务、数据库节点、API 网关)定制策略,建议通过 ansible 或 saltstack 实现自动化配置管理,提升运维效率。

被折叠的 条评论
为什么被折叠?



