歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

Linux Iptables 內核2.6.18添加time模塊

系統:CentOS 5.1 內核:2.6.18-53.1.19.el5

    iptables 版本 1.3.5(系統自帶的)

    下載一個內核:linux-2.6.18 解壓到/usr/src/linux

    #cd linux

    #make mrproper

    #make menuconfig

    什麼也不做,退出。

    vi Makefile

    把EXTRAVERSION = 更改為EXTRAVERSION = -53.1.19.el5

    保持跟uname -a 的版本一致

    下載一個iptables1.3.5解壓到/usr/src/iptables (下面會用到)

    (下載)patch-o-matic-ng-20080214.tar.bz2

    wget ftp://ftp.netfilter.org/pub/iptables/iptables-1.4.0.tar.bz2

    #cd patch-o-matic-ng-20080214

    #./runme ——download

    ……

    應用time補丁到內核:

    選y ,至此,netfilter的補丁打完了,如果你需要別的模塊可以根據需要加上。

    編譯kernel的modules

    #cd /usr/src/linux

    #make menuconfig

    在Device Drivers->;Networking support->;Networking options->;Network packet filtering (replaces ipchains)

    ->;IP: Netfilter Configuration中把下面的兩項M選中。

    ; TIME match support

    保存,退出。

    編譯安裝模塊

    下面就是最重要的步驟了,因為我們的原則是節省時間,不重新編譯內核,而只編譯其中的模塊,這點2.4的內核跟2.6的內核有所不同,2.4內核的模塊是以*.o形式的,而2.6內核是以*.ko形式的,

    [root@jiecho]# make modules

    HOSTCC scripts/basic/fixdep

    HOSTCC scripts/basic/split-include

    HOSTCC scripts/basic/docproc

    HOSTCC scripts/conmakehash

    HOSTCC scripts/kallsyms

    CC scripts/empty.o

    HOSTCC scripts/mk_elfconfig

    MKELF scripts/elfconfig.h

    HOSTCC scripts/file2alias.o

    HOSTCC scripts/modpost.o

    HOSTCC scripts/sumversion.o

    HOSTLD scripts/modpost

    HOSTCC scripts/pnmtologo

    HOSTCC scripts/bin2c

    到這裡就可以ctrl+c中止了,因為我們不是要編譯所有的模塊,這樣太浪費時間,而僅僅是netfilter的模塊,但是如果你直接執行make modules SUBDIRS=net/ipv4/netfilter就會出錯,這就是2.4和2.6的區別,我們先生成了scripts目錄下的一系列需要的文件後就可以make modules SUBDIRS=net/ipv4/netfilter,並用modpost等等把*.o文件生成為*.ko文件。

    #make modules SUBDIRS=net/ipv4/netfilter

    編譯完成netfilter的模塊後拷貝編譯完成的模塊

    #chmod +x /usr/src/linux/net/ipv4/netfilter/ipt_time.ko

    # cp /usr/src/linux/net/ipv4/netfilter/ipt_time.ko /lib/modules/2.6.18-53.1.19.el5/kernel/net/ipv4/netfilter/

    #depmod -a 或 insmod /usr/src/linux/net/ipv4/netfilter/ipt_time.ko

    #lsmod | grep ip

    此時,能看到以下東東

    ipt_time 6400 1

    但現在還不能用,還卻少libipt_time.so 這個東東

    現編譯下載的iptables

    #cd /usr/src/iptables

    #make KERNEL_DIR=/usr/src/linux

    # make install KERNEL_DIR=/usr/src/linux (我編譯時出現不少警告,錯誤!)

    完了以後,

    #cp /usr/src/iptables/extensions/libipt_time.so /lib/iptables中

    到此結束, iptables -A INPUT -m time ——timestart 8:00 ——timestop 18:00 ——days Mon,Tue,Wed,Thu,Fri

Copyright © Linux教程網 All Rights Reserved