Linux中的防火墙
- linux内核包含一个强大的网络过滤子系统:netfilter
- Netfilter允许linux对每个数据包进行检查,无论是进入,离开还是转发的数据包,在到达用户的组件之间,都会进行检查,修改,丢弃或者拒绝,它是redhat7中构建防火墙的主要模块
- 在redhat7之前iptables就是用来和netfilter沟通的程序,该工具比较低级,管理防火墙可能具有挑战性
- redhat7以上使用了 firewalld,之前只用的都是iptables,firewalld中引入了域的概念
- firewalld.service和iptables.service以及ip6tables.service,ebtables.service服务彼此冲突
- Systemctrl mask服务d.service,用来屏蔽不需要的服务
- firewalld是redhat7默认的防火墙工具 ,可以支持临时和永久的配置,支持区域功能,可以使用图形化界面firewalld-config 和命令工具,firewalld-cmd共同管理
- firewalld把网络流量分成多个区域,从而简化防火墙管理
- firewalld根据数据包的源ip地址,将流量转入相应区域,没有匹配到的流量转入默认区域
-
大多数区域都会允许某些特定端口和协议(631/udp,ssh),如果流量在某一个区域没有被允许,则会拒绝
image.png
image.png
image.png
图形化配置防火墙
firewall-config
命令行配置防火墙
firewall-cmd
命令行设置防火墙命令
--get-default-zone
:查询默认的区域名称
--set-default-zone=<区域名称>
:设置默认的区域,永久生效
--get-zones
:显示可用的区域
--get-services
:显示预定义的服务
--get-active-zones
:显示正在使用的区域
--add-sourse=将来源于此ip或子网的流量导向指定的区域
--remove-source=不再将来源于此ip或子网的流量导向某个指定的区域
--list-all
:显示当前区域的网卡配置参数,资源, 以及服务等信息
--add-service=<服务名>
:设置默认区域允许该服务的流量
--add-port=<端口号/协议>
:允许默认区域允许该端口的数量
--remove-services=<服务名>
: 设置默认区域不再允许该端口的数量
--remove-port=<端口号/协议>
:允许默认区域不再允许该端口
--reload:让“永久生效”的配置规则立即生效,覆盖当前的
--query-service=<服务名>
:查询服务是否被允许
--permanent
:配置永久生效
例:
image.pngimage.png
image.png
-
允许https服务流量通过public区域,要求立即生效且永久
image.png -
不允许https服务流量通过public区域,要求立即生效且永久有效
image.png -
不允许TCP的8080 与8081端口流量通过public区域,立即生效且永久有效,并且查看是否生效
image.png
富规则
-
拒绝来自dmz区域中ip地址为192.168.0.11的所有流量
image.png -
允许来自172.168.0.0/22网段访问
image.png -
拒绝主机访问本地的samba服务
image.png
网友评论