要手动编译新版本的核心 并介入 layer7 封包过滤选项的话,必要 俱备以下套件:
- linux kernel source
- iptables source
- l7-filter patch
- l7-filter protocols
在本文当中,所重新编译的版本如下:
- kernel:2.6.24.4
- iptables:1.4.0
- l7-filter patch:2.17
- l7-filter protocols:2008-02-20
为了利便管理 ,把以上套件均放在 /usr/src/kernels。
可以选择任何可下载网路档案的器材,如 lynx、wget,或 mozilla、firefox 等等器材下载,在此范例应用 wget,行动 如下:
将套件解压缩。
更新 kernel
为了安装利便,我们为 linux-2.6.24.4 这个目录建位一个软连结,以便切换目录。
更新 kernel patch,增进 layer7 filter 选项。
若您想延续应用旧版 kernel 的选项的话,您可以把 .config 档案复制到新 kernel 的目录下,此时重新选择项目时就会延用之前的设定。
为 kernel source 上 layer7 的 patch。
选择 layer 7 相关选项
在 kernel 选项里,必要 把相关的设定选择起来才可以,以下为完备 有关 layer 7 的项目。
较为重要 的是 “layer7” match support 项目与 IPv4 connection tracking support (required for NAT) 项目,若您不知道的话就请把 Core Netfilter Configuration 与 IP: Netfilter Configuration 里的选项整个选起来即可。
编译并安装新版核心
重 kernel 2.6 开始,编译核心 就变得更为简单,只必要 几个 make 的指令即可,安装完后会自动批改 GRUB 的选项,不需手动批改,减少了手动批改错误的危险。
更新 iptables patch
- iptables 1.4.0 (含) 之前版本
更新 iptables 需留意是否在现有的 kernel 中 netfilter 子系统相切合,若应用了不在 kernel 所声援的模组,在设定 iptables 会出现错误。以下指令可新增 laery7 模组的指令。
设定 KERNEL_DIR 与 IPTABLES_DIR 环境变数,并开始编译安装。
- iptables 1.4.1.1 (含) 之后版本
在 iptables 1.4.1.1 之后的 layer 7 模组已经不必要 应用 patch 行动来批改,只要把批改档复制到 extensions 资料夹即可。
安装通讯定议档
应用 layer7 模组时,会参考 /etc/l7-protocols 目录下的定议档,各通讯协定的封包特徵会在 l7-protocols 的套件里,解开之后直接安装即可。
重新开机
重新编译了核心 之后,必要 重新启动电脑手法套用新的核心 套件,请应用 uname 指令查察 是否设定乐成 。
测试
MSN Messenger
以下测试会拒绝连出 MSN Menssenger 封包,在 iptables 的 OUTPUT 政策里,我们在 X-Window 执行 GAIM 连出时,会发现 msnmessenger 的封包被 DROP。
语法:
iptables -A OUTPUT -m layer7 –l7proto msnmessenger -j DROP
BitTorrent
第二个测试拒绝连出 BitTorrent 封包,我们在设定好拒绝 bittorrent 封包后,在本机应用 BT 下载档案均失败,可从 iptables 指令查出。
语法:
iptables -A OUTPUT -m layer7 –l7proto bittorrent -j DROP
若您把 layer7 安装在网路闸道 (Gateway) 上的话,那么请应用 PREROUTING 或 FORWARD 连线才会有效 。iptables 可参考 ()。
后记:
若您操持在您的防火墙上应用 layer7 封包过滤功能的话,那么所需的记忆体与 CPU 会更多,若您的应用者连线数同一时间超过百人,并且频繁的取存网路的话,那么也许必要 考虑应用较高效能的网路卡与更多的记忆体。若您在启用 layer7 功能后发现网路变得很慢的话,那么就必要 检查您的网卡与记忆体是否足够。