去年の9月に、ウチのサイトに
逆アクセスランキングを設置したところ、OpenProxy経由でのreferer spamがあり、
その対策を幾つか施していますが、その甲斐もなく未だに毎日100アクセス以上も来ています。
排除するアクセスをapacheまで到達させるのはイヤなので(リソースも使われるし)、iptablesで弾いてしまうようにしました。これまでは、apacheのログからreferer spamを抜き出し、そのIPアドレスをhttpd.conf/.htaccessでdenyする、というプログラムをperlで作ってcronで1日1回動かすものでした。今回はその仕組みを少し変更して、apacheのログを1時間毎にチェックし、OpenProxy経由(と思われる)アクセスが有れば、そのIPアドレスをiptablesのフィルタに設定してしまう、というものです。元々、
iptablesで韓国からのアクセスをブロックで、韓国からのアクセスをiptablesで弾くようにしていましたが(その後、中国と台湾も追加)、そのリストに今回のreferer spamも追加するようにしています。
今のところ順調に動いていて、当該アクセスのみ全てiptablesのフィルタに登録してくれています。敵(?)も経由するOpenProxyを度々変更してきますが、それも最長で1時間しか使えません。漏れたとしてもmod_access_rblで排除していますし、そもそもreferer spamは逆アクセスランキングに登録されないようにしていますので、無意味なアクセスなんですけど…。なんで未だにreferer spamが来るんだろう。