firewalld:direct規則

刘宏缔的架构森林發表於2024-08-25

一,官方文件:

1, 選項:

https://firewalld.org/documentation/direct/options.html

例子:

https://firewalld.org/documentation/direct/examples.html

手冊:

https://firewalld.org/documentation/man-pages/firewalld.direct.html

2, 直接規則的特點:

1)直接只用iptables或firewalld語句規則寫入管理區域
2)執行優先順序最高。優先順序:直接規則→富規則→區域規則
3)不會iptables語句的使用者不建議直接使用直連線口
4)適用於服務或應用程式

二,direct規則的語法:

firewall-cmd 
--permanent \
--direct \
--add-rule { ipv4 | ipv6 | eb } \
    <表(table)> <鏈(chain)> <優先順序(priority)> args

--direct:直接規則

--permanent:將規則寫入防火牆配置檔案,永久執行【需要使用firewalll-cmd --reload載入配置檔案才能生效。如果不使用此選項,所有新新增的規則都是臨時使用~

--add-rule: 新增規則

lpv4: 這個屬性非常簡單,表示ip的版本

5表:
五個表table:filter、nat、mangle、raw、security

filter:過濾規則表,根據預定義的規則過濾符合條件的資料包,預設表
nat:network address translation 地址轉換規則表
mangle:修改資料標記位規則表
raw:關閉啟用的連線跟蹤機制,加快封包穿越防火牆速度
security:用於強制訪問控制(MAC)網路規則,由Linux安全模組(如SELinux)實現

 5鏈

  鏈 是資料包傳播的路徑,每一個 鏈 中可以有 N 個 規則 (N >= 0)。當資料包到達一個 鏈 時,iptables 就會從鏈中第一個規則開始檢測, 如果資料包滿足規則所定義的條件,系統會執行具體的 行為,否則 iptables 繼續檢查下一個規則。 如果資料包不符合鏈中任一個規則,iptables 就會根據該鏈預先定義的預設策略來處理資料包。

firewalld:direct規則

三,direct規則的用法

1,列出所有的規則

[root@blog ~]# firewall-cmd --direct --get-all-rules

2,新增一條規則:

[root@blog ~]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success

檢視已新增的規則:

[root@blog ~]# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT

說明:direct規則就是iptables的規則,所以可以透過iptables命令檢視:

[root@blog ~]# iptables -L -v -n
Chain INPUT (policy ACCEPT 5595K packets, 1759M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     tcp  --  *      *       172.25.254.210       0.0.0.0/0            tcp dpt:22 reject-with icmp-port-unreachable

3,刪除一條規則:

[root@blog ~]# firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success

檢視刪除後的規則:

[root@blog ~]# firewall-cmd --direct --get-all-rules

4,新增規則時寫入檔案:

[root@blog ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT
success

寫入的檔案在哪裡?

[root@blog ~]# more /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?>
<direct>
  <rule ipv="ipv4" table="filter" chain="INPUT" priority="1">-p tcp --dport 22 -s 172.25.254.210 -j REJECT</rule>
</direct>

檢視是否生效:無效果

[root@blog ~]# firewall-cmd --direct --get-all-rules

重新載入:

[root@blog ~]# firewall-cmd --reload
success

檢視是否生效:已生效:

[root@blog ~]# firewall-cmd --direct --get-all-rules
ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.210 -j REJECT

四,direct規則和zone規則的優先順序

直接規則→富規則→區域規則

直接規則的執行優先順序最高