Help us understand the problem. What is going on with this article?

海外からのアクセス(IP)を拒否するhtaccessの設定

More than 1 year has passed since last update.

海外からのアクセス(IP)を拒否するhtaccessの設定

不要なアクセスを受けるとサーバーのパフォーマンスが落ちたりします。
海外のIPから無作為にアクセスを受けることも珍しくありません。
不正ログインやアクセス超過を防ぐための設定になります。

このため.htaccessに設定をして、海外からはサイトなどにアクセスできないような設定をします。

.htaccess
#########  海外IPを許可しないための設定  #########

### 検索エンジンをまとめて許可するためにenv化する (Must)
SetEnvIf User-Agent "Googlebot" allowbot
SetEnvIf User-Agent "msnbot" allowbot
SetEnvIf User-Agent "bingbot" allowbot
SetEnvIf User-Agent "Slurp" allowbot

### いったん全てを拒否する (Must)
order deny,allow
deny from all

### 検索エンジンからのアクセスを許可 (Must)
allow from env=allowbot

### SearchConsoleのプロパティが確認出来るためにの対策 (使っていなければ不要)
### https://support.google.com/webmasters/answer/80553?hl=ja
allow from googlebot.com
allow from google.com

### vagrantなどのアクセス許可 (使っていなければ不要)
### vagrantなど使っていれば許可にしないと開発環境が使えないため
allow from 192.168.xx.xx/24

### 日本国内のIPを許可 (Must)
### http://www.cgis.biz/tools/access/
### 2018.12.1時点 割り当て個数 203,957,760
allow from 1.0.16.0/20
allow from 1.0.64.0/18
allow from 1.1.64.0/18
allow from 1.5.0.0/16
allow from 1.21.0.0/16

( 中略 )

allow from 223.223.164.0/22
allow from 223.223.208.0/21
allow from 223.223.224.0/19
allow from 223.252.64.0/19
allow from 223.252.112.0/20

説明

流れとしては、まず全てのアクセスを拒否します。

次に検索エンジンからのアクセスを許可します。
これをしないと検索エンジンがクロールできないため、SEOで上位にくるどころか検索結果に出るかどうかもあやしいです。

これは必要であればですが、googleのSearchConsoleやアナリティクスを使っている場合も指定のものを許可して下さい。
また開発環境で同じ.htaccessを使用している場合は、そのIPも記載ください。

最後に日本からのアクセスを許可します。
最初に全てのアクセスを拒否しているため、日本のIPの全て記載する必要があります。
下記のサイトが、日本国外(海外/外国)からのアクセスを制限する(禁止する)ために
日本に割り当てられているIPアドレスをAPNICより取得してリスト化してくれていますのでこちらからコピると良いと思います。
http://www.cgis.biz/tools/access/

サーバーへのアクセスの確認方法

参考までに。
サーバーにsshログイン後、下記などのパスを探して実行してみて下さい。(サーバーによって多少異なります)

cat /var/log/httpd/access_log
non0311
東日本大震災から9年 社会に貢献したい強く思っています。 エンジニア仲間募集しています。 PHP(Laravel) / Github / Vagrant 使えると有難いですが、言語や経験の有無は何も問いません。(未経験も歓迎) お仕事として対価をお支払いする事ももちろん可能です。 2020年になって記事はあまり更新していませんが、qiitaよく見ています。 ぜひメール下さい♪
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした