web-dev-qa-db-ja.com

ntpdにローカルサブネットのみを提供させる方法

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は、ファイアウォールルールと同様に、クライアントとサーバーの両方に適用されます!)

3
ndemou

いくつかのオプションがあり、ファイアウォールを配置する場所や使用するファイアウォールによって異なります。理想的には、サブネット上で制御できるファイアウォールが必要です。あまり理想的ではありませんが、NTPサーバーでホストレベルのファイアウォールのみを扱うことになります。どちらの方法でも、概念は同じです。

サブネットファイアウォールの場合:

  • A.B.C.10からのみサブネットからのUDPポート123を許可します
  • 他のすべてからUDPポート123を拒否します。

NTPサーバー上のホストファイアウォールの場合:

  • サブネット(およびローカルホスト)からのUDPポート123を許可する
  • 他のすべての場所からUDPポート123を拒否します(チェーンの後半のすべてのルールを拒否します)。

例えば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
2
Wesley

基本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ディレクティブは特定のホストとサブネットのみを許可します。

5
Kondybas

私はこれらの答えがひどく役に立たなかったので、これが私のために働いたものです。これは、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ネットワークを許可することもできます。

0
adam