CentOS系统初始化与安全加固全攻略

📅 2026/7/26 10:49:58 👁️ 阅读次数 📝 编程学习
CentOS系统初始化与安全加固全攻略

1. 系统初始化与安全加固

刚装完CentOS就像拿到毛坯房,得先做好基础装修才能安心入住。我通常会按这个顺序操作:

1.1 用户权限管理

root账户就像万能钥匙,日常使用风险太高。先创建普通用户并赋予sudo权限:

adduser yourusername passwd yourusername usermod -aG wheel yourusername

注意:CentOS 7+默认需要wheel组用户才能sudo,编辑/etc/sudoers时建议用visudo命令防止语法错误

1.2 防火墙配置

firewalld是CentOS的守护骑士,但默认规则太宽松。建议这样强化:

systemctl enable firewalld --now firewall-cmd --permanent --add-service=ssh # 只放行SSH firewall-cmd --reload firewall-cmd --list-all # 验证规则

生产环境建议改用zone隔离策略,比如:

firewall-cmd --new-zone=secure --permanent firewall-cmd --zone=secure --add-source=192.168.1.0/24 --permanent

1.3 SSH安全加固

修改/etc/ssh/sshd_config关键参数:

Port 2222 # 改默认端口 PermitRootLogin no PasswordAuthentication no # 强制密钥登录 MaxAuthTries 3 ClientAliveInterval 300

改完后记得测试新端口连接再重启sshd:

semanage port -a -t ssh_port_t -p tcp 2222 firewall-cmd --add-port=2222/tcp --permanent

2. 系统更新与基础优化

2.1 软件源配置

国内机器建议换阿里云源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache

2.2 系统更新策略

首次更新建议完整升级:

yum update -y && yum upgrade -y

但生产环境要注意:

  • 先测试环境验证关键包(如kernel、glibc)
  • 使用yum-plugin-versionlock锁定特定版本
  • 配置自动安全更新:yum install yum-cron -y

2.3 性能调优基础

几个立竿见影的参数调整:

# 关闭IPv6(如不需要) echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf # 优化文件描述符限制 echo "* soft nofile 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf # 禁用不必要的服务 systemctl disable postfix.service systemctl stop cups.service

3. 必备工具链部署

3.1 开发基础环境

yum groupinstall "Development Tools" -y yum install epel-release -y yum install vim-enhanced git htop net-tools -y

3.2 监控诊断工具集

推荐安装这套组合拳:

yum install sysstat dstat iotop iftop nmon -y

配置sysstat数据收集频率(/etc/sysconfig/sysstat):

SADC_OPTIONS="-S DISK" INTERVAL=60 # 改为1分钟采样

3.3 日志管理方案

  • 安装logrotate:yum install logrotate -y
  • 关键日志配置示例(/etc/logrotate.d/nginx):
/var/log/nginx/*log { daily missingok rotate 30 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true endscript }

4. 存储与备份策略

4.1 磁盘分区优化

如果是数据盘,建议用LVM方便后期扩容:

pvcreate /dev/sdb vgcreate data_vg /dev/sdb lvcreate -l 100%FREE -n data_lv data_vg mkfs.xfs /dev/data_vg/data_lv mkdir /data mount /dev/data_vg/data_lv /data

技巧:xfs文件系统用xfs_growfs在线扩容,ext4用resize2fs

4.2 自动备份方案

简单高效的rsync方案:

yum install rsync -y cat > /etc/cron.daily/backup.sh <<EOF #!/bin/bash rsync -avz --delete /important_data/ backupuser@backupserver:/backups/$(hostname)/ EOF chmod +x /etc/cron.daily/backup.sh

5. 网络与服务配置

5.1 时间同步关键点

分布式系统必须确保时间一致:

yum install chrony -y systemctl enable chronyd --now chronyc sources -v # 验证时间源

重要参数(/etc/chrony.conf):

server ntp.aliyun.com iburst makestep 1.0 3 # 允许快速同步 local stratum 10 # 即使断网也提供时间

5.2 内核参数调优

针对高并发场景的优化(/etc/sysctl.conf):

# 避免TCP TIME_WAIT状态堆积 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 # 增大连接跟踪表 net.netfilter.nf_conntrack_max = 655350 # 内存分配策略 vm.swappiness = 10 vm.overcommit_memory = 1

生效命令:sysctl -p

6. 安全审计与加固

6.1 入侵检测基础

安装aide进行文件完整性检查:

yum install aide -y aide --init mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

设置每日自动检查:

echo "0 3 * * * /usr/sbin/aide --check" >> /etc/crontab

6.2 安全扫描工具

使用lynis进行安全审计:

yum install lynis -y lynis audit system

重点关注:

  • 用户权限配置
  • 不必要的setuid/setgid文件
  • 内核hardening状态

7. 故障排查工具箱

7.1 系统救援模式

制作急救镜像:

yum install sos -y sosreport --batch --tmp-dir /var/tmp

关键诊断命令备忘:

# 查看启动问题 journalctl -xb -p err # 磁盘空间分析 ncdu -x / # 内存泄漏检测 vmstat 1 10

7.2 性能瓶颈定位

CPU密集型问题:

perf top -p $(pgrep nginx)

IO瓶颈分析:

iostat -x 1 iotop -oP

8. 个人经验总结

八年运维CentOS的血泪教训:

  1. 改配置前先备份!我用这个alias省下无数时间:

    alias cpb='cp --backup=numbered'
  2. 重要操作写成脚本并记录到/var/log/operations.log:

    echo "$(date): 修改ssh端口为2222" >> /var/log/operations.log
  3. 遇到诡异问题先检查SELinux:

    sealert -a /var/log/audit/audit.log
  4. 定期检查/var/log/messages和dmesg,很多问题早有预兆