一、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