防火墙管理

Linux防火墙架构概念

Linux内核中的netfilter模块,是网络流量操作(数据包过滤、网络地址转换和端口转发)的框架。

iptables和firewall-cmd都是防火墙的管理工具

image-20220505111415219

iptables管理防火墙

image-20220505211249337

iptables 集成在Linux内核中,4表5链

  1. filter表:过滤规则表。控制数据包的进出和转发,相关链路有INPUT、OUTPUT、FORWARD

  2. nat表:地址转换规则表。相关链路有PREROUTING、POSTROUTING、INPUT、OUTPUT

  3. mangle表:修改数据标记为规则表。修改数据包中的原数据,相关链路有PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING

  4. raw表:跟踪数据表规则表,控制nat表连接追踪机制的启用状态。相关链路有PREROUTING、OUTPUT

  • INPUT 入站数据过滤
  • OUTPUT 出站数据过滤
  • FORWARD转发数据过滤
  • PREROUTING路由前过滤
  • POSTROUTING路由后过滤

image-20220505112216636

iptables使用

  • 语法:

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

Iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]

image-20220505113203321

  • 操作命令
    • -A 添加规则
    • -I num 插入到第几条规则
    • -D [num] 删除规则
    • -P 设置默认策略用
    • -F 清空规则链
    • -L 列出规则
    • -n 以数字的形式显示ip和port,配合L使用
    • -v 显示详细信息

iptables匹配规则

  • 流入、流出接口(-i、-o) nat表

-i ens33 匹配是否从网络接口 ens33 进来

-i ppp0 匹配是否从网络接口 ppp0 进来

-o 匹配数据流出的网络接口 例如: -o ens33 -o ppp0

  • 来源、目的地址(-s、-d) 可以是 IP、 网段、域名,也可空(任何地址)
s 192.168.0.1 匹配来自 192.168.0.1 的数据包 

-s 192.168.1.0/24 匹配来自 192.168.1.0/24 网络的数据包 

-s 192.168.0.0/16 匹配来自 192.168.0.0/16 网络的数据包 

例:iptables -A INPUT -s 192.168.0.1 -j DROP
  • 协议类型 (-p) 可以是 TCP、UDP、ICMP 等,也可为空

-p tcp

-p udp

-p icmp --icmp-type 类型

  • 来源、目的端口(--sport、--dport)可以是个别端口,可以是端口范围 配合-p协议类型

image-20220506153103355

image-20220506153112517

iptables动作

  • ACCEPT

iptables -A INPUT -j ACCEPT

  • DROP

iptables -A INPUT -j DROP

  • REJECT

iptables -A INPUT -s 192.168.2.2 -j REJECT

  • SNAT (nat 表的 POSTROUTING 链)

-j SNAT --to IP[-IP] [:端口-端口]

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 172.24.8.3

  • DNAT(nat 表的 PREROUTING 链)

-j DNAT --to IP[-IP] [:端口-端口]

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 81 -j DNAT --to 192.168.0.1:81

  • MASQUERADE 地址伪装 动态源地址转换

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE

将源地址是 192.168.0.0/24 的数据包进行地址伪装,转换成 ens33 上的 IP 地址。ens33 为路由 器外网出口 IP 地址

路由转发(SNAT,DNAT)

  • 开启内核

vim /etc/sysctl.conf #在文件未行添加如下 net.ipv4.ip_forward = 1

sysctl -p 命令使配置生效

  • 设置SNAT、DNAT规则

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -j SNAT --to 192.168.1.63

iptables -t nat -A PREROUTING -d 192.168.1.63 -p tcp --dport 80 -j DNAT --to 192.168.2.2:80

  • 内网主机网卡的配置

image-20220506155455813

firewalld

image-20220505211230099

firewalld 引用zone区域的概念

zone 默认共有 9 个,block ,dmz ,drop external, home, internal ,public , trusted , work.

firewalld有 runtime和premanent 两种模式,runtime修改规则立马生效,但重启失效,premanent持久模式修改规则后需要重载规则生效,重启服务依然有效

image-20220505212143823

firewalld配置文件

/usr/lib/firewall/ 系统配置

/etc/firewalld/ 用户配置

4种方式

  • RHEL8 web控制台界面

要启动服务 9090端口

  • firewall-config图形控制台

rhel8 需要安装软件包

  • firewall-cmd命令行工具
  • 编辑xml文件修改 /etc/firewalld/zone /usr/lib/firewalld/zones

firewall-cmd命令行管理

常用参数

参数 作用
--add-interface=网卡名称 --zone= 将该来自网卡的流量导向某个区域
--change-interface=网卡名称 --zone 改变网卡的作用区域
--get-services 显示预定义的服务
--add-servece=服务名 设置默认区域允许该服务的流量
--add-port=端口号/协议 设置默认区域允许该端口的流量
--remove-service=服务名 将服务从默认区域移除
--permanent 配置永久生效
--reload 重载规则

防火墙规则匹配

firewalld对于收到的访问请求匹配规则:

  1. source、来源地址
  2. interface、接受请求的网卡
  3. firewalld配置的默认区域

匹配优先级依次降低,一旦匹配到规则就中止匹配,按照匹配到的规则去执行

查看与设置防火墙规则

firewall-cmd --zone=home --list-all  #查看某个区域的规则
firewall-cmd --list-all   #查看默认区域的规则

image-20220506150043030

  • 设置规则
firewall-cmd --permanent --add-source=ip  --zone=  #绑定地址到某个区域
firewall-cmd --permanent --remove-source=ip --zone #移除
						 --change-source=ip  	   #修改地址
						 --add-interface=ens160	   #绑定网卡到区域
						 --set-default-zone  drop  #设置默认的区域
						 --set-target=[default|accept|reject|drop]    --zone  #设置区域的默认目标

统一管理多个端口

写xml文件

可以将系统的xml文件/usr/lib/firewalld/services/*.xml拷贝到/etc/firewalld/services/下,自行修改即可

路由转发

开启路由转发功能

firewall-cmd --permanent --add-masquerade

执行命令会自动开启内核的路由转发

  • 端口转发

firewall-cmd --permanent --add-forward-port=port=888:proto=tcp:toport=80

  • 数据包转发

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.2.208

富规则

man 5 firewalld.richrule 查看语法

image-20220506151634219

posted @ 2023-05-09 16:36  loser_xu  阅读(62)  评论(0)    收藏  举报