-
1 # 憶奇植悟館
-
2 # 沒資格說苦
iptables -I INPUT -p tcp --dport目標埠 -m connlimit --connlimit-above 10 -jREJECT這個規則在沒有載入任何iptables模組時,是不能用的,會報類似錯誤:[root@localhost ~]# iptables -IINPUT -p tcp --dport 8000 -m connlimit --connlimit-above 4 -jREJECTiptables: Unknown error 4294967295這個錯誤表示,系統核心沒有connlimit模組支援!因此,就需要將connlimit加入核心支援,也就是需要給核心打補丁,重新編譯iptables和系統核心!下面是詳細操作過程1:先在
http://ftp.netfilter.org/pub/patch-o-matic-ng/snapshot/
處下載patch-o- matic-ng補丁, 注意最新並且含有connlimit的補丁包好像是patch-o-matic-ng-20060725.tar.bz2,之後的補丁包中都沒有connlimit補丁;2:然後下載iptables原始碼http://ftp.netfilter.org/pub/ipt...
.5-20060823.tar.bz2,3:最後下載kernel原始碼ftp://ftp.kernel.org/pub/linux/kernel/v2.6/,
編譯2.4.x
核心一般沒有問題,2.6.11以下的似乎也沒有什麼問題,不過2.6.12開始打補丁時,會提示...的錯誤。在打完補丁後使用connlimit模組時會報一個奇怪的錯誤“connlimit match: invalid size0!=16 iptables: Invalid argument”,而且在編譯核心模組時有一些警告"signed//unsigned comparision warnings",不知道是什麼原因,只好換一個低版本核心linux-2.6.15.tar.bz2。由於redhat as4的核心預設沒有connlimit模組,所以要編譯核心,在網上好像有不編譯核心給iptables新增模組的辦法,但我沒成功,只好老老實實編譯核心。4:操作開始:#cppatch-o-matic-ng-20060725.tar.bz2 iptables-1.3.5-20060823.tar.bz2linux-2.6.15.tar.bz2 /usr/src/ #bunzip2 -d*.bz2 #tar xvf*.tar
#ln -siptables-1.3.5-20060823 iptables #ln -slinux-2.6.15 linux #cd/usr/src/linux #makemrproper #makeclean #cd/usr/src/patch-o-matic-ng-20060725 #./runmeconnlimit直接打補丁會報錯,需要修改/usr/src/patch-o-matic-ng-20060725/patchlets/connlimit/linux-2.6.11/net/ipv4/netfilter/Makefile.ladd
檔案,將obj-$(CONFIG_IP_NF_MATCH_STATE) +=ipt_state.o
改為obj-$(CONFIG_IP_NF_MATCH_TOS) += ipt_tos.o#./runme connlimit #cd/usr/src/linux #makemenuconfig 注意:核心引數一定要將Networking-->Networking options--->Network packet filtering(replacesipchains)--->IP: Netfilter Configuration--->Connections/IP limit match support選為模組或編譯進核心;如果你找不到這一項,那麼剛才打補丁沒有成功;如果你對多如牛毛的核心選項很煩,你可以用makeoldconfig,www.ixdba.net#make bzImage #makemodules #makemodules_install #makeinstall 編譯完成後,可以開始編譯iptables #cd/usr/src/iptables #makeKERNEL_DIR=/usr/src/linux#make install KERNEL_DIR=/usr/src/linux #make install-devel5:重啟後,試一試命令iptables -m connlimit -helpiptables -I INPUT -p tcp -m connlimit --connlimit-above 4 -jREJECTiptables -L如成功則補丁打成功了。 -
3 # 星哥講娛樂
linux下清空iptables規則具體方法如下:
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -F
iptables -X
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t raw -F
iptables -t raw -X
iptables -t raw -P PREROUTING ACCEPT
iptables -t raw -P OUTPUT ACCEPT。
回覆列表
linuxiptables模組limit和connlimit的區別?系統: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