Firewalld 概述
动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙, 用以支持网络 “ zones” , 以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设
置的支持。它支持以太网桥 , 并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口
系统提供了图像化的配置工具 firewall-config 、 system-config-firewall, 提供命令行客户端 firewall-cmd, 用于配置 firewalld 永久性或非永久性运行时间的改变 : 它依次用iptables 工具与执行数据包筛选的内核中的 Netfilter 通信
firewalld 和 iptables 服务
firewalld 和 iptables 服务之间最本质的不同是 :iptables service 在 /etc/sysconfig/iptables 中储存配置
firewalld 将配置储存在 /usr/lib/firewalld/ 和/etc/firewalld/ 中的各种 XML 文件里 .
参数描述
source
指定源地址 , 可以是一个 ipv4/ipv6 的地址或网段 , 不支持使用主机名。
destination
指定目的地址 , 用法和 source 相同。
service
服务名称是 f irewalld 提供的其中一种服务。要获得被支持的服务的列
表 , 输入以下命令 :
firewall-cmd --get-services 命令为以下形式 :
service name=service_name
port
端口既可以是一个独立端口数字 , 又或者端口范围 , 例如 ,5060-5062 。协议可以指定为 tcp 或udp 。命令为以下形式 :port port=number_or_range protocol=protocolprotocol
协议值可以是一个协议 ID 数字 , 或者一个协议名。预知可用协议 , 请查阅 /et/protocols。
命令为以下形式 :
protocol value=protocol_name_or_ID
firewalld
启用 firewalld
yum install -y firewalld firewall-config
##安装firewalld以及firewalld的图形界面
systemctl start firewalld
##启动firewalld
systemctl enable firewalld
##将firewalld设置为开机自启
systemctl disable firewalld
##禁止firewalld
systemctl stop firewalld
##停止fireawlld
为了实验的可靠性提前将iptables关闭并锁定
systemctl stop iptables
##关闭iptables
systemctl mask iptables
##锁定iptables
firewall-config
进入firewalld图形界面
可以看到现在firewalld默认的zone是public
在zone是public的情况下是不允许http连接的
我们来切换一下firewall的默认zone切换为trusted
点击左上角的options然后change default zone
trusted是信任的zone所有firewall上允许的服务都会被允许
http就被允许了
在zone中添加源
如何在zone不被允许的情况下进行服务
在trusedzone中加入源就可以实现
将zone切换回public,ssh服务会被拒绝,可以在trusted中添加源允许这个ip通过trusted这个zone访问ssh服务
添加开放的端口
将firewall的zone设置为block服务全部关闭
在trusted zone上开放http端口
本地允许
上面的端口是连接的端口
下面的端口是实际接入的端口
允许特定的ip