変更履歴
- Rev. 0.7 : 2024年11月30日
- 新規作成
1 はじめに
本記事は、Apacheの
“.htaccess”による、
特定の国、はっきり言うとチウゴクからの
サイトアクセスを拒否する設定について記したものです。
メールサーバーのフィルタリング設定値を見つけるために
ネットワークの通信パケットを監視していたところ、
チウゴクからの自宅Webサーバーアクセスが多いことに気づきました。
下に示すツールサイトで、アクセス元の大まかな住所を調べてみたところ、
フィッシングメール送信元住所に一致。
何の目的でわたしのサイトを訪れているのか、その理由が容易に想像できるため、
チウゴクからのサイトアクセスを禁止することにしました。
本記事では、.htaccessファイルの記述法や配置のルールについは示しません。
次に示すページをご覧いただければと思います。
【WordPressセキュリティ】.htaccessによるアクセス制御 | dotいがの快適インターネット
特定の国からのアクセス拒否設定の方法については、同様の記事が他サイトにも多数ありますが、
この記事は自分の備忘録を目的に起こしたものであることをお断りしておきます。
2 特定の国からのサイトアクセスを拒否する
特定のアドレスからアクセスを制限するには、“allow / deny”の構文によって行います。
特定の国を限定するには、次の3つの要素の組み合わせで行います。
① IPアドレス
② 国別トップレベルドメイン(ccTLD)
③ ユーザーエージェント(User Agent: ネット利用者が使用しているOSやブラウザ)
2.1 IPアドレスによる制限
下に示すように、IPアドレスで制限する方法です。
国別割り振りIPアドレスの一覧は、下に示すサイトから知ることができます。
中国の場合、IPアドレスの割り当ては5千個以上のCIDRリストになってしまいます。
全てを.htaccessに設定するのは、現実的じゃないのかもしれません。
地道にアクセスログを見て、
攻撃の多いサイトのCIDRを単位に順次追加していくのが良いのかもしれません。
# 無料のアクセス解析ツールでは、使い勝手の良いものが見つからない。
# 生ログを見るのも、キツいなー
2.2 国別トップレベルドメインによる制限
下に示すように、文字通り制限したい国のトップレベルドメインで指定する方法です。
指定するドメイン名は、完全修飾ドメイン名(FQDN)である必要はないので、
国ドメイン名で拒否設定することができます。
“order”、“allow”、“deny”の順番で、記述しなければなりません。
③の“deny from”の行に、アクセスを拒否したい国の国ドメインを指定します。
後方一致ですので、“.(dot)”から始めます。
“order”の行、“allow”の行は、上で示した通りに記述します。
なお、国ドメイン名だけで、その国からのアクセスを全部制限できるわけではありません。
たとえば、件のサイトのトップレベルドメインが、“.com”、“.net”“.info”、“.biz”といった
分野別トップレベルドメインであったり、
“.shop”、“.site”、“.blog”といった新ドメインである場合は、
その国であることを判別できないからです。
国ドメインの一覧は、“ccTLD”で検索すれば見つけることができます。
2.3 ユーザーエージェントによる制限
中国からのアクセスの場合、
中国独自のユーザーエージェント(User Agent)からのことが多いようです。
使用されているユーザーエージェントから、中国からのアクセスと判断することができます。
下に示すように、特定のユーザーエージェントを使用したアクセスを制限することができます。
上の設定例は、次の意味になります。
①の行で、“User-Agent”が設定されたもの(記述例では、“AliApp”)であった場合、
環境変数“deny_UA(環境変数名は任意)”を設定する。
②の行で、環境変数“deny_UA”が設定されたアクセスは拒否する
中国のユーザーエージェント一覧については、下に示すページをご覧ください。
【.htaccess】特定の国のIPアドレスでアクセスを拒否(ブロック)する
ユーザーエージェントをブロックする場合
| パソコン修理のエヌシステムBLOG
以上
本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。