PR(記事内にアフィリエイト広告が含まれています)
スポンサーリンク
トラブル

海外からのアクセスを制限

サーバログを最近チェックしてたら、海外からのアクセス制限した方が安全そうだなぁという事象を幾つか見かけてしまったので、こちらのページを元に .htaccess で全禁止設定してからゆるめな許可記載を追加しました。


厳密に日本のだけ許可するという数千行の記載も試したんですが、なんと自分自身がアクセスできなくなったりしたので諦めました。表示されてるIPアドレスが古かったのかも知れませんね。そこそこ制限かかればいいやという心境だったので、前述したゆるく制限する設定にして、さらに海外アクセスで幾つか許可したいものだけを記載しました。
まずはAmazonのXML取得時に使うサーバを追加しました。

#Amazon
allow from 54.165.81.181

つぎにdlvr.it*1を許可設定に追加しようとしたんですが、これが意外と難儀しました。
最初はどんなIP類で設定すべきか分からず、https://app.dlvrit.com/ をIP変換させて追加したり、.com全般を許可したりと色々やってみたものの、dlvritサービスから自サイトのRSSアクセス時に403エラーになって、理画面にこんなエラーが頻出してます。
HTTP 403 – Forbidden
あまりにもエラーが連発したせいで、メールでも連絡が来てしまいました。
題名
ALERT: Feed Errors – Posts Stopped
本文
We can’t connect to your feed!
This means no posts are going out! Please check your feed for any errors, then reactivate your feed in dlvr.it.

管理画面をみると、エラー説明ページへのリンクが表示されてたんですが、下記のように書いてありました。
you can whitelist dlvr.it through our User-Agent “dlvr.it/1.0 (+http://dlvr.it/)”.
しかしこの内容を下記のように記載すると、文法が悪いのかサイト全体が500エラーになってしまいます。

SetEnvIf User-Agent "dlvr.it/1.0 (+http://dlvr.it/)" allowbot
allow from env=allowbot

エラーにならないようにhttp部分を省いたりしましたが、それだと許可されてないのか動いてくれません。

SetEnvIf User-Agent "dlvr.it/1.0" allowbot
allow from env=allowbot

もう少し普通な名前のユーザーエージェントにしてくれないですかね……
仕方ないので「User-Agent “dlvr.it/1.0 (+http://dlvr.it/)”」でググってみたところ、このページを発見しました。ユーザーエージェントの記載はないですが、ドメインとIPアドレスが掲載されてたので、下記設定を追加したら大丈夫でした。

#dlvr.it
allow from .dlvrit.it
allow from 54.213.123.74
allow from 198.145.117.116
allow from 54.213.123.74

まさか .com(アメリカ)ではなく .it(イタリア)だったとは、盲点でした。思い込みや直感で設定してもダメですね。
これでTwitterに自動投稿されたので、一安心です。

2018/06/08追記
月が変わって確認したところ、ひとまず妙なアクセスは落ち着いた感がありました。しかしながらまだ意外なサービスがアクセスしようとしてきたり、海外の日本人の方が見れないといった指摘があったため、いくつかの国は許可指定を入れてみました。
参考ページ その1その2

#Japan
allow from .jp
#America
allow from .us
allow from .com
#China
allow from .cn
#Hong Kong
allow from .hk
#Korea
allow from .kr
#Taiwan
allow from .tw

これで大丈夫かと思います。

  • 注1 : ブログで新規記事投稿したら、自動的にツイートしてくれるWebサービスです。

コメント

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