問題のイベントは次のとおりです。
システムイベント =-=-=-=-=-=-= Jan 21 06:02:13 www named [32410]:client 66.230.128.15#15333:query(cache) + '。/ NS / IN'拒否
ただし、ほとんどの場合、送信元IPアドレスが改ざんされる可能性があることに注意してください。 ボットネットの各ノードは、1秒あたり1つ以上のパケットをDNSサーバーに送信できます。 サーバーは、リクエスト内のエラーメッセージで偽装アドレスに応答し、ソースでサービス拒否を引き起こします。
DNSサーバーを他の人のDDoS攻撃の武器として使用するのにうんざりしていませんか? fail2banパッケージ(Debian GNU / Linux)をインストールしてみてください。 元のプロジェクトWebサイトはwww.fail2ban.orgです。
まず、fail2banパッケージをインストールします。 デフォルトでは、sshサービスに対する攻撃のみが監視され、ブロックされます。 これはいい考えです。 fail2banパッケージでは他のサービスを制御できます。さらに、ハンドラーとフィルターを自分で作成することもできますが、これらの問題についてはこの記事の範囲外です。
aptitude install fail2ban
パッケージのインストール後、/ etc / fail2ban / jail.confファイルの内容を確認します。
ファイルの最後に、fail2banがDNSサービスのイベントを通常処理できるように、名前付きサーバー設定で行う必要がある説明を見つけます。
最初に、DNSサーバーログを保存するディレクトリを作成します。
mkdir / var / log / named chown bind.bind / var / log / named chmod 750 / var / log / named
その後、/ etc / bind / named.conf.localを編集します(別の場所にある場合があります。指定された名前はDebianのbind9パッケージに関連しています)。次の行を追加します。
ロギング{ チャネルsecurity_file { ファイル「/var/log/named/security.log」バージョン3サイズ30m。 重大度の動的。 印刷時間はい。 }; カテゴリセキュリティ{ security_file }; };
バインドを再起動します。
/etc/init.d/bind9 restart
/var/log/named/security.logログが作成され、設定されていることを確認します。
21-Jan-2010 07:19:54.835クライアント66.230.160.1#28310:クエリ(キャッシュ) './NS/IN'は拒否されました
では、fail2banの構成を変更します。 編集のために/etc/fail2ban/jail.confを開き、次の変更を行います。
[named-refused-udp] enabled = false
に置き換える
[named-refused-udp] 有効= true
同様に:
[named-refused-tcp] enabled = false
に
[named-refused-tcp] 有効= true
fail2banを再起動します。
/etc/init.d/fail2ban restart
fail2banが独自の/var/log/fail2ban.logログを作成することを確認します。ログには次のようなものが含まれます。
2010-01-21 07:34:32,800 fail2ban.actions:警告[named-refused-udp]禁止76.9.16.171 2010-01-21 07:34:32,902 fail2ban.actions:警告[named-refused-tcp]禁止76.9.16.171
また、fail2banはiptablesに適切な変更を加えたと確信しています。
$ sudo iptables-save | grep fail2ban
これで、適切かつタイムリーなfail2banがアクセスを制限する方法を確認できます。
tail -f /var/log/named/security.log
これで、DNSエラーメッセージは、数秒ではなく、数分離れたものになります。
次に、いくつかのファイルの改善について説明します。
logcheckにエラーメッセージの新しい場所を調べるように指示しましょう。 ファイルの最後に次の行を追加して、/ etc / logcheck / logcheck.logfilesファイルを編集します。
/var/log/named/security.log
fail2banから電子メールでメッセージを受信できるようになりました。
/etc/fail2ban/jail.confファイルのfail2banの[DEFAULT]セクションにあるオプションを調べることをお勧めします。 名前付き以外のサービスの制御を有効にすることもできます。 RFC1918のネットワークを無視するためのルールを変更することは理にかなっているかもしれません(ignoreipオプションを検討してください)。
また、長期間のbantime = 600の変更を検討することもできます。
正規表現コンパイルの魔法について十分な知識がある場合は、fail2banの独自のフィルターを自分で作成してみてください。
要するに、あえて、探検してください:)
ps:はい、それでも、これは「 fail2banパッケージを使用してDNS DDOSをブロックする 」の単なる無料翻訳であり、練習からいくつか追加されています。