1. 程式人生 > >linux 2.6下編譯核心啟用iptables及netfilter

linux 2.6下編譯核心啟用iptables及netfilter

      最近在配置snat試,開啟iptables總是不成功,原來netfilter的功能在核心編譯時沒有選,所以需要載入netfilter模組,可我是菜鳥根本不會載入模組,只有重新編譯了核心。找了幾篇文章總結如下:

編譯核心時,您可以選擇使用make config、make menuconfig或make xconfig中的任意一個。我的建議是使用make menuconfig或者make xconfig,因為它們允許您對需要的核心選項進行更快的選取。

  為了提供對Netfilter和iptable的支援,選擇Networking Options選單選項,然後選擇Network packet filtering (replaces ipchains)。您可以在將這項功能作為核心的一部分或者編譯成一個模組之間進行選擇。

 基本Netfilter編譯選項

在核心配置檔案中要啟用的一些較重要的選項包括Netfilter連線跟蹤、日誌記錄和包過濾。(請記住iptables通過使用由Netfilter提供的核心中框架來建立一個策略。)

在Network Packet Filtering Framework(Netfilter)一節中還有兩個額外的配置節——Core Netfilter Configuration(核心Netfilter配置)和IP:Netfilter Configuration(IP:Netfilter配置)。

1. 核心Netfilter配置

核心Netfilter配置節中包含的一些重要選項都應該被啟用:

l    Comment match support(comment匹配支援);

l    FTP support(FTP協議支援);

l    Length match support(資料包長度匹配支援);

l    Limit match support(limit匹配支援);

l    MAC address match support(MAC地址匹配支援);

l    MARK target support(MARK目標支援);

l    Netfilter connection tracking support(Netfilter連線跟蹤支援);

l    Netfilter LOG over NFNETLINK interface(Netfilter通過NFNETLINK介面記錄日誌);

l    Netfilter netlink interface(Netfilter netlink介面);

l    Netfilter Xtables support(Netfilter Xtables支援);

l    State match support(state匹配支援);

l    String match support(string匹配支援)。

2. IP:Netfilter配置

在完成核心Netfilter配置之後,我們開始進入IP:Netfilter配置節。本節需要啟用的選項如下所示:

l    ECN target support(ECN目標支援);

l    Full NAT(完整NAT支援);

l    IP address range match support(ip地址範圍匹配支援);

l    IP tables support(IP tables支援,filtering/masq/NAT需要);

l    IPv4 connection tracking support(IPv4連線跟蹤支援,NAT需要);

l    LOG target support(LOG目標支援);

l    MASQUERADE target support(MASQUERADE目標支援);

l    Owner match support(owner匹配支援);

l    Packet filtering(包過濾支援);

l    Packet mangling(包修改支援,常用於改變包的路由);

l    raw table support(raw表支援,NOTRACK/TRACE需要);

l    Recent match support(recent匹配支援);

l    REJECT target support(REJECT目標支援);

l    TOS match support(TOS匹配支援);

l    TOS target support(TOS目標支援);

l    TTL match support(TTL匹配支援);

l    TTL target support(TTL目標支援);

l    ULOG target support(ULOG目標支援)。

在2.6系列核心中,個別編譯節經過了重大的重組。在舊的2.4系列核心中,IP:Netfilter配置節位於Networking選項之下,而且僅當Network Packet Filtering選項被啟用時才能看到。

1.4.2 結束核心配置

在通過menuconfig介面配置 2.6.20.1核心以啟用所需的Netfilter支援之後,請選擇Exit,會看到資訊“Do you wish to save your new kernel configuration?”(你是否打算儲存新核心配置?),點選Yes以儲存核心配置檔案。

在儲存了新的核心配置之後,將返回到shell命令列,此時可以使用下面的命令來檢查最終的Netfilter編譯選項。

然後

make,

make modules_install make install
結束編譯,重啟 ok!

相關推薦

linux 2.6編譯核心啟用iptablesnetfilter

      最近在配置snat試,開啟iptables總是不成功,原來netfilter的功能在核心編譯時沒有選,所以需要載入netfilter模組,可我是菜鳥根本不會載入模組,只有重新編譯了核心。找了幾篇文章總結如下: 編譯核心時,您可以選擇使用make config、make menuconfig或ma

iptables的time模組下載(適用於linux 2.6.18.1核心)

iptables的time模組可以根據時間對資料包做出限制,蠻有用的一個功能。 由於這個time模組作者很久已經沒有維護了,並且雖然iptables 1.3.7裡面有libipt_time.c但是並沒有 將其編譯,所以在2.6核心上www.netfilter.org提供的補丁

基於linux-2.6.38.8核心的wifi驅動分析

//參考給一些前輩們的文章 1、sdio介面層解析 SDIO匯流排      SDIO匯流排和USB匯流排類似,SDIO也有兩端,其中一端是HOST端,另一端是device端。所有的通訊都是由HOST端傳送命令開始的,Device端只要能解析命令,就可以相互通訊

交叉編譯環境的搭建(Linux-2.6.32核心

1、建立安裝目錄 #mkdir /usr/local/arm 如果您的PC 端linux 系統已經有這個資料夾,這步就跳過 2、將交叉編譯工具解壓到安裝目錄(注意C是大寫) #tar -xjvf arm-linux-gcc-4.3.2.tar.

Ubuntu 11 編譯 linux-2.6核心 出錯,給出部分編譯問題解決方暗,新問題求解決

# configuration written to .config # make[2]:正在離開目錄 `/home/gdsdj/src/linux-2.6.19' make EXTRAVERSION=dell1400   ARCH=i386 prepare make[2]

初次編譯Linux2.6.34核心

       一、編譯環境:在ubuntu12.04下編譯純核心Linux-2.6.34 二、下載並解壓原始碼 三、構建編譯環境     現在我們得到的只是原始碼,只是許許多多的文字檔案,要想使這些檔案成為可以執行的程式,需要使用編譯器進行編譯以及連結。編譯器有很多,

Linux核心2.6.34.14新增系統呼叫編譯方法(CentOS-6.4-x86_64)

<?xml version="1.0" encoding="UTF-8"?> //我新增系統呼叫步驟,僅供參考,尤其是系統呼叫的實現部分,建議大家自己寫,除了我這種好像還可以用sys_open系列來寫 #define 核心版本 linux-2.6.34.14

Ubuntu 11 編譯 linux-2.6核心 出錯,給出部分編譯問題解決

# configuration written to .config # make[2]:正在離開目錄 `/home/gdsdj/src/linux-2.6.19' make EXTRAVERSION=dell1400   ARCH=i386 prepare make[2]

mini2440 官方linux-2.6內核文件zImage編譯

clas pdf rdp slb 重新編譯 int ron 最新 active 官方linux-2.6內核文件zImage編譯 by HYH | 2018 年 1 月 1 日 下午 5:34 一.說明 1.編譯linux內核需要make和arm的交叉編譯工具鏈(gcc),

嘗試在ubuntu 14.04上編譯並啟動linux-2.6.32內核

嘗試 編譯 generic gre 生成 sudo tail rect uil 在ubuntu 14.04上編譯並啟動linux-2.6.32內核 [環境]$ cat /etc/issueUbuntu 14.04.5 LTS \n \l $ uname -aLinux Ui

linux 2.6.32sysctl的使用

struct ctl_table  {     int ctl_name;                   /* 結點標識,同一層的結點用不同的數字來標識

Linux 2.6核心中新的鎖機制--RCU

一、 引言 眾所周知,為了保護共享資料,需要一些同步機制,如自旋鎖(spinlock),讀寫鎖(rwlock),它們使用起來非常簡單,而且是一種很有效的同步機制,在UNIX系統和Linux系統中得到了廣泛的使用。但是隨著計算機硬體的快速發展,獲得這種鎖的開銷相對於CPU

linux-2.6核心模組引用計數的實現

一、模組使用計數的背景知識 模組是一種可以在核心執行過程中動態載入、解除安裝的核心功能元件。2.6核心中模組的命名方式為*.ko。模組在被使用時,是不允許被解除安裝的。程式設計時需要用“使用計數”來描述模組是否在被使用。 二、2.4核心使用計數的實現方法 2.4核心中

linux-2-6-11核心除錯環境搭建

linux核心除錯環境分為兩部分 1)用bochs除錯彙編 2)用qemu除錯從start_kernel開始的部分 環境說明: 核心版本: 2.6.11 ubuntu: 6.10 qemu: qemu-stable-0.13 busybox: 1.10.4 安裝ubuntu

linux 2.6.24.4在S3C2410上的移植(核心配置)(基於GEC2410)

移植完u-boot後,接下來就是linux核心了.以下記錄我移植的步驟,如有問題,歡迎指正.1.下載linux kernel原始碼到http://www.kernel.org/下載linux核心原始碼,這裡我們使用2.6.24.4的核心.解壓linux-2.6.24.4.ta

Linux編譯核心模組的Makefile的幾種寫法

對一個簡單的模組: [email protected]:~/works/kernel/DeviceDrivers/1/modules$ cat simple.c #include <linux/init.h> #include <linux/mo

處理VS2010+qt4.8.6編譯不報錯誤,而Linux報錯:error: 'nullptr' was not declared in this scope

今天處理一個同事在VS2010+qt4.8.6下編寫的程式(能夠正確編譯並執行) 我需要將這個程式移植到arm板上,於是在Linux下對此程式進行交叉編譯 於是,問題來了 這個錯誤提示是:nullptr在當前作用域沒有被宣告。 稍作分析,這個nullptr並不是程式定義的,

linux-2.6.21核心中建立jffs2檔案系統(mtd分割槽的使用)

本文主要介紹如何在AT91SAM9261EK板子上製作和使用jffs2檔案系統,使用的是linux-2.6.21核心。 首先配置MTD $ make menuconfig 進入 Memory Technology Devices (MTD)

Linux-2.6.32.2核心在mini2440上的移植(四)---根檔案系統製作(1)

ROMFS MTD (C) 2007 Red Hat, Inc.msgmni has been set to 109 alg: No test for stdrng (krng) io scheduler noop registered io scheduler anticipatory registered

linux核心移植-移植2.6.35.4核心到s3c2440

3、增加devfs檔案管理器的支援我們所用的檔案系統使用的是devfs檔案管理器。修改fs/Kconfig,找到menu "Pseudo filesystems"新增如下語句:config DEVFS_FS         bool "/dev file system support (OBSOLETE)"