NTPサーバのメモ

CH899WiFiの件で、指定されているNTPサーバ情報を調べた際の副産物として、NTPサーバに関するメモを残しておく

全体的な注意点として、同じところが提供しているNTPサーバでも「pool.ntp.org」の他に「0.pool.ntp.org, 1.pool.ntp.org,2.pool.ntp.org」など数字が異なる複数のサーバ名も設定していることが多い。

NTPサーバが1つしか設定できない場合は「pool.ntp.org」、複数指定できる場合は 数字の方を1つずつ指定する、という形で使い分ける。

ntp.org 関連

Linuxサーバなどの初期設定で使用されていることが多いもの

世界全体で統一されたサーバ名と、ある程度地域を絞って使用するサーバを限定するサーバ名がある。

統一 どうやったらpool.ntp.orgを利用出来るのでしょうか?
地域ごと Global — pool.ntp.org / Asia — asia.pool.ntp.org / Japan — jp.pool.ntp.org

NTPサーバ1つしか指定できない場合使うもの

pool.ntp.org

NTPサーバが複数指定できる場合使うもの

世界全体

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

アジアサーバ限定

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

日本サーバ限定

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

日本 mfeed 関連

インターネットマルチフィード(MFEED) 時刻情報提供サービス for Public によるNTPサーバ。

かなり早いうちから一般提供されているところ

PUBLIC NTP

NTPサーバ1つしか指定できない場合使うもの

ntp.jst.mfeed.ad.jp

NTPサーバが複数指定できる場合使うもの

IPv4用

ntp1.jst.mfeed.ad.jp
ntp2.jst.mfeed.ad.jp
ntp3.jst.mfeed.ad.jp

IPv6用

ntp1.v6.mfeed.ad.jp 
ntp2.v6.mfeed.ad.jp 
ntp3.v6.mfeed.ad.jp 

日本 NICT 公開 NTPサービス

情報通信研究機構(NICT)が提供しているNTPサーバ

NICTとしては提供サーバ名は1種類しか設定していないが、ntp.nict.jp を名前解決すると IPv4アドレスを5つ、IPv6アドレスを3つぐらい応答として返してくる。

日本標準時グループ 公開NTP

NTPサーバ1つしか指定できない場合使うもの

ntp.nict.jp

google 関連

Google Public NTP という形で公開している

このNTPは、うるう秒がある場合、本来は60秒を通知するところ、前後の間隔を微妙にあけてカウントをごまかすシステムを採用しています。このため、他のNTPシステムと混在させないことが推奨されています。

time.google.com

クライアントの構成 ページ見ると下記のホスト名も掲載されている

time1.google.com
time2.google.com
time3.google.com
time4.google.com

Android 14から time.android.com がNTPサーバとして指定されているが、内容は time.google.com のエイリアスになっている。
なお、AndroidのNTP設定は “adb.exe shell dumpsys time_detector” で確認できるらしい(AOSP 時刻の概要 – time_detector サービスネットワーク タイム検出システム)

facebook

Building a more accurate time service at Facebook scale」ということでfacebookは2020年3月ぐらいから独自のNTP/PTPサーバプログラムの開発 をしていて、一般向けのNTPサーバとしても使用できるようにしています。(下のほうの”Public NTP design decisions”のところにある)

time.facebook.com
time1.facebook.com
time2.facebook.com
time3.facebook.com
time4.facebook.com

Amazon/AWS

amazonがAWS向けに公開しているNTPサーバ(Amazon Time Sync)は 2022年11月からインターネットからでも利用できるようになりました。

Amazon Time Sync が公開 NTP サービスとしてインターネット経由で利用可能に
Precision clock and time synchronization on your EC2 instance

time.aws.com

なお、 time.amazon.com や kindle-time.amazon.com なども存在しているがこちらは一般向けではない模様

中国 ntp.org.cn 関連

2024/10/15 時点でWebを見ると404が多くて情報が読み取れないのだが、cn.ntp.org.cn や ntpdate.net で運営していると思われる中国系NTPサーバ群がある

404が多いのは以前からのようで、運営主体がよくわからないので、使わない方がよさそう。

中国 alibaba / aliyun.com 関連

中国 alibaba が運営しているクラウド系サービス aliyun.com が提供しているNTPサーバ群

マニュアル: 管理时间同步服务 – 阿里云NTP服务器地址列表

上記マニュアルにある”经典网络内网”と”专有网络VPC内网”は aliyunクラウド内限定サーバであるため、外部から使う際は”公网”の方になる

CH899wifiの指定先に「time.pool.aliyun.com」があるらしいのだが、これの出典がわからなかった。(昔は time.pool.aliyum.com だったらしい)

NTPサーバ1つしか指定できない場合使うもの

ntp.aliyun.com

NTPサーバが複数指定できる場合使うもの

ntp.aliyun.com
ntp1.aliyun.com
ntp2.aliyun.com
ntp3.aliyun.com
ntp4.aliyun.com
ntp5.aliyun.com
ntp6.aliyun.com
ntp7.aliyun.com

…ただ、2024/10/10 09:30に確認した時は、ntp.aliyun.com と ntp1.aliyum.com は別のIPアドレスが返ってきたけど、ntp2.aliyum.com~ntp7.aliyum.com はすべて ntp.aliyun.com のaliaseとして設定されているのはどういうことだよ

また、 time1.aliyun.com ~ time7.aliyun.com というのもあるようだが、こちらもすべてntp.aliyun.com のaliaseになっていた。

中国 tencent

中国のテンセントが運営しているクラウドサービス用に提供されているNTPサーバ群。alibabaと違ってちゃんと別のIPアドレスを返してきた。

NTP 服务概述

ntp.tencent.com
ntp1.tencent.com
ntp2.tencent.com
ntp3.tencent.com
ntp4.tencent.com
ntp5.tencent.com

以前は以下だったとのこと

time.cloud.tencent.com
time1.cloud.tencent.com
time2.cloud.tencent.com
time3.cloud.tencent.com
time4.cloud.tencent.com
time5.cloud.tencent.com

ロシア ntp-servers.net

2007年ぐらいからロシア独自のNTPサーバ群が提供されていた模様。ntp-servers.net という世界に向けたっぽいドメイン名だけど、ロシア向けサービスっぽい

NTP SERVERS – Server Address

ntp0.ntp-servers.net
ntp1.ntp-servers.net
ntp2.ntp-servers.net
ntp3.ntp-servers.net
ntp4.ntp-servers.net
ntp5.ntp-servers.net
ntp6.ntp-servers.net

知られてるけど公開といっていいのか微妙なやつ

OS標準設定になっていたりするので、存在を知っているけど、該当OS以外で使っていいのかよくわからないやつら

アメリカNIST

Windows 10などで設定されているNTPサーバの1つにもなっている time.nist.gov は、アメリカ National Institute of Standard and Technology (NIST)が提供しているNTPサーバ time.nist.gov は、NISTサイト上に直接の案内が見当たらない

Microsoft

Windows 10などで設定されているNTPサーバの1つにもなっている time.windows.com もNTPサービスに関する案内はない。

日本でWindowsを使用している場合、time.windows.com との時刻同期がうまくいかないことが頻発するため、国内の別サーバ ntp.nict.jp や ntp.jst.mfeed.ad.jp などを指定した方が良い。

Apple

iOS,MacOSなどで設定されているNTPサーバ time.apple.com , time-macos.apple.com , time-ios.apple.com は、存在自体は「エンタープライズネットワークで Apple 製品を使う」でデバイスがアクセスする先として明かされているが、これらのNTPサーバを一般的に使用してもよい、という記載はない。

SNMP v3の設定で出てくるAuthentication Passphrase, Privacy Passphraseって何?

SNMP v3の設定に出てくるユーザ名はまあよいとして、認証に関わる方が「パスワード(password)」だったり「パスフレーズ(passphrase)」だったり、変な表記揺れ?というのがある。

たとえば、BroadcomのSSL Visibility 5.4の「Create an SNMPv3 User」では「User Name(4~31文字)」に対して、「Authentication Passphrase」と「Privacy Passphrase」でどちらも8文字以上

Oracle ILO Managerの「SNMPv3 User Name and Password Requirements」だと「User Name(32文字以内)」に対して「Authentication Password(8~12文字))」と「Privacy Password(8文字以内)」

Huawei Atlas 800AI Training Server iBMCは「username」と「snmpprivacypassword(8~20文字)」

VMware vCenter Server 8.0/ESXi 8.0は「ユーザ」と「user’s authentication password」「user’s privacy password」で、7~40文字。

いろいろ入り乱れている。

じゃあ、RFCではどう定義されてるんだろ?と調べてみた

SNMP Research International, Inc の「SNMPv3 White Paper」を見ると、SNMPv3についてはRFC3410~RFC3416にかけて定義されているようだった。内容を確認していくと「RFC 3414 – User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)」がセキュリティに関するドキュメントだった。

こちらの後半「11.2 Defining User」の項目には「password」という記載はあるが「passphrase」という文字列はない。

「user’s authentication key or privacy key (or both)」という記載があるので各ユーザに対して「authentication key」と「privacy key」を設定することができる。このkey文字列は「a 16/20 octet value」であるが、8文字未満だと16/20 octet valueに足らない、ということはわかる。

また、ユーザーとパスワードが各機器で共通だとセキュリティ的に脆弱となるので「Localized-key」を使う、というような記載がある。

Authentication key/Authentication password/Authentication passphraseは8文字~20文字

Privacy key/Privacy password/Privacy passphraseは

WiMAX HOME 02をジャンク500円で手に入れたのでドコモSIMで使った(楽天モバイルは不可

秋葉原でUQ WiMAX HOME 02が本体のみ(電源無し) 500円で売っていた

裏面を見てみると製造年2020年7月、8月、12月などいろいろタイプがあった

電源は12V1.5Aなのだが、極性統一 EIAJ #4 というタイプのコネクタとなっている。

買った時はバッファローWiFiの12Vが使えるだろう、と軽く考えてたのですが駄目でした。

別途、5.5mm/2.1mmから極性統一#4(5.5mm/3.3mm センターピンあり)に変換するコネクタを調達しました。

変換コネクタが届くまでとりあえず手元にあった極性統一#4の12V 0.7Aのアダプタを使って起動テスト

nanoSIMをスロットに入れて電源ON

特に問題なくルータの管理画面にアクセスできたが、ドコモSIMで電波を掴むにはAPN設定以外にも設定が必要だった

[ネットワーク設定]-[基本設定]にある「通信モード」を「ハイスピードプラスエリアモード」に変更する必要がありました。

IIJmio SIMでAPNを設定する場合、[ネットワーク設定]-[プロファイル設定]にある「プロファイルリスト」で「no setup」となっているものを「選択」してから設定します。

このとき、IIJmioのページには「認証タイプ PAPまたはCHAP」と書いてあるのですが、HOME 02では「PAP」と設定しなければつながりませんでした。

また、設定後、5分ぐらい待たないと接続状態とならないようです。


2023/05/11追記

楽天モバイルSIMを入れて設定を試みたところ、ユーザ名とパスワードを未設定、ということはできませんでした。

ただ、適当な値を入れても大丈夫らしいので、設定してみたのですが、接続出来ず

よくよく使用できる電波仕様を確認してみると楽天モバイルが使用しているバンド3(LTE 1.7GHz)は非対応でした。

2023/05/12追記: 楽天モバイルでのau回線利用が拡大されるっぽいですが、au基地局側で設定されている場合のみ使えるって感じなので、基本的には使えないと思っておいた方がいいでしょう

https://twitter.com/Rakuten_Mobile/status/1656902083705176064

Sierra Wireless EM7330 のfirmwareまわりのメモ

ジャンク屋で買ったLTEカード EM7330 、firmwareについて気にしていなかったのですが、あったようなのでメモ

EM7330に関するサポートページ

ただ、ユーザ登録が必須っぽい?

・Firmware
AirPrime EM73xx/MC73xx FW Package Build 4837

EM7330は一番下に「Docomo」という列があって「SWI9X15C_05.05.65.00」となっていた。

・Firmware アップデート用ツール
Module Firmware Download Tool (FDT – command line tool for Windows)

・Windows用ドライバ
Windows Drivers for EM/MC Series Modules (Build 5087)

Windows Updateで持ってくるので気にしていなかったのですが、Windows用ドライバが配布されていました。

富士通サイトには 「Sierra Wireless EM7330 WWAN Driver + Firmware Updater」 があり、SWI9X30C_05.05.63.00 になる

閉鎖環境内でアラートメールの送信ができるだけのためのメールサーバ設定(AlmaLinux8/RHEL8/Oracle Linux8)

閉鎖環境で機器初期セットアップを行う際に、アラートメールの送信先を指定する必要があったりする。

その時に、メール送信テストが行えるような簡易的なLinuxサーバを作るためのメモ書きです。

なお、メールの送信先は「root@adosakana.local」としておいて、Linuxユーザのroot宛にメールが届くような設定です。

メールを読むときは /var/mail/root に届くのを直接見るか、mail/mailx/muttコマンドなどで見る想定です。

(1) AlmaLinux / RHEL / Oracle Linux 8の最小インストールを実施

(2) アップデート

「dnf update -y」でパッケージを最新に

(3) SMTPで使用するポート開け

「firewall-cmd –add-service smtp –permanent」で追加

# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
# firewall-cmd --add-service smtp --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client smtp ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
#

(4) postfixのインストール

「dnf install postfix」でpostfixをインストール

(5) postfixの設定ファイルを編集

まず、テストに使うメールアドレスのドメイン名を「mydomain=~」で定義(myhostname 定義はそのまま使った)

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = adosakana.local

メール送信者にドメイン名指定がない場合に、mydomainで設定した内容を適用するために「myorigin = $mydomain」

# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites.  If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
myorigin = $mydomain

どのNICからきたSMTP要求でも受付させるための「inet_interfaces = all」を定義

# RECEIVING MAIL

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

受信するメールを決めるために「mydestination =~」を指定。とりあえず全部受け取るような感じの設定にする

# Specify a list of host or domain names, /file/name or type:table
# patterns, separated by commas and/or whitespace. A /file/name
# pattern is replaced by its contents; a type:table is matched when
# a name matches a lookup key (the right-hand side is ignored).
# Continue long lines by starting the next line with whitespace.
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain

メール送信側のSSLプロトコル対応が古い場合を考慮して「smtpd_tls_security_level=none」と暗号化の要求レベルをなしにしておく

# Announce STARTTLS support to remote SMTP clients, but do not require that
# clients use TLS encryption (opportunistic TLS inbound).
#
#smtpd_tls_security_level = may
smtpd_tls_security_level = none

なお、「lost connection after STARTTLS from unknown」という形でSMTP接続を拒否される場合は、おそらく標準値の「smtpd_tls_security_level = may」で設定している場合。(TLS1.2以降を必須、とかそんな感じ)

(6) postfixを起動

「systemctl enable postfix」でOS起動時にpostfixも起動するように設定し、

「systemctl start postfix」でいますぐpostfixを起動させている

# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; disabled; vendor pr>
   Active: inactive (dead)
# systemctl enable postfix
Created symlink /etc/systemd/system/multi-user.target.wants/postfix.service → /usr/lib/systemd/system/postfix.service.
# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor pre>
   Active: inactive (dead)
# systemctl start postfix
#


おまけ: mutt コマンドでメールを送信しようとしたけど、送れない

とあるプロダクトのアラートメールの送信手法がmuttコマンドを利用していた。

「smtpd_tls_security_level = may」設定のpostfixにメールを送ると「lost connection after STARTTLS from unknown」で送れていなかった。

postfix側ではなく、mutt側で対策取れるかを確認したところ /etc/Muttrc.local などの muttの設定ファイル内で「set ssl_starttls = no」と設定して、STARTTLSの使用を取りやめることでメール送信に成功するようになった。

RHEL8.5サーバから mutt コマンドでメール送信する場合、SSL関連の設定を調べると以下の様なものがある

set ssl_verify_host = no
set ssl_verify_dates = no
set ssl_starttls = yes
set ssl_use_tlsv1_3 = yes
set ssl_use_tlsv1_2 = yes
set ssl_use_tlsv1_1 = yes
set ssl_use_tlsv1 = no
set ssl_use_sslv3 = no
set ssl_use_sslv2 = no

ただ、RHEL8.5で試してみたところ「ssl_use_sslv2」というオプションは存在していなかった。

# echo "test mail"  | mutt -F ~/testmuttrc -s "test mail title" 受信者 -d 10
レベル 10 でデバッグ中。
/root/testmuttrc 中の 14 行目でエラー: ssl_use_sslv2 は不明な変数
source: /root/testmuttrc 中でエラー
#

また、opensslコマンドのs_clientでSSLv2 SSLv3の接続ができるかを試験してみたところ、オプション自体が廃止されていた。

# openssl s_client -connect 172.17.44.50:25 -servername 172.17.44.50 -ssl3
s_client: Option unknown option -ssl3
s_client: Use -help for summary.
# openssl s_client -connect 172.17.44.50:25 -servername 172.17.44.50 -ssl2
s_client: Option unknown option -ssl2
s_client: Use -help for summary.
#