如何在pfSense上配置NTP服务器

在本教程中,您将学习如何在pfSense上配置NTP服务器。 pfSense 该软件是FreeBSD的免费,开放源代码定制发行版,专门用于完全通过Web界面进行管理的防火墙和路由器。除了是功能强大,灵活的防火墙和路由平台之外,它还包含一长串相关功能以及允许进一步扩展的软件包系统。这些功能之一就是提供NTP服务的能力。

NTP(网络时间协议)用于通过在Internet或本地网络上同步计算机时钟,或遵循解释了GPS,DCF-77,NIST或类似时间信号的精确硬件接收器来保持计算机时钟的准确性。

在pfSense上配置NTP服务器

缺省情况下,pfSense附带NTP守护程序,该守护程序控制与已连接设备的时间同步。这样,通过最少的配置,pfSense可以充当NTP服务器。

配置pfSense时间同步

在能够为连接器提供准确的时间服务之前,确保pfSense时间与其他时间服务器同步并且其时间准确是明智的。

为此,请转到pfSense Web界面并导航至 系统>常规设置

在下面 本土化 配置部分;

  • 设置正确的时区(地理区域),例如我们的时区是 欧洲/尼科西亚
  • 定义您的时间服务器。在这种情况下,我们使用默认的pfSense NTP池服务器, 2.pfsense.pool.ntp.org
  • 如果您将主机名用于时间服务器,请确保在pfSense中已设置DNS以进行名称解析。

在pfSense上配置NTP服务器

pfSense时间同步后,您现在就可以对其进行配置,以为您的网络设备提供时间服务。

在pfSense Web界面上,导航至 服务> NTP

在默认情况下 设定值 标签,是 NTP服务器配置 选项。

选择NTP服务接口

选择一个接口,NTP服务守护程序将在该接口上侦听或绑定。 pfSense NTP服务器将使用此接口从远程主机以及服务器NTP客户端发送时间查询。我们在这里使用三个接口。 局域网,OPT1,本地主机

pfSense NTP服务器接口

要选择比界面更多的内容,请按住 Ctrl 选择时点击按钮。

配置NTP时间服务器

在本部分中,您需要配置pfSense NTP服务将从中查询时间同步的时间服务器。此处定义的服务器通常是根据服务器上定义的时间服务器预先填充的 系统>常规设置,本地化部分。

建议您至少定义三个时间服务器以确保时间准确性。

在本教程中,我们将添加以下公共池时间服务器;

0.europe.pool.ntp.org
1.europe.pool.ntp.org
2.europe.pool.ntp.org
3.europe.pool.ntp.org

基本上,这些是位于我们所在地区的服务器。您可以在以下位置找到您所在地区/大陆的NTP池时间服务器列表 NTP公共池时间服务器

因此,请点击 按钮输入您首选区域的NTP池主机名。

添加时间服务器时,可以选择其中一种,即在所有定义的服务器上设置首选时间服务器(更喜欢),禁止使用特定的时间服务器(没有检查),以及该服务器是否为时间服务器池(池子)。

如何在pfSense上配置NTP服务器

注意:关于选择首选时间服务器,即使您将所有定义的时间服务器选择为 更喜欢,击中 保存 按钮。

对于其他配置选项,我们将启用NTP统计信息的日志记录和RRD图,并将这些选项保留为默认设置。

注意:

  • 孤儿模式 当没有其他时钟可用时,允许使用系统时钟。设置的数字定义实时服务器的层位置。

pfSense NTP服务器日志记录

请点击 保存 保存更改。

配置对NTP服务的访问控制

点击 访问控制列表 标签以定义如何允许NTP客户端与NTP服务器交互。一些默认的访问限制选项包括:

  • Kiss-o'-Death (KoD) :对经常发送的NTP客户端请求进行速率限制
  • nomodify:防止通过ntpq和ntpdc查询对配置进行任何更改。这可以用来防止放大攻击。
  • notrap:防止 ntpdc 控制消息协议陷阱。
  • nopeer:禁用任何新的对等方关联形式。
  • noquery:否认 ntpqntpdc 查询,而不是时间查询。但是,这会禁用NTP状态页面。

定义网络访问限制,以允许特定的服务器集从pfSense NTP服务器获取时间服务。要添加更多网络/主机,只需单击 按钮。请注意,对于定义的每个网络/主机,您都可以指定其特定的限制选项。

pfSense NTP服务器访问控制列表

对于GPS和每秒脉冲(PPS)配置选项,我们将使用默认设置。

配置NTP客户端

接下来,您现在可以配置客户端系统以查询其时间服务并将其与pfSense时间服务器同步。

在本教程中,我们将Ubuntu 20.04系统用作测试NTP客户端。

同步之前,请在客户端上检查当前时间。

timedatectl status
               Local time: Fri 2020-06-12 22:55:20 EEST
           Universal time: Fri 2020-06-12 19:55:20 UTC 
                 RTC time: Fri 2020-06-12 19:55:20     
                Time zone: Asia/Nicosia (EEST, +0300)  
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: no

如您所见,时间将近一个月。

使用ntpdate手动同步时间

运行以下命令在Ubuntu 18.04上安装ntpdate

apt install ntpdate -y

要使用手动与NTP服务器同步时间 ntpdate;

ntpdate 192.168.57.100
14 Jul 22:24:35 ntpdate[7189]: adjust time server 192.168.57.100 offset -0.003687 sec

好吧,手动时间同步似乎一切都很好。

但是,如果您得到这样的输出;

14 Jul 22:32:39 ntpdate[7205]: no server suitable for synchronization found

那么很可能是您的防火墙阻止了您。要找到答案,请导航至 状态>系统日志>防火墙。点击 动态检视 然后单击过滤器图标。输入客户端系统的IP地址作为源IP地址,将目标端口设置为NTP端口123,将协议设置为UDP。

如何在pfSense上配置NTP服务器

然后点击 套用筛选器

接下来,重新运行上面的ntpdate命令。在防火墙日志过滤器的底部,您应该查看是否有任何拒绝的条目。参见下面的例子;

如何在pfSense上配置NTP服务器

如果请求被拒绝,请调整防火墙规则以允许访问NTP服务器端口123 / UDP。

如何在pfSense上配置NTP服务器与NTP自动同步时间

运行以下命令以安装ntp;

apt install ntp -y

编辑NTP配置文件,并将pfSe​​nse NTP接口地址设置为NTP服务器地址。

vim /etc/ntp.conf

注释掉默认的NTP服务器,并添加您的pfSense服务器接口IP地址。

...
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
#
## Use Ubuntu's ntp server as a fallback.
#pool ntp.ubuntu.com
server 192.168.57.100
...

保存并退出配置。

重新启动NTP服务守护程序。

systemctl restart ntp

验证时间同步

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.57.100  129.242.234.4    2 u   20   64    1    0.574  -17.818   0.873

重新检查客户的时间;

timedatectl status
               Local time: Tue 2020-07-14 23:17:25 EEST
           Universal time: Tue 2020-07-14 20:17:25 UTC 
                 RTC time: Fri 2020-06-12 20:17:05     
                Time zone: Asia/Nicosia (EEST, +0300)  
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: no 

然后你去。

您可能想知道为什么timedatectl状态显示为时钟未同步且ntp服务处于非活动状态。这是因为,我们没有将Systemd timesyncd用于NTP同步。

这标志着我们关于如何在pfSense上配置NTP服务器的指南的结尾。

进一步阅读

pfSense NTP服务器配置

Sidebar