CentOS 7/8/9 系统安装与最小化配置指南
CentOS 7/8/9 系统安装与最小化配置指南⚠️ 版本状态提醒
[*]CentOS 7 已于 2024-06-30 停止维护(EOL)
[*]CentOS Linux 8 已于 2021-12-31 停止维护,对应替代为 CentOS Stream 8(2024-05-31 EOL)
[*]CentOS 9 即为 CentOS Stream 9,属于滚动发行版
生产环境建议迁移至 Rocky Linux / AlmaLinux / RHEL。本指南兼顾历史版本的操作方法,仅适用于测试或遗留系统。
一、安装前准备
1. 下载镜像
[*]CentOS 7(归档地址)
http://vault.centos.org/centos/7/isos/x86_64/
推荐下载 CentOS-7-x86_64-Minimal-*.iso
[*]CentOS 8(归档地址)
http://vault.centos.org/centos/8/isos/x86_64/
推荐下载 CentOS-8-x86_64-*-minimal.iso
[*]CentOS Stream 9(官方镜像)
https://mirrors.centos.org/mirrorlist?path=/9-stream/BaseOS/x86_64/iso/
选择 CentOS-Stream-9-latest-x86_64-boot.iso 或 dvd1.iso
2. 制作启动介质
[*]Linux/macOS:dd if=image.iso of=/dev/sdX bs=4M status=progress
[*]Windows:使用 Rufus 或 balenaEtcher 写入 U 盘
二、安装过程(最小化安装)
启动后选择 “Install CentOS 7/8/9”,进入图形或文本安装界面。核心步骤如下:
[*]语言与键盘
选择合适的语言(推荐 English)和键盘布局。
[*]安装源与软件选择
[*]在 Software Selection 中选择 “Minimal Install”(最小化安装)。
[*]CentOS 7 需要手动选择“Minimal”,8/9 类似。
[*]无需勾选任何附加组件,以获得最精简系统。
[*]磁盘分区
[*]建议使用 自动分区(Automatic) 或自定义 LVM:
[*]/boot 1 GiB(均使用)
[*]/ 剩余空间使用 XFS(CentOS 7 默认为 XFS,8/9 相同)
[*]可选添加 swap(内存 < 8G 时建议等于内存大小)
[*]勾选 “Use LVM”(逻辑卷管理)以便后期扩容。
[*]网络与主机名
[*]开启网络接口(如 ens33),设置为 ON。
[*]若 DHCP 环境,安装后可修改为静态 IP。
[*]设置主机名,如 server-centos.lan。
[*]开始安装
点击 “Begin Installation”。安装过程中需设置:
[*]Root 密码(务必复杂)
[*]创建普通用户(可勾选 “Make this user administrator” 加入 wheel 组)
安装完成后重启,拔出介质。
三、安装后最小化配置
以下命令统一使用 # 表示 root 权限;普通用户请加 sudo。根据 CentOS 版本区分包管理器和网络管理。
1. 更新系统基础源(关键:处理 EOL 仓库)
CentOS 7
官方源已移至 vault,需将 baseurl 改为存档地址,并禁用原有 mirrorlist。
# 备份原文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 替换为 vault 源
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Base.repo
yum clean all && yum makecache
CentOS 8
# 原有 repo 已失效,直接替换为 vault
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*.repo
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*.repo
# 如果仍报错,可手动创建 /etc/yum.repos.d/CentOS-Vault.repo:
cat > /etc/yum.repos.d/CentOS-Vault.repo <<EOF
name=CentOS Linux 8 - BaseOS
baseurl=http://vault.centos.org/centos/8/BaseOS/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
name=CentOS Linux 8 - AppStream
baseurl=http://vault.centos.org/centos/8/AppStream/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
name=CentOS Linux 8 - Extras
baseurl=http://vault.centos.org/centos/8/extras/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOF
dnf clean all && dnf makecache
CentOS Stream 9
自带源为 Stream,可直接使用,但建议更新到最新状态:
dnf update -y
2. 安装完成后的第一次更新
# CentOS 7
yum update -y
# CentOS 8 / 9
dnf update -y
此时会从仓库安装所有安全补丁(CentOS 7/8 仅能更新到最终快照)。
3. 安装必要的基础工具
# 通用
yum install -y vim wget curl net-tools bash-completion # CentOS 7
dnf install -y vim wget curl net-tools bash-completion # CentOS 8/9
# 额外推荐:epel-release (对于 7/8 需要,9 可使用 epel-next)
yum install -y epel-release # CentOS 7
dnf install -y epel-release # CentOS 8
dnf install -y epel-release epel-next-release# CentOS Stream 9
安装完成后执行 source /etc/profile 或重新登录以启用 bash 补全。
4. 网络配置(静态 IP 示例)
通用方法(推荐 nmcli,适用于 7/8/9)
查看连接名:
nmcli connection show
假设接口为 ens33,配置静态 IP:
nmcli con mod ens33 ipv4.addresses 192.168.1.100/24
nmcli con mod ens33 ipv4.gateway 192.168.1.1
nmcli con mod ens33 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod ens33 ipv4.method manual
nmcli con mod ens33 connection.autoconnect yes
nmcli con up ens33
CentOS 7 传统 network-scripts 方法(备选)
编辑 /etc/sysconfig/network-scripts/ifcfg-ens33,修改:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
然后 systemctl restart network。
5. 主机名
hostnamectl set-hostname your-server-name
检查:hostnamectl status。
6. 系统时间同步
[*]CentOS 7 使用 ntpd,但也可安装 chrony(建议):
yum install -y chrony
systemctl enable chronyd --now
[*]CentOS 8/9 默认已启用 chronyd:
systemctl enable chronyd --now
timedatectl set-ntp true
验证:chronyc sources -v 或 timedatectl status。
配置 NTP 服务器(可选):编辑 /etc/chrony.conf,添加国内源如 ntp.aliyun.com,重启服务。
7. SSH 安全加固
编辑 /etc/ssh/sshd_config:
Port 22 # 可改为其他端口(需同时放行防火墙)
PermitRootLogin no # 禁止 root 直接登录
PasswordAuthentication yes # 若已配置密钥可改为 no
PubkeyAuthentication yes
AllowUsers yourusername # 仅允许特定用户登录
重启 SSH:
systemctl restart sshd
添加普通用户并授予 sudo(如安装时未创建):
useradd -m -G wheel adminuser
passwd adminuser
# 若需无密码 sudo(可选)
echo 'adminuser ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/adminuser
8. 防火墙配置(firewalld)
systemctl start firewalld
systemctl enable firewalld
# 开放 SSH 端口(如果修改,请改为实际端口)
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-port=22/tcp # 示例
firewall-cmd --reload
# 查看规则
firewall-cmd --list-all
如果不需要防火墙(仅测试环境),可 systemctl stop firewalld && systemctl disable firewalld,但不推荐。
9. SELinux 配置
最小化安装默认 SELinux 为 enforcing 状态,建议保持。
查看状态:getenforce
临时修改(重启失效):setenforce 0(Permissive)
永久关闭(不推荐):编辑 /etc/selinux/config 将 SELINUX=enforcing 改为 disabled,重启生效。
若遇到服务访问问题,使用 sealert 分析并由 semanage 调整策略,不要轻易关闭。
10. 其他优化
[*]关闭不必要服务:
systemctl list-unit-files | grep enabled # 查看开机自启服务
systemctl disable --now postfix# 示例,如果不需要邮件服务
[*]内核参数调整(可选):/etc/sysctl.conf 添加 net.ipv4.ip_forward=1 等。
[*]安装常用性能工具:htop, iotop, sysstat 等。
四、建议:迁移至持续支持的发行版
由于 CentOS 7/8 已经结束生命周期,强烈推荐迁移到 Rocky Linux 或 AlmaLinux,它们与 RHEL 9/8 完全兼容,并仍在获得安全更新。
[*]从 CentOS 8 迁移至 Rocky Linux 8:
dnf install -y https://dl.rockylinux.org/pub/rocky/8/BaseOS/x86_64/os/Packages/r/rocky-release-8.9-*.el8.noarch.rpm
dnf distro-sync -y
[*]从 CentOS 7 升级至 Rocky 9 需采用全新安装再迁移数据的方式,因为无法原地升级主版本。
五、总结
本指南覆盖了 CentOS 7/8/9 的最小化安装与基本配置,包括仓库修复、网络、SSH、防火墙、时间同步等核心步骤。由于上游政策变化,现有 CentOS 版本均不再适合用于生产环境的安全维护,请根据实际需求选择替代发行版。
快速检查清单
[*][ ] 系统已最小化安装
[*][ ] 仓库已指向正确源(vault 或 stream)
[*][ ] 网络静态 IP 配置完成
[*][ ] 主机名已设置
[*][ ] 时间同步正常
[*][ ] SSH 禁止 root 密码登录,普通用户 sudo 可用
[*][ ] 防火墙按需放行端口
[*][ ] SELinux 保持 enforcing
[*][ ] 基础工具已安装,系统已全量更新
如有后续需求(如安装 Nginx、数据库),可在此基础上继续部署。
页:
[1]