Iptables是用linux操作系統(tǒng)作為一個軟件防火墻做到宏觀上的保護(hù),數(shù)據(jù)包要經(jīng)過防火墻首先來到tcp/ip協(xié)議棧,防火墻通過內(nèi)核的一些機(jī)制來做到對數(shù)據(jù)的過濾,內(nèi)核里有這樣五個函數(shù)INPUT、OUTPUT、FORWARD、POSTROUTING、PREROUTING,內(nèi)核沒辦法直接修改我們通過使用iptables用戶空間工具來對這五個函數(shù)下發(fā)規(guī)則,從而達(dá)到對流量的過濾,五個函數(shù)的架構(gòu)稱為netfilter,根據(jù)函數(shù)的功能可以分為下面三類:
nat:postrouting路由判斷之后也就是snat,prerouting路由判斷之前也就是dnat
filter:實現(xiàn)流量過濾,input流量目標(biāo)位防火墻,output流量從防火墻出,forward流量經(jīng)過防火墻
mangle:TOS、QOS
下面是五個函數(shù)對流量過濾的方式:
Input過濾進(jìn)入防火墻的流量
OUTput過濾來自防火墻的流量
Forward過濾從防火墻經(jīng)過的流量
Postrouting過濾從某接口出去的流量
Prerouting過濾從某接口進(jìn)去的流量
為增加iptables防火墻(網(wǎng)絡(luò)層過濾)的功能可以增加L7(七層協(xié)議模塊化)補(bǔ)丁來加強(qiáng)對流量的過濾,另外增加squid(應(yīng)用層過濾)可以使防火墻更加靈活,這樣結(jié)合起來可以使防火墻更加完善
案例:
要求:
公司有三個部門:
工程部門192.168.20.10—192.168.20.20
軟件部門192.168.20.21-192.168.20.30
經(jīng)理辦192.168.20.31-192.168.20.40
上班時間(周一---周五 08:20:00)
工程部門:上班時間只能訪問192.168.102.10的ftp,不允許登錄qq不允許上網(wǎng),下班后無限制。
軟件部門:通過squid可以上網(wǎng),但不允許訪問非法站點sina ,連接數(shù)最多3個,不允許看圖片,下班后無限制。
經(jīng)理辦公室:可以上網(wǎng)可以登錄qq,下班后無限制
dmz區(qū)域:開啟遠(yuǎn)程控制用于外部人員控制訪問。
配置步驟:
為iptables增加layer7補(bǔ)丁,實現(xiàn)應(yīng)用層過濾
重新編譯內(nèi)核
1、合并kernel+layer7補(bǔ)丁
tar jxvf linux-2.6.25.19.tar.gz2 -C /usr/src/
tar zxvf netfilter-layer7-v2.20.tar.gz -C /usr/src/
cd /usr/src/linux-2.6.25.19/
patch -p1 <>
2、配置新內(nèi)核
cp /boot/config-2.6.18-8.el5 .config//沿用舊的內(nèi)核配置
make menuconfig
//配置內(nèi)核時,在“Networking ---> Networking Options ---> Network Packet filtering framework (Netfilter) ”處主要注意兩個地方:---> Core Netfilter Configuration將“Netfilter connection tracking suport (NEW)”選擇編譯為模塊(M),需選取此項才能看到layer7支持的配置。
//將layer7、string、state、time、IPsec、iprange、connlimit……等編譯成模塊,根據(jù)需要看著辦。---> IP: Netfilter Configuration將“IPv4 connection tracking support (require for NAT)”編譯成模塊。將“Full NAT”下的“MASQUERADE target support”和“REDIRECT target support”編譯成模塊。
3、編譯及安裝模塊、新內(nèi)核
make && make modules_install && make install
編譯安裝成后后,重啟選擇使用新的內(nèi)核(2.6.25.19)引導(dǎo)系統(tǒng)
重新編譯iptables
1、卸載現(xiàn)有iptables
rpm -e iptables iptstat --nodeps
2、合并iptables+layer7補(bǔ)丁
tar jxvf iptables-1.4.2.tar.bz2 -C /usr/src/
cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/
cp libxt_layer7.c libxt_layer7.man /usr/src/iptables-1.4.2/extensions/
3、編譯安裝
cd /usr/src/iptables-1.4.2/
./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19
make && make install
4、安裝l7-protocols模式包
tar zxvf l7-protocols-2008-10-04.tar.gz -C /etc/
mv /etc/l7-protocols-2008-10-04 /etc/l7-protocols
聯(lián)系客服