Firewalld 防火牆常見用法介紹
Linux 常見防火牆有 iptables 與 firewalls ,這裡主要針對 firewalld安裝及常見用法進行說明,這裡以 CentOS7 來進行說明:
安裝 firewalld 及設定開機自動啟用
安裝防火牆
sudo yum install firewall
安裝完成後,啟用防火牆
service firewalld start
並且設定開機自動啟用
service firewalld enable
查看 firewalld 運行狀態
service firewalld status
接著,就可以透過 firewall-cmd
state 查看狀態
透過 state 可以查看目前運行狀態,如果顯示 running 就表示正常運行
CVT2HUGO: 來進行設置及操作
firewall-cmd --state
查看目前防火牆名單
firewall-cmd --list-all
查看詳細內容
firewall-cmd --list-rich-rules
重新載入防火牆規則
每次重新設定防火牆後,firewalld 並不會自動生效,需要透過 reload 重新載入規則讓設定生效
firewall-cmd --reload
暫時開放白名單 或永久開放防火牆白名單
在只有設定允許的設定時,設定的內容會是暫時性的,例如,暫時開放 http
firewall-cmd --add-service=http
可以透過 –permanent 設定為永久,例如,永久開放 http
firewall-cmd --permanent --add-service=http
新增 port/tcp 白名單
增加一個 port 到防火牆白名單
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
移除 port/tcp 禁止外部訪問
透過以下方式將指定的 port 關閉,禁止外部訪問
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
firewall-cmd --reload
新增連線協議到白名單
可以針對協定來新增到防火牆白名單,例如,將 HTTP 協定增加到白名單
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload
移除連線協議
從防火牆白名單刪除指定的連線協議
firewall-cmd --zone=public --remove-service=http --permanent
firewall-cmd --reload
允許區段 port
可以設定某區間的 port 進入白名單
firewall-cmd --zone=public --add-port=20000-20100/tcp --permanent
允許特定IP訪問
允許指定的 IP 可訪問,這裡可以設定 IP 掩碼
firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.77.100/32" accept' --permanent
或者允許 192.168.77.1~ 254
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.77.100/24" accept' --permanent
備註,IP 掩碼 (Subnet Masks)
32表示子網掩碼:255.255.255.255
24表示子網掩碼:255.255.255.0
16表示子網掩碼:255.255.0.0
8表示子網掩碼:255.0.0.0
禁止特定IP訪問
可以透過 reject 來禁止特定IP訪問
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.77.100/32" reject' --permanent
或者禁止某區段
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.77.100/24" reject' --permanent
允許特定 IP 訪問指定 port
有時我們只希望指定IP只能訪問特定 port ,可以透過 port 來達成
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" port="3306/tcp" source address="192.168.77.100/32" accept' --permanent
或者
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.77.100" port port=22 protocol=tcp accept' --permanent
禁止特定IP訪問port
禁止特定IP訪問指定的 port
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" port="3306/tcp" source address="192.168.77.100/32" reject' --permanent
或者
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.77.100" port port=22 protocol=tcp reject' --permanent
查看所有 zone 資訊
firewall-cmd --list-all-zones