动态防火墙后台程序 firewalld 提供了一个 动态管理的防火墙, 用以支持网络 “ zones” , 以分配对一个网络及其相关链接和界面一定程度的信任。它具备对 IP v4 和 IP v6 防火墙设置的支持。它支持以太网桥 , 并有分离运行时间和永久性配置选择。它还具备一个通向服务或者应用程序以直接增加防火墙规则的接口
•系统提供了三种配置方法:(1)图像化的配置工具 firewall-config ;(2) 命令行工具 firewall-cmd;(3)直接编辑xml文件;
首先,区分一下firewalld和iptables services
• firewalld 和 iptables service 之间最本质的不同是 :
• iptables service 在 /etc/sysconfig/iptables 中储存配置
• firewalld 将配置储存在 /usr/lib/firewalld/ 和
/etc/firewalld/ 中的各种 XML 文件里 .
下面我们介绍命令行怎么配置firewalld?
安装配置
//安装
yum install firewalld firewall-config
//服务管理
systemctl start firewalld ##启动防火墙
systemctl stop firewalld ##停止防火墙
systemctl disable firewalld ##停用防火墙
systemctl status firewalld ##查看当前防火墙的状态
firewalld的管理方式
firewall-cmd --state //查看状态
firewall-cmd --get-active-zone //查看当前生效的域
firewall-cmd --get-default-zone //查看火墙默认生效的域
firewall-cmd --get-zones //查看所有的域
firewall-cmd --zone=public --list-all //查看public的域的信息
block
firewall-cmd --get-services //列出系统中用名称表示的服务
firewall-cmd --list-all-zones //所有域的状态
firewall-cmd --list-all //列出所有域的规则
firewall-cmd --set-default-zone=trusted //修改默认的为trusted域
firewall-cmd --reload //更新防火墙规则
firewall-cmd --complete-reload
######它与--reload的区别就是第一个无需断开连接,第二个需要断开连接,类似重启服务
firewall-cmd -get-zone-of-interface=eth0 //查看eth0的域
firewall-cmd --change-interface=eth0 --zone=trusted //改变eth0的域
firewall-cmd --remove-interface=eth0 --zone=trused //移除
firewall-cmd --add-source=ip //临时添加一个ip源
firewall-cmd --permanent --add-source=ip //永久添加一个ip源
firewall-cmd --add-port=8080/tcp --zone=public //添加一个端口8080
实验 A:
[root@client ~]# yum install httpd //安装apppache
[root@client ~]# systemctl start httpd //开启服务
[root@client ~]# echo westos > /var/www/html/index.html //在httpd服务的默认发布文件追加westos
[root@client ~]# firewall-cmd --set-default-zone=trusted
success
打开浏览器查询,输入172.25.254.174
实验 B:
在试验A 的基础上,完成下面操作:
[root@client ~]# firewall-cmd --set-default-zone=public
success
[root@client ~]# firewall-cmd --add-source=172.25.254.74 --zone=trusted
success
[root@client ~]# firewall-cmd --permanent --add-source=ip //永久添加一个ip源
打开两个不同主机的浏览器查询(除了设置http的主机):ip为74的主机可以看到内容,其他的主机是看不到内容的
实验 C:
文件修改方式将http设置允许穿过火墙;
[root@client ~]# cd /etc/firewalld/zones
[root@client zones]# vim public.xml
<service name="http"/>
[root@client zones]# vim /usr/lib/firewalld/http.xml
<port protocol="tcp" port="8080"/> //修改端口为8080
[root@client zones]# systemctl restart firewalld
[root@client zones]# firewall-cmd --list-all //设置允许http穿过火墙成功
[root@client ~]# firewall-cmd --add-port=8080/tcp --zone=public
[root@client ~]# firewall-cmd --list-all