Appearance
31. RHCE 考点总结
本章节总结 RHEL 8.10(主机名 ZSLinux)上 RHCE(Red Hat Certified Engineer)考试核心领域,指导使用 SecureCRT 配置关键任务,配合 SecureFX 传输配置文件。内容涵盖用户管理、SELinux、Systemd、LVM/RAID、防火墙、网络、SSH、Podman、Ansible,提供考试提示和验证方法,全面实用,适合备考 RHCE 的初学者和运维人员。所有操作在 ZSLinux 环境中测试,确保实验一致性。
31.1 前提条件
- RHEL 8.10 已安装(参考第 1 章),主机名设置为
ZSLinux. - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章).
- 使用 SecureFX 传输文件(SFTP 协议).
- 具有 root 或 sudo 权限.
- 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 4 和 7 章).
- 防火墙和 SELinux 启用(参考第 13 章).
- 网络连接正常,时间同步配置完成(参考第 3 章).
31.2 核心考试领域
31.2.1 用户与组管理
- 创建用户和组:bash
groupadd -g 1001 devteam # 创建 devteam 组 useradd -u 1001 -g devteam -m -s /bin/bash developer # 创建 developer 用户 passwd developer # 设置用户密码 - 配置 sudo 权限:bash
echo "developer ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/developer # 授予 developer sudo 权限
31.2.2 SELinux
- 配置 SELinux 上下文:bash
semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?" # 设置 /webdata 的 SELinux 上下文 restorecon -R -v /webdata # 应用 SELinux 上下文 semanage port -a -t ssh_port_t -p tcp 2222 # 为自定义 SSH 端口设置上下文
31.2.3 Systemd
- 管理服务:bash
systemctl enable --now httpd # 启用并启动 Apache 服务 systemctl status httpd # 检查服务状态 - 创建自定义服务:bash
vim /etc/systemd/system/custom-app.service # 创建自定义服务文件 # 添加: [Unit] Description=Custom Application After=network.target [Service] ExecStart=/usr/bin/custom-app --option Restart=always [Install] WantedBy=multi-user.target systemctl daemon-reload # 重新加载 Systemd 配置 systemctl enable --now custom-app # 启用并启动自定义服务
31.2.4 LVM/RAID
- 创建 LVM 逻辑卷:bash
pvcreate /dev/sdb # 创建物理卷 vgcreate vg_data /dev/sdb # 创建卷组 lvcreate -L 10G -n lv_data vg_data # 创建 10GB 逻辑卷 mkfs.xfs /dev/vg_data/lv_data # 格式化逻辑卷 - 配置 RAID(RAID 1 示例):bash
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd # 创建 RAID 1 mkfs.xfs /dev/md0 # 格式化 RAID 设备
31.2.5 防火墙与网络
- 配置防火墙:bash
firewall-cmd --permanent --add-service=http # 允许 HTTP 服务(80/tcp) firewall-cmd --permanent --add-port=2222/tcp # 允许自定义 SSH 端口 firewall-cmd --reload # 应用防火墙规则 - 配置网络(参考第 10 章):bash
nmcli con add type ethernet con-name eth0 ifname eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 # 配置静态 IP nmcli con up eth0 # 激活网络连接
31.2.6 SSH 安全
- 配置 SSH(自定义端口 2222):bash
dnf install -y openssh-server # 安装 SSH 服务 vim /etc/ssh/sshd_config # 编辑 SSH 配置文件 # 修改: Port 2222 PermitRootLogin no systemctl restart sshd # 重启 SSH 服务 semanage port -a -t ssh_port_t -p tcp 2222 # 设置 SELinux 上下文 firewall-cmd --permanent --add-port=2222/tcp # 允许自定义端口 firewall-cmd --reload # 应用防火墙规则
31.2.7 Podman
- 运行容器:bash
podman pull registry.access.redhat.com/ubi8/httpd-24 # 拉取 RHEL 8 UBI 镜像 podman run -d -p 8080:8080 --name web-container registry.access.redhat.com/ubi8/httpd-24 # 运行 HTTP 容器
31.2.8 Ansible
- 安装并配置 Ansible:bash
dnf install -y ansible # 安装 Ansible vim /etc/ansible/hosts # 编辑主机清单 # 添加: [webservers] 192.168.1.101 - 创建 Ansible Playbook:bash
vim /root/playbook.yml # 创建 Playbook # 添加: --- - hosts: webservers tasks: - name: Install httpd yum: name: httpd state: present - name: Start httpd service: name: httpd state: started enabled: yes ansible-playbook playbook.yml # 运行 Playbook
31.3 考试准备与验证
- 考试提示:
- 优先高分任务:SELinux(上下文、布尔值)、防火墙(服务、端口)、Ansible(Playbook)。
- 时间管理:分配 60% 时间给高分任务(如 SELinux、Ansible),40% 检查其他任务。
- 常见陷阱:
- SELinux 未启用导致任务失败(检查:
getenforce)。 - 防火墙规则未应用(运行:
firewall-cmd --reload)。 - Ansible 主机不可达(验证:
ansible all -m ping)。
- SELinux 未启用导致任务失败(检查:
- 模拟考试:在
ZSLinux上配置所有核心领域,验证结果。
- 验证配置:
- 用户与组:
getent passwd developer; getent group devteam - SELinux:
ls -Z /webdata; semanage port -l | grep ssh - Systemd:
systemctl status custom-app - LVM/RAID:
lvs; mdadm --detail /dev/md0 - 防火墙:
firewall-cmd --list-all - 网络:
nmcli con show - SSH:
ss -tuln | grep 2222 - Podman:
podman ps -a - Ansible:
ansible-playbook --syntax-check playbook.yml
- 用户与组:
- 故障排查:
- SELinux 问题:检查日志(
ausearch -m avc) 或恢复上下文(restorecon)。 - 防火墙失败:验证规则(
firewall-cmd --list-ports) 或服务状态(systemctl status firewalld)。 - Ansible 失败:检查主机连接(
ansible all -m ping) 或 Playbook 语法(ansible-playbook --syntax-check)。 - SOS 报告:
sosreport --only-plugins=system,selinux,networking用于诊断。
- SELinux 问题:检查日志(
- 测试 SSH 连接:bash
ssh -p 2222 testuser@ZSLinux # 测试 SSH 连接(参考第 6 章)
31.4 实践任务
- 使用 SecureCRT 登录
ZSLinux,创建用户developer并配置 sudo 权限。 - 配置 SELinux 上下文支持自定义 SSH 端口(2222)并启用 HTTP 服务。
- 创建并运行 Ansible Playbook 部署 Apache 到远程主机(192.168.1.101)。
- 配置 LVM 逻辑卷(10GB)并验证。
31.5 自测问题
- 问题:如何快速配置 SSH 服务?
- 答案:
dnf install -y openssh-server; vim /etc/ssh/sshd_config; systemctl enable --now sshd
- 答案:
- 问题:如何验证 LVM 逻辑卷?
- 答案:
lvs
- 答案:
- 问题:如何配置 Ansible Playbook 部署 HTTP 服务?
- 答案:创建
/root/playbook.yml定义yum和service任务,运行ansible-playbook playbook.yml
- 答案:创建
