アクセスログからリファラを抜き出す

 cat access_log | awk ‘{ print $(11); }’ | sed -e ‘/-/d’

空白区切りで 11 列目がアクセスログで、かつリファラが無かったときは “-” が入るのでこれで一覧が抽出できる。

Apache を簡単に chroot する

ports:www/mod_chroot
(http://core.segfault.pl/~hobbit/mod_chroot/)
Apache13 でも問題なく動くようにテストされてるけど 20 以降だとさらに手軽にできるとか書いてる.
mod_security の chroot 特化バージョンという位置付け.
ただし Directory, Location, VirtualHost の中には入れられない.
 
追記(2008-03-21):
FreeBSD の ports を使って Apache22 で試したところ、問題なくビルド、インストールできました。
VirtualHost を使っている場合は、VirtualHost ごとに chroot にするのではなく共通の chroot を使い, Apache を root 権限実行して VirtualHost ごとに所有者を分け, DocumentRoot を 0700 にして suexec で所有者権限でしか実行できなくするのが望ましいかもしれません。