# 安装后初始化配置

URL: https://caijiao.org/rockylinux/post-install-setup
Source: docs/rockylinux/post-install-setup.md
Description: Rocky Linux 安装完成后的必要初始配置步骤，包括系统更新、安全设置、用户配置等

恭喜您成功安装了 Rocky Linux！本教程将指导您完成安装后的必要初始配置，帮助您的系统更加安全、稳定和高效。

## 1. 更新系统

安装完成后的第一步应该是更新系统到最新版本，以确保您的系统包含最新的安全补丁和功能改进。

### 更新软件包

以 root 用户或具有 sudo 权限的用户身份运行以下命令：

```bash
# 更新软件包缓存
sudo dnf makecache

# 执行系统更新
sudo dnf update -y
```

更新完成后，如果内核或重要系统组件被更新，建议重启系统：

```bash
sudo reboot
```

### 配置自动更新（可选）

为了提高安全性，您可以配置系统自动安装安全更新：

1. 安装自动更新工具：

```bash
sudo dnf install dnf-automatic -y
```

2. 编辑配置文件：

```bash
sudo vim /etc/dnf/automatic.conf
```

3. 修改以下配置（根据您的需求）：

```
[commands]
automatic_type = security  # 只自动更新安全补丁
apply_updates = yes        # 自动应用更新

[emitters]
emit_via = stdio           # 通过标准输出发送通知

[email]
email_from = root@localhost
email_to = root
```

4. 启用并启动自动更新服务：

```bash
sudo systemctl enable --now dnf-automatic.timer
```

## 2. 配置网络

确保您的网络配置正确且稳定。

### 检查当前网络配置

```bash
# 查看网络接口信息
ip addr

# 检查网络连接状态
ping -c 4 www.google.com
```

### 配置静态 IP（如果需要）

如果您需要使用静态 IP 地址而不是 DHCP，可以使用 nmcli 工具进行配置：

```bash
# 列出网络连接
sudo nmcli connection show

# 配置静态 IP（将 eth0 替换为您的网络接口名称）
sudo nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"

# 重启网络连接
sudo nmcli con down eth0 && sudo nmcli con up eth0
```

### 配置主机名

```bash
# 设置主机名
sudo hostnamectl set-hostname your-hostname

# 编辑 hosts 文件，添加主机名解析
sudo vim /etc/hosts
```

在 hosts 文件中添加以下行（将 IP 地址和主机名替换为您的实际值）：

```
127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain
192.168.1.100 your-hostname your-hostname.localdomain
```

## 3. 安全配置

### 配置防火墙

Rocky Linux 默认使用 firewalld 作为防火墙管理工具：

```bash
# 确保 firewalld 已安装
sudo dnf install firewalld -y

# 启用并启动 firewalld
sudo systemctl enable --now firewalld

# 检查防火墙状态
sudo firewall-cmd --state

# 允许常见服务（根据您的需求选择）
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# 重新加载防火墙规则
sudo firewall-cmd --reload

# 查看当前允许的服务
sudo firewall-cmd --list-services
```

### 配置 SELinux

Rocky Linux 默认启用 SELinux，这是一个重要的安全特性：

```bash
# 查看 SELinux 状态
sestatus

# 临时禁用 SELinux（如需临时测试，不推荐在生产环境使用）
sudo setenforce 0

# 永久禁用 SELinux（不推荐，除非有特殊需求）
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 注意：永久禁用需要重启系统才会生效
```

建议保持 SELinux 启用，如需调整策略可以：

```bash
# 设置为 permissive 模式（记录违规但不阻止操作）
sudo setenforce 0
sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
```

## 4. 用户和权限配置

### 创建和管理用户

如果您在安装过程中没有创建普通用户，现在可以创建一个：

```bash
# 创建新用户
sudo useradd -m -G wheel username

# 设置用户密码
sudo passwd username
```

### 配置 sudo 权限

确保 wheel 组用户可以使用 sudo：

```bash
# 检查 sudo 配置
ls -l /etc/sudoers.d/

# 如果需要，编辑 sudoers 文件（使用 visudo 确保语法正确）
sudo visudo
```

确保以下行未被注释：

```
%wheel  ALL=(ALL)       ALL
```

## 5. 安装常用软件包

根据您的需求，安装一些常用的软件包：

```bash
# 安装常用工具
sudo dnf install -y vim wget curl git htop net-tools bash-completion

# 安装开发工具（如果需要）
sudo dnf groupinstall -y "Development Tools"

# 安装构建依赖（如果需要）
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --set-enabled powertools
```

## 6. 系统服务配置

### 查看和管理系统服务

```bash
# 列出所有服务状态
systemctl list-units --type=service

# 查看特定服务状态
systemctl status sshd

# 启用服务开机自启
sudo systemctl enable service-name

# 禁用服务开机自启
sudo systemctl disable service-name

# 启动服务
sudo systemctl start service-name

# 停止服务
sudo systemctl stop service-name

# 重启服务
sudo systemctl restart service-name
```

### 配置时间同步

确保系统时间准确是非常重要的：

```bash
# 安装 chrony
sudo dnf install chrony -y

# 启用并启动 chronyd 服务
sudo systemctl enable --now chronyd

# 检查时间同步状态
chronyc tracking

# 检查 NTP 源状态
chronyc sources
```

## 7. 系统资源监控工具

安装和配置一些系统监控工具，帮助您监控系统性能和资源使用情况：

```bash
# 安装监控工具
sudo dnf install -y htop glances sysstat

# 启用 sar 服务（用于收集系统活动报告）
sudo systemctl enable --now sysstat

# 查看系统负载
uptime

# 使用 htop 监控系统资源
sudo htop
```

## 8. 磁盘和文件系统优化

### 检查磁盘空间

```bash
# 查看磁盘使用情况
df -h

# 查看 inode 使用情况
df -i
```

### 设置交换空间（如果需要）

如果您的系统内存较小，可以考虑设置交换空间：

```bash
# 创建交换文件（4GB 示例）
sudo fallocate -l 4G /swapfile

# 设置正确的权限
sudo chmod 600 /swapfile

# 格式化交换文件
sudo mkswap /swapfile

# 启用交换空间
sudo swapon /swapfile

# 使交换空间永久生效
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
```

### 调整 swappiness

Swappiness 参数控制系统使用交换空间的频率：

```bash
# 查看当前 swappiness 值
cat /proc/sys/vm/swappiness

# 临时调整 swappiness（减少使用交换空间）
sudo sysctl vm.swappiness=10

# 永久设置 swappiness
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
```

## 9. 日志管理配置

### 查看系统日志

```bash
# 查看系统日志
sudo journalctl

# 查看最近的日志
sudo journalctl -n 100

# 实时查看日志
sudo journalctl -f

# 按服务过滤日志
sudo journalctl -u sshd
```

### 配置日志保留策略

```bash
# 编辑 journald 配置
sudo vim /etc/systemd/journald.conf
```

修改以下参数（根据您的需求）：

```
[Journal]
SystemMaxUse=500M  # 日志最大占用空间
MaxFileSec=1week   # 单个日志文件最大保留时间
MaxRetentionSec=4week  # 所有日志最大保留时间
```

重启 journald 服务使更改生效：

```bash
sudo systemctl restart systemd-journald
```

## 10. 备份和恢复策略

设置一个基本的备份策略对于保护您的数据非常重要：

```bash
# 安装备份工具
sudo dnf install -y rsync tar

# 创建备份目录
sudo mkdir -p /backup

# 基本备份脚本示例
sudo vim /usr/local/bin/backup.sh
```

添加以下内容到备份脚本：

```bash
#!/bin/bash

# 基本系统文件备份
date=$(date +%Y-%m-%d)
tar -czf /backup/system-files-$date.tar.gz /etc /home /var/www

# 删除 30 天前的备份
find /backup -name "system-files-*.tar.gz" -mtime +30 -delete
```

使脚本可执行：

```bash
sudo chmod +x /usr/local/bin/backup.sh
```

设置定时任务：

```bash
# 编辑 root 的 crontab
sudo crontab -e
```

添加以下行以每天凌晨 1 点执行备份：

```
0 1 * * * /usr/local/bin/backup.sh
```

## 总结

通过本教程的步骤，您已经完成了 Rocky Linux 安装后的基本初始化配置。这些配置包括系统更新、网络设置、安全配置、用户管理、常用软件安装、服务配置、监控工具设置、磁盘优化、日志管理和备份策略等。

根据您的具体需求，您可能还需要进行其他配置，但这些基本步骤为您提供了一个安全、稳定和高效的系统基础。

接下来，您可以根据我们的其他教程，学习如何使用 dnf 管理软件包、配置各种服务、进行系统维护等更高级的操作。
