firewalld防火牆

firewalld簡述

firewalld:防火牆,其實就是一個隔離工具:工做於主機或者網絡的邊緣
對於進出本主機或者網絡的報文根據事先定義好的網絡規則作匹配檢測,
對於可以被規則所匹配的報文作出相應處理的組件(這個組件能夠是硬件,也能夠是軟件):網絡

  • 主機防火牆
  • 網絡防火牆

 

 

功能(也叫表)

filter:過濾,防火牆
nat:network address translation,網絡地址轉換
mangle:拆分報文,作出修改,在封裝起來
raw:關閉nat表上啓用的鏈接追蹤功能

 

鏈(內置):

PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING

 

數據報文的流向

流入:PREROUTING --> INPUT
流出:OUTPUT --> POSTROUTING
轉發:PREROUTING --> FORWARD --> POSTROUTING

 

各功能能夠在哪些鏈上實現

filter: INPUT,FORWARD,OUTPUT
nat:PREROUTING(DNAT),OUTPUT,INPUT,POSTROUTING(SNAT)
mangle: PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
raw:PREROUTING,OUTPUT

 

路由發生的時刻(PREROUTING,POSTROUTING)

報文進入本機後:
  判斷目標主機
報文發出以前:
  判斷經由哪一個藉口送往下一跳

 

添加規則時的考量點

(1)要實現什麼功能:判斷添加在哪張表上;
(2)報文流經的路徑:判斷添加在哪一個鏈上;

firewalld優先級

策略應用優先級:raw, mangle, nat, filter
策略經常使用優先級:filter,nat,mangle,raw

鏈管理

-F: flush,清空規則鏈:省略鏈,表示清空指定表上的全部的鏈
-N: new,  建立新的自定義規則鏈:
-X: drop, 刪除用戶自定義的空的規則鏈-P: Policy, 爲指定鏈這是默認策略,對filter表中的鏈而言,默認策略一般有ACCEPT,DROP,REJECT;

規則管理

-A:append,將新規則追加於指定鏈的尾部
-I:insert,將新規則插入至指定鏈的指定位置
-D:delete,刪除指定鏈上的指定規則:

查看防火牆策略

-L:list, 列出指定鏈上的全部規則:
-n:number,以數字格式顯示地址和端口號
-v:verbose,顯示詳細信息
  -vv,-vvv
--line-numbers:顯示規則編號:

匹配條件

-s, source:檢查報文中源ip地址是否符合此處指定的地址範圍
-d, destination:檢查報文中ip地址是否符合此處指定的地址範圍
-p, protocol(udp|tcp|icmp):檢查報文中的協議
-i, input-interface:數據報文的流入接口:僅能用於PREROUTING,INPUT,FORWARD鏈上
-o, out-interface:數據報文的流出接口:僅能用於POSTROUTING,OUTPUT,FORWARD鏈上

 -j target:jump至指定的target
 ACCEPT:接受
 DROP:丟棄
 REJECT:拒絕
 RETURN:返回調用鏈
 REDIRECT:端口重定向
 LOG:記錄日誌
 MARK:作防火牆標記
 DNAT:目標地址轉換
 SNAT:源地址轉換
 MASQUERADE:地址假裝
 ....
 自定義鏈:由自定義鏈中的的規則進行匹配app

 

例子

filter表:tcp

清空全部策略:                                        iptables -F
清空自定義鏈:                                        iptables -X
自定義一個鏈                                         iptables -N old_forward
修改自定義鏈的名字                                    iptables -E old_forward new_forward
把filter中forward鏈的默認策略打成drop                  iptables -P FORWARD DROP                
查看filter表中的策略而且顯示行數:                      iptables -L -n --line-number    
刪除filter表中forward鏈中的第9條策略:                 iptables -t filter -D FORWARD 9



限制全部主機(0.0.0.0)拒絕ping本主機                    iptables -t filter -A INPUT -s 0.0.0.0 -d 192.168.254.24 -p icmp -j REJECT    
顯示全部主機(0.0.0.0)拒絕經過ens33網卡ping本主機       iptables -t filter -A INPUT -d 192.168.254.24 -i ens33 -p icmp -j REJECT

 nat表:工具

    #源地址爲192.168.250.0網段的ip地址通過防火牆都轉換成192.168.31.100這個ip地址(SNAT:源地址轉換)
    iptables -t nat -A POSTROUTING -s 192.168.250.0/24 ! -d 192.168.250.0/24 -j SNAT --to-source 192.168.31.100
    
    #訪問目標地址爲192.168.31.200這個機器而且是tcp協議80號端口的都轉發給192.168.250.1(DNAT目標地址轉換)
    iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.250.1:80

    #訪問目標地址爲192.168.31.200這個機器而且是tcp協議80號端口的都轉發給192.168.31.100的9999號端口(DNAT目標端口地址轉換)
    iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.31.100:9999
相關文章
相關標籤/搜索