一。firewalld与iptables区别
1.firewalld可以动态修改单条规则,不需要像iptables那样,修改规则后必须全部刷新才可生效。firewalld默认动作是拒绝,则每个服务都需要去设置才能放行,而iptables里默认是每个服务是允许,需要拒绝的才去限制
2.iptables防火墙类型为静态防火墙,firewalld 防火墙类型为动态防火墙
3.firewalld和iptables一样自身并不具备防火墙功能,它们的作用都是用于维护规则,而真正使用规则干活的是内核防火墙模块
二。区域zone
1.作用:
firewalld防火墙为了简化管理,将所有网络流量分为多个区域(zone),然后根据数据包的源IP地址或传入的网络接口等条件将流量传入相应区域,每个区域都定义了自己打开或者关闭的端口和服务列表
区域:zone本质为firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换
2.分析:
·firewalld的一个zone就是一个可信等级,一个等级对应一套过滤规则(规则集合)·数据包必须要经过某个zone才能入站或出站
。每个zone都有一个处理行为(default、ACCEPT、REJECT、DROP)·firewalld的zone根据信任级别分成9个:
cd /usr/lib/firewalld/zones(防火墙的默认区域配置文件)
cd /etc/firewalld/zones(防火墙正在生效的区域配置文件)
注释:用法是把信任的ip地址添加到trusted区域,把不可信任的ip地址添加到block区域,把要公开的网络服务添加到public区域,常用区域(trusted,block,public)
三。firewalld可视化工具和开启关闭操作
1.安装可视化工具
yum install firewall-config -y(安装可视化工具)
注释:在虚拟机的活动界面会出现防火墙可视化界面操作
2.firewalld命令生效模式:
runtime模式:运行时模式,立即生效,重启失效
permanent模式:永久模式,重启失效
3.管理命令:
systemctl stop firewalld(关闭防火墙)
systemctl disabled firewalld(永久性关闭)
systemctl start firewalld(开启防火墙)
systemctl enable firewalld(开机启动防火墙)
systemctl status firewalld(查看防火墙状态)
四。防火墙基本命令:
1.firewall-cmd --version:查看版本
2.firewall-cmd --state:查看生效模式
3.firewall-cmd --get-services:查看能管理的服务
4.firewall-cmd --list-all:查看当前正在工作的内置规则
5.firewall-cmd --get-zones:查看所有的区域
6.firewall-cmd --get-default-zone:查看正在生效的区域
7.firewall-cmd --set-default-zone=trusted:设置生效区域为trusted
五。防火墙策略设置:
1.firewall-cmd --get-default-zone:查看哪个区域生效
2.firewall-cmd --list-all:查看管理的服务
注释:查看放行的服务,和端口号
3.firewall-cmd --permanent --zone=public --add-servise=http:添加服务
4.firewall-cmd --permanent --zone=public --add-port=80/tcp:添加端口/传输协议
5.firewall-cmd --reload(重启服务)
6.firewall-cmd --permanent --zone=public --remove-servise=http:删除服务
7.firewall-cmd --permanent --zone=public --remove-port=80/tcp:删除端口/传输协议
8.firewall-cmd --reload(重启服务)
六。防火墙对于nginx进行放行和配置
1.yum install nginx
2.firewall-cmd --permanent --add-service=nginx
3.vim /etc/firewalld/services/nginx.xml
4.firewall-cmd --permanent --add-service=nginx
5.firewall-cmd --reload
6.firewall-cmd --list-all
实验一:禁止主机ip的ping
1.firewall-cmd --permanent --add-rich-rule='rule famiily="ipv4" source address="192.168.1.151"
protocol value="icmp" reject'(添加一条规则)
2.systemctl restart firewalld(重启命令)
3.firewall-cmd --list-all
4.firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.151" protocol value="icmp" reject'(删除一条规则)