CentOS8最小化安装后的初始化 checklist:从零到可上线的硬核实操笔记

CentOS8最小化安装后的初始化 checklist

装完CentOS8最小化版本,别急着把机器丢进机房。默认镜像只给了个光秃秃的壳,网卡没起、防火墙全开、时间还是纽约时区,真跑业务分分钟踩坑。我把这些年给几十台物理机、云主机做初始化的踩坑点,压成一张可打印的A4清单,照做就行,省得半夜被告警短信炸醒。
一、先让机器能上网:网卡与DNS
最小化装完第一件事,ip a一看只有lo,ens33或者ens192这类网卡默认没起。cd /etc/sysconfig/network-scripts/,找到ifcfg-ensX,把ONBOOT=no改成yes,保存后nmcli c reload && nmcli c up ensX,立刻拿到地址。DNS别用安装器自动给的,改/etc/resolv.conf,写两行223.5.5.5和8.8.8.8,省得后面yum update卡到怀疑人生。
二、一次性把源换国内:BaseOS、AppStream、EPEL全搞定
CentOS8官方源速度感人,mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak,直接curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo,再dnf install epel-release -y,接着sed -i 's|^#baseurl|baseurl|g; s|^metalink|#metalink|g' /etc/yum.repos.d/epel.repo,把epel也切到国内。一套连招下来,dnf update 300多个包十分钟收工。
三、时间、时区、NTP一个都不能错

timedatectl set-timezone Asia/Shanghai,再chronyc makestep,秒级同步。硬件时钟也要写进去,hwclock --systohc。别小看这一步,证书验证、日志排障、定时任务全依赖正确时间,差一分钟都能让CI/CD流程翻车。
四、防火墙:先放通22,再关无用端口
firewall-cmd --permanent --add-port=22/tcp,reload之后立刻ssh进来。业务端口等应用部署完再开,别一上来就systemctl stop firewalld,真出事连溯源都没地方下手。习惯用rich-rule的,可以一步到位限制来源IP,省得被扫描器天天敲门。
五、SELinux:别急着关,先学会看日志
setenforce 0确实能秒解权限问题,可下次重启又恢复原状。正确姿势是tail -f /var/log/audit/audit.log | grep denied,用audit2allow生成策略,semodule -i 导入,既安全又不闹心。真遇到开发死活调不通,再临时setenforce 0,写进文档里,方便甩锅。
六、创建普通用户,拒绝root裸奔
useradd ops && echo 'ops ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ops,ssh端口改完再把PermitRootLogin设成no,/etc/ssh/sshd_config里加一行AllowUsers ops,重启sshd。以后所有运维操作都用ops登录,root只留控制台,安全审计好交代。
七、SSH端口+密钥双保险
默认22端口每天被爆破上万次。Port 2222改成五位数,再systemctl restart sshd。本地ssh-keygen -t ed25519,把公钥丢到ops用户.ssh/authorized_keys,权限600,密码认证立刻关。fail2ban也装一下,五次输错直接拉黑IP,日志干净得很。
八、系统级加固:内核参数顺手调
/etc/sysctl.d/99-custom.conf追加net.core.somaxconn=65535、net.ipv4.tcptwreuse=1、vm.swappiness=10,执行sysctl -p。高并发服务提前调,比出事再翻文档省时间。ulimit -n 65535写进/etc/security/limits.d/20-nofile.conf,以后开微服务不踩句柄坑。
九、自动补全与常用工具:最小化不等于难受
dnf install bash-completion vim net-tools lrzsz wget curl git -y,立刻拥有tab补全、ifconfig、rz/sz上传下载。vim默认没高亮,echo 'syntax on' >> /etc/vimrc,眼睛舒服一半。习惯用htop的再装epel里的htop,比top好看十倍。
十、日志轮转:别让/var/log撑爆磁盘
默认logrotate一周一次,高并发nginx半天就能写爆。/etc/logrotate.d/nginx里把daily、rotate 7、compress、delaycompress写全,size超过100M立即轮转。系统日志同理,/etc/logrotate.d/rsyslog把maxsize 50M加上,磁盘告警少一半。
十一、备份策略:只谈实用不谈玄学
etckeeper自动提交/etc到本地git,dnf install etckeeper -y,初始化etckeeper init,以后每次改配置自动diff。业务数据用restic定时推对象存储,一行restic -r s3:http://桶地址 backup /data,增量快照,十分钟配置完。真恢复时,restic mount直接挂到本地挑文件,比tar包省心。
十二、重启验证:别等断电才发现没自启
init 6之前,先systemctl list-unit-files --state=enabled | grep disabled,确认关键服务已enable。重启后ssh端口、应用端口、日志时间、磁盘挂载全点一遍,十分钟能省下半夜打车去机房。
以上十二步,按顺序敲完,一台最小化CentOS8就能直接上生产。清单打印贴机柜,新人照做零失误。别嫌步骤多,真出一次故障,就知道提前半小时多值钱。
