RedHat8 防火墙firewalld

防火墙基础

  • firewalld:守护进程
  • firewall-cmd:管理工具
  • nftables:8的防火墙架构,7之前版本依然使用iptables的netfilter

默认规则

  • 经过防火墙进入的流量默认是阻止的
  • 经过防火墙流出的流量默认是允许的
  • 默认zone为public
  • 默认接口都属于public域

原则:

  • 数据包进入必须要属于一个域(zone)才能被转发
    • 数据包匹配zone的3个条件顺序
    • 源地址zone匹配
    • 接口zone匹配
    • 默认zone匹配
  • 配置都是临时生效,永久生效要加–permanent,重新加载永久生效–reload
  • firewall使用域(zone)定义规则,而iptables使用链(Chain)

终端命令
在这里插入图片描述

查看系统自带的zone
在这里插入图片描述

  • drop 输入的数据包默认经过防火墙会丢弃并且无回应,只有传出网络连接可用
  • block 拒绝所有出入的数据包并且进行回应一条禁止主机ICMP的消息,只有传出网络连接可用
  • public 只接受被选择的网络连接,用于公共区域
  • extermal 去外部网络的时候会进行地址的伪装,只接受被选择的网络连接
  • dmz 外部部分指定的地区访问内部网络,只接受被选择的网络连接
  • work 处在工作区域内的计算机,只接受被选择的传入网络连接
  • home 处在家庭区域的计算机,只接受被选择的传入网络连接
  • internal 对于处在你内部网络的计算机,只接受被选择的传入网络连接
  • trusted 所有网络连接都接受

详细zone规则

firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens160 ens224
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

规则理解

  • target:在zone中没有匹配到规则的数据包最终走的规则
    • default:走默认zone,一般为public域
    • ACCEPT:全部通过
    • DROP:丢弃包,无ICMP回应
    • REJECT:拒绝包,返回ICMP回应
  • sources: 源地址 (ipv4/ipv6)
  • interfaces:加入到当前zone的接口,默认一个接口必须属于一个zone下
firewall-cmd  --get-default-zone
查看默认zone
firewall-cmd  --get-zone-of-interface=ens160
查看网卡默认的zone

决定一个数据包属于哪个zone,就看sources和interfaces的配置规则

基础规则

实现粗精度基本防火墙控制需求

  • services: 服务 (http、ssh…)
  • ports: 端口号(1-35535)
  • protocols: 协议(tcp/udp)
firewall-cmd --add-service=http --permanent --zone=public
永久添加http服务到piblic域中
firewall-cmd --add-port=80/tcp --permanent --zone=public
永久添加80端口到piblic域中,注意端口需要添加协议
firewall-cmd --add-protocol=tcp --permanent --zone=public
firewall-cmd --reload
每次配置都需要执行加载,不然不会生效

--remove-
移除规则

富规则

实现细精度使用防火墙控制需求

  • rich rules: 实现个性化到某个IP、某个端口、某个服务、某个动作
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.119.131 port protocol=tcp port=80 accept' 
firewall-cmd --reload
允许源地址是192.168.119.131 访问端口80 协议是tcp

在这里插入图片描述

masquerade规则

实现SNAT的功能,也就是源nat转换
应用场景:同网段内由于权限的问题,只有一台电脑A可以访问固定的资源,要想其他机器都可以访问,就需要使用masquerade,把流量转发到可以访问电脑A,利用masquerade进行源地址转换后就能实现同网段内的其他机器都可以访问资源

  • masquerade:开启或者关闭

条件必须为同网段,因为需要把网关配置成可以访问资源的IP,这样就把流量全部转发到这台机器上进行masquerade,而跨网段是无法实现的,因为跨网段需要借助网关

1、修改网关IP为实现SNAT的电脑IP
2、开启SNAT的功能
firewall-cmd --add-masquerade --permanent --zone=public

在这里插入图片描述

forward-ports规则

实现DNAT功能,也就是端口映射
应用场景:常见为公网的环境,外部需要访问内部资源情况下,需要把公网地址进行DNAT,由公网IP实现内部的转发访问

  • forward-ports
firewall-cmd --permanent --add-forward-port=port=11111:proto=tcp:toport=80:toaddr=192.168.119.129
firewall-cmd --reload
把端口11111协议tcp的报文转发到192.168.119.129的80端口上

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值