1.Firewalld概述
动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙,用以支持网络 “zones” ,以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设置的支持。它支持以太网桥,并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口。
系统提供了图像化的配置工具firewall-config、system-config-firewall, 提供命令行客户端firewall-cmd, 用于配置 firewalld永久性或非永久性运行时间的改变:它依次用 iptables工具与执行数据包筛选的内核中的 Netfilter通信。
2.两者的切换
关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
打开iptables
systemctl unmask iptables
systemctl start iptables
systemctl enable iptables
3.两者的不同
- iptables service 在 /etc/sysconfig/iptables 中储存配置,而 firewalld将配置储存在/usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种XML文件里.
- 使用 iptables service每一个单独更改意味着清除所有旧有的规则和从/etc/sysconfig/iptables里读取所有新的规则,然而使用 firewalld却不会再创建任何新的规则;仅仅运行规则中的不同之处。因此,firewalld可以在运行时间内,改变设置而不丢失现行连接。
- iptables通过控制端口来控制服务,而firewalld则是通过控制协议来控制端口
4.网络区域的划分
5.selinux对端口的控制
以http为例
semanage port -l | grep http ##查看
semanage port -a -t http_port_t -p tcp 6666 ##添加新的端口
semanage port -d -t http_port_t -p tcp 6666 ##删除
6.firewalld 命令行管理
firewall-cmd --state ##状态
firewall-cmd --get-active-zones ##生效的网络域
firewall-cmd --get-default-zone ##默认网络域
firewall-cmd --get-zones ##所有网络域
firewall-cmd --zone=public --list-all ##公共网络域列表
firewall-cmd --get-services ##所有的服务
firewall-cmd --list-all-zones ##所有网络域列表
firewall-cmd --set-default-zone=dmz ##将默认网络域设置为非军事区
firewall-cmd --reload ##