Skip to main content

16.2. 準備

· 3 min read

16.2.1. 取得原始檔

取得最新的 Linux 核心原始檔: http://www.kernel.org/

取得最新的 iptables 套件:

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`