CentOS 7.9 终极指南:安装、配置与优化 – wiki词典

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。


目录

  1. 第一部分:安装 CentOS 7.9
  2. 第二部分:系统初始化配置
  3. 第三部分:服务管理与常用软件
  4. 第四部分:系统优化与安全加固
  5. 总结

第一部分:安装 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. 安装步骤详解

  1. 启动系统: 从你创建的可启动介质启动计算机。
  2. 欢迎界面: 选择 “Install CentOS 7″。
  3. 语言选择: 选择你希望在安装过程中使用的语言,然后点击 “Continue”。
  4. 安装摘要 (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)。
  5. 开始安装 (Begin Installation): 配置完成后,点击 “Begin Installation”。
  6. 用户设置 (USER SETTINGS): 在安装过程中,你需要设置两项:
    • ROOT PASSWORD: 设置 root 用户的密码,务必设置一个强密码。
    • USER CREATION: 创建一个普通用户,并可选择将其设为管理员 (Make this user administrator)。出于安全考虑,推荐使用此用户进行日常操作。
  7. 完成安装: 安装过程结束后,点击 “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 并使用 semanagesetsebool 等工具修复权限,而不是直接关闭 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 系统仍然非常有价值。

滚动至顶部