htaccessにて国単位でIP制限をかける方法。CHINA(中国)を制限

2019.11.24修正

千年以上続く「中国」という歴史ある日本の地名と区別する為、中華人民共和国を世界標準の呼称「CHINA」に変更しました。

CHINA(中国)を制限した理由

クライアントが指定しているサーバーがクラッキングされて
ページを表示するとアフィリエイト系サイトに飛ばされるタグを仕込まれるという事がありました。

勝手に書き換えられた部分を直して対処していたのですが
しつこいのでIP制限をかけました。その時の手順を残しておきます。

アクセス解析などから恐らくCHINA(中国)からのアクセスだろうと言うことになり
CHINA(中国)からアクセスできなくなる旨をクライアントに了承頂き実施しました。

日本語サイトなのでCHINA(中国)からアクセス出来なくなっても問題ないとの判断です。

試しけど上手くいかなかったやり方

調べた所、htaccessにCHINA(中国)を表すカントリーコードを入れるとありましたので
下記の通り行ってみたのですが効果は無く、またクラッキングされました。
実際CHINA(中国)からアクセス出来なくなったのかどうか確認出来ていません。

▼駄目だったコード
order allow,deny
allow from all
deny from .cn

カントリーコードはこちらのサイトで取得しました。
世界のドメイン

上手くできたやり方

結局、CHINA(中国)で使用しているIPアドレスを全て指定する力技で対応しました。

この後紹介するのとは別のサイトですが、CHINA(中国)のIPリストは「IPV46」というサイトのこちらのページから取ると早いです。

他の国のIPアドレスを取得する場合は下記のページから取る事ができます。

ipv4.fetus.jp


中華人民共和国を選択して


アクセス制御用ひな型を押して「Apach(.htaccess)」を押せば


一覧が表示されます。

 

▼成功したコード
order allow,deny
allow from all
deny from 1.0.1.0/24
deny from 1.0.2.0/23

省略 約5000個

deny from 91.234.36.0/24

htaccessがIPで埋まってしまうので嫌な感じですが仕方ありません。

htaccessの解説

コードの内容としては
order allow,deny はallowとdenyの優先順位です。許可、拒否の順で指定します。
allow from all で全員許可します。
deny from IPアドレス で一つずつ拒否しています。

IPアドレスの後ろにある/24というのはサブネットマスクというそうです。

例えば
211.120.0.64〜211.120.0.127を制限したい時に
211.120.0.と指定してしまうと
211.120.0.0〜211.120.0.255が全て制限されてしまいます。

これを211.120.0.64/26などとすると
211.120.0.64〜211.120.0.127の範囲を表してくれるようです。便利。

サブネットマスクの計算はこちらのサイトが便利でした。
WEB便利ノート

クライアントにはCHINA(中国)支社があるのですが、そこの方がアクセスできるように開放して欲しいと頼まれ、サブネットマスクで頑張って2つのIPだけ解除したのでCHINA(中国)からのアクセス制限はこのやり方で問題なく出来ているようです。

コメント

  1. アルゴ より:

    弊サイト(https://ipvx.info/)へ
    お越しいただき誠にありがとうございます。
    サイトの管理者のアルゴと申します。

    運営者様の記事本文中で
    「>上のサイトもちゃんと表示されないようです。」との
    ご指摘を頂きまして、ご不便をお掛け致しまして申し訳ございません。
    当時、ご希望に沿えなかった点につきましてお詫び申し上げます。

    尚、こちらの記事でご紹介されている
    「中華人民共和国(CN)」向けのIPアドレス一覧につきましては、
    以下URLにてご紹介させて頂いております。
    https://ipvx.info/country/cn/cidr/
    https://ipvx.info/country/cn/range/

    また、テキストベースでIPアドレスを取得される場合には、
    本文中にもリンクの記載をさせて頂いておりますが、
    denyリストとしてURLを公開しております。
    https://ipvx.info/country/cidr/cn/deny/

    私自身がサイトの確認を行っている限りはサイト表示ができておりますが、
    KKLOG運営者様がアクセス時に正常表示されないようでしたら、
    ご連絡頂けますと障害調査の参考にさせて頂きます。

    今後も皆様のお役にたつようサイトの運営を心掛けて参ります。
    今後ともよろしくお願い申し上げます。

タイトルとURLをコピーしました