NTPのセキュリティを考慮した設定

NTP(Network Time Protocol)のセキュリティを考慮した設定についてまとめました。

下記資料を参考にしました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
 
 
※目次をクリックすると目次の下部にコンテンツが表示されます。

NTPの概要
・NTPは、ネットワークを介してシステムクロックを調整するのに使用されます。
 コンピュータのクロックは必ずしも正確というわけではなく、調整しない状態が続くと時間がずれてしまいます。
 
・NTPサーバーを使った時間管理によって、絶対的な時間を正確にする事に加えて、ネットワーク内のマシンで時間を一致させる事が出来ます。
 複数のマシンが関係した障害が発生した場合のログ解析に役立ちます。
 
・デフォルトでインストールされているntp以外に、OpenNTPDというソフトウェアもあります。
 SNTP(Simple Network Time Protocol)で実装されていて、別途インストールする必要がありますが簡単に設定はできるようです。

NTPクライアント
ntpdをクライアントとして使用する場合の設定方法です。
 
1)サービス or クーロン
 
①サービス
 
サービスとしてntpdを各ホストで実行する事が可能。
 クライアントとして設定すれば、外部からのntpプロトコルによるネットワークアクセスを無視するようにする事も出来ます。
 ただしクライアントマシンにネットワークリスナーを追加する事になるので推奨はされていないようです。
 
②cron
 
cronを使ってntpdを定期的に実行することが推奨されています。
 
2)NTPクライアントの設定ファイルのセットアップ
 
・/etc/ntp.confの設定内容
 
server [ntpサーバー名 or IPアドレス]
 
そのほか認証や暗号の設定も出来ます。
 
3)cronを使ってntpdを実行
 
・cron設定ファイル
/etc/cron.d/ntpd
 
・設定例
15 * * * * root /usr/sbin/ntpd -q -u ntp:ntp

※オプションの説明
 
・-q
時刻設定後すぐにexitする
・-u
特定のユーザーで実行する
 はじめて時刻を設定する場合は”-g”オプションをつけて上記コマンドを実行します。
このオプションをつけると時刻が大幅にずれている場合は時刻の設定を行わないようにできます。

NTPサーバー
1)NTPサーバーの概要
 
・サイト内のNTPサーバーは、ネットワーク内の他のマシンからの時刻取得のリクエストを許可するように設定します。
 
・NTPサーバーは、自身の時刻をパブリックなタイムサーバなどに接続して取得する必要があります。
 
・設定ファイルは、/etc/ntp.conf
 
2)NTPサーバーの自動起動設定
 

# chkconfig --list ntpd
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
 
# chkconfig ntpd on

 
3)NTPサーバーへのデフォルトアクセス設定
 
①デフォルトでntpdに対するすべてのアクセスを禁止する設定
 
ntpdはrootで実行され、外部からのネットワークコネクションも受ける事が出来る複雑なソフトウェアなので、許可されていないマシンによるネットワークアクセスに対して保護しなければなりません。
 
/etc/ntp.confに下記設定を行います。
 
restrict default ignore
 
この設定は、サーバー、クライアント、ポリシー設定によって明示的に許可していないすべてのマシンからのすべてのアクセスを拒否するntpdの内部権限を使用しています。
 
②ntpd4.2.6p5-1での設定内容
 
restrict default kod nomodify notrap nopeer noquery
 
・kod
アクセスコントロールリストに”limited”フラグが存在し、パケットが”discard”コマンドで設定されてレート制限を超過した場合は、kiss-o’-death (KoD)を送信する。
 
・nomodify
サーバーの状態を変更しようとするntpq、ntpdcを拒否する。
 
・notrap
マッチするホストに適用するmode 6 control message trap serviceを使用しない。
 
・nopeer
認証されていなければアソシエーションを形成するパケット拒否する。
 
・noquery
ntpqとntpdcクエリーを拒否する。タイムサービスには影響しない。
 
4)リモートからの時刻同期の許可設定
 
/etc/ntp.confで下記のように設定します。
 
①IPアドレスで指定する場合
 
restrict サーバーのIP mask 255.255.255.255 nomodify notrap noquery
server サーバーのIP
 
②DNS名で指定する場合
 
restrict DNS名 nomodify notrap noquery
server DNS名
または
pool DNS名
 
③設定例
 
日本標準時(JST)を使用する場合
 
restrict ntp.nict.jp nomodify notrap noquery
pool ntp.nict.jp
 
5)クライアントからのアクセスを許可する設定
 
①/etc/ntp.confの設定
 
許可する自ネットワークのネットワークアドレスをmynetip、ネットワークマスクが255.255.255.0(/24)の場合、下記記述を追加します。
 
restrict mynetip mask 255.255.255.0 nomodify notrap
 
②iptablesでntpプロトコルの通信を許可
 
/etc/sysconfig/iptablesに下記設定を追加します。
 
-A RH-Firewall-1-INPUT -s mynetip/24 -m state –state NEW -p udp –dport 123 -j ACCEPT
 
又は
 
-A INPUT -s mynetip/24 -m state –state NEW -p udp –dport 123 -j ACCEPT

関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • nmapでオープンしているポート番号とバージョンを確認
  •  
    yum、rpmパッケージ、サービス
  • CentOSで不要なサービスは起動しないようにする
  • RPMパッケージのインテグリティチェック
  •  
    パーミッション
  • cronで使用するファイルのパーミッション設定
  • CentOSのumaskの設定
  • ユーザーホームディレクトリ内の権限設定をセキュアにする
  • CentOSのパスワードファイルのパーミッション設定
  • findコマンドでファイル書込権限をいっせいにチェック
  • findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
  • findコマンドで所有者、グループが存在しないファイルを抽出
  •  
    ログイン、認証、パスワード、アカウント制御
  • ログイン時などに表示されるシステムバナーを変更するには?
  • CentOSのユーザーアカウントのパスワードポリシーを設定
  • pam_cracklibモジュールでパスワードポリシーを設定
  • pam_unix.soモジュールを使って過去のパスワード再使用を制限する
  • システムコンソールでのrootログインを制限する方法
  • suコマンドによるrootへのスイッチを制限する
  • root権限でのコマンド実行、sudoだと監査ログが取得できる
  • デーモン用アカウントなどに対しシェルを使用を無効にする
  • パスワード認証を失敗時にアカウントをロックアウトする設定
  • rootアカウントのPATH環境変数のセキュリティについて
  •  
    auditdでシステム監査
  • auditdを使ってシステム監査
  • auditdのログ容量の設定
  • auditd監査ルールの設定方法
  • auditdで時間設定変更操作を監査する
  • auditdでユーザー・グループ設定ファイル変更操作を監査する
  • auditdでネットワーク関連の設定変更を監査する
  • auditdでログイン記録のログファイルの変更を監査する
  • auditdでファイル所有者や権限の変更に関するイベントを監査する
  • auditdでsetuid、setgidプログラムの実行を監査する
  • auditdでマウント操作を監査する
  • auditdでファイル削除操作を監査する
  • auditdでsudo設定ファイルに対する操作を監査する
  • auditdでカーネルモジュールのロード、アンロードを監査する
  • マシン再起動後にauditdの設定変更を有効にする設定
  • ausearch、aureportで監査ログのサマリレポートを作成
  •  
    ツール
  • NTPのセキュリティを考慮した設定
  • セキュリティを考慮してX Windowsを設定または削除する方法
  • ファイルの改ざん対策用にTripwireを導入
  • CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
  •  
    トラブルシューティング
  • アイドルのシェルを自動で強制終了させるには?
  • CentOSでコアダンプを無効にする方法
  • Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
  • CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です