91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iptables從入門到應用的實例分析

發布時間:2021-11-03 16:43:24 來源:億速云 閱讀:191 作者:柒染 欄目:建站服務器

iptables從入門到應用的實例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

iptables從入門到應用

 一、簡介

 1.1、是什么?

    iptables是隔離主機以及網絡的工具,通過自己設定的規則以及處理動作對數據報文進行檢測以及處理。 

 1.2、發展史

    防火墻的發展史就是從墻到鏈再到表的過程,也即是從簡單到復雜的過程。為什么規則越來越多,因為互聯網越來越不安全了,所有防火墻的的規則也越來越復雜。防火的工具變化如下:

    ipfirewall(墻)-->ipchains(鏈條)--iptables(表)

    2.0版內核中,包過濾機制是ipfw,管理工具是ipfwadm;

    2.2 版內核中,包過濾機制ipchain,管理工具是ipchains;

    2.4版及以后的內核中,包過濾機制是netfilter,管理工具iptables。

 二、原理

iptables [-t table] {-A|-C|-D} chain rule-specification

  iptables [-t table] -I chain [rulenum] rule-specification

  iptables [-t table] -R chain rulenum rule-specification

  iptables [-t table] -D chain rulenum

  iptables [-t table] -S [chain [rulenum]]

  iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]

  iptables [-t table] -N chain

  iptables [-t table] -X [chain]

  iptables [-t table] -P chain target

  iptables [-t table] -E old-chain-name new-chain-name

    rule-specification = [matches...] [target]

   match = -m matchname [per-match-options]

   target = -j targetname [per-target-options]

 3.4、語法結構解析

  語法結構解析如下。

    -N, --new-chain chain:新建一個自定義的規則鏈;

    -X, --delete-chain [chain]:刪除用戶自定義的引用計數為0的空鏈;

    -F, --flush [chain]:清空指定的規則鏈上的規則;

    -E, --rename-chain old-chain new-chain:重命名鏈;

    -Z, --zero [chain [rulenum]]:置零計數器;

      注意:每個規則都有兩個計數器

      packets:被本規則所匹配到的所有報文的個數;

      bytes:被本規則所匹配到的所有報文的大小之和;

    -P, --policy chain target 制定鏈表的策略(ACCEPT|DROP|REJECT)

    -A, --append chain rule-specification:追加新規則于指定鏈的尾部; 

    -I, --insert chain [rulenum] rule-specification:插入新規則于指定鏈的指定位置,默認為首部;

    -R, --replace chain rulenum rule-specification:替換指定的規則為新的規則;

    -D, --delete chain rulenum:根據規則編號刪除規則;

    -D, --delete chain rule-specification:根據規則本身刪除規則;

    規則顯示      

1

2

3

4

5

6

7

     -L, --list [chain]:列出規則;

     -v, --verbose:詳細信息; 

     -vv 更詳細的信息

     -n, --numeric:數字格式顯示主機地址和端口號;

     -x, --exact:顯示計數器的精確值,而非圓整后的數據;

     --line-numbers:列出規則時,顯示其在鏈上的相應的編號;

     -S, --list-rules [chain]:顯示指定鏈的所有規則;

 3.4.3、鏈

    五鏈的功能如圖所示。   

iptables從入門到應用的實例分析

 3.4.4、條件匹配

    條件匹配分為基本匹配和擴展匹配,擴展匹配又分為顯示匹配和隱式匹配。

    基本匹配的特點是:無需加載擴展模塊,匹配規則生效;擴展匹配的特點是:需要加載擴展模塊,匹配規則方可生效。

    隱式匹配的特點:使用-p選項指明協議時,無需再同時使用-m選項指明擴展模塊以及不需要手動加載擴展模塊;  

    顯示匹配的特點:必須使用-m選項指明要調用的擴展模塊的擴展機制以及需要手動加載擴展模塊。

    基本匹配的使用選項及功能

1

2

3

4

5

6

-p 指定規則協議,tcp udp icmp all

-s 指定數據包的源地址,ip hostname

-d 指定目的地址

-i 輸入接口

-o 輸出接口                                              

! 取反

    隱式匹配的使用選項及功能 

-p tcp

  --sport 匹配報文源端口;可以給出多個端口,但只能是連續的端口范圍 

  --dport 匹配報文目標端口;可以給出多個端口,但只能是連續的端口范圍

  --tcp-flags mask comp 匹配報文中的tcp協議的標志位

-p udp

  --sport 匹配報文源端口;可以給出多個端口,但只能是連續的端口范圍

  --dport 匹配報文目標端口;可以給出多個端口,但只能是連續的端口范圍

--icmp-type

  /0: echo reply 允許其他主機ping

  8/0echo request 允許ping其他主機

   

  • 1

    2

    3

    例子:

            iptables -I INPUT -d 172.16.100.7 -p tcp -m multiport --dports 22,80 -j ACCEPT

            iptables -I OUTPUT -s 172.16.100.7 -p tcp -m multiport --sports 22,80 -j ACCEPT

  •     2.iprange(ip范圍)

         以連續地址塊的方式來指明多IP地址匹配條件。

    1. 1

      2

      3

      例子:

          iptables -A INPUT -d 172.16.100.7 -p tcp --dport 23 -m iprange --src-range 172.16.100.1-172.16.100.100 -j ACCEPT

          iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport 23 -m iprange --dst-range 172.16.100.1-172.16.100.100 -j ACCEPT

        3.time(時間范圍)

         指定時間范圍。

    1. 1

      2

      3

       例子:

              iptables -A INPUT -d 172.16.100.7 -p tcp --dport 901 -m time --weekdays Mon,Tus,Wed,Thu,Fri --timestart 08:00:00 --time-stop 18:00:00 -j ACCEPT

              iptables -A OUTPUT -s 172.16.100.7 -p tcp --sport 901 -j ACCEPT

        4.string(字符串)

         對報文中的應用層數據做字符串模式匹配檢測(通過算法實現)。

    1. 1

      2

      3

          --algo {bm|kmp}:字符匹配查找時使用算法

          --string "STRING": 要查找的字符串

          --hex-string “HEX-STRING”: 要查找的字符,先編碼成16進制格式

        5.connlimit(連接限制)

         根據每個客戶端IP作并發連接數量限制。

    1

    2

        --connlimit-upto n  連接數小于等于n時匹配

        --connlimit-above n 連接數大于n時匹配

        6.limit(速率限制)

         報文速率控制。  

        7.state(狀態)

         追蹤本機上的請求和響應之間的數據報文的狀態。狀態有五種:INVALID, ESTABLISHED, NEW, RELATED, UNTRACKED.

    iptables從入門到應用的實例分析

    1.  法則:

    2.         1、對于進入的狀態為ESTABLISHED都應該放行;

    3.         2、對于出去的狀態為ESTABLISHED都應該放行;

    4.         3、嚴格檢查進入的狀態為NEW的連接;

    5.         4、所有狀態為INVALIED都應該拒絕;  

       

     3.4.5、處理動作

        處理動作有內置的處理動作和自定義的處理動作。自定義的處理動作用的比較少,因此只介紹內置的處理動作。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    ACCEPT:允許數據包通過

     

    DROP:直接丟棄數據包,不給出任何回應信息

     

    REJECT:拒絕數據包通過,必要時會給數據發送端一個響應信息

     

    LOG:在日志文件中記錄日志信息,然后將數據包傳遞給下一條規則

     

    QUEUE: 防火墻將數據包移交到用戶空間

     

    RETURN:防火墻停止執行當前鏈中的后續Rules,并返回到調用鏈 

     

    REDIRECT:端口重定向  

     

    MARK:做防火墻標記

     

    DNAT:目標地址轉換

     

    SNAT:源地址轉換   

                                                     

    MASQUERADE:地址偽裝

     3.5、保存和載入規則

        CentOS6和CentOS7保存和載入的規則稍有差異。

     


        保存:iptables-save > /PATH/TO/SOME_RULE_FILE   

       重載:iptabls-restore < /PATH/FROM/SOME_RULE_FILE    

        -n, --noflush:不清除原有規則    

        -t, --test:僅分析生成規則集,但不提交

     

        保存規則:service iptables save   #保存規則于/etc/sysconfig/iptables文件,覆蓋保存;   

       重載規則:service iptables restart #默認重載/etc/sysconfig/iptables文件中的規則   

       配置文件:/etc/sysconfig/iptables-config

    四、iptables的實踐應用

        iptables十分重要與網絡的安全息息相關,我們理所應當掌握。不過我們大可不必死記硬背,一定結合實際項目,多多練習,效果才會更好。

     4.1、iptables常用規則

        1.放行sshd服務

    1

    2

     iptables -t filter -A INPUT -s 192.168.0.0/24 -d 192.168.0.1 -p tcp --dport 22 -j ACCEPT

     iptables -t filter -A OUTPUT -s 192.168.0.1  -p tcp --sport 22 -j ACCEPT


  •  iptables -I OUTPUT -s 192.168.0.1 -p tcp --sport 80 -j ACCEPT

     iptables -I INPUT -d 192.168.0.1 -p tcp --dport 80 -j ACCEPT

    1

    2

    3

      iptables -A  INPUT  -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT

      iptables -A  OUTPUT  -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT

      #不放行本機的流入與流出,訪問本機的httpd服務,網頁會出現Error establishing a database connection。

    1

    iptables -A INPUT -i ens33 -d 192.168.0.1 -p icmp --icmp-type 8 -m limit --limit 2/second --limit-burst 3 -j ACCEPT

     4.2、如何配置iptables

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    a) 1. 刪除現有規則

    iptables -F

    b) 2. 配置默認鏈策略

    iptables -P INPUT DROP

    iptables -P FORWARD DROP

    iptables -P OUTPUT DROP

    c) 3. 允許遠程主機進行SSH連接

    iptables -A INPUT -i eth0 -p tcp –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -o eth0 -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT

    d) 4. 允許本地主機進行SSH連接

    iptables -A OUTPUT -o eth0 -p tcp –dport 22 -m state –state NEW,ESTABLISHED -j ACCEPT

    iptables -A INPUT -i eth0 -p tcp –sport 22 -m state –state ESTABLISHED -j ACCEPT

    e) 5. 允許HTTP請求

    iptables -A INPUT -i eth0 -p tcp –dport 80 -m state –state NEW,ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -o eth0 -p tcp –sport 80 -m state –state ESTABLISHED -j ACCEPT

     4.3、iptables初始化腳本

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    #!/bin/bash

      

    echo &quot;Setting firewall . . . . start&quot;

      

    #--------RULESET INIT----------#

    iptables -F

    iptables -X

    iptables -P INPUT DROP

    iptables -P OUTPUT ACCEPT

    iptables -P FORWARD ACCEPT

    iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

    #------------------------------#

    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    iptables -A INPUT -i eth0 -p tcp ! --syn -j ACCEPT

    iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

    #------------------------------#

    #zabbix

    iptables -A INPUT -p tcp --destination-port 10050 -j ACCEPT

    iptables -A INPUT -p udp --destination-port 10051 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 10050 -j ACCEPT

    iptables -A OUTPUT -p udp --destination-port 10051 -j ACCEPT

    #for web

    iptables -A INPUT -p tcp --destination-port 21 -j ACCEPT

    iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 80 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 21 -j ACCEPT

    #for mysql

    iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT

    #for mail

    iptables -A INPUT -p tcp --destination-port 25 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 25 -j ACCEPT

    iptables -A OUTPUT -p tcp --destination-port 110 -j ACCEPT

    #for ssh

    iptables -A INPUT -p tcp -s any/0 --destination-port 22 -j ACCEPT

    iptables -N icmp_allowed

    iptables -A icmp_allowed -p ICMP --icmp-type 11 -j ACCEPT

    iptables -A icmp_allowed -p ICMP --icmp-type 8 -j ACCEPT

    iptables -A icmp_allowed -p ICMP -j DROP

    iptables -A OUTPUT -p icmp -j ACCEPT

    iptables -A INPUT -p icmp -j ACCEPT

    iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

    iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

    iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

    /etc/init.d/iptables save

限制ping 192.168.0.1主機的數據包數,平均2/s個,最多不能超過3個

放行本機端的流入流出

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

毕节市| 麻栗坡县| 定结县| 沐川县| 洛浦县| 普洱| 聊城市| 建湖县| 蒲城县| 龙陵县| 巢湖市| 峨山| 漳平市| 蒙自县| 奉贤区| 习水县| 长岭县| 民丰县| 麦盖提县| 邓州市| 佛坪县| 娱乐| 宣武区| 绩溪县| 莱州市| 新密市| 弋阳县| 嫩江县| 黑河市| 阿坝| 沐川县| 永福县| 仪征市| 顺义区| 小金县| 玉环县| 临洮县| 邵阳县| 襄垣县| 天全县| 广平县|