I am unable to write files to your system. However, I have prepared the article you requested. Please find it below. You can copy and paste it into a file named CentOS_7.9_Ultimate_Guide.md.
CentOS 7.9 终极指南:安装、配置与优化
CentOS (Community ENTerprise Operating System) 是一个基于 Red Hat Enterprise Linux (RHEL) 源代码再编译的免费企业级 Linux 发行版。CentOS 7.9 是 7.x 系列的最后一个版本,以其稳定性、可靠性和长期的支持而闻名,使其成为服务器和开发环境的绝佳选择。本指南将详细介绍如何安装、配置和优化 CentOS 7.9。
目录
第一部分:安装 CentOS 7.9
1.1. 准备工作
- 硬件要求:
- 至少 2GB RAM (推荐 4GB 或更多)
- 至少 20GB 硬盘空间 (推荐 40GB 或更多)
- 64 位 CPU
- 网络: 可选,但在安装过程中连接网络可以方便地获取更新。
1.2. 下载 ISO 镜像
访问 CentOS 官方归档网站下载 CentOS 7.9.2009 ISO 镜像。
* 官方归档地址: https://vault.centos.org/7.9.2009/isos/x86_64/
* 推荐版本: CentOS-7-x86_64-DVD-2009.iso (标准安装版)
1.3. 创建可启动介质
你可以使用以下工具将 ISO 镜像制作成 USB 启动盘或 DVD:
* USB: Rufus (Windows), balenaEtcher (跨平台), or dd (Linux/macOS)。
* 使用 dd 的示例: sudo dd if=/path/to/CentOS-7.iso of=/dev/sdX bs=4M status=progress
(注意:/dev/sdX 是你的 U 盘设备名,请务必确认正确,否则可能导致数据丢失)。
* DVD: 使用任何常见的 DVD 刻录软件。
1.4. 安装步骤详解
- 启动系统: 从你创建的可启动介质启动计算机。
- 欢迎界面: 选择 “Install CentOS 7″。
- 语言选择: 选择你希望在安装过程中使用的语言,然后点击 “Continue”。
- 安装摘要 (INSTALLATION SUMMARY): 这是安装配置的核心页面。
- DATE & TIME: 设置时区,例如 “Asia/Shanghai”。
- KEYBOARD: 添加或修改键盘布局。
- LANGUAGE SUPPORT: 选择系统支持的语言。
- SOFTWARE SELECTION: 这是非常重要的一步。
- Minimal Install: 最小化安装,只包含最核心的组件,适合经验丰富的管理员。
- GNOME Desktop: 提供图形用户界面。
- Server with GUI: 包含图形界面的服务器环境。
- 对于服务器,推荐选择 “Minimal Install” 或 “Infrastructure Server”,然后按需添加软件包。
- INSTALLATION DESTINATION: 配置磁盘分区。
- 你可以选择 “Automatically configure partitioning” (自动分区)。
- 对于服务器,推荐选择 “I will configure partitioning” (手动分区),然后创建
/boot,/,/home, 和swap等分区。/boot: 建议 500MB – 1GB (xfs)swap: 通常为内存的 1-2 倍 (RAM < 8GB 时) 或固定大小 (例如 4GB)。/: 根分区,分配大部分剩余空间 (xfs)。/home: 如果需要,可以为用户数据单独分区。
- KDUMP: 内核崩溃转储机制,可以禁用以节省内存,除非你需要进行内核调试。
- NETWORK & HOST NAME:
- 打开以太网开关 (从 OFF 切换到 ON),如果使用 DHCP,它会自动获取 IP 地址。
- 设置一个有意义的主机名 (Hostname)。
- 开始安装 (Begin Installation): 配置完成后,点击 “Begin Installation”。
- 用户设置 (USER SETTINGS): 在安装过程中,你需要设置两项:
- ROOT PASSWORD: 设置
root用户的密码,务必设置一个强密码。 - USER CREATION: 创建一个普通用户,并可选择将其设为管理员 (Make this user administrator)。出于安全考虑,推荐使用此用户进行日常操作。
- ROOT PASSWORD: 设置
- 完成安装: 安装过程结束后,点击 “Reboot” 重启系统。
第二部分:系统初始化配置
2.1. 更新系统
使用 root 用户或 sudo 执行以下命令,更新所有已安装的软件包到最新版本。
bash
sudo yum update -y
2.2. 配置网络
虽然在安装时可以配置网络,但有时需要设置静态 IP。
1. 找到网络接口名称:
bash
ip addr
通常名为 eth0, ens33 等。
2. 编辑网络配置文件:
bash
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
(将 ifcfg-ens33 替换为你的网络接口文件名)
3. 修改配置:
ini
BOOTPROTO="static" # 将 dhcp 修改为 static
ONBOOT="yes" # 确保开机自启
IPADDR="192.168.1.100" # 设置静态 IP 地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.1.1" # 网关地址
DNS1="8.8.8.8" # 主 DNS
DNS2="1.1.1.1" # 备 DNS
4. 重启网络服务:
bash
sudo systemctl restart network
2.3. 设置主机名
bash
sudo hostnamectl set-hostname your-hostname
你可能还需要在 /etc/hosts 文件中添加主机名解析。
127.0.0.1 localhost your-hostname
2.4. 防火墙配置 (firewalld)
CentOS 7 默认使用 firewalld 作为防火墙。
* 查看防火墙状态:
bash
sudo systemctl status firewalld
* 启动/停止防火墙:
bash
sudo systemctl start firewalld
sudo systemctl stop firewalld
* 开机自启/禁用:
bash
sudo systemctl enable firewalld
sudo systemctl disable firewalld
* 开放端口或服务 (例如 HTTP):
bash
# 开放 HTTP 服务 (80端口)
sudo firewall-cmd --zone=public --add-service=http --permanent
# 开放特定端口 (例如 8080)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重新加载配置使之生效
sudo firewall-cmd --reload
* 查看已开放的端口和服务:
bash
sudo firewall-cmd --list-all
2.5. 用户和组管理
- 创建新用户:
bash
sudo adduser newuser - 为新用户设置密码:
bash
sudo passwd newuser - 将用户添加到
wheel组 (授予 sudo 权限):
bash
sudo usermod -aG wheel newuser - 创建新组:
bash
sudo groupadd mygroup - 删除用户:
bash
sudo userdel -r olduser # -r 同时删除用户家目录
第三部分:服务管理与常用软件
3.1. systemd 服务管理
CentOS 7 使用 systemd 进行系统和服务管理。
* sudo systemctl start <service>: 启动服务
* sudo systemctl stop <service>: 停止服务
* sudo systemctl restart <service>: 重启服务
* sudo systemctl reload <service>: 重新加载配置
* sudo systemctl enable <service>: 设置开机自启
* sudo systemctl disable <service>: 禁止开机自启
* sudo systemctl status <service>: 查看服务状态
3.2. 安装 Web 服务器 (Apache)
Apache 在 CentOS 7 中被称为 httpd。
1. 安装 httpd:
bash
sudo yum install httpd -y
2. 启动并设置开机自启:
bash
sudo systemctl start httpd
sudo systemctl enable httpd
3. 开放防火墙端口:
bash
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
4. 验证: 在浏览器中访问服务器的 IP 地址,你应该能看到 Apache 的测试页面。
3.3. 安装数据库 (MariaDB)
MariaDB 是 MySQL 的一个分支,在 CentOS 7 中是默认的数据库。
1. 安装 MariaDB:
bash
sudo yum install mariadb-server mariadb -y
2. 启动并设置开机自启:
bash
sudo systemctl start mariadb
sudo systemctl enable mariadb
3. 安全初始化:
运行安全脚本来设置 root 密码、删除匿名用户等。
bash
sudo mysql_secure_installation
按照提示进行操作即可。
3.4. 配置 SSH 服务
OpenSSH 服务器 (sshd) 通常是默认安装的。
* 配置文件: /etc/ssh/sshd_config
* 建议修改的安全配置:
“`bash
# 1. 修改默认端口 (例如 2222)
Port 2222
# 2. 禁止 root 登录
PermitRootLogin no
# 3. 禁用密码登录,强制使用密钥 (推荐)
PasswordAuthentication no
PubkeyAuthentication yes
```
- 修改后重启 sshd 服务:
bash
sudo systemctl restart sshd
注意: 在禁用密码登录前,请确保你已经正确配置了 SSH 密钥对,否则将无法登录!
第四部分:系统优化与安全加固
4.1. 内核参数优化
通过修改 /etc/sysctl.conf 文件可以优化 TCP/IP 栈等内核参数,提升网络性能。
bash
sudo vi /etc/sysctl.conf
添加以下常用配置:
“`ini
增加 TCP 最大连接数
net.core.somaxconn = 65535
增加系统文件句柄限制
fs.file-max = 6553560
TCP 连接重用
net.ipv4.tcp_tw_reuse = 1
开启 TCP 窗口缩放
net.ipv4.tcp_window_scaling = 1
使配置生效:bash
sudo sysctl -p
“`
4.2. 安全加固
- 安装 Fail2Ban: 监控日志文件并自动禁止可疑的 IP 地址。
bash
# 首先安装 EPEL 源
sudo yum install epel-release -y
# 安装 Fail2Ban
sudo yum install fail2ban -y
# 启动并设置开机自启
sudo systemctl start fail2ban
sudo systemctl enable fail2ban - SELinux 配置:
SELinux 提供了额外的安全层。对于初学者来说可能比较复杂,但建议保持开启状态 (enforcing)。- 查看 SELinux 状态:
getenforce - 临时关闭:
sudo setenforce 0(Permissive 模式) - 永久关闭: 修改
/etc/selinux/config文件中的SELINUX=disabled(不推荐)。 - 当服务因 SELinux 权限问题无法运行时,应首先检查审计日志
/var/log/audit/audit.log并使用semanage或setsebool等工具修复权限,而不是直接关闭 SELinux。
- 查看 SELinux 状态:
4.3. 日志管理
CentOS 7 使用 journald 收集日志,并由 rsyslog 写入传统日志文件。
* 使用 journalctl 查看日志:
bash
# 查看所有日志
journalctl
# 查看内核日志
journalctl -k
# 查看特定服务的日志
journalctl -u httpd.service
# 实时查看日志
journalctl -f
* 日志轮转 (logrotate):
配置文件位于 /etc/logrotate.conf 和 /etc/logrotate.d/ 目录下,用于自动压缩、归档和删除旧日志文件,防止磁盘空间被占满。通常无需修改默认配置。
总结
CentOS 7.9 作为一个成熟稳定的企业级操作系统,至今仍被广泛应用于各种生产环境中。通过本指南的步骤,你应该能够成功地完成一个标准、安全且经过初步优化的 CentOS 7.9 服务器的部署。尽管 CentOS 7 即将结束其生命周期 (EOL),但掌握其核心概念和管理方法对于理解 RHEL 系列 Linux 系统仍然非常有价值。