macOS的pfctl使用

前言

最近工作上有参于一个网络SDK的开发与测试,测试过程中需要拦截某些IP的TCP/UDP的网络请求,便使用到了pfctl命令,觉得它是个很方便、小巧却功能强大的工具,所以写此篇文档作为一个学习笔记,同时跟大家分享相关的内容
ptctl的说明

pfctl命令是PF防火墙的配置命令,PF防火墙( 全称:Packet Filter )是UNIX LIKE系统上进行TCP/ip流量过滤和网络地址转换的软件系统。PF同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。PF最早是由Daniel Hartmeier开发的,现在的开发和维护由Daniel和openBSD小组的其他成员负责。

示例

主机环境如下截图所示
在这里插入图片描述
使用方式示例
1、编辑规则文件,添加相关的网络处理规则

# 需要管理员权限才能编辑	/etc/pf.conf,可以使自己习惯的编辑器,如vim等
sudo emacs /etc/pf.conf
# 在/etc/pf.conf 文件最后面添加如下规则(丢弃发给175.6.128.23的upd数据包),并保存
block drop proto udp from any to 175.6.128.23 

2、导入并执行网络处理规则

sudo pfctl -ef /etc/pf.conf
# 成功执行后一般出现如下提示

在这里插入图片描述
TIPS: 可以使用man pfctl查看pfctl的所有功能

ptctl的常用示例

# pfctl -f /etc/pf.conf  载入 pf.conf 文件
# pfctl -nf /etc/pf.conf 解析文件,但不载入
# pfctl -Nf /etc/pf.conf 只载入文件中的NAT规则
# pfctl -Rf /etc/pf.conf 只载入文件中的过滤规则

# pfctl -sn 显示当前的NAT规则
# pfctl -sr 显示当前的过滤规则
# pfctl -ss 显示当前的状态表
# pfctl -si 显示过滤状态和计数
# pfctl -sa 显示任何可显示的

pf.conf文件的说明

pf.conf文件有7个部分:

宏:用户定义的变量,包括IP地址,接口名称等等。
表:一种用来保存IP地址列表的结构。
选项:控制PF如何工作的变量。
整形:重新处理数据包,进行正常化和碎片整理。
排队:提供带宽控制和数据包优先级控制。
转换:控制网络地址转换和数据包重定向。
过滤规则:在数据包通过接口时允许进行选择性的过滤和阻止。
除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。

空行会被忽略,以#开头的行被认为是注释。

TIPS: 可以使用man pf.conf 查看pf.conf的所有功能

参考文章

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值