<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          網(wǎng)絡(luò)安全策略如何實現(xiàn)?

          共 2222字,需瀏覽 5分鐘

           ·

          2021-09-26 22:54

          前言

          上一篇記錄了內(nèi)容分發(fā)網(wǎng)絡(luò)CDN

          今天來記錄一下日常能接觸到的iptables

          在部署一臺服務(wù)器的時候,我們總是希望只是開放特定的端口,其它端口都不提供訪問

          此時,只要通過安全措施守護好這個唯一的入口就可以了

          采用的方式是ACL(Access Control List 訪問控制列表) 來控制IP和端口

          設(shè)置好這些規(guī)則,只有指定的IP段能訪問指定的開放接口,這些規(guī)則的集合稱為安全組

          iptables

          當一個網(wǎng)絡(luò)包進入一臺機器的時候,會做什么事情?

          首先取下MAC查看是否是本機的,如果是,則取下IP頭

          得到目標IP后,就開始進行路由判斷,這個節(jié)點稱為PREROUTING

          如果發(fā)現(xiàn)IP是本機的,就發(fā)給傳輸層,這個節(jié)點叫做INPUT

          如果IP不是本機的,就需要轉(zhuǎn)發(fā)出去,稱為FORWARD

          上層處理完后,會將處理結(jié)果發(fā)出去,稱為OUTPUT

          無論是FORWARD還是OUTPUT,都是路由判斷之后發(fā)生的,最后一個節(jié)點是POSTROUTING

          五個節(jié)點重點節(jié)點

          在 Linux 內(nèi)核中,有一個框架叫 Netfilter。它可以在這些節(jié)點插入 hook 函數(shù)。

          這些函數(shù)可以截獲數(shù)據(jù)包,對數(shù)據(jù)包進行干預(yù)。

          例如做一定的修改,然后決策是否接著交給 TCP/IP 協(xié)議棧處理;或者可以交回給協(xié)議棧,那就是 ACCEPT;或者過濾掉,不再傳輸,就是 DROP;還有就是 QUEUE,發(fā)送給某個用戶態(tài)進程處理。

          一個著名的實現(xiàn),就是內(nèi)核模塊 ip_tables。

          它在這五個節(jié)點上埋下函數(shù),從而可以根據(jù)規(guī)則進行包的處理。

          按功能可分為四大類:

          • 連接跟蹤(conntrack)
          • 數(shù)據(jù)包的過濾(filter)
          • 網(wǎng)絡(luò)地址轉(zhuǎn)換(nat)
          • 數(shù)據(jù)包的修改(mangle)

          其中連接跟蹤是基礎(chǔ)功能,被其他功能所依賴。其他三個可以實現(xiàn)包的過濾、修改和網(wǎng)絡(luò)地址轉(zhuǎn)換。

          在用戶態(tài),還有一個客戶端程序 iptables,用命令行來干預(yù)內(nèi)核的規(guī)則。內(nèi)核的功能對應(yīng) iptables 的命令行來講,就是表和鏈的概念。

          iptables 的表分為四種:raw–>mangle–>nat–>filter。這四個優(yōu)先級依次降低,raw 不常用,所以主要功能都在其他三種表里實現(xiàn)。每個表可以設(shè)置多個鏈。

          filter 表處理過濾功能,主要包含三個鏈:

          • INPUT 鏈:過濾所有目標地址是本機的數(shù)據(jù)包;
          • FORWARD 鏈:過濾所有路過本機的數(shù)據(jù)包;
          • OUTPUT 鏈:過濾所有由本機產(chǎn)生的數(shù)據(jù)包。

          nat 表主要是處理網(wǎng)絡(luò)地址轉(zhuǎn)換,可以進行 Snat(改變數(shù)據(jù)包的源地址)、Dnat(改變數(shù)據(jù)包的目標地址),包含三個鏈:

          • PREROUTING 鏈:可以在數(shù)據(jù)包到達防火墻時改變目標地址;
          • OUTPUT 鏈:可以改變本地產(chǎn)生的數(shù)據(jù)包的目標地址;
          • POSTROUTING 鏈:在數(shù)據(jù)包離開防火墻時改變數(shù)據(jù)包的源地址。

          mangle 表主要是修改數(shù)據(jù)包,包含:

          • PREROUTING 鏈;
          • INPUT 鏈;
          • FORWARD 鏈;
          • OUTPUT 鏈;
          • POSTROUTING 鏈。
          1. 數(shù)據(jù)包進入的時候,先進 mangle 表的 PREROUTING 鏈。在這里可以根據(jù)需要,改變數(shù)據(jù)包頭內(nèi)容之后,進入 nat 表的 PREROUTING 鏈,在這里可以根據(jù)需要做 Dnat,也就是目標地址轉(zhuǎn)換。
          2. 進入路由判斷,要判斷是進入本地的還是轉(zhuǎn)發(fā)的。
          3. 如果是進入本地的,就進入 INPUT 鏈,之后按條件過濾限制進入。
          4. 之后進入本機,再進入 OUTPUT 鏈,按條件過濾限制出去,離開本地。
          5. 如果是轉(zhuǎn)發(fā)就進入 FORWARD 鏈,根據(jù)條件過濾限制轉(zhuǎn)發(fā)。
          6. 之后進入 POSTROUTING 鏈,這里可以做 Snat,離開網(wǎng)絡(luò)接口。

          有了 iptables 命令,我們就可以在云中實現(xiàn)一定的安全策略。例如可以處理前面的偷窺事件。首先我們將所有的門都關(guān)閉。

          iptables -t filter -A INPUT -s 0.0.0.0/0.0.0.0 -d X.X.X.X -j DROP

          -s 表示源 IP 地址段,-d 表示目標地址段,DROP 表示丟棄,也即無論從哪里來的,要想訪問這臺機器,全部拒絕,誰也黑不進來。

          但是會發(fā)現(xiàn)出問題,ssh 也進不來了,都不能遠程運維了,可以打開一下。

          iptables -I INPUT -s 0.0.0.0/0.0.0.0 -d X.X.X.X -p tcp --dport 22 -j ACCEPT

          在云平臺上,一般允許一個或者多個虛擬機屬于某個安全組,而屬于不同安全組的虛擬機之間的訪問以及外網(wǎng)訪問虛擬機,都需要通過安全組進行過濾

          往期推薦:

          TCP為什么可靠?

          詳解tcp三次握手四次揮手

          DNS域名解析系統(tǒng)

          廣播與多播

          UDP是什么東西???

          路由協(xié)議

          網(wǎng)關(guān)和路由

          星巴克氣氛組電腦是如何獲取IP的

          瀏覽器發(fā)起HTTP請求后經(jīng)歷了什么?

          推薦一個生產(chǎn)環(huán)境問題排查利器

          MySQL系列文章

          k8s全系列文章匯總





          瀏覽 67
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www.俺来也.com | 每日更新欧美韩国 | 久久精产国99精产国高潮麻豆 | 成人国产精品视频 | 天天操天天摸天天日天天爱 |