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

发布时间:2026/7/26 10:35:05
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-servicessh # 只放行SSH firewall-cmd --reload firewall-cmd --list-all # 验证规则生产环境建议改用zone隔离策略比如firewall-cmd --new-zonesecure --permanent firewall-cmd --zonesecure --add-source192.168.1.0/24 --permanent1.3 SSH安全加固修改/etc/ssh/sshd_config关键参数Port 2222 # 改默认端口 PermitRootLogin no PasswordAuthentication no # 强制密钥登录 MaxAuthTries 3 ClientAliveInterval 300改完后记得测试新端口连接再重启sshdsemanage port -a -t ssh_port_t -p tcp 2222 firewall-cmd --add-port2222/tcp --permanent2. 系统更新与基础优化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 makecache2.2 系统更新策略首次更新建议完整升级yum update -y yum upgrade -y但生产环境要注意先测试环境验证关键包如kernel、glibc使用yum-plugin-versionlock锁定特定版本配置自动安全更新yum install yum-cron -y2.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.service3. 必备工具链部署3.1 开发基础环境yum groupinstall Development Tools -y yum install epel-release -y yum install vim-enhanced git htop net-tools -y3.2 监控诊断工具集推荐安装这套组合拳yum install sysstat dstat iotop iftop nmon -y配置sysstat数据收集频率/etc/sysconfig/sysstatSADC_OPTIONS-S DISK INTERVAL60 # 改为1分钟采样3.3 日志管理方案安装logrotateyum 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用resize2fs4.2 自动备份方案简单高效的rsync方案yum install rsync -y cat /etc/cron.daily/backup.sh EOF #!/bin/bash rsync -avz --delete /important_data/ backupuserbackupserver:/backups/$(hostname)/ EOF chmod x /etc/cron.daily/backup.sh5. 网络与服务配置5.1 时间同步关键点分布式系统必须确保时间一致yum install chrony -y systemctl enable chronyd --now chronyc sources -v # 验证时间源重要参数/etc/chrony.confserver 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 -p6. 安全审计与加固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/crontab6.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 107.2 性能瓶颈定位CPU密集型问题perf top -p $(pgrep nginx)IO瓶颈分析iostat -x 1 iotop -oP8. 个人经验总结八年运维CentOS的血泪教训改配置前先备份我用这个alias省下无数时间alias cpbcp --backupnumbered重要操作写成脚本并记录到/var/log/operations.logecho $(date): 修改ssh端口为2222 /var/log/operations.log遇到诡异问题先检查SELinuxsealert -a /var/log/audit/audit.log定期检查/var/log/messages和dmesg很多问题早有预兆