一、centos7:查看linux防火墻是否開啟
systemctl status firewalld
1.安裝firewall命令
yum install firewalld firewalld-config
2.查看防火墻狀態
systemctl firewalld status
或者
systemctl status firewalld
3.查看已開放端口
firewall-cmd --list-all
4.開啟端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
5.關閉端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
6.指定特定源IP訪問某端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="80" accept" #添加源IP 192.168.100.1訪問80端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.100.0/24" port protocol="tcp" port="80" accept" #添加IP段訪問80端口
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.100.1" port protocol="tcp" port="80" accept" #刪除源IP 192.168.100.1訪問80端口
7.批量添加區間端口
firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent
8.查看端口列表
firewall-cmd --permanent --list-ports
firewall-cmd --permanent --list-all
firewall-cmd --permanent --list-rich-rules
9.重啟防火墻
firewall-cmd --reload
10.其他命令
啟動: systemctl start firewalld
關閉: systemctl stop firewalld
查看狀態: systemctl status firewalld
開機禁用 : systemctl disable firewalld
開機啟用 : systemctl enable firewalld
啟動一個服務: systemctl start firewalld.service
關閉一個服務: systemctl stop firewalld.service
重啟一個服務: systemctl restart firewalld.service
顯示一個服務的狀態: systemctl status firewalld.service
在開機時啟用一個服務: systemctl enable firewalld.service
在開機時禁用一個服務: systemctl disable firewalld.service
查看服務是否開機啟動: systemctl is-enabled firewalld.serviced
查看已啟動的服務列表: systemctl list-unit-files|grep enabled
查看啟動失敗的服務列表: systemctl --failed
配置firewalld-cmd
查看版本: firewall-cmd --version
查看幫助: firewall-cmd --help
顯示狀態: firewall-cmd --state
查看所有打開的端口: firewall-cmd --zone=public --list-ports
更新防火墻規則: firewall-cmd --reload
查看區域信息: firewall-cmd --get-active-zones
查看指定接口所屬區域: firewall-cmd --get-zone-of-interface=ens182
拒絕所有包: firewall-cmd --panic-on
取消拒絕狀態: firewall-cmd --panic-off
查看是否拒絕: firewall-cmd --query-panic
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2022-03-17 12:17:31 CST; 3 months 14 days ago
Docs: man:firewalld(1)
Process: 3690 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 3690 (code=exited, status=0/SUCCESS)
二、firewalld 與 iptables 的區別∶
1.iptables主要是基于接口,來設置規則,從而判斷網絡的安全性。
firewalld是基于區域,根據不同的區域來設置不同的規則,從而保證網絡的安全。與硬件防火墻的設置相類似。
2.iptables 在 /etc/sysconfig/iptables 中儲存配置,
firewalld 將配置儲存在 /etc/firewalld/(優先加載)和 /usr/lib/firewalld/(默認的配置文件)中的各種 XML 文件里。
/etc/firewalld/zones/public.xml文件中.
3.使用 iptables 每一個單獨更改意味著清除所有舊日有的規則和從/etc/sysconfig/iptables 里讀取所有新的規則。
使用 firewalld 卻不會再創建任何新的規則,僅僅運行規則中的不同之處。因此firewalld可以在運行時間內,改變設置而不丟失現行連接。
4、iptables防火墻類型為靜態防火墻,firewalld防火墻類型為動態防火墻
firewalld **
1、區域的概念∶
firewalld防火墻為了簡化管理,將所有網絡流量分為多個區域 (zone)。然后根據數據包的源工P地址或傳入的網絡接口等條件將流量傳入相應區域。每個區域都定義了自 己打開或者關閉的端口和服務列表。
firewalld防火墻預定義了9個區域∶
1、trusted(信任區域)∶ 允許所有的傳入流量。
2、public (公共區域)∶ 允許與ssh或dhcpv6-client預定 義服務匹配的傳入流量,其余均拒絕。是新添加網絡接口的默認區域。
3、external (外部區域)∶ 允許與 ssh 預定義服務匹配的傳入流量,其余均拒絕。
默認將通過此區域轉發的IPv4傳出流量將進行地址偽裝, 可用于為路由器啟用了偽裝功能的外部網絡。
4、home (家庭區域)∶ 允許與ssh、ipp-client、mdns、samba-client或dhcpv6-client預定義服務JC配的傳入流量,其余均拒絕。
5、internal(內部區域) 默認值時與home區域相同。
6、work (工作區域)∶允許與 ssh、ipp-client、dhcpv6-client 預定義服務匹配的傳入流量,其余均拒絕。
7、dmz (隔離區域也稱為非軍事區域)∶ 允許與 ssh 預定義服務匹配的傳入流量,其余均拒絕。
8、block(限制區域)∶拒絕所有傳入流量。
9、drop(丟棄區域)∶丟棄所有傳入流量,并且不產生包含 ICMP的錯誤響應。
最終一個區域的安全程度是取決于管理員在此區域中設置的規則。
centos6:查看linux防火墻是否開啟
service iptables status
1,查看防火墻狀態
systemctl status firewalld.service
2,開啟防火墻
systemctl start firewalld.service
3,關閉防火墻
systemctl stop firewalld.service
4,禁用防火墻
systemctl disable firewalld.service
CentOS 8:查看linux防火墻狀況:
開放防火墻端口
查看防火墻某個端口是否開放
firewall-cmd --query-port=80/tcp
開放防火墻端口80
firewall-cmd --zone=public --add-port=48080/tcp --permanent
關閉80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
配置立即生效
firewall-cmd --reload
查看防火墻狀態
systemctl status firewalld
關閉防火墻
systemctl stop firewalld
打開防火墻
systemctl start firewalld
開放一段端口
firewall-cmd --zone=public --add-port=8121-8124/tcp --permanent
查看開放的端口列表
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --add-port=80/tcp --permanent