A.B.C.x
のようなパブリックインターネットIPアドレスを持つサーバーがいくつかあります。ホストの1つ(A.B.C.10
)がntpdを実行していて、europe.pool.ntp.orgからの時刻を同期しています。
ここで、ホストのみを許可したいサブネットから(A.B.C.x
)がA.B.C.10
に同期できるようにします。デフォルトでは、全世界が私のNTPサーバーに同期できます。これを実現するにはどうすればよいですか?
私が見つけることができるすべての例は、私が特定のIPアドレスに同期していると仮定していますが、DNS名に同期しており、DNS名がx
。europe.pool.ntp.orgポイントであることをIPアドレスに伝えることができる限りtoは可変です。そのため、ファイアウォールで例外を設定できず、ntp.confでrestrict
オプションを使用できません。これも、IPアドレスのみを受け入れ、DNS名)を受け入れないためです。(Oh!とrestrict
は、ファイアウォールルールと同様に、クライアントとサーバーの両方に適用されます!)
いくつかのオプションがあり、ファイアウォールを配置する場所や使用するファイアウォールによって異なります。理想的には、サブネット上で制御できるファイアウォールが必要です。あまり理想的ではありませんが、NTPサーバーでホストレベルのファイアウォールのみを扱うことになります。どちらの方法でも、概念は同じです。
サブネットファイアウォールの場合:
A.B.C.10
からのみサブネットからのUDPポート123を許可しますNTPサーバー上のホストファイアウォールの場合:
例えば10.0.0.0/8を許可するには:
# allow 10.0.0.0/8
iptables -A INPUT -s 10.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT
# allow localhost
iptables -A INPUT -s 127.0.0.0/8 -p udp -m udp --dport 123 -j ACCEPT
# allow NTP packets _from_ your Host to everyone else
iptables -A OUTPUT -p udp --sport 123 --dport 123 -m state --state NEW,ESTABLISHED -j ACCEPT
# allow replies from hosts you've sent NTP packets to
iptables -A INPUT -p udp --sport 123 --dport 123 -m state --state ESTABLISHED -j ACCEPT
# the following is only useful if you have a policy ACCEPT for INPUT
iptables -A INPUT -p udp -m udp --dport 123 -j DROP
基本ntp.conf
ローカルネットサービスの場合は次のようになります
####
driftfile /etc/ntp.drift
disable monitor
restrict -4 default kod nomodify nopeer noquery notrap
restrict -6 default kod nomodify nopeer noquery notrap
restrict 127.0.0.1
restrict 127.127.1.0
restrict -6 ::1
restrict 10.0.0.0 mask 255.0.0.0
restrict 172.16.0.0 mask 255.240.0.0
restrict 192.168.0.0 mask 255.255.0.0
server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
####
最長の2行はデフォルトでサーバーへのアクセスを拒否し、他のrestric
ディレクティブは特定のホストとサブネットのみを許可します。
私はこれらの答えがひどく役に立たなかったので、これが私のために働いたものです。これは、NTP 4.2.6p5を実行しているマシン上にあります
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
restrict default ignore
restrict 127.0.0.1
restrict 127.127.1.0
restrict -6 ::1
restrict -4 <whitelist.ip.0> mask 255.255.255.255
restrict -4 <whitelist.ip.1> mask 255.255.255.255
restrict -4 <whitelist.ip.2> mask 255.255.255.255
server 0.pool.ntp.org iburst nomodify notrap nopeer noquery
restrict 0.pool.ntp.org iburst nomodify notrap nopeer noquery
server 1.pool.ntp.org iburst nomodify notrap nopeer noquery
restrict 1.pool.ntp.org iburst nomodify notrap nopeer noquery
server 2.pool.ntp.org iburst nomodify notrap nopeer noquery
restrict 2.pool.ntp.org iburst nomodify notrap nopeer noquery
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
私はこれが古いスレッドであることを知っていますが、誰かを助けるかもしれないと思いました。この例では、whitelist.ip.0、whitelist.ip.1、whitelist.ip.2をホワイトリストに登録されたホストに置き換える必要があります。明らかに、マスク引数を変更して、たとえば/ 24ネットワークを許可することもできます。