CentOS系统初始化与安全加固全攻略
📅 2026/7/26 10:49:58
👁️ 阅读次数
📝 编程学习
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 --permanent1.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 --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 -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.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/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.sh5. 网络与服务配置
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/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 cpb='cp --backup=numbered'重要操作写成脚本并记录到/var/log/operations.log:
echo "$(date): 修改ssh端口为2222" >> /var/log/operations.log遇到诡异问题先检查SELinux:
sealert -a /var/log/audit/audit.log定期检查/var/log/messages和dmesg,很多问题早有预兆
编程学习
技术分享
实战经验