一,官方文件:
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 就會根據該鏈預先定義的預設策略來處理資料包。
三,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規則的優先順序
直接規則→富規則→區域規則
直接規則的執行優先順序最高