firewalld防火牆

firewalld簡述

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

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

image

功能(也叫表)

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

鏈(內置):

PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTINGtcp

數據報文的流向

流入: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,OUTPUTpost

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

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

添加規則時的考量點

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

firewalld優先級

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

鏈管理

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

規則管理

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

查看防火牆策略

-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:地址假裝
 ....
 自定義鏈:由自定義鏈中的的規則進行匹配

例子

清空全部策略:                                        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

iptables工具:

-t:指定表
    -L:查看規則 
    -n:以數字形式查看
    -F:清空全部規則
    -X:清除自定義鏈
    -P:指定鏈的默認規則
    -j:指定要執行的動做
        ACCEPT:接受
        DROP:丟棄
        REJECT:拒絕
        DNAT:目標地址轉換
        SNAT:源地址轉換
    -A:append追加策略
    -s:source源ip(網段)
    -d:destination目標ip(網段)
    -I:insert插入策略
    -p:protocol指定協議
    --dport:指定目標端口
    --sport:指定源端口
    --line-num:顯示規則行號
    -D:按照行號刪除某鏈中的規則
    -i:指定網卡

dnat 和 snat

image.png 防火牆修改內核參數: 臨時修改: echo 1 > /proc/sys/net/ipv4/ip_forward 永久修改: 修改/etc/sysctl.conf文件,修 改下面一行的值: net.ipv4.ip_forward = 1 修改後能夠重啓系統來使修改生效,也能夠執行下面的命令來使修改生效: sysctl -p /etc/sysctl.conf

相關文章
相關標籤/搜索