サーバログを最近チェックしてたら、海外からのアクセス制限した方が安全そうだなぁという事象を幾つか見かけてしまったので、こちらのページを元に .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サービスです。
コメント