8.2.1 策略與規(guī)則鏈

2022-05-30 15:05 更新

防火墻會從上至下的順序來讀取配置的策略規(guī)則,在找到匹配項(xiàng)后就立即結(jié)束匹配工作并去執(zhí)行匹配項(xiàng)中定義的行為(即放行或阻止)。如果在讀取完所有的策略規(guī)則之后沒有匹配項(xiàng),就去執(zhí)行默認(rèn)的策略。一般而言,防火墻策略規(guī)則的設(shè)置有兩種:一種是“通”(即放行),一種是“堵”(即阻止)。當(dāng)防火墻的默認(rèn)策略為拒絕時(堵),就要設(shè)置允許規(guī)則(通),否則誰都進(jìn)不來;如果防火墻的默認(rèn)策略為允許時,就要設(shè)置拒絕規(guī)則,否則誰都能進(jìn)來,防火墻也就失去了防范的作用。

iptables服務(wù)把用于處理或過濾流量的策略條目稱之為規(guī)則,多條規(guī)則可以組成一個規(guī)則鏈,而規(guī)則鏈則依據(jù)數(shù)據(jù)包處理位置的不同進(jìn)行分類,具體如下:

在進(jìn)行路由選擇前處理數(shù)據(jù)包(PREROUTING);

處理流入的數(shù)據(jù)包(INPUT);

處理流出的數(shù)據(jù)包(OUTPUT);

處理轉(zhuǎn)發(fā)的數(shù)據(jù)包(FORWARD);

在進(jìn)行路由選擇后處理數(shù)據(jù)包(POSTROUTING)。

一般來說,從內(nèi)網(wǎng)向外網(wǎng)發(fā)送的流量一般都是可控且良性的,因此我們使用最多的就是INPUT規(guī)則鏈,該規(guī)則鏈可以增大黑客人員從外網(wǎng)入侵內(nèi)網(wǎng)的難度。

比如在您居住的社區(qū)內(nèi),物業(yè)管理公司有兩條規(guī)定:禁止小商小販進(jìn)入社區(qū);各種車輛在進(jìn)入社區(qū)時都要登記。顯而易見,這兩條規(guī)定應(yīng)該是用于社區(qū)的正門的(流量必須經(jīng)過的地方),而不是每家每戶的防盜門上。根據(jù)前面提到的防火墻策略的匹配順序,可能會存在多種情況。比如,來訪人員是小商小販,則直接會被物業(yè)公司的保安拒之門外,也就無需再對車輛進(jìn)行登記。如果來訪人員乘坐一輛汽車進(jìn)入社區(qū)正門,則“禁止小商小販進(jìn)入社區(qū)”的第一條規(guī)則就沒有被匹配到,因此按照順序匹配第二條策略,即需要對車輛進(jìn)行登記。如果是社區(qū)居民要進(jìn)入正門,則這兩條規(guī)定都不會匹配到,因此會執(zhí)行默認(rèn)的放行策略。

但是,僅有策略規(guī)則還不能保證社區(qū)的安全,保安還應(yīng)該知道采用什么樣的動作來處理這些匹配的流量,比如“允許”、“拒絕”、“登記”、“不理它”。這些動作對應(yīng)到iptables服務(wù)的術(shù)語中分別是ACCEPT(允許流量通過)、REJECT(拒絕流量通過)、LOG(記錄日志信息)、DROP(拒絕流量通過)?!霸试S流量通過”和“記錄日志信息”都比較好理解,這里需要著重講解的是REJECT和DROP的不同點(diǎn)。就DROP來說,它是直接將流量丟棄而且不響應(yīng);REJECT則會在拒絕流量后再回復(fù)一條“您的信息已經(jīng)收到,但是被扔掉了”信息,從而讓流量發(fā)送方清晰地看到數(shù)據(jù)被拒絕的響應(yīng)信息。

我們來舉一個例子,讓各位讀者更直觀地理解這兩個拒絕動作的不同之處。比如有一天您正在家里看電視,突然聽到有人敲門,您透過防盜門的貓眼一看是推銷商品的,便會在不需要的情況下開門并拒絕他們(REJECT)。但如果您看到的是債主帶了十幾個小弟來討債,此時不僅要拒絕開門,還要默不作聲,偽裝成自己不在家的樣子(DROP)。

當(dāng)把Linux系統(tǒng)中的防火墻策略設(shè)置為REJECT拒絕動作后,流量發(fā)送方會看到端口不可達(dá)的響應(yīng):

    [root@linuxprobe ~]# ping -c 4 192.168.10.10
    PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
    From 192.168.10.10 icmp_seq=1 Destination Port Unreachable
    From 192.168.10.10 icmp_seq=2 Destination Port Unreachable
    From 192.168.10.10 icmp_seq=3 Destination Port Unreachable
    From 192.168.10.10 icmp_seq=4 Destination Port Unreachable
    --- 192.168.10.10 ping statistics ---
    4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3002ms

而把Linux系統(tǒng)中的防火墻策略修改成DROP拒絕動作后,流量發(fā)送方會看到響應(yīng)超時的提醒。但是流量發(fā)送方無法判斷流量是被拒絕,還是接收方主機(jī)當(dāng)前不在線:

    [root@linuxprobe ~]# ping -c 4 192.168.10.10
    PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.


    --- 192.168.10.10 ping statistics ---
    4 packets transmitted, 0 received, 100% packet loss, time 3000ms
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號