Firewalld
支持网络区域所定义的网络连接以及接口安全等级的动态防火墙管理工具
支持IPv4、IPv6防火墙设置以及以太网桥
支持服务或应用程序直接添加防火墙规则接口
拥有两种配置模式
运行时配置:临时生效,一旦重启或者重载即不生效
永久配置:此次不生效,以后永久生效
Firwalld和IP tables的关系
net filter
位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”
Firewalld/IP tables
CentOS7默认的管理防火墙规则的工具
称为Linux防火墙的“用户态”
Firwalld与IP tables的区别
Firwalld | iptables | |
配置文件 | /usr/lib/firewalld/ | /etc/sysconfig/iptables |
对规则的修改 | 不需要全部刷新策略,不丢失现行连接 | 需要全部刷新策略,丢失连接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
Firwalld网络区域
区域介绍
区域如同进入主机的安全门,每个区域都具有不同限制规则程度的规则
可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
默认情况下,public区域是默认区域,包含所有接口(网卡)
Firewalld数据处理流程
检查数据来源的源地址
若源地址关联到特定的区域,则执行该区域所指定的规则
若源地址未关联到特定区域,则使用传入网络接口的区域并执行该区域所指定的规则
若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
防火墙的配置方法
确定服务的状态
使用图形化界面
firewall-config 执行该命令
使用图形化界面可以配置临时设置(运行时Runtime)与永久配置
配置端口号也可以进行放行(为其增肌协议与端口号)
命令行操作防火墙
打印防火墙的版本号
服务器的状态 列出区域
列出支持服务 查看工作区域信息
显示默认区域的信息
查看运行的默认端口
移动网卡
把执行的操作永久生效,加个--permanent
重载防火墙规则 firewall-cmd --reload
放行服务
临时添加服务
永久添加服务 移除服务
端口
[root@bogon ~]# firewall-cmd --add-port=22/tcp //临时添加
success
[root@bogon ~]# firewall-cmd --list-ports
22/tcp
[root@bogon ~]# firewall-cmd --add-port=80/tcp --permanent //永久添加端口号
success
[root@bogon ~]# firewall-cmd --add-port=8080-8083/tcp --permanent //永久添加范围端口号
success
[root@bogon ~]# firewall-cmd --reload //重新加载
success
[root@bogon ~]# firewall-cmd --list-ports //查询端口号
80/tcp 8080-8083/tcp
[root@bogon ~]# firewall-cmd --remove-port=8080-8083/tcp --permanent //移除端口号
success
[root@bogon ~]# firewall-cmd --list-ports
80/tcp 8080-8083/tcp
[root@bogon ~]# firewall-cmd --reload
success
[root@bogon ~]# firewall-cmd --list-ports
80/tcp
[root@bogon ~]#
仅允许47网段访问8080端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.47.111/32 port port=8080 protocol=tcp accept'
作业
#!/bin/bash
systemctl status firewalld
if [ "$?" -eq 0 ] ;then
echo "firewalld服务已经开启"
else
echo "firewall未启动 开始启动--------------"
systemctl start firewalld
fi
systemctl enable firewalld
echo "-------firewalld服务已经设置为开机自启动-----"
#放行tcp协议的22号端口
firewall-cmd --add-port=22/tcp
#编写firewall规则,设置只有192.168.27.1能够访问本机的tcp协议的80端口以>及443端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.27.1/24 port port=80 protocol=tcp accept'
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.27.1/24 port port=443 protocol=tcp accept'
#重启防火墙
firewall-cmd --reload
#删除public的区域服务
firewall-cmd --remove-service=ssh --zone=work --permanent