Linuxからアホ話まで、何でもありでござる

2016年01月07日

アクセス拒否スクリプトでハマる

[サイト運営]
以前はスパムコメントとかを防ぐブラックリストというプラグインの機能を使ってスパム送信先をアクセス拒否するようにしていた。ところが、サーバを自宅サーバからレンタルサーバに変えてからはiptablesを使ってのアクセス制御はできなくなった。なので、しばらくNucleusの機能だけでアクセス拒否にしていたのだけれど、しつこくしつこくアクセスしてくるところがあったのでhtaccessでアクセス制御してみたのは以前にも書いたとおり。

で、ついでなので、以前のように自動でアクセス拒否できるよう、スクリプトを書いてみた。大した内容でもないけど、メモしておく

こんな感じ。
#!/bin/sh

#IP_BlacklistのブロックIPアドレスの記録場所
blockip_blacklist=/サーバのディレクトリ/nucleus/plugins/blacklist/settings/blockip.pbl

#IPブラックリストから出力されたブロックIPアドレスを書き出すファイルを指定
blockipwritelist=/サーバのディレクトリ/blocklist
#既存で設定している.htaccessを書いておく
htacsform=/サーバのディレクトリ/htform
#.htaccessの場所を指定
htacsfile=/サーバのディレクトリ/.htaccess

#blocklistに拒否IPアドレスに書き出す
grep "." $blockip_blacklist |awk '{ print "deny from " $1 }'>$blocklist
#.htaccessに既存で設定してあるファイルと拒否IPを書いたファイルを書き出す
cat $htform $blocklist >$htacsfile
#.htaccessのパーミッションを変更
chmod 604 $htacsfile

htformで書いておかなければならない内容は次の通り。
order allow,deny
allow from all
で、Windowsでこういうスクリプトを作成してサーバに上げると、何故かエラーを吐き出す場合がある。調べてみると、原因はBOM らしい。簡単に言うと、「このファイルUnicodeで書かれていまっせ」という印らしい。俺もこれで結構ハマった。解決策はこちら。

コマンドラインでUTF-8テキストのBOMを追加したり削除したりする


ブログランキング・にほんブログ村へ
posted by oyajiman at 2016年01月07日 22:00:00



コメント

コメントはありません

トラックバック

トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

コメントする