【PR】本記事はアフィリエイト広告を利用しています。
アクセスログをみると
nginxのアクセスログをみると結構な数で海外から攻撃されていることがわかります。
恐らくツールを使っているとみられていて短期間に色んなコマンド流してきているようです。
こんな感じに。
一応全部ブロックはしているものの気持ち悪いのでIPアドレスで完全に遮断してしまおうと考えたわけです。
そこで、海外は全部ブロックしてしまおうと日本のIP範囲を調べてnginxに設定しました。
各国の払い出している範囲の情報はここから取得できます。
ftp://ftp.arin.net/pub/stats/arin/delegated-arin-extended-latest
ftp://ftp.ripe.net/pub/stats/ripencc/delegated-ripencc-extended-latest
ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-extended-latest
ftp://ftp.lacnic.net/pub/stats/lacnic/delegated-lacnic-extended-latest
ftp://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-extended-latest
ファイルフォーマットの説明も記載がありました。
https://www.apnic.net/about-apnic/corporate-documents/documents/resource-guidelines/rir-statistics-exchange-format/#Format
ただCIDRとして表現できない部分があるそうで、少し加工が必要のようです。
加工して纏められた方のデータもダウンロードできるようですが、直リンク張るのもご迷惑になるかもしれませんので
ここでは張っていません。
はじめはガッツリと、国内のIPアドレスだけでブロック設定をいれたところgoogleの
クローラーもブロックされていたので急遽クローラーのアドレス範囲を調べました。
余談ですが、
nginx.conf
こんな感じで起動時に取り込んであげるだけです。
順番があるらしく、先に書いたものが優先されるらしくDenyを書いてDenyの範囲にあるものを特別に
許可するように後で書いても先に書いた方が優先されるので注意することだそうです。
許可(allow)の例
設定ファイルはこんな感じで羅列されいるテキストファイル(utf-8)のファイルです。
CIDRで範囲を指定できます
不許可(deny)の例
不許可の例も同じです。
命令が「deny」になっただけです。
googleのクローラーリスト
ここでjsonファイルで指定された範囲の設定をnginxに入れるだけです。
セキュリティ設定なので実際のものをお見せすることはできませんが、それほど難しくはないです。
私は秀丸を駆使して変換し設定をいれました。
といっても単純に置換するだけです。
以上!
nginx実践入門 (WEB+DB press plusシリーズ) [ 久保達彦 ] 価格:3047円 |
おまけ・ブロックされている様子
こんな感じで403扱いになってはじき返していい仕事しています。
やったね!