iptables 規則優化

iptables [-t 表] -命令 匹配   操作
說明
(1) -t 表
表選項用於指定命令應用於哪個iptables內置表。
(2)命令
命令選項用於指定iptables的執行方式,包括插入規則,刪除規則和添加規則,如下表所示

命令              說明

    -P  
              --policy  鏈名>                 定義默認策略
    -L
--list  鏈名>
查看iptables規則列表
    -A
--append  鏈名>在規則列表的最後增加1條規則
    -I  
--insert  鏈名>  
在指定的位置插入1條規則
    -D
--delete  鏈名>  
從規則列表中刪除1條規則
    -R
--replace  鏈名>  
替換規則列表中的某條規則
    -F
--flush  鏈名>
刪除表中所有規則
    -Z--zero  鏈名>
將表中數據包計數器和流量計數器歸零
    -X--delete-chain  鏈名>
刪除自定義鏈
    -v  
--verbose  鏈名>與-L它命令一起使用顯示更多更詳細的信息

(3) 匹配規則
匹配選項指定數據包與規則匹配所具有的特徵,包括源地址,目的地址,傳輸協議和端口號,如下表所示
匹配                              說明
-i     --in-interface  網絡接口名>        指定數據包從哪個網絡接口進入,
-o    --out-interface  網絡接口名>      指定數據包從哪個網絡接口輸出
-p    ---proto協議類型                     指定數據包匹配的協議,如TCP、UDP和ICMP等
-s     --source  源地址或子網>           指定數據包匹配的源地址
--sport 源端口號>                           指定數據包匹配的源端口號
--dport 目的端口號>                        指定數據包匹配的目的端口號
-m  --match 匹配的模塊                   指定數據包

規則所使用的過濾模塊


linux netfilter/Iptables包過濾防火牆

帶狀態檢查的包過濾防火牆:狀態:new,established,invalid,related

   new:syn=1 新發起的請求

   established : syn<>1  ack=1 fyn<>1 已建立的連接

   output:一般都是ESTABLISHED

   related:關聯到的狀態. ftp 的連接

默認規則:

*filter
# 使用 iptables -P INTPUT|OUTPUT|FORWARD  DROP
:INPUT DROP [41:5302]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.7/32 -p tcp -m tcp --dport 22 -j ACCEPT
# 在input鏈上 -s指定源地址:172.16.0.0/16 -d 指定目標地址 172.16.100.7 (本機)  -p 指定協議(tcp) -m 擴展選項(tcp)  允許172.16.0.0/16這個網段用戶能夠訪問本地的sshd服務進行訪問
iptables -A INPUT -d 172.16.100.7/32 -p tcp -m tcp --dport 80 -j ACCEPT
# 在input鏈上 -d 指定目標地址 172.16.100.7 -s 忽略表示所有的,允許所有用戶對本地的web服務進行訪問
iptables -A INPUT -i lo -j ACCEPT
# 允許本機對自己本地迴環地址進行訪問
iptables -A OUTPUT -s 172.16.100.7/32 -d 172.16.0.0/16 -p tcp -m tcp --sport 22 -j ACCEPT
# 在output鏈上 -s指定源地址:172.16.100.7(本機) -d 制動目標地址 172.16.0.0/16  -p 指定協議(tcp) -m 擴展選項(tcp)  允許172.16.0.0/16這個網段用戶能夠訪問本地的sshd服務進行訪問
iptables -A OUTPUT -s 172.16.100.7/32 -p tcp -m tcp --sport 80 -j ACCEPT
# 在output鏈上 -s指定:172.16.100.7(本機) -p 指定協議(tcp) -m 擴展選項  允許所有用戶對本地的web服務進行訪問 -j :指定允許 或拒絕(ACCEPT DROP)
-A OUTPUT -o lo -j ACCEPT
# 允許本機對自己本地迴環地址進行訪問
# iptables -P INPUT DROP   # 將默認INPUT鏈策略改爲拒絕,起初是ACCEPT
# iptables -P OUTPUT DROP  # 將默認OUTPUT鏈策略改爲拒絕,起初是ACCEPT
# iptables -L -v -n
Chain INPUT (policy DROP 5 packets, 843 bytes)
 pkts bytes target     prot opt in     out     source               destination 
  247 17320 ACCEPT     tcp  --  *      *       0.0.0.0/0            172.16.251.132      tcp dpt:22 state NEW,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
  146 14752 ACCEPT     tcp  --  *      *       172.16.251.132       0.0.0.0/0           tcp spt:22 state ESTABLISHED
# iptables -A INPUT -d 172.16.251.132 -p udp --dport 53  -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.251.132 -p udp --dport 53 -m state --state  ESTABLISHED -j ACCEPT
# 開放所有用戶對本機DNS服務器的請求
# iptables -A INPUT -d 172.16.251.132 -p tcp --dport 53  -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -s 172.16.251.132 -p tcp --dport 53 -m state --state  ESTABLISHED -j ACCEPT
# 因爲DNS主從複製的時候使用的就是TCP的53號端口,所以也要開放

規則優化:  

# iptables -A INPUT -d 172.16.100.7/32 -m state --state ESTABLISHED -j ACCEPT
# 所有用戶所有的數據包只要是,只要是已連接的請求統統ACCEPT統統放行
# iptables -A INPUT 2 -d 172.16.251.132 -p tcp -m state --state NEW,ESTABLISHED -m multiport --destination-ports 22,53,80 -j ACCEPT
# 使用-m multiport --destination-ports 22,53,80 指定多個目標端口
# iptables  -A OUTPUT -s 172.16.100.7/32 -m state --state ESTABLISHED -j ACCEPT
# 所有隻要使用本機流出的數據包並且狀態爲established 統統放行


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