问题标签 [ntpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 检查 ntpd 可执行文件的有效性以防篡改时间敏感信息
我正在编写一段 C++ 代码,它将保存加密存档的访问密钥,并且不允许在 Linux 系统上的某个日期之前查看它。
完整的代码如下(是的,它很丑陋并且有一个system()
电话。我觉得这对于给定的情况是必要的):
我的问题如下。具有特权的用户必须无法访问该密钥sudo
(只有手中的可执行文件),但是对于这样的用户来说,简单地删除/bin/ntpd
并用一个在调用时返回 0 的虚拟程序替换它会相对容易,从而避免了时间篡改保护。
我考虑使用校验和来确保程序的有效性,但基于临时更新 ntp 包也可能更改 ntpd 并使密钥无法访问这一事实而放弃了这一点。我也不能从包管理器中调用 ntpd 的校验和,因为代码必须可以跨多个发行版移植。
对于如何确保程序的有效性(或完全不同的方法来实现相同的结果),你们有什么想法吗?
PS:在你提到它之前,我确实计划混淆源代码以避免反编译器利用,所以这不会成为问题。
ntp - ntpq -c rv 和 ntpdate -q 有什么区别?
我正在尝试调试 ntp 问题,这两个命令返回不一致的结果。例如,在对同一服务器的查询中,这里有一些不匹配的字段。
具体来说,参考时间不匹配,滤波器延迟似乎关闭了一个数量级,偏移量不匹配,色散似乎没有关系。
java - 用java执行ntpdate,得到输出值
我想在我的 java 程序中执行这个命令并检查它是否成功执行。
我用命令创建了一个 bash
并用java执行
但是我没有输出,没有行stdInput
,如何检查命令是否正确执行?
如果我在 bash 文件末尾添加例如 Echo 更新,我会在 stdInput 中得到它,但这并不意味着时间已更新
linux - 为什么NTP监听广播IP
这是一台物理 SBC 机器,客户创建了许多虚拟 IP(它与远程通信中的 relem 和 vnet 概念有关)
在这里,我们创建了eth2
和eth3
作为信号接口。eth2
并被eth3
视为 avlan
并绑定 relemeth2:6
和eth3.1238:0
这些vlan
。
在我们的例子中,我们丢弃了eth2
和eth3
from,ntp.conf
因为有多个 relem 绑定eth2
,eth3
因此ntp
尝试为每个会话创建一个套接字,问题是所有文件描述符都用尽了。这就是为什么我们只添加eth0
接口并且我们不想npt
监听任何接口,除非eth0
我使用了接口忽略通配符选项。
但是我们可以看到,在对其进行更改后,ntp.conf
它正在尝试侦听广播地址,并且由于意外错误而无法绑定。
ntp.conf
呸呸呸
任何人都可以告诉我如何解决这个错误吗?
linux - 设备从 ntpd 获取时间,但“ntpq -p”命令超时
在我们的代码中,我们使用 ntpd 从服务器获取时间并设置时间。执行 ntpd 命令后,我们正在运行“ntpq -p”来检查服务器偏移量。我们在不同进程中运行 ntpd 的命令,并在完成该 ntpq 之后。
/bin/ntpd -g -c /etc/ntp.conf /bin/ntpq -p
在一个实验室设置路由器中,我们能够观察到该设备正在正确获取时间,但是当我们运行“/bin/ntpq -p”时,它会阻塞一段时间并且它正在返回超时。在放弃代码之前,我们正在尝试连续一小时。仅在实验室设置中,它会出现问题。在实验室外,设备连接到其他路由器的地方工作正常。当我拿一个在实验室外工作的设备(连接到另一个路由器)并且如果我将设备连接到实验室路由器时,它会超时。
我认为实验室路由器设置有问题,这就是它无法连接到 ntp 服务器的原因。但我想知道设备是否无法联系 NTP 服务器,设备如何获得正确的时间。设备从 ntp 服务器获取时间但 ntpq -p 返回超时,这很奇怪。另一个奇怪的行为是,如果我重新启动路由器(设备正在运行),设备工作正常,直到设备重新启动,如果我重新启动设备,也会发生相同的超时。谁能告诉我这种奇怪行为的原因。
system-calls - NTP 审计 - 失败的 adjtimex 系统调用?
作为新 PCI-DSS 服务器部署的一部分,我正在配置一个完全可审计的 NTP 时间更改历史记录。一切都按预期工作,但是我现在看到与时间更改操作相关的每秒写入的审计日志。经过大量搜索,我仍然无法理解发生了什么。该问题显示在 /var/log/messages 中,其中不断写入审计消息。
我的研究表明,系统调用“exit=5”消息意味着时钟没有正确同步:
adjtimex() 系统调用响应“#define TIME_BAD 5 /* 时钟不同步 */”。
因此,总而言之,时钟似乎已正确同步(据我所知),但它不断变化 - 轮询间隔设置为默认 64 秒的意外行为。
有人可以提供建议吗?我在下面包含了尽可能多的细节:
审核时间规则:
系统时间与时钟时间:
审计输出示例:
同步统计:
附加信息:
ntpd - 如何在服务器之间同步时间?
我试图在两台机器之间同步时间,但不幸的是我没有这样做。我总是得到
错误。我怀疑限制选项是错误的。我目前的设置是
我的ntpd服务器是192.168.23.140,客户端服务器是192.168.23.141,我的设置是否正确,如果不正确,请问如何设置?
ntp - 如何使用 ntpq 删除和更改 ntpd 配置?
假设 ntpd 在启动时读取以下配置:
如 ntpq 文档中所述,可以使用:config [...]
.
发送的命令将被添加到运行时配置中,因此如果我想添加一个新服务器,我运行ntpq -c ":config server <server3_IP>"
. 如果我想删除一个关联,ntpq -c ":config unpeer <server2_IP>"
.
我怎样才能
- 改变配置?例如,由 keyID 3 标识的密钥不再受信任,必须从
trustedkey
s中删除 - 删除现有配置?例如,我如何删除
requestkey
?
我需要这些功能,因为我必须能够在运行时重新配置 ntpd 而无需重新启动它。
openwrt - 在 OpenWRT 中,clock_gettime() 与 CLOCK_REALTIME 和 CLOCK_TAI 总是得到相同的结果
CLOCK_TAI 基本上设计为 CLOCK_REALTIME(UTC) + tai_offset。
我使用代码来测试 TAI 和 REALTIME 之间的区别。
但是我在Raspberry pi和OpenWRT上得到了不同的结果。
我还从以下网址下载了leapfile:https ://www.ietf.org/timezones/data/leap-seconds.list
并添加leapfile "/path/to your/leap-file"
/etc/ntp.conf
在这个时候,diff seconds 应该是 37 秒(检查leap-seconds.list)
这是我在 Raspberry pi 中的预期结果:
(1497357787-1497357750 = 37)
但是当我在 OpenWRT 中做同样的事情时。REALTIME 和 TAI 几乎相同。
openWRT 信息:
- openwrt:barrier_breaker 14.07
- uClibc 0.9.33.2
- 带有 Linaro 增强功能的 gcc 4.8.x
- ntpd - NTP 守护程序 - 版本。4.2.8p10
- Linux 内核:3.10.14 mips
有人可以给我一些建议吗?
centos - ntpdate 显示偏移但不同步
我正在尝试使用 ntpdate 命令对 2 个 Centos VM 进行时间同步,但它不起作用。
运行 ntpdate 命令 ( ntpdate reference.time.machine
) 时,它显示一个偏移量:step time server 10.0.0.116 offset 156.479697 sec
但是当我运行“日期”命令时,它仍然显示没有更正的时间。
任何想法 ?
谢谢。
西尔万。