目录
firewalld概述
firewalld是Linux上新的防火墙软件,和iptables差不多的工具。firewalld是centos7/8的一大特性,两大优点:支持动态更新,不用重启服务;加入了防火墙的“zone”概念。Firewall提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持IPv4,IPV6防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的system-config- firewall/lokkit防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。相反, firewall daemon动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。firewalld能动态修改单条规则,不像iptables,修改规则后必须全部刷新才能生效。firewalld在使用上要比iptables人性化很多。firewalld自身并不具备防火墙的功能,而是和iptables一样需要通过内核的netfilter来实现,也就是说firewalld和iptables一样,他们的作用都是用于维护规则,而真正使用规则干活的是内核的netfilter。
基础指令
#查看状态,看电脑上是否已经安装firewalld
systemctl status firewalld
#安装firewalld防火墙
yum install firewalld
#开启防火墙
systemctl start firewalld
#停止防火墙
systemctl stop firewalld
#设置开机自动启动
systemctl enable firewalld
#关闭开机制动启动
systemctl disable firewalld
firewalld参数解释 读下内容前先了解参数解释
–add-service #添加的服务
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
查看命令
#查看激活的域
firewall-cmd --get-active-zones
#查看临时开放的端口
firewall-cmd --zone=public --list-ports
#查看指定端口
firewall-cmd --zone=public --query-port=8080/tcp
#查看永久开放的端口
firewall-cmd --permanent --zone=public --list-ports
#查看添加的规则
firewall-cmd --zone=public --list-rich-rules
#查看全部支持的服务
firewall-cmd --get-service
#查看开放的服务
firewall-cmd --list-service
添加端口
#永久开启端口范围
firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
#临时开启单个端口
#firewall-cmd --zone=public --add-port=8080/tcp
# 对 192.168.3.3 开放80端口
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.3.3/32"
port protocol="tcp" port="80" accept'
# 拒绝端口:
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.3.3/32"
port protocol="tcp" port="80" reject'
# 开放全部端口给IP
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.3.3/32" accept';
# 开放全部端口给网段
firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="192.168.0.0/16" accept';
添加服务
#临时启用某个服务
firewall-cmd --zone=public --add-service=https
#永久启用某个服务
firewall-cmd --permanent --zone=public --add-service=https
重新加载防火墙配置
#在不改变状态的条件下重新加载防火墙
firewall-cmd --reload