防火墙基础
默认规则
原则:
配置都是临时生效,永久生效要加–permanent,重新加载永久生效–reloadfirewall使用域(zone)定义规则linux操作系统版本,而iptables使用链(Chain)
终端命令
查看系统自带的zone
详尽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:
规则理解
sources:源地址(ipv4/ipv6)interfaces:加入到当前zone的插口,默认一个插口必须属于一个zone下
firewall-cmd --get-default-zone
查看默认zone
firewall-cmd --get-zone-of-interface=ens160
查看网卡默认的zone
决定一个数据包属于那个zonelinux安装教程,就看sources和interfaces的配置规则
基础规则
实现粗精度基本防火墙控制需求
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-
移除规则
富规则
实现细精度使用防火墙控制需求
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进行源地址转换后才能实现同网关内的其他机器都可以访问资源
条件必须为同网关,由于须要把网段配置成可以访问资源的IP,这样就把流量全部转发到这台机器上进行masquerade,而跨网关是难以实现的redhat关闭防火墙命令,由于跨网关须要利用网段
1、修改网关IP为实现SNAT的电脑IP
2、开启SNAT的功能
firewall-cmd --add-masquerade --permanent --zone=public
forward-ports规则
实现DNAT功能,也就是端口映射
应用场景:常见为网段的环境redhat关闭防火墙命令,外部须要访问内部资源情况下,须要把网段地址进行DNAT,由网段IP实现内部的转发访问
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端口上