开学后事务繁杂,在 Linux 环境配置与运维中踩了不少坑,今天抽空梳理近期遇到的核心问题与解决方案,既是复盘也是知识沉淀,后续会持续更新完善。ok,开写!!!
一、网络配置验证三件套:确保基础连通性
网络配置是服务器运维的第一步,完成 IP 地址、网关、DNS 等配置后,必须通过以下命令验证连通性与配置生效情况:
# 1. 验证主机名解析与网络连通性
ping servera
# 若能正常 ping 通,说明 IP 地址配置生效、主机名解析正常;若失败,需排查 IP 配置或 /etc/hosts 解析
# 2. 检查默认网关是否生效
ip route
# 输出中需包含默认路由(default via 网关IP),确认流量能正常出网
# 3. 确认 DNS 配置是否正确
cat /etc/resolv.conf
# 需包含有效的 nameserver 地址,确保域名解析正常
核心意义:这三条命令是排查网络问题的基础,能快速定位IP 未生效 网关配置错误 DNS 解析失败等常见问题,避免后续服务部署因网络问题反复踩坑。
二、SSH 服务安全加固:从配置到生效
SSH 是远程管理服务器的核心通道,通过修改 /etc/ssh/sshd_config 可实现安全加固,常见配置项包括:
# 编辑 SSH 配置文件
vim /etc/ssh/sshd_config
关键配置项说明:
调整监听端口 :修改 Port 22 为自定义端口(如 2222),降低暴力破解风险
禁用密码登录 :设置 PasswordAuthentication no,仅允许密钥登录
限制 root 登录 :设置 PermitRootLogin no,禁止 root 用户直接远程登录,需通过普通用户切换
配置生效:修改后必须重启 SSH 服务才能生效:
systemctl restart sshd
注意:修改端口前需确保防火墙放行新端口,避免远程连接被阻断。
三、YUM 仓库核心配置:安全与可用性的平衡
在 RHEL/CentOS 系统中,YUM/DNF 仓库配置文件(.repo)中两个关键参数直接影响软件安装的安全性与可用性:
1. gpgcheck:软件包签名校验
gpgcheck=1 # 开启签名校验(推荐)
gpgcheck=0 # 关闭签名校验
作用 :gpgcheck=1 会校验软件包的 GPG 签名,防止恶意篡改或损坏的软件包被安装,保障系统安全;
场景:生产环境必须开启,测试环境可临时关闭以简化流程。
2. enabled:仓库启用开关
enabled=1 # 启用该仓库
enabled=0 # 禁用该仓库
作用 :控制仓库是否被系统识别和使用,enabled=1 时系统执行 yum install/yum update 会从该仓库拉取软件包;
场景 :可通过切换 enabled 值,灵活管理多个软件源(如官方源、第三方源)。
四、SELinux 核心概念:Web 服务场景下的权限管控
SELinux 是 Linux 系统的强制访问控制(MAC)安全机制,在 Web 服务(httpd)场景中,核心要理解「端口上下文」与「文件上下文」两个概念:
1. 端口上下文:服务端口的权限边界
httpd 服务默认仅能监听 http_port_t 类型的端口(如 80、443、8080),自定义端口(如 82)需手动添加到该类型:
# 安装 semanage 工具(若未安装)
dnf install -y policycoreutils-python-utils
# 添加 82 端口到 http_port_t 类型
semanage port -a -t http_port_t -p tcp 82
验证:semanage port -l | grep http_port_t 可查看 httpd 允许监听的端口列表。
2. 文件上下文:Web 根目录的访问权限
/var/www/html 是 httpd 默认网站根目录,该目录下文件必须为 httpd_sys_content_t 类型,否则 httpd 无法读取文件,会返回 403 错误;
手动复制 / 移动文件后,上下文可能丢失,需通过 restorecon 修复:
# 递归恢复 /var/www/html 下所有文件的默认上下文
restorecon -Rv /var/www/html/
五、restorecon 命令:修复 SELinux 上下文的利器
restorecon 是解决 SELinux 上下文异常的核心工具,核心作用与参数如下:
核心作用 :恢复文件 / 目录的默认 SELinux 上下文,解决手动复制、移动文件后导致的权限错乱问题;
关键参数:
-R:递归处理目录及子目录;
-v:可视化输出修复过程,便于排查问题;
典型场景:Web 服务 403 错误、服务无法读取配置文件等。
六、Web 服务默认约定:RHEL 环境下的 httpd
在 RHCSA 考试或 RHEL 生产环境中,题目或文档中提到的「Web 服务器」默认指 Apache httpd,判断依据:
路径约定:/var/www/html 是 httpd 专属网站根目录,其他 Web 服务(如 Nginx)根目录不同;
服务名约定:启动 / 管理命令固定为 systemctl start httpd,服务名即为 httpd;
SELinux 上下文约定:http_port_t/httpd_sys_content_t 均为 httpd 专属的上下文类型。
七、用户与组管理:权限隔离的基础
1. 非交互式 shell:服务账号的最佳实践
# 创建禁止登录的服务账号
useradd -s /sbin/nologin john
/sbin/nologin:禁止用户交互式登录系统,仅用于运行后台服务,避免账号被恶意利用;
-s 参数:指定用户的登录 shell。
2. 组管理:权限分配的核心
主组 vs 附加组:
-g:指定用户的主组(每个用户仅有一个主组);
-G:指定用户的附加组(可加入多个附加组,继承组权限);
修改用户组:
# 将用户 test 加入 sysmgrs 附加组(-a 避免覆盖原有附加组)
usermod -aG sysmgrs test
验证 :id 用户名 可查看用户的 UID、GID 及所属组信息。
🆗 今日先整理到这里,后续会继续补充 LVM、定时任务、容器化等更多运维场景的踩坑笔记,逐步完善开学季 Linux 实战知识库~