ウェブサイト検索

Debian に NTP サーバーとクライアントをインストールして構成する方法


ネットワーク タイム プロトコル (NTP) は、企業が社内のすべてのシステムのクロックを同期できる独自の機能を提供します。時刻同期は、アプリケーションのタイムスタンプからセキュリティ、適切なログ エントリに至るまで、さまざまな理由から重要です。

組織のシステムがすべて異なるクロック時間を維持している場合、トラブルシューティングの観点から、特定のイベントがいつ、どのような条件で発生しているかを判断することが非常に困難になります。

NTP は、すべてのシステムが正しい時刻を維持することを保証する簡単な方法を提供するため、管理者やテクニカル サポートの負担を大幅に軽減できます。

NTP は、「ストラタム 0」サーバーとも呼ばれる基準クロックとの同期を前提として動作します。他のすべての NTP サーバーは、参照サーバーからの距離に基づいて、下位レベルの階層サーバーになります。

NTP チェーンの開始点はストラタム 1 サーバーであり、常にストラタム 0 の基準クロックに直接接続されています。ここから、下位層のサーバーがネットワーク接続を介して上位層のサーバーに接続されます。

より明確な概念については、以下の図を参照してください。

ストラタム 0 または ストラタム 1 サーバーをセットアップすることもできますが、それには費用がかかるため、このガイドでは下位のストラタ サーバーのセットアップに焦点を当てます。

Tecmint の基本的なホスト構成は次のリンクにあるNTP です。

  1. NTPサーバーと時刻を同期する方法

このガイドが異なる点は、ネットワーク上のすべてのホストがパブリック NTP サーバーにクエリを実行するのではなく、1 台 (またはより良い方法として、複数の) サーバーがパブリック NTP システムに接続し、ネットワーク内のすべてのホストに時間を提供することです。ローカルネットワーク。

内部 NTP サーバーは、多くの場合、ネットワーク帯域幅を節約し、NTP 制限と暗号化によってセキュリティを強化するのに理想的です。これが最初の図とどのように異なるかを確認するには、以下の 2 番目の図を参照してください。

ステップ 1: NTP サーバーのインストール

1. 内部 NTP 構造をセットアップする最初のステップは、NTP サーバー ソフトウェアをインストールすることです。 Debian の「NTP」というソフトウェア パッケージには、現在、NTP 階層のセットアップに必要なサーバー ユーティリティがすべて含まれています。システム設定に関するすべてのチュートリアルと同様に、root または sudo アクセスが前提となっています。

apt-get install ntp
dpkg --get-selections ntp          [Can be used to confirm NTP is installed]
dpkg -s ntp                        [Can also be used to confirm NTP is installed]

ステップ 1: NTP サーバーの構成

2. NTP がインストールされたら、どの上位層のサーバーに時刻をクエリするかを設定します。 NTP の構成ファイルは「/etc/ntp.conf」に保存されており、任意のテキスト エディタで変更できます。このファイルには、上位サーバーの完全修飾ドメイン名、この NTP サーバーに設定された制限、およびこの NTP サーバーにクエリを実行するホストのその他の特別なパラメーターが含まれます。

構成プロセスを開始するには、上位レベルのサーバーを構成する必要があります。 Debian はデフォルトで Debian NTP プールを構成ファイルに置きます。これらはほとんどの目的には問題ありませんが、管理者は NIST にアクセスして特定のサーバーを指定したり、NIST のすべてのサーバーをラウンドロビン方式で使用したりできます (NIST が推奨する方法)。

このチュートリアルでは、特定のサーバーが構成されます。設定ファイルはいくつかの主要なセクションに分かれており、デフォルトで IPv4 と IPv6 用に設定されています (IPv6 を無効にする場合は、これについては後で説明します)。構成プロセスを開始するには、構成ファイルをテキスト エディタで開く必要があります。

nano /etc/ntp.conf

最初のいくつかのセクション (driftfilestatsdir、および statistics) はデフォルトのままで問題ありません。次のセクションには、このサーバーが時刻を要求する際に経由する上位サーバーが含まれています。各サーバー エントリの構文は非常に単純です。

server <fully qualified domain name> <options>
server time.nist.gov iburst â     [sample entry]

通常、このリストから複数の上位サーバーを選択することをお勧めします。このサーバーは、リスト内のすべてのサーバーにクエリを実行して、どれが最も信頼できるかを判断します。この例のサーバーは http://tf.nist.gov/tf-cgi/servers.cgi から取得しました。

ステップ 3: NTP 制限の構成

3. 次のステップは、NTP 制限を構成することです。これらは、ホストが NTP サーバーと対話することを許可 または 禁止 するために使用されます。 NTP のデフォルトでは、誰にでもサービスを提供しますが、IPv4 接続と IPv6 接続の両方での設定は許可されていません。

このサーバーは現在 IPv4 ネットワークでのみ使用されているため、IPv6 は 2 つの方法で無効にされました。 NTP サーバーで IPv6 を無効にするために最初に行ったのは、デーモンが起動するデフォルトを変更することでした。これは、「/etc/default/ntp」の行を変更することで実現されました。

nano /etc/default/ntp
NTPD_OPTS='-4 -g' [Add the ' -4 ' to this line to tell NTPD to only listen to IPv4]

メイン設定ファイル (/etc/ntp.conf) に戻ると、NTP デーモンはすべての IPv4/6 ホストと時間を共有するように自動的に設定されますが、設定は許可されません。これは、次の 2 行でわかります。

NTPD は、拒否されない限り許可に基づいて機能します。 IPv6 が無効になっているため、「restrict -6」行を削除するか、「 #」を使用してコメントアウトすることができます。

これにより、NTP のデフォルトの動作が変更され、すべてのメッセージが無視されます。奇妙に思えるかもしれませんが、アクセスが必要なホストのこの NTP サーバーへのアクセスを微調整するために制限句が使用されるため、読み続けてください。

ここで、サーバーは、サーバーに時刻を問い合わせることが誰に許可されているか、また NTP サーバーに対して他に何を行うことが許可されているかを知る必要があります。このサーバーの場合、172.27.0.0/16 のプライベート ネットワークを使用して制限スタンザが構築されます。

この行は、172.27.0.0/16 ネットワークのホストが一定時間サーバーにアクセスできるようにサーバーに通知します。マスクの後のパラメータは、サーバーへのクエリ時にこのネットワーク上のホストが実行できる内容を制御するのに役立ちます。これらの各制限オプションを理解してみましょう。

  1. 制限付き: クライアントがパケット数のレート制御を乱用した場合、パケットはサーバーによって破棄されることを示します。 Kiss of Death パケットが有効になっている場合、パケットは不正なホストに送り返されます。レートは管理者が設定できますが、ここではデフォルトを想定しています。
  2. KOD: 死のキス。ホストがサーバーへのパケット制限に違反した場合、サーバーは違反しているホストに KoD パケットで応答します。
  3. Notrap: モード 6 の制御メッセージを拒否します。これらの制御メッセージは、リモート ロギング プログラムに使用されます。
  4. Nomodify: サーバーの構成を変更する ntpq および ntpdc クエリを禁止しますが、情報クエリは引き続き許可されます。
  5. Noquery: このオプションは、ホストがサーバーに情報を問い合わせることを防ぎます。たとえば、このオプションを使用しない場合、ホストは ntpdc または ntpq を使用して、特定のタイム サーバーがどこから時刻を取得しているか、または通信している可能性のある他のピア タイム サーバーを特定できます。