實踐環境
CentOS-7-x86_64-DVD-2009
簡介
Firewalld是一種簡單的、有狀態的、基于區域(zone-based)的防火墻。策略和區域用于組織防火墻規則。網絡在邏輯上被劃分為多個區域,它們之間的流量可以通過策略進行管理。
查看防火墻狀態
# service firewalld status
或者
# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
說明:如果輸出顯示Active: inactive (dead),則表示未開啟防火墻。如果現實Active: active (running)則表示開啟了防火墻。
或者
# firewall-cmd --state not running
開啟防火墻
# service firewalld start
或者
# systemctl start firewalld
重啟防火墻
# service firewalld restart
或者
# systemctl restart firewalld
設置防火墻開機自啟
# systemctl enable firewalld Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service. Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.
禁用防火墻開機自啟
# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
查看預定義區域
# firewall-cmd --get-zones block dmz drop external home internal public trusted work # #查看每個區域的詳細信息 # firewall-cmd --list-all-zones
區域簡介:
區域 | 默認規則 |
---|---|
block | 拒絕流入的流量,除非與流出的流量相關 |
dmz | 拒絕流入的流量,除非與流出的流量相關;如果流量與ssh服務相關,則允許流量 |
drop | 拒絕流入的流量,除非與流出的流量相關 |
external | 拒絕流入的流量;除非與流出的流量相關;如果流量與ssh服務相關,則允許流量 |
home | 拒絕流入的流量;除非與流出的流量相關;如果流量與ssh,mdns,ipp-client,amba-client,dhcpv6-client服務相關,則允許流量 |
internal | 等同于home區域 |
public | 拒絕流入的流量;除非與流出的流量相關;如果流量與ssh,dhcpv6-client服務相關,則允許流量 |
trusted | 允許所有的數據包流入與流出 |
work | 拒絕流入的流量;除非與流出的流量相關;如果流量與ssh,ipp-client,dhcpv6-client服務相關,則允許流量 |
創建自定義區域
# firewall-cmd --permanent --new-zone=testing success
注意:--permanent選項不能少
查看默認區域
# firewall-cmd --get-default-zone public
查看網卡關聯的區域
# ip addr 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 000000:00 brd 000000:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 002986:da brd ffffff:ff inet 192.168.206.102/24 brd 192.168.206.255 scope global ens33 valid_lft forever preferred_lft forever inet6 fe80:29ff86da/64 scope link valid_lft forever preferred_lft forever # firewall-cmd --get-zone-of-interface=ens33 public
注意:一張網卡只能關聯一個區域
修改默認區域
例子:
# #修改默認區域為`trusted` # firewall-cmd --set-default-zone=trusted success # firewall-cmd --get-default-zone trusted # firewall-cmd --get-zone-of-interface=ens33 trusted # #還原 # firewall-cmd --set-default-zone=public success # firewall-cmd --get-default-zone public # firewall-cmd --get-zone-of-interface=ens33 public
修改網卡關聯的區域
方法1:先刪除現有關聯區域,再添加目標關聯區域(因為同一時間,一張網卡只能關聯一個區域,所以要先添加再刪除)
# firewall-cmd --remove-interface=ens33 --zone=public success # firewall-cmd --get-zone-of-interface=ens33 no zone ## 設置ens33關聯區域為trusted # firewall-cmd --add-interface=ens33 --zone=trusted success # firewall-cmd --get-zone-of-interface=ens33 trusted
方法2:
## 設置ens33關聯區域為public # firewall-cmd --change-interface=ens33 --zone=public success # firewall-cmd --get-zone-of-interface=ens33 public
打印當前活動區域及綁定的接口和源
firewall-cmd --get-active-zones
打印當前活動區域以及這些區域中使用的接口和源。活動區域是與接口或源綁定的區域。輸出格式為:
zone1 interfaces: interface1 interface2 .. sources: source1 .. zone2 interfaces: interface3 .. zone3 sources: source2 .. 如果沒有接口和源綁定到區域,則忽略該對應區域行
例子:
# firewall-cmd --get-active-zones public interfaces: ens33
端口訪問限制
查看已開放端口
firewall-cmd [--permanent] [--zone=zone] --list-ports
以空格分隔的列表形式列出為區域添加的端口。端口的形式為portid[-portid]/protocol,它可以是端口和協議對,也可以是具有協議的端口范圍。如果忽略--zone選項配置,將使用默認區域。
添加開放端口
firewall-cmd [--permanent] [--zone=zone] --add-port=portid[-portid]/protocol [--timeout=timeval]
為zone(區域)添加端口。如果省略了--zone選項配置,將使用默認區域。此選項可以多次指定。如果提供了--timeout,則該規則將在指定的超時時間內處于活動狀態,超時之后將自動刪除。timeval是一個數字(秒)或數字后跟一個字符s(秒)、m(分鐘)、h(小時),例如20m或1h。
端口可以是單個端口號,也可以是端口范圍portid-portid。協議可以是tcp、udp、sctp或dccp。
--timeout選項不能與--permanent選項組合使用。
取消開放端口
firewall-cmd [--permanent] [--zone=zone] --remove-port=portid[-portid]/protocol
從區域中刪除端口。如果省略了--zone選項配置,將使用默認區域。此選項可以多次指定。
--permanent可用于持久設置選項。這些更改不會立即生效,只有在重新啟動/重新加載服務或系統重新啟動后才會生效。如果未使用--permanent,則更改將僅是運行時配置的一部分(所做的變更在重啟服務、重新加載服務后失效),下同,不再贅述。
例子
例子:為public區域持久開放 tcp協議端口 15672
# firewall-cmd --permanent --add-port=15672/tcp # firewall-cmd --list-ports # 查不到端口 # #讓配置生效 # firewall-cmd --reload success # firewall-cmd --list-ports 15672/tcp
說明:
firewall-cmd --reload
重新加載防火墻規則并保留狀態信息。當前的持久配置將成為新的運行時配置,也就說執行的所有僅運行時變更在重新加載規則后丟失。類似的,有以下命令
firewall-cmd --complete-reload
完全重新加載防火墻,甚至netfilter內核模塊。這很可能會終止活動連接,因為狀態信息會丟失。此選項僅用于嚴重的防火墻問題。例如,防火墻規則正確的情況下,無法建立連接的狀態信息問題
例子:為public區域持久開放 tcp協議端口范圍 1000-2000(包括1000及2000)
# firewall-cmd --permanent --add-port=1000-2000/tcp success # firewall-cmd --reload success # firewall-cmd --list-ports 15672/tcp 1000-2000/tcp
例子:為public區域持久取消開放 tcp協議端口 15672
# firewall-cmd --permanent --remove-port=15672/tcp success # firewall-cmd --reload success # firewall-cmd --list-ports 1000-2000/tcp
例子:為public區域持久取消開放tcp協議端口范圍 1000-2000(包括1000及2000)
]# firewall-cmd --permanent --remove-port=1000-2000/tcp success # firewall-cmd --reload success # firewall-cmd --list-ports #
IP、網絡訪問限制
添加開放源
firewall-cmd [--permanent] [--zone=zone] --add-source=source[/mask]|MAC|ipset:ipset
綁定源(source,IP、網絡、MAC、IP集)到區域zone。如果省略了--zone選項配置,將使用默認區域。
取消開放源
firewall-cmd [--permanent] --remove-source=source[/mask]|MAC|ipset:ipset
從區域zone刪除之前添加綁定的源
例子
例子:允許IP 192.168.50.182持久訪問為public區域
# firewall-cmd --permanent --add-source=192.168.50.182 success # firewall-cmd --reload success
說明:添加IP白名單后,即使未添加開放端口,針對當前IP,也可以正常訪問。
例子:允許子網192.168.50.0/24持久訪問為public區域
# firewall-cmd --permanent --add-source=192.168.50.0/24 success # firewall-cmd --reload success
例子:取消IP 192.168.50.182對public區域的持久訪問許可
# firewall-cmd --permanent --remove-source=192.168.50.182 success # firewall-cmd --reload success
富語言規則
列出富語言規則
firewall-cmd [--permanent] [--zone=zone] --list-rich-rules
以換行符分隔的列表形式列出為區域添加的富語言規則。如果省略了--zone選項,將使用默認區域。
添加富語言規則
firewall-cmd [--permanent] [--zone=zone] --add-rich-rule='rule' [--timeout=timeval]
為區域添加富語言規則'rule'。此選項可以多次指定。如果省略了區域,將使用默認區域。如果提供了--timeout,則該規則將在指定的超時時間內處于活動狀態,超時之后將自動刪除。timeval是一個數字(秒)或數字后跟一個字符s(秒)、m(分鐘)、h(小時),例如20m或1h。
--timeout選項不能與--permanent選項組合使用。
刪除富語言規則
firewall-cmd [--permanent] [--zone=zone] --remove-rich-rule='rule'
從區域中刪除富語言規則'rule'。此選項可以多次指定。如果省略了區域,將使用默認區域。
查詢富語言規則
firewall-cmd [--permanent] [--zone=zone] --query-rich-rule='rule'
返回是否為區域添加了富語言規則'rule'。如果省略了--zone,將使用默認區域。如果為真,則返回0,否則返回1。
例子
例子:允許 IP 192.168.50.182 持久訪問public區域tcp協議端口15672
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.50.182" port protocol="tcp" port="15672" accept' # firewall-cmd --reload
例子:取消 IP 192.168.50.182 持久訪問public區域tcp協議端口15672的許可
# firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.50.182" port protocol="tcp" port="15672" accept' success # firewall-cmd --reload
例子:禁止 IP 192.168.50.182 持久訪問public區域
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.50.182" reject' # firewall-cmd --reload
注意:添加訪問限制前,建議先移除之前的訪問許可配置,否則可能導致當前規則不起作用。此外,這里的reject也可以替換為drop,即直接丟棄來訪請求數據包。
例子:取消禁止 IP 192.168.50.182 持久訪問public區域限制
# firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.50.182" reject' # firewall-cmd --reload
例子:查看當前配置的富語言規則
# firewall-cmd --list-rich-rules rule family="ipv4" source address="192.168.50.182" reject
列出為區域啟用或添加的所有內容
firewall-cmd[--permanent] [--zone=zone] --list-all
列出為區域添加或啟用的所有內容。如果省略了--zone選項配置,則將使用默認區域。
例子:
# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: dhcpv6-client ssh ports: 15672/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
保存當前運行時配置為持久配置
# firewall-cmd --runtime-to-permanent
保存活動運行時配置并用它覆蓋持久配置。
鏈接:https://www.cnblogs.com/shouke/p/18366534
-
Linux
+關注
關注
87文章
11326瀏覽量
209961 -
防火墻
+關注
關注
0文章
419瀏覽量
35645
原文標題:10分鐘精通Linux Firewalld:從入門到企業級安全防護,新手必看!
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論