ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

9721665096_e59b8d6a4e

サーバー技術

DNSで攻撃元のソースIPを調べる方法

投稿日:2014年5月31日 更新日:

DNSサーバーから以下のようなエラーログが出まくりました。

general: error: socket: file descriptor exceeds limit (4096/4096)

原因は同じアドレスからあるドメインへの問い合わせを何度もしていたことが原因みたいでした。

DNSで送信元のIPを追跡する

一体、どこから攻撃されているのか全く分からないので、一つずつ順を追って確認をしていきます。
じぶんもすぐに忘れてしまうので、メモっちまいます。

スポンサーリンク


まずはどこ向けのIPアドレスが大量に来ているのかを確認

まずは、どこへの問い合わせが大量に来ているのかを探る為に、以下のコマンドで確認します。

# netstat -an | more

これでは、まったくわからないので、”ESTABLISHED”になっているIPだけを抽出します。

# netstat -an | grep ESTABLISHED

なおかつ、送信先のアドレスをまとめて確認したいので、出力結果の”Foreign Address”をソートして検索します。

# netstat -an | grep ESTABLISHED | sort -k5

さらに、いくつあるのかをカウントします。

# netstat -an | grep ESTABLISHED | sort -k5 | grep  (問い合わせ先のIPアドレス) | wc -l
476

大量に来ていたアドレスのドメインを調べます。

# tcpdump host X.X.X.X(問い合わせ先のIPアドレス)

ここで、悪さしているドメイン(xxx.com)を確認できるんですが、よくやりますね。お隣の大国は。
大体、中か韓なんだよね。

困ります。仲良くしましょう。

送信元のアドレスを突き止める

まずは、以下の階層へ移動します。

# cd /var/named/chroot/var/log/

この階層で”queries.log”があります

# ls
queries.log

そこで、中身を確認。

# grep "xxx.com" queries.log | more

これも大量にあるので、送信元のIPを頭に持ってきて見えやすくしましょう。
※出力結果で送信元のアドレスは左から6つ目にあるので”awk ‘{print $6}’”のコマンドを叩きます。

# grep "xxx.com" queries.log | awk '{print $6}' | more

同じ、アドレスはまとめるようにします。
※たとえば、1.1.1.1が5つあるとしたら出力結果に

5 1.1.1.1

って感じで表示させる

# grep "xxx.com" queries.log | awk '{print $6}' | sort -k1 | uniq -c | more

最後に以下コマンドを叩けば、最後尾に一番多く問い合わせをしている送信元IPが何か突き止められます。

# grep "xxx.com" queries.log | awk '{print $6}' | sort -k1 | uniq -c | sort -k1 

以上です。
悪いことするのはやめましょう。

3分間DNS基礎講座

3分間DNS基礎講座

posted with amazlet at 14.05.29
網野 衛二
技術評論社
売り上げランキング: 19,365

この記事が気に入ったら
いいね!しよう

Twitter で
スポンサーリンク

-サーバー技術
-,

Copyright© GOISBLOG , 2016 AllRights Reserved.