netfilter/iptables 基礎入門

netfilter/iptables 基礎入門

Firewall防火墻的實現方式

netfilter/iptables 基礎入門

什么是netfilter? 

      Netfilter是由Linux內核提供的框架,允許以定制處理程序的形式實現各種與網絡相關的操作。Netfilter為包過濾,網絡地址轉換和端口轉換提供各種功能和操作,它們提供了通過網絡引導數據包所需的功能,以及提供禁止數據包到達計算機網絡中敏感位置的能力。

       Netfilter代表Linux內核中的一組鉤子,允許特定的內核模塊使用內核的網絡堆棧注冊回調函數。這些功能,通常以過濾和修改規則的形式應用于流量,是針對穿過網絡堆棧中相應鉤子的每個數據包進行調用的

什么是iptables?

        iptables 是一個配置 Linux 內核 防火墻 的命令行工具,是 netfilter 項目的一部分。術語 iptables 也經常代指該內核級防火墻。iptables 可以直接配置,也可以通過許多 前端[broken link: invalid section] 和 圖形界面[broken link: invalid section] 配置。iptables 用于 ipv4,ip6tables 用于 ipv6。

nftables 已經包含在 Linux kernel 3.13 中,以后會取代 iptables 成為主要的 Linux 防火墻工具;

    Netfilter基本框架圖:

    netfilter/iptables 基礎入門

表中所包含的鏈的含義(用來定義表中的過濾器)

netfilter/iptables 基礎入門

Netfilter框架實現的功能: 【功能的優先級由低到高】

   filter:過濾,防火墻; 
    nat:network address translation;用于修改源IP或目標IP,也可以改端口; 
    mangle:拆解報文,做出修改,并重新封裝起來; 
    raw:關閉nat表上啟用的連接追蹤機制;

Netfilter框中功能包含的鏈: 

    raw:PREROUTING, OUTPUT 
    mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 
    nat:PREROUTING,[INPUT,]OUTPUT,POSTROUTING 
    filter:INPUT,FORWARD,OUTPUT

Netfilter框中報文流向:經過的鏈(框架中的鉤子)

    流入本機:PREROUTING –> INPUT 
    由本機流出:OUTPUT –> POSTROUTING 
    轉發:PREROUTING –> FORWARD –> POSTROUTING

Netfilter框中路由功能發生的時刻: 


    報文進入本機后:判斷報文的目標主機是 
    報文離開本機之前:判斷報文經由哪個接口送往下一站


Netfilter框在用iptables實現規則時需要注意:


組成部分:根據規則匹配條件來嘗試匹配報文,一旦匹配成功,就由規則定義的處理動作作出處理;

匹配條件:
    基本匹配條件:內建
    擴展匹配條件:由擴展模塊定義;
處理動作:
    基本處理動作:內建
    擴展處理動作:由擴展模塊定義;
    自定義處理機制:自定義鏈

添加規則時的考量點: 

            (1) 要實現哪種功能:判斷添加到哪個表上; 
            (2) 報文流經的路徑:判斷添加到哪個鏈上;

鏈:鏈上的規則次序,即為檢查的次序;因此,隱含一定的應用法則:
 (1) 同類規則(訪問同一應用),匹配范圍小的放上面;
 (2) 不同類的規則(訪問不同應用),匹配到報文頻率較大的放在上面; 
(3) 將那些可由一條規則描述的多個規則合并起來;
 (4) 設置默認策略;

iptables命令:高度模塊化,由諸多擴展模塊實現其檢查條件或處理動作的定義; 
規則格式:

iptables [-t table] COMMAND   chain [-m matchname [per-match-options]] -j targetname [per-target-options] 

-t table:

raw, mangle, nat, [filter]

命令COMMAND:可分為鏈的管理與規則管理 
鏈管理:

-N:new, 自定義一條新的規則鏈; -X: delete,刪除自定義的規則鏈; 注意:僅能刪除 用戶自定義的 引用計數為0的 空的 鏈;
-P:Policy,設置默認策略;對filter表中的鏈而言,其默認策略有: 
        ACCEPT:接受
        DROP:丟棄
        REJECT:拒絕
-E:重命名自定義鏈;引用計數不為0的自定義鏈不能夠被重命名,也不能被刪除; 

規則管理:

-A:append,追加; 
-I:insert, 插入,要指明位置,省略時表示第一條; 
-D:delete,刪除;  (1) 指明規則序號;(2) 指明規則本身;
-R:replace,替換指定鏈上的指定規則; 
-F:flush,清空指定的規則鏈; 
-Z:zero,置零; 

查看鏈的命令:

-L:list, 列出指定鏈上的所有規則; 
     -n:numberic,以數字格式顯示地址和端口號;  
     -v:verbose,詳細信息;  -vv, -vvv 
     -x:exactly,顯示計數器結果的精確值;  
      --line-numbers:顯示規則的序號;

chain:包含的鏈

        PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

匹配條件: 基本匹配條件:無需加載任何模塊,由iptables/netfilter自行提供;

[!] -s:檢查報文中的源IP地址是否符合此處指定的地址或范圍; 
[!] -d:檢查報文中的目標IP地址是否符合此處指定的地址或范圍;所有地址:0.0.0.0/0 
[!] -p, --protocol protocol protocol 檢查定義的數據傳輸協議 tcp, udp, udplite, icmp, icmpv6 "all"{tcp|udp|icmp} 
[!] -i:數據報文流入的接口;只能應用于數據報文流入的環節,只能應用于PREROUTING,INPUT和FORWARD鏈;
[!] -o:數據報文流出的接口;只能應用于數據報文流出的環節,只能應用于FORWARD、OUTPUT和POSTROUTING鏈

處理動作:-j targetname [per-target-options]

ACCEPT:允許    DROP:不允許的   REJECT:拒絕
可以自定義動作

原創文章,作者:GYF,如若轉載,請注明出處:http://www.www58058.com/78052

(0)
GYFGYF
上一篇 2017-06-13 20:45
下一篇 2017-06-15 00:00

相關推薦

  • 走進linux的世界

    1、描述計算機的組成及其功能。  所謂的計算機就是一種計算器,而計算器其實是:接受用戶輸入指令與數據,經由中央處理器的數學與邏輯單元運算處理后,以產生或儲存成有用的信息。 計算機系統由硬件系統和軟件系統兩個部分組成。 硬件系統由運算器、控制器、存儲器、輸入設備、輸出設備組成。 運算器 是計算機中進行算術運算和邏輯運算的主要部件是計算機的主體。 控…

    Linux干貨 2017-01-14
  • 常見的文本處理工具及正則表達式的相關知識

    1.cat命令使用詳解 cat [option]… [file]… -A equivalent=vET -b 非空行編號 -E 行為顯示$ -n 顯示所有行的行號 -s 行號并壓縮連續空行為一行 -T 顯示tab為^M 實例:顯示a文件的行號及所有控制符 2.(1)head使用詳解 head -n x 顯示前x行 head -c x …

    Linux干貨 2016-08-07
  • N25第七周學習總結(CentOS 7 系統啟動流程)

    CentOs系統啟動流程 大綱 1、    什么是CentOs系統啟動流程 2、    為什么要了解CentOS系統啟動流程 3、    了解CentOS系統啟動流程對我們有什么幫助 4、    CentOs系統啟動流程詳解   …

    Linux干貨 2017-02-20
  • LINUX課堂筆記(第二周)

    2018.03.12 rpm httpd*** service httpd start ab 模仿用戶訪問 cat /var/log/httpd/access_log curl 訪問web服務 rev 字符顛倒顯示 sort ? -r 執行反方向(由上至下)整理 ? -R 隨機排序 ? -n 執行按數字大小整理 ? -f 選項忽略(fold)字符串中的字符大…

    Linux干貨 2018-03-17
  • 基于iptables mangle的lvs && lvs的持久連接

    一、lvs-dr類型:也稱direct routing,簡稱為g(gatewaying);配置lvs-dr基于iptables mangle的實現方式  實驗圖:  地址規劃:    VIP: 172.16.2.100    DIP: 172.16.2.13    RIP1:17…

    Linux干貨 2015-06-30
  • 第七周

    創建一個10G分區,并格式化為ext4的文件系統 劃分分區 partxprobe:重讀分區表   建立文件系統,acl機制          掛載文件系統          寫文件 &nbs…

    Linux干貨 2016-12-11
欧美性久久久久