cat /etc/pf.conf
,可看到以下已有内容:(忽略注释部分)
|
|
anchor
可理解为一组规则的集合。默认情况下,这里的几行anchor都是苹果留的place holder,实际上没有active的规则。/etc/pf.conf
在以后的OSX更新中可能会被覆盖,最好可以另外建立一个自定义的pf.conf
。配置文件必须按照
Macros
, Tables
, Options
, Traffic Normalization
, Queueing
, Translation
, Packet Filtering
的顺序。更详细的说明参考pf.conf man page
- 添加一个
anchor
。修改/etc/pf.conf
如下:
12345678910scrub-anchor "com.apple/*"nat-anchor "com.apple/*"nat-anchor "custom"rdr-anchor "com.apple/*"rdr-anchor "custom"dummynet-anchor "com.apple/*"anchor "com.apple/*"anchor "custom"load anchor "com.apple" from "/etc/pf.anchors/com.apple"load anchor "custom" from "/etc/pf.anchors/custom" - 建立
anchor
规则文件/etc/pf.anchors/custom
,内容为具体规则。
常用的规则:
- 屏蔽IP入站TCP连接并记录:
1block in log proto tcp from 192.168.1.136 to any - 转发入站TCP连接到另一本地端口:
1rdr inet proto tcp from any to any port 8081 -> 127.0.0.1 port 80
net.inet.ip.forwarding=1
也无效。如需转发到另一个外网IP,需要配合mitmproxy的透明代理
- NAT,路由vlan12接口上(192.168.168.0/24)的出口包,经由非vlan12的接口转换到外部地址(204.92.77.111),并允许vlan12之间的互相访问:1nat on ! vlan12 from 192.168.168.0/24 to any -> 204.92.77.111
- 屏蔽IP入站TCP连接并记录:
- 使配置文件生效
1pfctl -evf /etc/pf.conf-------------------------问:可以实现根据域名进行转发吗?答:这个可能需要配合mitmproxy了,跟iptables比起来,pf实在太不友好了.问:如果我要所有的出口流量都转发到本地的1080端口,类似于iptables 的 "iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 1080",pf中该如何做呢?
No comments:
Post a Comment