16.2.1. 取得原始檔
取得最新的 Linux 核心原始檔: http://www.kernel.org/
取得最新的 iptables 套件:
- Source tarball (kernel 修正檔用): http://www.netfilter.org/
- Source RPM for rebuild of binary (for RedHat systems): ftp://ftp.redhat.com/redhat/linux/rawhide/SRPMS/SRPMS/ or perhaps also at http://www.netcore.fi/pekkas/linux/ipv6/
16.2.2. 將原始檔解壓縮
切換到原始檔所在目錄:
# cd /path/to/src
將原始檔解開並更名
# tar z|jxf kernel-version.tar.gz|bz2
# mv linux linux-version-iptables-version+IPv6
解壓縮 iptables 原始檔
# tar z|jxf iptables-version.tar.gz|bz2
16.2.3. 將最新 iptables/IPv6 - 相關 修正檔修正到 Linux 核心原始檔上
切換到 iptables 所在目錄:
# cd iptables-version
使用修正檔
# make pending-patches KERNEL_DIR=/path/to/src/linux-version-iptables-version/
使用其他 IPv6 相關修正檔 (核心尚未包含的)
# make patch-o-matic KERNEL_DIR=/path/to/src/linux-version-iptables-version/
在以下選項中選擇 yes (iptables-1.2.2)
- ah-esp.patch
- masq-dynaddr.patch (only needed for systems with dynamic IP assigned WAN connections like PPP or PPPoE)
- ipv6-agr.patch.ipv6
- ipv6-ports.patch.ipv6
- LOG.patch.ipv6
- REJECT.patch.ipv6
確認 IPv6 extensions
Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multipor
``
## 16.2.4\. 配置, 建立與安裝新 Linux 核心
切換到Linux核心所在目錄:
`# cd /path/to/src/linux-version-iptables-version/`
編輯 Makefile
- EXTRAVERSION =
+ EXTRAVERSION = -iptables-version+IPv6-try
執行 configure, 啟動 IPv6 相關支援
Code maturity level options Prompt for development and/or incomplete code/drivers : yes Networking options Network packet filtering: yes The IPv6 protocol: module IPv6: Netfilter Configuration IP6 tables support: module All new options like following: limit match support: module MAC address match support: module Multiple port match support: module Owner match support: module netfilter MARK match support: module Aggregated address check: module Packet filtering: module REJECT target support: module LOG target support: module Packet mangling: module MARK target support: module
同時亦配置其他與系統相關的參數. 完整的核心編譯與安裝請參照其他 HOWTOs
## 16.2.5\. 重新建立與安裝iptables binaries
確認核心原始碼已存在於 /usr/src/linux/
將舊目錄更名
`# mv /usr/src/linux /usr/src/linux.old`
建立一個新的軟連結(softlink)
`# ln -s /path/to/src/linux-version-iptables-version /usr/src/linux`
重新建立 SRPMS
`# rpm --rebuild /path/to/SRPMS/iptables-version-release.src.rpm`
安裝新的 iptables 套件 (iptables + iptables-ipv6)
* 在 RH 7.1 系統上, 正常狀況下已安裝好舊版的 iptables , 因此我們"更新"它
`# rpm -Fhv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm`
* 若尚未安裝, 就先"安裝"它
`# rpm -ihv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm`
* On RH 6.2 systems, normally, no kernel 2.4.x is installed, therefore the requirements don't fit. Use "--nodeps" to install it
`# rpm -ihv --nodeps /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm`
也許須先新建一個軟連結給 iptables 參照檔
`# ln -s /lib/iptables/ /usr/lib/iptables`