安裝環境
Redhat 9.0 kernel 2.4.20-8
=====================================================================
需要檔案
kernel source
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.26.tar.bz2patch-o-matic
http://www.netfilter.org/files/patch-o-matic-20031219.tar.bz2iptables source
http://www.netfilter.org/files/iptables-1.2.9.tar.bz2=====================================================================
前置作業
#cd /usr/src
#tar jxvf /path/linux-2.4.26.tar.bz2
#tar jxvf /path/patch-o-matic-20031219.tar.bz2
#tar jxvf /path/iptables-1.2.9.tar.bz2
#ln -s linux-2.4.26 linux
#ln -s iptables-1.2.9 iptables
=====================================================================
patch kernel
cd patch-o-matic-20031219
KERNEL_DIR=/usr/src/linux ./runme extra
無法patch的模組請直接跳過
=====================================================================
compile kernel
cd linux
cp /boor/config-2.4.20-8
make menuconfig
選擇要增加的模組,無法patch 的 modules 不要選,否則會compile 失敗
''Networking Options -> Netfilter Configuration''
make dep
make bzImage
make modules
make modules_install
make install
擴充模組放在
/lib/modules/2.4.26/kernel/net/ipv4/netfilter
=====================================================================
update iptables
cd iptables
make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux
make install-devel
=====================================================================
quota 範例:限制http對外傳送資料上限10M
iptables -A OUTPUT -p tcp --sport 80 -m quota --quota 10240000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j DROP
=====================================================================
time 範例:只允許星期一到五12:00~13:00使用 http
iptables -A OUTPUT -p tcp --dport 80 -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
=====================================================================
string 範例:過濾 http 中含有 cmd.exe的字串
iptables -A INPUT -p tcp --dport 80 -m string --string 'cmd.exe' -j DROP