linux系統(tǒng)中,防火墻(Firewall),網(wǎng)址轉(zhuǎn)換(NAT),數(shù)據(jù)包(package)記錄,流量統(tǒng)計(jì),這些功能是由Netfilter子系統(tǒng)所提供的,而iptables是控制Netfilter的工具. iptable能夠?yàn)閁nix、Linux和BSD個(gè)人工作站創(chuàng)建一個(gè)防火墻,也可以為一個(gè)子網(wǎng)創(chuàng)建防火墻以保護(hù)其它的系統(tǒng)平臺(tái)。 1. 術(shù)語(yǔ)解釋
2. iptable 概述2.1. iptable的鏈和表結(jié)構(gòu)如上圖可以看出,iptable總體結(jié)構(gòu). 2.2. 5個(gè)鏈(chain)
注意: 鏈 是每個(gè)數(shù)據(jù)包流需要經(jīng)過(guò)的不同環(huán)節(jié),你可以在不同的環(huán)節(jié)根據(jù)需要設(shè)置不同的過(guò)濾策略,每個(gè)鏈的默認(rèn)策略都是Accept 2.3. 4個(gè)表(table)
注意: 表 是規(guī)則的集合組,每個(gè)表中的規(guī)則條目是按順序匹配的,你可以在數(shù)據(jù)包經(jīng)過(guò)的不同環(huán)節(jié)設(shè)置規(guī)則,表的處理優(yōu)先級(jí):raw > mangle > nat > filter 2.4. 詳細(xì)的數(shù)據(jù)包流程從上圖可以看出,數(shù)據(jù)包流環(huán)節(jié)和表的配合使用方法 3. iptable應(yīng)用場(chǎng)景上圖是應(yīng)用場(chǎng)景的簡(jiǎn)單拓?fù)涿枋?下面的應(yīng)用場(chǎng)景舉例,都以上圖為參考. 3.1. 網(wǎng)關(guān)服務(wù)器安全策略目標(biāo) : 網(wǎng)關(guān)服務(wù)器系統(tǒng)自生安全策略,只對(duì)內(nèi)網(wǎng)用戶(hù)開(kāi)放22端口(sshd服務(wù)) #清空 filter table [root@localhost]# iptables -F -t filter [root@localhost]# iptables -X -t filter [root@localhost]# iptables -Z -t filter #清空 nat table [root@localhost]# iptables -F -t nat [root@localhost]# iptables -X -t nat [root@localhost]# iptables -Z -t nat #設(shè)置默認(rèn)策略(INPUT鏈默認(rèn)為DROP) [root@localhost]# iptables -t filter -P INPUT DROP [root@localhost]# iptables -t filter -P OUTPUT ACCEPT [root@localhost]# iptables -t filter -P FORWARD ACCEPT #回環(huán)接口(lo),默認(rèn)accept [root@localhost]# iptables -A INPUT -p ALL -i lo -j ACCEPT #只對(duì)內(nèi)網(wǎng)用戶(hù)開(kāi)放sshd服務(wù) [root@localhost]# iptables -A INPUT -p tcp -s 192.168.138.0/24 --dport 22 -j ACCEPT 說(shuō)明: 防火墻的策略順序一般都是 從 非信任 ==> 信任,默認(rèn)關(guān)閉所有訪(fǎng)問(wèn)權(quán)限,然后按照需要逐條開(kāi)放訪(fǎng)問(wèn)權(quán)限. 3.2. 共享上網(wǎng)(nat)目標(biāo):使局域網(wǎng)的用戶(hù)都可以訪(fǎng)問(wèn)外網(wǎng)的服務(wù)器 [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 說(shuō)明: SNAT 和 MASQUERADE 區(qū)別 SNAT : 不管是幾個(gè)地址,必須明確的指定要SNAT的ip,適合網(wǎng)關(guān)服務(wù)器有固定地址或者是固定地址范圍. MASQUERADE : 是針對(duì)ADSL動(dòng)態(tài)撥號(hào)這種場(chǎng)景而設(shè)計(jì),從服務(wù)器的網(wǎng)絡(luò)接口上,自動(dòng)獲取當(dāng)前ip地址來(lái)做NAT,這樣就實(shí)現(xiàn)了動(dòng)態(tài)SNAT地址轉(zhuǎn)換 3.3. 內(nèi)網(wǎng)的服務(wù)器對(duì)外服務(wù)(端口映射)目標(biāo):使外網(wǎng)用戶(hù)可以訪(fǎng)問(wèn)到局域網(wǎng)192.168.138.21這臺(tái)HTTP服務(wù) [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@localhost]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.138.21 [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 3.4. 在網(wǎng)關(guān)服務(wù)器進(jìn)行透明代理目標(biāo): 使局域網(wǎng)用戶(hù),訪(fǎng)問(wèn)外網(wǎng)web服務(wù)時(shí),自動(dòng)使用squid作web透明代理服務(wù)器。 [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward [root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.138.1 [root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j REDIRECT --to 3128 [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
轉(zhuǎn)載請(qǐng)注明:愛(ài)開(kāi)源 ? linux iptable 使用指南 |
|
來(lái)自: 昵稱(chēng)28748685 > 《待分類(lèi)1》