麒麟系统搭建离线NTP服务器,让局域网内windows系统同步其时间,并付排错避坑思路
在麒麟系统中搭建NTP服务器可以通过以下步骤完成:
我麒麟系统IP 是:10.236.147.13
我windows服务器是:10.236.147.11-12
一般麒麟系统都是默认装了NTP服务了,如果没装,如果内网环境的话,那么可能需要挂载镜像,部署yum源
安装命令如下:
1. 安装NTP服务
- 基于RPM包管理的系统(如银河麒麟V10 SP1及以上版本):
yum install ntp -y
2. 配置NTP服务器
- 编辑NTP配置文件
/etc/ntp.conf
:vim /etc/ntp.conf
- 配置内容:
- 注释默认的NTP服务器:
#server 0.centos.pool.ntp.org iburst #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst
- 添加自己的NTP服务器:
server 127.127.1.0 iburst # 本地时钟 fudge 127.127.1.0 stratum 10 # 设置本地时钟的层次
- 设置访问权限:
restrict default kod nomodify notrap nopeer noquery # 默认限制所有客户端 restrict 10.236.147.11 mask 255.255.255.0 nomodify notrap # 允许10.236.147.11 restrict 10.236.147.12 mask 255.255.255.0 nomodify notrap # 允许10.236.147.12 restrict 127.0.0.1 # 允许本地访问 restrict -6 ::1
- 注释默认的NTP服务器:
3. 启动并配置NTP服务
- 启动NTP服务:
systemctl start ntpd
- 设置开机自启:
systemctl enable ntpd
4. 配置防火墙规则
- 开放UDP 123端口:
firewall-cmd --permanent --add-port=123/udp firewall-cmd --reload
5. 验证NTP服务
- 查看NTP服务状态:
systemctl status ntpd
- 检查时间同步状态:
如果看到某个服务器前面有ntpq -p
*
号,表示时间同步成功。
6. 客户端连接
windows时钟那里配置也可以使用命令行:
命令行:
检查Windows客户端的时间服务配置
确保Windows客户端的时间服务配置正确。您可以使用以下命令来配置:
w32tm /config /manualpeerlist:10.236.147.13,0x8 /syncfromflags:MANUAL
net stop w32time
net start w32time
w32tm /resync
注意事项
- 时间源选择:可以选择可靠的外部NTP服务器(如
ntp1.aliyun.com
、time.nist.gov
),也可以将本地服务器设置为时间源。 - 防火墙配置:确保防火墙允许UDP 123端口的流量。
- 网络连通性:确保服务器和客户端之间网络连通,能够正常访问NTP服务器的IP地址。
- 时间校准:在配置NTP服务之前,建议先手动校准服务器的时间,以确保初始时间的准确性。
我在同步时遇到了这个问题,排错。困扰了我半天。不过最后还是解决了。
原因就是SELINUX作祟
解决办法就是,NTP服务器内的selinux,用getenforce 查看是disabled,没错吧?但是谁能想到,配置文件中是enforcing
SELINUX=enforcing
是 Linux 系统中与 SELinux(Security-Enhanced Linux)相关的配置。
1. SELinux 的概念
SELinux 是一种安全模块,它通过为 Linux 系统提供强制访问控制(MAC)机制来增强系统的安全性。它定义了系统中主体(如进程)和对象(如文件、网络端口等)之间的访问规则,严格限制主体对对象的访问权限,从而防止恶意行为和安全漏洞的利用。
2. SELINUX=enforcing
的含义
enforcing
模式- 当
SELinux
配置为enforcing
模式时,SELinux 会强制执行其定义的安全策略。这意味着系统会严格按照策略规则来限制进程对资源的访问。 - 如果某个进程试图执行违反策略的操作(例如访问未授权的文件或网络端口),SELinux 会阻止该操作并记录相关事件到日志中。
- 这种模式是 SELinux 的默认和推荐运行模式,因为它提供了最强的安全性保障。
- 当
3. 其他相关模式
除了 enforcing
模式,SELinux 还有以下两种模式:
permissive
模式- 在
permissive
模式下,SELinux 会记录违反策略的行为,但不会强制阻止这些行为。这种模式主要用于测试和调试 SELinux 策略,帮助管理员发现潜在的策略冲突,而不会影响系统的正常运行。
- 在
disabled
模式- 在
disabled
模式下,SELinux 完全关闭,不会对系统安全进行任何强制控制。这种模式通常不推荐使用,因为它会使系统失去 SELinux 提供的安全保护。
- 在
4. 配置文件
SELinux
的状态通常在 /etc/selinux/config
文件中设置。例如:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=disabled
SELINUX=enforcing
5. 应用场景
- 服务器环境
- 在服务器环境中,
SELinux=enforcing
是推荐的配置,因为它可以有效防止未经授权的访问和攻击,保护系统资源和数据的安全。
- 在服务器环境中,
- 桌面环境
- 在桌面环境中,虽然 SELinux 也可以提供安全保护,但由于其复杂性可能会对用户体验产生一定影响。不过,许多现代桌面发行版(如 Fedora)也默认启用
enforcing
模式。
- 在桌面环境中,虽然 SELinux 也可以提供安全保护,但由于其复杂性可能会对用户体验产生一定影响。不过,许多现代桌面发行版(如 Fedora)也默认启用
总之,SELINUX=enforcing
表示系统启用了 SELinux 的强制访问控制机制,以增强系统的安全性。
给SELINUX=enforcing
变为 SELINUX=disabled,重启selinux就可以了。。。