iptables/netfilter詳解

iptables/netfilter詳解

一、前言

1.防火牆(Firewall)是隔離工具;工作於主機或網絡的邊緣,對經由的報文根據預先定義的規則(識別條件)進行檢測,
        對於能夠被規則匹配到的報文實行某預定義的處理機制的一套組件。
    
2.防火牆分類:
        硬件防火牆:在硬件級別能部分防火牆,另一部分功能基於軟件實現;
        軟件防火牆:應用軟件處理邏輯運行通用硬件實現的防火牆;
        主機防火牆:服務範圍爲當前主機;
        網絡防火牆:服務範圍爲局域網;
        
3.iptables/netfilter 包過濾型防火牆:

        軟件實現的主機或網絡防火牆

二、iptables 的歷史以及工作原理

1.1 iptables的發展: ip fw --> ip chains --> ip tables
    iptables的前身叫ipfirewall (內核1.x時代),這是一個作者從freeBSD上移植過來的,能夠工作在內核當中的,對數據包進行檢測的一款簡易訪問控制工具。
    但是ipfirewall工作功能極其有限(它需要將所有的規則都放進內核當中,這樣規則才能夠運行起來,而放進內核,這個做法一般是極其困難的)。
    當內核發展到2.x系列的時候,軟件更名爲ipchains,它可以定義多條規則,將他們串起來,共同發揮作用,而現在,它叫做iptables,可以將規則組成一個列表,實現絕對詳細的訪問控制功能。
    他們都是工作在用戶空間中,定義規則的工具,本身並不算是防火牆。它們定義的規則,可以讓在內核空間當中的netfilter來讀取,並且實現讓防火牆工作。
    而放入內核的地方必須要是特定的位置,必須是tcp/ip的協議棧經過的地方。而這個tcp/ip協議棧必須經過的地方,可以實現讀取規則的地方就叫做 netfilter(網絡過濾器)

1.2 內核空間中選擇了5個位置:
    1.內核空間中:從一個網絡接口進來,到另一個網絡接口去的
    2.數據包從內核流入用戶空間的
    3.數據包從用戶空間流出的
    4.進入/離開本機的外網接口
    5.進入/離開本機的內網接口
    
2. iptables的工作機制

2.1 iptables/netfilter軟件:

    是實現主機或網絡包過濾防火牆,其中iptables是位於用戶空間的命令行程序,用於生成規則送往內核中的netfilter之上。
netfilter位於內核中tcp/ip協議棧上的一個防火牆框架framework;5個鉤子函數。

2.2 netfilter:(hook function --> 鉤子函數)

    1.prerouting    (路由前)
    2.input         (數據包流入口)
    3.forward        (轉發關卡)
    4.output         (數據包出口)
    5.postrouting    (路由後)
    
2.3 iptables:(chain--> 鏈) 5

    1.PREROUTING    (路由前)
    2.INPUT            (數據包入口)
    3.FORWARD        (數據包轉發)
    4.OUTPUT        (數據包出口)
    5.POSTROUTING    (路由後)
        
3.iptables防火牆策略    
        
3.1 tables:功能--> 表 4

    1.filter:過濾,防火牆。
    2.nat:network address translation(網絡地址轉發),用於修改報文的源地址或目標地址,甚至是端口。
    3.mangle:拆解報文,做出修改,並重新封裝起來。
    4.raw:關閉nat表上啓用的連接追蹤機制。
    
優先級次序(由高而低):
                4.raw --> 3.mangle --> 2.nat --> 1.filter
  
3.2 功能<-->鉤子<==>表<-->鏈 對應關係:

    4.raw:PREROUTING-->路由後,OUTPUT-->流出
    3.mangle:PREROUTING-->路由前,INPUT-->數據包入口,FORWARD-->轉發,OUTPUT-->出口,POSTROUTING-->路由後
    2.nat:PREROUTING-->路由前,INPUT--數據包入口,OUTPUT-->出口,POSTRUTING-->路由後
    1.filter:INPUT-->數據包入口,FORWARD-->轉發,OUTPUT--出口
            
3.3 報文流向:

    1.到本機某進程的報文:PREROUTING --> INPUT
    2.由本轉發的報文:PREROUTING --> FORWARD --> POSTROUTING
    3.由本機某進程發出的:OUTPUT --> POSTROUTING   
        
3.4 規則的組成的部分:

    1.匹配條件
    2.網絡層首部屬性值 IP 首部數據包
    3.傳輸層首部屬性值 TCP 首部數據包
    4.附加的條件
    5.處理動作
                
3.5 TCP/IP協議棧:

    1.數據鏈接層:物理到物理設備之間的通信;(MAC,Media Access Control)
    2.網絡層:源主機到目標主機之間的通信 IP
    3.傳輸層:進程到進程之間的通信 TCP UDP
      
注意:
    1.CentOS 5/6:iptables命令編寫規則;
    2.CentOS 7:firewalld;  使用需要關閉firewalld:systemctl disable firewalld.service
    3.規則的次序非常關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的.
    
            
4. iptables規則寫法

4.1 規則:根據指定的匹配條件來嘗試匹配每個流經此處的報文,一旦匹配成功,就由規則後面指明的處理動作進行處理;
    匹配條件:
            基本匹配條件:簡單檢查IP、TCP、UDP等報文的某屬性進行匹配的機制;                    
            擴展匹配條件:需要藉助於擴展模塊進行的匹配條件指定即爲擴展匹配;
    處理動作:
            基本動作:ACCEPT,DROP, ...
            擴展動作:需要藉助擴展模塊進行的動作;
                
4.2 添加規則之時需要考量的問題:

    1.報文的流經路徑,判斷添加規則至哪個鏈上。
    2.確定要實現的功能,判斷添加規則至哪個表上。
    3.要指定的匹配條件,以用於匹配目標報文。
          
三、iptables命令詳解

3.1 iptables命令的使用格式:
    
    iptables [-t table] {-A|-C|-D} chain rule-specification
        
    ip6tables [-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.2 規則的編寫格式:

    iptables [-t table] COMMAND chain [-m matchname [per-match-options]] [-j targetname [per-target-options]]
                    
1) -t table:
    
    默認爲filter;其它可用的有raw, mangle, nat;
    
2) COMMAND:
    chain鏈:
    -P:policy ['pls] ,策略,定義默認策略; 一般有兩種選擇,ACCEPT接受和DROP丟棄;
    -N:new,   新建一條自定義的規則鏈;被內建鏈上的規則調用才能生效;[-j  chain_name];
    -X:drop,  刪除自定義的引用計數爲0的空鏈;
    -F:flush, 清空所選鏈中的所有規則。如指定鏈名,則刪除對應鏈的所有規則。如沒有指定鏈名,則刪除所有鏈的所有規則。
    -E:        重命名自定義的引用計數和爲0的鏈;
    
      規則:
    -A:append, 追加,在指定鏈的尾部追加一條規則;
    -I:insert, 插入,在指定的位置(省略位置時表示鏈首)插入一條規則;
    -D:delelte,刪除,刪除指定的規則;
    -R:replace,替換,將指定的規則替換爲新規則;不能僅修改規則中的部分,而是整條規則完全替換;
    
      查看:
    -L:list,列出表中的鏈上的規則;
        -n:numeric,以數值格式顯示;
            -v:verbose,顯示詳細格式信息;
                -vv, -vvv
    -x:exactly,計數器的精確結果;
    --line-numbers:顯示鏈中的規則編號;
                        
    計數器:
    規則,以及默認策略有專用的計數器;
    記錄被當前規則所匹配到的:
        (1) 報文個數;
        (2) 字節總數;
                    
    重置規則計數器:
        -Z:zero,將指定鏈中的所有規則的包字節計數器清零。
                    
    chain:
        (1) 內建鏈;
        (2) 自定義鏈;
        
                
3)匹配條件:
            
多重條件:邏輯關係爲“與”;
            
基本匹配條件:
    [!] -s, --source address[/mask][,...]:檢查報文中的源IP地址是否符合此處指定的地址或範圍;
    [!] -d, --destination address[/mask][,...]:檢查報文中的目標IP地址是否符合此處指定的地址或範圍;
    [!] -p, --protocol protocol:
                protocol:{tcp|udp|icmp}
    [!] -i, --in-interface name: 數據報文的流入接口;INPUT, FORWARD  and  PREROUTING
    [!] -o, --out-interface name:數據報文的流出接口; FORWARD, OUTPUT and POSTROUTING
    
擴展匹配條件:
    
隱式擴展:不用-m選項指出matchname匹配名稱 即可使用此match的專用選項進行匹配

-p tcp:隱含了-m tcp;

    [!] --source-port,--sport port[:port]:匹配報文中傳輸層的源端口;
    [!] --destination-port,--dport port[:port]:匹配報文中傳輸層的目標端口;
    [!] --tcp-flags mask comp
    
                SYN,ACK,FIN,RST,URG,PSH;    
                            
    mask:要檢查的標誌位列表,以逗號分隔;
    comp:必須爲1的標誌位,餘下的出現在mask列表中的標誌位則必須爲0;
                                
                --tcp-flags          SYN,ACK,FIN,RST  SYN  
    [!] --syn:檢查TCP三次握手的第一次
                相當於--tcp-flags   SYN,ACK,FIN,RST  SYN
                
-p udp:隱含了-m udp:
    [!] --source-port,--sport port[:port]:匹配報文中傳輸層的源端口;
    [!] --destination-port,--dport port[:port]:匹配報文中傳輸層的目標端口;
    
-p icmp:隱含了-m icmp:
    [!] --icmp-type {type[/code]|typename}
        8:echo-request 回顯請求
        0:echo-reply 回顯應答

顯式擴展:必須使用-m選項指出matchname,有的match可能存在專用的選項;
                        
    獲取幫助:
            CentOS 7:man iptables-extensions
            CentOS 6:man iptables
            
示例
1.開放本機22端口,其它全drop
# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.66.60 -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -d 172.16.0.0/16 -s 172.16.66.60 -p tcp --sport 22 -j ACCEPT
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP

2.開放本機ping端口,可以去ping別人
# iptables -A OUTPUT -s 172.16.66.60 -p icmp --icmp 8 -j ACCEPT
# iptables -A INPUT -d 172.16.66.60 -p icmp --icmp 0 -j ACCEPT    

3.開放本機ping端口,允許別人ping
# iptables -A OUTPUT -s 172.16.66.60 -p icmp --icmp 0 -j ACCEPT
# iptables -A INPUT -d 172.16.66.60 -p icmp --icmp-type 8 -j ACCEPT

4.清空防火牆規則,需要修改默認規則,以免把自己關在門外。
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -F
                        
1、multiport擴展:
    以離散或連續的方式定義多端口匹配條件;
                            
    [!] --source-ports,--sports port[,port|,port:port]...:指定多個源端口;
    [!] --destination-ports,--dports port[,port|,port:port]...:指定多個目標端口;
    [!] --ports port[,port|,port:port]...:指定多個端口;
    
示例:
1.允許指定端口進出
# iptables -A INPUT -d 172.16.66.60 -p tcp -m multiport --dports 22:23,80 -j ACCEPT
# iptables -A OUTPUT -s 172.16.66.60 -p tcp -m multiport --sports 22:23,80 -j ACCEPT    

**2.添加默認規則,不允許任何人進入和出去
# iptables -A INPUT -d 172.16.66.60 -j DROP
# iptables -A OUTPUT -s 172.16.66.60 -j DROP

2、iprange擴展
    以連續的ip地址範圍指明連續的多地址匹配條件;
                            
    [!] --src-range from[-to]:源IP地址;
    [!] --dst-range from[-to]:目標IP地址;
    
示例:允許連續的ip地址訪問
# iptables -I INPUT 2 -d 172.16.66.60 -p tcp --dport 3306 -m iprange --src-range 172.16.66.80-172.16.66.90 -j ACCEPT
# iptables -I OUTPUT 2 -s 172.16.66.60 -p tcp --sport 3306 -m iprange --dst-range 172.16.66.80-172.16.66.90 -j ACCEPT    

3、string擴展
    對報文中的應用層數據做字符串匹配檢測;
                        
    [!] --string pattern:要檢測字符串模式;
    [!] --hex-string pattern:要檢測的字符串模式,16進制編碼;
    --algo {bm|kmp}
    
示例:是要不是在指定網段,而包含"admin"的網頁字符串,都拒絕
# iptables -I OUTPUT -s 172.16.66.60 -p tcp --sport 80 -m iprange ! --dst-range 172.16.66.80-172.16.66.90 -m string --string "admin" --algo kmp -j REJECT    

4、time擴展
    根據報文到達的時間與指定的時間範圍進行匹配度檢測;
                            
    --datestart YYYY[-MM[-DD[Thh[:mm[:ss]]]]]:起始日期時間;
    --datestop YYYY[-MM[-DD[Thh[:mm[:ss]]]]]: 結束日期時間;
                            
        --timestart hh:mm[:ss]
        --timestop  hh:mm[:ss]
                            
        [!] --monthdays day[,day...]
        [!] --weekdays day[,day...]
                            
# iptables -I INPUT -d 172.16.100.67 -p tcp --dport 23 -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays Tue,Thu,Sat -j ACCEPT
                        
5、connlimit擴展
    根據每客戶端IP做併發連接數匹配;
                            
    --connlimit-upto  n:連接數數量小於等於n,此時應該允許。
    --connlimit-above n:連接數數量大於n,此時應該拒絕。
示例:                            
# iptables -A INPUT -d 172.16.100.67 -p tcp --dport 23 -m connlimit --connlimit-upto 2 -j ACCEPT
# iptables -A INPUT -d 172.16.66.60 -p tcp --dport 22 -j ACCEPT    
# iptables -A INPUT -d 172.16.66.60 -j DROP
                        
6、limit擴展
    基於收發報文的速率進行匹配:-->令牌通算法
                            
    --limit rate[/second|/minute|/hour|/day]:平均速率
    --limit-burst number:峯值速率
    
# iptables -I INPUT -d 172.16.66.60 -p icmp --icmp 8 -m limit --limit-burst 5 --limit 20/minute -j ACCEPT
                            
7、state擴展
    狀態檢測;連接追蹤機制(conntrack);會自動記錄new連接, 開啓,會消耗大量內存。
                            
    INVALID:[nvld]         無法識別的狀態;
    ESTABLISHED     ['stblt] 已建立的連接;
    NEW:                     新連接;
    RELATED:[r'letd]     相關聯的連接;
    UNTRACKED:     [n'trkt]     未追蹤的連接;
    
示例:
# iptables -A INPUT -d 172.16.66.60 -m state --state ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.66.60 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -d 172.16.66.60 -p tcp -m multiport --dports 22,23,80 -m state --state NEW -j ACCEPT
# iptables -A INPUT -d 172.16.66.60 -j DROP    
# iptables -A OUTPUT -s 172.16.66.60 -j DROP

# iptables -I INPUT 3 -d 172.16.66.60 -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT

                    
8、nf_conntrack內核模塊;使用功能自動裝載模塊

    追蹤到的連接:/proc/net/nf_conntrack文件中;
    
    能追蹤的最大連接數量定義在:/proc/sys/net/nf_conntrack_max
    
    此值可自行定義,建議必要時調整到足夠大;
                                    
    不同的協議的連接追蹤的時長:
    /proc/sys/net/netfilter/
                                    
    [!] --state STATE
                            
如何開放被模式的ftp服務:

    1) 裝載追蹤ftp協議的模塊;
# find /lib/modules/3.10.0-327.el7.x86_64/ -iname "*conntrack*"
# modprobe nf_conntrack_ftp
# lsmod
                                    
    2) 放行命令連接
# iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -d 172.16.100.67 -p tcp --dport 21 -m state --state NEW -j ACCEPT
                                
    3) 放行數據連接
# iptables -A INPUT -d 172.16.100.67 -p tcp -m state --state RELATED -j ACCEPT
                                    

FORWARD :

# iptables -A FORWARD -j DROP
# iptables -I FORWARD -m state -state ESTABLISHED,RELATED -j ACCEPT
# iptables -I FORWARD 2 -s 192.168.11.0/24 -m state --state NEW -j ACCEPT
# iptables -I FORWARD 3 -d 192.168.11.2 -p tcp -m multiport --dports 21:23,80 -m state --state NEW -j ACCEPT
# modprobe nf_conntrack_ftp
                                    
4)處理動作(目標)
    -j targetname [per-target-options]
                
    targetname:
        ACCEPT:接受;
        DROP:丟棄;
        REJECT:拒絕;    
    
3.3 保存和重載規則:
    iptables-save > /PATH/TO/SOME_RULE_FILE
    iptables-restore < /PATH/FROM/SOME_RULE_FILE
        
3.4 CentOS 6:
    保存規則:
        service iptables save
            自動保存規則至/etc/sysconfig/iptables文件中
    重載規則:
        server iptables restore
            從/etc/sysconfig/iptables文件中重載規則
                    
3.5 規則優化:
    (1) 可安全放行所有入站及出站,且狀態爲ESTABLISHED的連接;
    (2) 服務於同一類功能的規則,匹配條件嚴格的放前面,寬鬆放後面;
    (3) 服務於不同類功能的規則,匹配報文可能性較大放前面,較小放後面;
    (4) 設置默認策略;
        (a) 最後一條規則設定;
        (b) 默認策略設定;


iptables/netfilter網絡防火牆:
        在FORWARD鏈上定義規則,注意以下幾個問題:
            (1) 請求-響應均經由FORWARD鏈,要注意規則的方向性;
            (2) 如果可以啓用conntrack機制,建議將雙方向的狀態爲ESTABLISHED的報文直接放行;
           


自定義鏈;
    iptables -N chain_name
    iptables -X chian_name
    iptables -E old_name new_name    
    -j chain_name
            
示例:
創建鏈:
# iptables -N icmp_rules        
# iptables -I FORWARD -p icmp -j icmp_rules
# iptables -A icmp_rules -j RETURN -->返回到主鏈上去    
刪除鏈:
# iptables -D FORWARD 1
# iptables -vnL
# iptables -F
# iptables -X icmp_rules


RETURN:
            
    REDIRECT:端口重定向;
            This  target  is only valid in the nat table, in the PREROUTING and OUTPUT chains, and user-defined chains which are  only called from those chains.
            
            --to-ports port[-port]:映射至哪個目標端口;
            
# iptables -t nat -A PREROUTING -d 172.16.66.60 -p tcp --dport 80 -j REDIRECT --to-port 8088
        
    SNAT:源地址轉換(隱藏內外主機)
            This  target  is only valid in the nat table, in the POSTROUTING and INPUT chains, and user-defined chains which are only called from those chains.
            
             --to-source  [ipaddr[-ipaddr]][:port[-port]]
            
# iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j SNAT --to-soures 172.16.100.6
        
    MASQUERADE 地址僞裝(外網地址是動態時,使用)
            This target is only valid in the nat table, in the POSTROUTING chain.  It  should  only  be  used  with  dynamically assigned  IP (dialup)
            connections: if you have a static IP address, you should use the SNAT target.
            
    DNAT:目標地址轉換 (用於公開在網關之後的某臺或某些主機)
            This target is only valid in the nat table, in the PREROUTING and OUTPUT chains, and user-defined chains  which  are only  called from those chains.
            
            --to-destination [ipaddr[-ipaddr]][:port[-port]]
            
# iptables -t nat -A PREROUTING -d 172.16.100.7 -j DNAT --to-destination 192.168.11.2
# iptables -t nat -A PREROUTING -d 172.16.100.7 -j DNAT --to-destination 192.168.11.2:8089 端口映射    
    
    LOG:記錄日誌(先記錄日誌,在訪問)
            --log-prefix
            --log-ip-options
            
# iptables -A INPUT -d 172.16.100.67 -p tcp --dport 8088 -j LOG --log-prefix " (to 8088) " --log-ip-options    


示例:判斷下述規則的意義

# iptables -N clean_in
# iptables -A clean_in -d 255.255.255.255 -p icmp -j DROP
# iptables -A clean_in -d 172.16.255.255 -p icmp -j DROP

# iptables -A clean_in -p tcp ! --syn -m state --state NEW -j DROP
# iptables -A clean_in -p tcp --tcp-flags ALL ALL -j DROP
# iptables -A clean_in -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A clean_in -d 172.16.100.7 -j RETURN

# iptables -A INPUT -d 172.16.100.7 -j clean_in

# iptables -A INPUT  -i lo -j ACCEPT
# iptables -A OUTPUT -o lo -j ACCEPT

# iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 53,113,135,137,139,445 -j DROP
# iptables -A INPUT  -i eth0 -m multiport -p udp --dports 53,113,135,137,139,445 -j DROP
# iptables -A INPUT  -i eth0 -p udp --dport 1026 -j DROP
# iptables -A INPUT  -i eth0 -m multiport -p tcp --dports 1433,4899 -j DROP

# iptables -A INPUT  -p icmp -m limit --limit 10/second -j ACCEPT                
                    
# iptables -t filter -A INPUT -s 172.16.0.0/16 -d 172.16.66.80 -j ACCEPT
# iptables -t filter -A OUTPUT -d 172.16.0.0/16 -s 172.16.66.80 -j ACCEPT
# iptables -vnL

# iptables -I INPUT -s 172.16.66.60 -d 172.16.66.80 -j REJECT
# iptables -R INPUT 1 -s 172.16.66.60 -d 172.16.66.80 -j DROP

    
補充:利用iptables的recent模塊來抵禦DOS***: 22,建立一個列表,保存有所有訪問過指定的服務的客戶端IP

ssh: 遠程連接

# iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 3 -j DROP

# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j LOG --log-prefix "SSH Attach: "
# iptables -I INPUT  -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

1.利用connlimit模塊將單IP的併發設置爲3;會誤殺使用NAT上網的用戶,可以根據實際情況增大該值;

2.利用recent和state模塊限制單IP在300s內只能與本機建立2個新連接。被限制五分鐘後即可恢復訪問。

下面對最後兩句做一個說明:

        1.第二句是記錄訪問tcp 22端口的新連接,記錄名稱爲SSH
        --set 記錄數據包的來源IP,如果IP已經存在將更新已經存在的條目

        2.第三句是指SSH記錄中的IP,300s內發起超過3次連接則拒絕此IP的連接。
        --update 是指每次建立連接都更新列表;
        --seconds必須與--rcheck或者--update同時使用
        --hitcount必須與--rcheck或者--update同時使用

        3.iptables的記錄:/proc/net/xt_recent/SSH


也可以使用下面的這句記錄日誌:
# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --name SSH --second 300 --hitcount 3 -j LOG --log-prefix "SSH Attack"     


練習題:INPUT和OUTPUT默認策略爲DROP;

    1、限制本地主機的web服務器在週一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機;
    2、在工作時間,即週一到週五的8:30-18:00,開放本機的ftp服務給172.18.0.0網絡中的主機訪問;數據下載請求的次數每分鐘不得超過5個;
    3、開放本機的ssh服務給172.18.x.1-172.18.x.100中的主機,x爲你的學號,新請求建立的速率一分鐘不得超過2個;僅允許響應報文通過其服務端口離開本機;
    4、拒絕TCP標誌位全部爲1及全部爲0的報文訪問本機;
    5、允許本機ping別的主機;但不開放別的主機ping本機; 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章