規則iptables的基本應用

 

        Linux網絡防火牆可以由硬件方面、軟件方面及定義規則(匹配標準,處理辦法)等方式來組合限定各種條件。下面所講的爲使用規則來限定tcp/udp/icmp等協議
        Framework: 默認規則有開放(堵)與關閉(通)
        其中規則中主要使用的是鉤子函數(hook function:)主要有以下5種1: perouting 路由之前2:input 本機進入3output本機出去4:forward本機轉發5:postrouting路由之後
        使用到的規則鏈主要有五種:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING。其中分別可以在以下表中使用到的是:
filter(過濾):表   INPUT、OUTPUT、FORWARD
nat(地址轉換):表 PREROUTING、OUTPUT、POSTROUTING
mangle(拆開、修改、封裝):表PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
raw():原始表     PREROUTING、OUTPUT
        如果有N條規則這樣就需要我們來使用自定義鏈,但自定義鏈只在被調用時才能發揮作用,而且如果沒有自定義鏈中的任何規則匹配,還應該有返回機制;其中默認鏈無法刪除。
其中每個規則都有兩個內置的計數器:被匹配的報文個數、被匹配的報文大小之和
其中定義的規則格式有:匹配標準,處理動作。如:iptables [-t TABLE] COMMAND CHAIN [num] 匹配標準 -j 處理辦法
        匹配標準主要有兩種:通用匹配和擴展匹配,其中擴展匹配又可以分爲影含擴展與顯式擴展。如以下命令:
       通用匹配
              -s, --src: 指定源地址
              -d, --dst:指定目標地址
              -p {tcp|udp|icmp}:指定協議
              -i INTERFACE: 指定數據報文流入的接口
                     可用於定義標準的鏈:PREROUTING,INPUT,FORWARD
              -o INTERFACE: 指定數據報文流出的接口
                     可用於標準定義的鏈:OUTPUT,POSTROUTING,FORWARD
       擴展匹配(使用模塊進行,需要先安裝模塊)有
               隱含擴展:不用特別指明由哪個模塊進行的擴展,因爲此時使用
               -p{tcp|udp|icmp}
                   --sport PORT[-PORT]:源端口
                   --dport PORT[-PORT]:目標端口
                   --tcp-flags mask comp只檢查mask指定的標誌位,是逗號分隔的標誌位列表comp:  
 
               此列表中出現的標記位必須爲1,comp中沒出現,而mask中出現的,必須爲0 ; --               tcp-flags SYN,FIN,ACK,RST SYN,ACK
             顯式擴展:必須指明由哪個模塊進行的擴展,在iptables中使用-m選項可完成此
             功能
                 -m EXTESTION --spe-opt
                  state狀態擴展
                 NEW:新連接請求
                 ESTABLISHED:已建立的連接
                 IN表:filter、nat、mangle和raw
命令:
           管理規則
                  -A:附加一條規則,添加在鏈的尾部
                  -I CHAIN [num]: 插入一條規則,插入爲對應CHAIN上的第num條;
                  -D CHAIN [num]: 刪除指定鏈中的第num條規則;
                  -R CHAIN [num]: 替換指定的規則;
           管理鏈:
                     -F [CHAIN]:flush,清空指定規則鏈,如果省略CHAIN,則可以實現刪除對應表中的所有鏈
                  -P CHAIN: 設定指定鏈的默認策略;
                  -N:自定義一個新的空鏈
                  -X: 刪除一個自定義的空鏈
                  -Z:置零指定鏈中所有規則的計數器;
                  -E: 重命名自定義的鏈;
           查看類:
                  -L: 顯示指定表中的規則;
                     -n: 以數字格式顯示主機地址和端口號;
                     -v: 顯示鏈及規則的詳細信息
                     -vv:
                     -x: 顯示計數器的精確值
                     --line-numbers: 顯示規則號碼
 
          動作(目標target):
                    ACCEPT:放行
                    DROP:丟棄
                    REJECT:拒絕
                    DNAT:目標地址轉換
                    SNAT:源地址轉換
                    REDIRECT:端口重定向
                    MASQUERADE:地址僞裝
                    LOG:日誌
                   MARK:打標記
         其中iptables不是服務,但有服務腳本,服務腳本的主要作用用於在保存管理的規則               裝載機移除iptables/netfilter相關的內核模塊。
                   -m connlimit:連接數限制
                         --connlimit-above n 最大上限
                   -m limit    速率限制
                         --limit RATE
                         --limit-burst n
                   -m string :   字符限制
                         --algo
                         --string "STRING"

其中下面爲主要命令

 

  1. [root@mail ~]#service iptables restart 重新啓動服務(會把重新寫入的規則清空,如需要應先進行保存)  
  2. [root@mail ~]#service iptables save 保存寫入的規則  
 其中使用擴展匹配需要裝載模塊 命令:[root@mail ~]#modprobe 模塊名稱
查看日誌

 
  1. [root@mail ~]# cat /proc/sys/net/ipv4/ip_conntrack_max 查看最多可以同時涌入多少個請求  
  2. [root@mail ~]# cat /proc/sys/net//ipv4/netfilter/ip_conntrack_icmp_timeout  超時時間  
  3. 30         
  4. [root@mail ~]# cat /proc/sys/net//ipv4/netfilter/ip_conntrack_tcp_timeout_established   
  5. 432000 
[root@mail ~]#iptables –L –n 可以查看規則(後加-v –vv –vvv可以更加詳細顯示規則)
[root@mail ~]# iptstate -v查看鏈接
查看信息如下圖:

 

限定ping命令的頻率後如下:

 

 

  1. [root@mail ~]# iptables -I INPUT -d 172.16.34.1 -p tcp --dport 80 -j ACCEPT 設定80端口http服務  
  2. [root@mail ~]# iptables -I OUTPUT -s 172.16.34.1 -p tcp --sport 80 -j ACCEPT  
  3. [root@mail ~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT 本地迴環地址  
  4. [root@mail ~]# iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -o lo -j ACCEPT  
  5. [root@mail ~]# iptables -A OUTPUT -s 172.16.34.1 -p icmp --icmp-type 8 -j ACCEPT ping命令的設定,可以允許主機ping任意其他主機  
  6. [root@mail ~]# iptables -A INPUT -d 172.16.34.1 -p icmp --icmp-type 0 -j ACCEPT  

 

 

其中驗證屏蔽敏感字時是在網頁中驗證的,所以需要事先裝載httpd服務。

其中敏感詞過濾如下:

這裏設置的敏感詞是h7n9,網站是test.html(在本機設置的)下圖爲網站的主頁面

 

 

  限制後的網頁如上圖,就會刷新不出來的

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