l7-filter

l7-filterの導入
まず、testingのl7-filter-userspaceを試みたが、kernelが合わず、不成功。
L7-filter Kernel Versionを導入した。
http://l7-filter.sourceforge.net/より、netfilter-layer7-v2.22.tar.gzとl7-protocols-2009-05-28.tar.gzをダウンロードして/usr/srcで展開。
カーネルソースは展開し、/usr/src/linuxにリンク済み。
# cd /usr/src
# apt-get source iptables
iptablesのソースを導入し、展開。カーネルは、2.6.26、iptablesは1.4.2。
まず、カーネルのパッチ
# cd /usr/src/linux
# patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch # make menuconfig > Netfilter connection tracking support
> Layer 7 match support
オプションを選んで再構成。
次に、iptablesのコンパイル
# cd /usr/src/iptables-1.4.2
# cp netfilter-layer7-v2.22/for_older_iptables/iptables-1.4.1.1-for-kernel-2.6.20forward/* extensions/
# ./configure –with-ksource=/usr/src/linux –prefix=/usr –libdir=/lib –with-xtlibdir=/lib/xtables –enable-devel –enable-libipq
# make
# make install
あとはprotocolsのインストール
# cd /usr/src/l7-protocols-2009-05-28
# make install
l7-filterの動作確認は
# iptables -m layer7 –help
まず、BitTorrntを遮断してみる。
# iptables -A FORWARD -m layer7 –l7proto bittorrent -j DROP
# iptables -v -L FORWARD
いくらか遮断できているみたいだが、調べるとかなり抜けている様子
一見うまく動いているようだが、なにがおかしいのかわからない。