EndRun エンドラン Tempus LX NTPサーバ FAQ | |
情報システム営業部TOP-EndRun-Tempus LX- FAQ -お問い合わせ-資料請求フォーム |
|
||
および JPCERT-AT-2014-0001 “JPCERT/CC Alert: ntpd の monlist 機能を使った DDoS 攻撃に関する注意喚起”に関して: Tempus LXをインターネットに公開していないのであれば,この脆弱性への攻撃やDDoSアタックの心配はありません. また restrict により mode 6と7のクエリを制限することで,この脆弱性やDDoSアタックを回避できます. |
||
ntp.conf ファイルと restrict によるアクセス制御 注意:ntp.confのエディタによる変更は,同ファイルの書式文法を理解した方のみ行ってください.誤った編集はNTPサーバーとしての機能を損なう結果を招きます.通常の設定は ntpconfig スクリプトが行います. Sonoma D12とTempus LX と Meridian の持つ ntpデーモンは, http://www.ntp.org から配布されている標準的な ntpd を基にしています.認証機能と共に ntp.conf の restrict行によるアクセス制御も一般的な ntpd と同じ書式で利用できます.このファイルの変更はrootになり次のコマンドで行い, 変更後に再起動を実行することで変更が反映されます.
ntp.conf の初期設定は機種により異なり次の通りです.server行とfudge行はクロックドライバの設定ですから絶対に変更しないでください. 初期設定の中で restrict 行は一行のみであり,restrict default nomodify (RFS v2.5以前は restrict default notrust nomodify) となっています.これにより外部のタイムサーバーとの同期と,ntpq と ntpdcによる設定の変更を禁止しています.任意のシステムからの時刻の問い合わせと, ntpq と ntpdc によるクエリは受け付けます.notrust についてはこちらを参照ください. Sonoma の ntp.conf の内容 # Sonoma XXXX NTP Configuration File # Sonoma RefClock Driver # These lines must not be removed, even if you are operating as # a stratum II server!!! server 127.127.38.0 prefer <= この行は絶対に変更しないでください fudge 127.127.38.0 flag2 1 <= この行は絶対に変更しないでください driftfile /boot/drift <= この行は絶対に変更しないでください # Restrict Control/Query Access and Peering to ALL restrict default nomodify noquery nopeer <= この行は絶対に変更しないでください # The following line will Allow queries only from this host. # If you need to remotely query via ntpq or ntpdc, # add lines like this for each host you want to allow # remote queries from. DO NOT REMOVE this line for # the localhost. It must be present for the internal # status monitoring functionality of the box. restrict localhost nomodify <= この行は絶対に変更しないでください restrict 192.168.0.11 <= クエリを許すホストを追記 restrict 2001.268.347::123:123 <= クエリを許すホストを追記 # Authentication keysdir /etc <= この行は絶対に変更しないでください keys /etc/ntp.keys <= この行は絶対に変更しないでください trustedkey 1 2 <= ntp.keysの設定に対応して変更します # broadcast ff05::101 minpoll 4 ttl 1 Tempus LXの ntp.conf の内容 # Tempus LX/Unison/Meridian CDMA NTP Configuration File #Local Clock #server 127.127.1.0 #fudge 127.127.1.0 stratum 10 #Praecis Ce RefClock Driver server 127.127.38.0 prefer <= この行は絶対に変更しないでください fudge 127.127.38.0 flag2 1 <= この行は絶対に変更しないでください driftfile /boot/drift <= この行は絶対に変更しないでください # Restrict Control Access to ALL restrict default nomodify noquery <= この行は絶対に変更しないでください # The following line will Allow queries only from this host. # If you need to remotely query via ntpq or ntpdc, # add lines like this for each host you want to allow # remote queries from. DO NOT REMOVE this line for # the localhost. It must be present for the internal # status monitoring functionality of the box. restrict localhost nomodify <= この行は絶対に変更しないでください restrict 192.168.0.0 mask 255.255.0.0 nomodify <= クエリを許すホスト restrict 2001:xxx:xxx:: mask ffff:ffff:ffff:: nomodify <= クエリを許すホスト # Authentication keysdir /etc <= autokey に関する追加項目 V2.6以降 keys /etc/ntp.keys <= この行は絶対に変更しないでください ntpq のクエリで得られる情報はありふれたもののように見えますが,侵入を試みる者はその中から,ネットワーク遅延(ネットワーク構成を推定できる)や,ホスト名や,IPアドレスやOSバージョンといった重要な情報を見つけるかもしません.このため,タイムサーバへのアクセスを制限する機能が用意されています.この機能は restrict コマンドとキーワードにより制御されます.これらは /etc/ntp.conf ファイルに定義されており,次の書式を持っています.
ここで,アドレスはすべてドット区切りのIPアドレスとネットマスクです. フラグは制御される機能を表します. 例えば,IPアドレス 192.168.123.123 からの通信を無視させるには,次のアクセス制限を用います.
restrict コマンドを default キーワードと共に使い,すべての機能へのすべてのIPアドレスからのアクセスを制限する方法がよく使われます.
一旦,すべてのアクセスを制限した上で,必要な機能へのアクセスだけを有効にします.キーワードを持たない restrict 文はすべてのアクセスを有効にします.例えば,192.168.123.0/24 と 2001:xxx:xxx::/48のネットワークからだけはあらゆるリクエストを受け付けるようにするには次のコマンドを使います.
さらに細かい指定をするには次のような書式を使います.例えば,192.168.123.0/24と2001:123:123::/48のネットワーク上のシステムはこのタイムサーバにアクセスできるが,ntpd の動作時の設定を変更はできないようにするには次のコマンドを使います.
noquery キーワードを追加することもあります.キーワード noquery はntpqやntpdcコマンドを使いタイムサーバーの動作時の設定を問い合わせることを制限します. タイムサーバーの状態を問い合わせるだけであれば,さぽど危険なことはありませんが,例えば ntpsweep コマンドによりNTPピアのOSやプロセッサの種類を上位にさかのぼって特定することができます.この機能は noquery オプションを使い,問い合わせを制限しないかぎり可能です. OSの情報を隠すためにバージョン情報を改変できますが,ほとんどのシステム管理者はこの情報を隠蔽しません. なお,Tempus LX V2.6以降,すべてのSonoma(NTP Ver.4.2以降)において notrust は問い合わせに対しても,被問い合わせに対しても有効になっていることに注意してください. アクセス制御ファイルの例を以下に示します.
NTPクライエント側は次のようなアクセス制御の設定を行います.
適切な restrict 行により,NTPサーバーのセキュリティーを向上させることができます.しかし,NTPのようなUDPプロトコル上のサービスは,なりすまし攻撃に弱いことを忘れないで下さい.restrict 行によるアクセス制限は必ずしも絶対的に有効なものではありえません.アクセス制限の機能を認証機能と組み合わせて使うことにより,はじめてNTPのセキュリティーを格段に向上させることができます. 以下のフラグが用意されています. ignore 指定したホストからのすべてのパケットを拒否( ntpq と ntpdc からのクエリを含む). kod アクセス違反が起きたときにこのフラグがセットされていると, kiss-o'-death (KoD) パケットが送られます. KoD パケットは一秒に一回以上送られることはありません. limited discard コマンドに指定された最低値にパケットスペーシングが違反したときにサービスを拒否します.クライエントの履歴は ntpd のモニタ機能により保持されます.よって,limitedフラグのついたrestriction行があるかぎりモニタ機能はアクティブになります. lowpriotrap マッチするホストによりセットされたトラップは低優先順位であると宣言します.サーバーが保持できるトラップの数は限られています(現在値は3),それ以上のトラップ要求についてはサービスを拒否します.このフラグにより,優先度の低いトラップは通常の優先度のトラップで上書きできるように割り当てアルゴリズムを変更できます. nomodify 指定したホストからの ntpq と ntpdc からのサーバーの状態の変更要求パケット(NTPモードの 6 および 7 パケット)を拒否します.情報を提供するだけのクエリは受け付けます. noquery ntpq と ntpdc からのクエリ(NTPモード 6 および 7 パケット)をすべて拒否します.クライエントからの時刻の問い合わせには影響を与えません. nopeer 指定したホストをpeerとして扱いません. noserve 指定したホストからの ntpq と ntpdc のクエリ以外のパケット(NTPモード 6 および 7 パケット)を拒否します.結果としてこのホストへの時刻配信を行いません. notrap マッチングホストにモード6の制御メッセージトラップサービスを提供することを拒否します.トラップサービスは ntpdq 制御メッセージプロトコルの一部であり,"trap client"と呼ばれる,リモートのイベントロガープログラムが使うことために用意されています. notrust 暗号認証されない限り,指定したホストを時刻同期のためのサーバとして扱わず,またV2.6以降ではクライエントからの問い合わせにも答えません. ( RFS v2.6 以降に採用された ntpd Ver 4.2 以降と,それ以前のRFSが持つ ntpd Ver 4.1 では notrust の意味が異なります ntpd Ver 4.1 以前 notrust は "このホストなりサブネットは信用するな" の意味です. ntpd Ver 4.2 以降 notrust は "暗号化認証されていないすべてのNTPパケットを無視しろ"です.これによりリモートなタイムサーバはこのクライエント側タイムサーバと認証を取ろうとします. ) ntpport これはむしろアクセス制限フラグというより,マッチアルゴリズムを変更するためのものです. これにより,パケットのソースポート番号が 標準のNTP UDPポートである(123)場合にのみ,制限項目が適用されるようになります. version 現在のNTPバージョンにマッチしないパケットは拒否します. |
||
株式会社 昌新 技術部 |