「ntpd」の「monlist機能」からの DDoS攻撃対策について
「ntpd」の「monlist機能」からの DDoS攻撃対策についてメモしました。
システム内の時間を正しい時間に同期させる
NTPサーバー
のプログラムntpd
の一部バージョンに
NTPサーバーの状態を確認する機能monlist
の脆弱性が見つかったそうです。
これはmonlist機能
がNTPサーバーへのリクエストに
大きなデータが返されることを利用し
送信元のIPアドレス
を偽装して第三者のwebサーバーなどに
大量のデータを送りつけることができるそうです。
今後もこのような攻撃が続くと想定されています。
脆弱性の対象
NTP Project の情報によりますと、以下のバージョンが影響を受けます。
「ntpd 4.2.7p26」以前のバージョン
安定版の 4.2.6.x系はすべて影響を受けます。
バージョンの確認方法
コマンドラインからサーバーへ接続し以下のコマンドを入力します。
terminal$ ntpd -v
下記の場合バージョンは4.2.6系
です。
対策が必要になります。
terminal$ ntpd - NTP daemon program - Ver. 4.2.6p5
下記の結果であればntpd
はインストールされていません。
bash-bash: ntpd: command not found
対策について
簡単な対策としては2通りあります。
- 対策1 修正済みバージョンへアップデート
- 対策2 monlist機能を無効化
対策1 修正済みバージョンへアップデート
修正済みのバージョンは、以下のようですです(2014/2/10)。
ntpd 4.2.7p421(開発版)
下記からダウンロードできます。
http://www.ntp.org/downloads.html
yum
になかったのでntpd 4.2.7p421(開発版)
を
サイトからインストールしてみます。
※ntpd 4.2.7p421は開発版です。インストールは自己責任でお願いいたします。
手順
1.コマンドラインから「tmp」フォルダに移動します。
terminal$ cd /tmp
2.「tmp」フォルダにntpd 4.2.7p421(開発版)をダウンロードします。
terminal$ wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-dev/ntp-dev-4.2.7p421.tar.gz
3.ダウンロードしたファイルを解凍します。
terminal$ tar xzfv ntp-dev-4.2.7p421.tar.gz
4.解凍したフォルダに移動します。
terminal$ cd ntp-dev-4.2.7p421
5.「configure」します。
terminal$ ./configure
6.「make」します。
terminal$ make
7.インストールします。(ルート権限)
terminal$ sudo make install
8.一旦終了します。
terminal$ exit
9.再度ログインしバージョンを確認してみます。
terminal$ ntpd -v
/usr/local/bin/ntpd: illegal option -- v
ntpd - NTP daemon program - Ver. 4.2.7p421
10.とりあえず再起動してみました。
terminal$ sudo service ntpd restart
11.設定などは「etc/ntp.conf」から変更できます。
terminal$ sudo vi /etc/ntp.conf
対策2 monlist機能を無効化
2つ目の対策として「monlist機能を無効にする設定」を行います。
手順
1.コマンドラインから設定ファイルを編集します。
terminal$ sudo vi /ect/ntp.conf
2.「/etc/ntp.conf」ファイルに下記を追加します。
terminal$ disable monitor
3.「ntp」を再起動します。
terminal$ sudo service ntpd restart
以上になります。
参考文献
記事Article
もっと見る- article
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方
- article
【解決方法】TypeScript発生したTS2564 エラーの対処
- article
express で IP を取得する際などに利用する req.connection 非推奨(deprecated)の対処