Linux 时间同步与 SELinux 深层防火墙

Linux 时间同步与 SELinux 深层防火墙


一、NTP 时间同步服务

1.1 什么是 NTP?

  • NTP(Network Time Protocol):用于在网络中同步各计算机系统时间的协议。
  • 重要性
    • 分布式系统一致性:避免日志混乱、数据写入顺序错误。
    • 安全性保障:TLS/SSL、Kerberos 等依赖精确时间戳;防止重放攻击。
    • 日志管理与故障排查:统一时间线便于跨服务器问题追踪。

1.2 NTP 同步原理

  • 标准时间源:UTC(协调世界时),由原子钟、天文台、卫星或互联网提供。
  • 层级结构(Stratum)
    • Stratum 1:直接连接原子钟。
    • Stratum 2+:逐级同步,最多支持到 Stratum 15。

1.3 国内稳定 NTP 服务器

  • 推荐来源:http://www.ntp.org.cn/
  • 常用国内 NTP 服务器:
    • ntp.org.cn(中国国家授时中心)
    • ntp.aliyun.com(阿里云)
    • ntp.tencent.com(腾讯云)

查看当前时间源

chronyc sources
  • *:当前使用的时间源
  • +:候选源
  • -:可用但未选中
  • ?:通信失败或无效

查看同步状态详情

chronyc tracking

关键字段:

  • System time:本地时间与 NTP 时间偏差
  • Stratum:当前时间源层级
  • Root delay / dispersion:网络延迟与时间源精度
  • Leap status:是否处于闰秒调整期

二、Chrony 时间同步服务

2.1 Chrony 特点

  • 轻量高效,启动快
  • 适合间歇联网设备(如笔记本、虚拟机)
  • 支持快速同步与高精度场景

2.2 安装与基本配置

dnf install chrony -y
systemctl enable --now chronyd

配置文件:/etc/chrony.conf

默认关键配置项:

  • pool ... iburst:指定时间源,iburst 加速初始同步
  • makestep 1.0 3:前3次若偏差 >1秒,直接跳变时间
  • rtcsync:启用系统时钟与硬件时钟(RTC)同步
  • driftfile:记录时钟频率偏差,用于重启后快速校准

2.3 实战:局域网时间同步架构

需求

  • node1:可访问外网,作为内部 NTP 服务器
  • node2、node3:仅主机模式,通过 node1 同步时间
  • 开放 192.168.88.0/24 访问权限
  • 启用详细日志、硬件时钟同步

操作步骤

在 node1 上:

  1. 修改 /etc/chrony.conf
    # 注释默认 pool,新增国内源
    pool ntp.org.cn iburst
    pool ntp.aliyun.com iburst
    pool ntp.tencent.com iburst
    
    # 允许局域网同步
    allow 192.168.88.0/24
    
    # 启用日志
    log measurements statistics tracking
    
  2. 重启服务并开放防火墙:
    systemctl restart chronyd
    firewall-cmd --add-service=ntp --permanent
    firewall-cmd --reload
    

在 node2/node3 上:

  1. 修改 /etc/chrony.conf
    # 注释默认 pool,指向 node1
    pool 192.168.88.101 iburst
    
  2. 重启服务:
    systemctl restart chronyd
    
  3. 验证:
    chronyc sources
    

三、SELinux 深层防火墙

3.1 什么是 SELinux?

  • Security-Enhanced Linux:基于强制访问控制(MAC)的安全机制。
  • 超越传统 DAC(用户/组权限),通过策略规则限制进程行为。
  • 即使程序被攻破,SELinux 也能限制其破坏范围。

比喻:你有房门钥匙(文件权限),但房东规定你只能待在客厅(SELinux策略)——即使有钥匙也不能进厨房。

3.2 SELinux 工作模式

模式 说明
Enforcing 强制执行策略,拒绝违规操作
Permissive 仅记录违规,不阻止(调试用)
Disabled 完全关闭 SELinux

查看状态

sestatus

临时切换模式

setenforce 0  # Permissive
setenforce 1  # Enforcing

永久配置

编辑 /etc/selinux/config

SELINUX=enforcing

需重启生效。

3.3 日志与排错

  • 日志位置:/var/log/audit/audit.log
  • 查询 AVC 拒绝记录:
    ausearch -m avc
    
  • 自动生成策略建议:
    audit2allow -a < /var/log/audit/audit.log
    

3.4 常用管理工具

命令 用途
semanage 管理端口、文件上下文等策略
restorecon 恢复文件默认 SELinux 上下文
chcon 手动修改文件上下文(临时)
sealert 图形化分析 SELinux 错误

示例:恢复文件上下文

restorecon /path/to/file

总结

  • 时间同步是分布式系统稳定运行的基石,推荐使用 chrony + 国内 NTP 源。
  • SELinux 是 Linux 的“安全保险”,不应轻易禁用,而应学会通过日志和工具正确配置。
posted @ 2025-12-31 10:29  ShiLiCoder  阅读(50)  评论(0)    收藏  举报