pf

在 freebsd 上使用 pf 进行端口转发和 NAT
pf

在 freebsd 上使用 pf 进行端口转发和 NAT

我有一个网络路由器,它将三个网络与外界连接起来。其中一个内部网络面向公众,另外两个不面向公众,并通过 NAT 连接。我属于一个更大的网络,路由器拥有1.2.3.1该更大网络中的 IP,但这个 IP 无法连接到外部,只external_net允许来自外部的流量。 我现在想在路由器 ip 上进行端口转发,以便将 ssh 连接到 nat 中的机器。我在 freebsd 上使用 pf。 我的pf.conf是: #define network macros ...

Admin

覆盖 PF 防火墙的“set skip on lo0”
pf

覆盖 PF 防火墙的“set skip on lo0”

我正在使用 PF 防火墙,我想在环回接口上重定向端口,如下所示: rdr on lo0 inet proto tcp from 127.0.0.1 to 127.0.0.1 port 443 -> 127.0.0.1 port 6443 问题是,我的 VPN 客户端在连接时会动态添加一些 pf 规则,其中一条规则是set skip on lo0(我看不出在设置期间跳过此特定规则的方法)。此规则在配置加载时进行评估,因此所有与环回接口相关的规则都不再有效,无论它们是在之前还是之后set skip- 我想以某种方式绕过它。有没有办法在规则集的稍后部分以某...

Admin

macOS Catalina 中的数据包过滤器 (pf) 防火墙:如何限制对本地网络上特定 IP 地址的 www 访问?
pf

macOS Catalina 中的数据包过滤器 (pf) 防火墙:如何限制对本地网络上特定 IP 地址的 www 访问?

我正在尝试在 macos Catalina 10.15.3 上使用pf防火墙,以允许家庭网络上的特定本地 IP 地址访问 www (80,443)。此本地 IP 地址将从 nginx 实例请求网页。如果我在设置=>安全和隐私中关闭 macos 防火墙,则 www 成功,并显示 nginx。但是,当防火墙启用时,我无法让特定 IP 地址的请求通过。最初,我的 nginx 设置在端口 80 和 443 上进行监听。 随后,我尝试研究如何配置pf防火墙以允许特定 IP 地址的请求通过。我的 /etc/pf.conf 当前如下: # # com.apple a...

Admin

Mac OSX:如何将所有传出的流量转发到特定主机/端口到不同的主机/端口?
pf

Mac OSX:如何将所有传出的流量转发到特定主机/端口到不同的主机/端口?

我已经搜索了好几天,但 PF 完全无法解决我的问题。本质上,我想将所有本地、出站流量重定向到不同的 ip/端口。 本地应用程序尝试连接到 ip 1.2.3.4 和端口 1234,我需要将此流量重定向到 ip 5.6.7.8 和端口 4321(端口可以相同) 我尝试过遇到的所有 rdr 组合,但似乎都不起作用。 有人能指点我如何做到这一点吗?我的 pf.conf/anchor 文件中的规则是什么样的? OS X 10.15:“Catalina” 或者 OSX 用户不需要这样的功能?) ...

Admin

mac os 中的 pfctl divert-socket?
pf

mac os 中的 pfctl divert-socket?

我正在 OSX 中使用转移套接字,为了捕获任何套接字,我首先需要设置防火墙重定向(如果你愿意的话可以称为转移): ipfw add divert 3282 tcp from any to any 类似的东西,但是“ipfw”已被弃用,相反 mac 使用 PF(5),所以命令应该是: pass out on en0 inet proto tcp to port 80 divert-packet port 9090 然而,当加载时pfctl -f /etc/pf.conf会返回语法错误。 以下文档表明 divert-packet 选项确实存在:ht...

Admin

如何在 MacOS 10.14+ 上进行 IP 伪装?
pf

如何在 MacOS 10.14+ 上进行 IP 伪装?

我正在寻找与 Linux 等效的 Macos 命令: sudo iptables -t nat -A POSTROUTING -o en0 -j MASQUERADE 我想要这样做的原因是我有一个具有默认路由的 VPN,但我希望某些应用程序通过物理上行链路而不是 VPN。 使用pfctl我已经完成了以下工作: pass out route-to (en0 192.168.4.1) group skipvpn flags any 我的网关的 IP 在哪里192.168.4.1,这似乎将skipvpn组中应用程序的所有数据包路由到en0接口(而不是...

Admin

如何在 macos 上使用 pfctl 将流量路由出非标准接口?
pf

如何在 macos 上使用 pfctl 将流量路由出非标准接口?

我有一个 VPN,它设置了默认路由,这当然不同于我的网关。因此,我的所有流量都会通过隧道路由。 然而,我想免除某些应用程序通过隧道。 使用pfctl我可以执行以下操作: pass out quick route-to (en0 192.168.0.1) group specialgrp flags any 将属于“specialgrp”(gid) 的应用程序的所有流量通过标准网关而不是隧道发送出去。 这是可行的,因为当我使用时,流量确实出现在标准网关上tcpdump- 但是源 IP 地址不正确,它被设置为 VPN 给我的地址(一个10.0.0.0...

Admin

为什么 Docker 需要 udp 端口​​才能运行——我可以禁用它吗?
pf

为什么 Docker 需要 udp 端口​​才能运行——我可以禁用它吗?

我在使用 docker 时发现了一些奇怪的行为,我试图阻止除 DNS 之外的所有外部 UDP 传入和传出连接(请参阅下面的 mac pf 配置),但这破坏了我的 docker 容器。 为什么 docker 需要 UDP 才能运行,以及如何禁用它? pf配置: block in proto udp all block out proto udp all pass in proto udp from {10.0.0.0/8 172.0.0.0/8 192.168.0.0/16 127.0.0.1} to any pass out proto udp fro...

Admin

使用 pfctl 在运行时添加防火墙规则而无需编辑 /etc/pf.conf?
pf

使用 pfctl 在运行时添加防火墙规则而无需编辑 /etc/pf.conf?

我有一个 OSX 应用程序,它(在运行时且仅在运行时)需要对 OSX 数据包过滤器 ( pf) 进行更改,以便阻止或允许某些流量。这些规则应该是用户自己的规则的补充/etc/pf.conf- 但我不想直接编辑,/etc/pf.conf因为这非常具有侵入性。 我可以在 Linux 中轻松地做到这一点iptables,甚至在 Windows 中也可以做到这一点wfp,而无需更改任何磁盘文件,我可以在 osx 中完成同样的事情pf吗? 解决方案仅适用于yosemite(10.10)及以上版本 ...

Admin

pf 防火墙阻止 raspbian apt-get 更新
pf

pf 防火墙阻止 raspbian apt-get 更新

我正在使用 Internet Share 功能将我的 raspberry pi 3(raspbian stretch)连接到我的 Macpro(10.13.2;High Sierra)的 802.3 以太网端口,该端口是桥接适配器的一部分(bridge100)。Mac 上的 Internet 接口是en2(无线)。 尽管我可以 pinggoogle.com或mirrordirector.raspbian.org,但是当我尝试更新软件包时,apt-get 会永远挂起: # apt-get update 0% [Connecting to mirrordir...

Admin

仅允许来自内部 LAN(PF 防火墙)的 Samba 连接?
pf

仅允许来自内部 LAN(PF 防火墙)的 Samba 连接?

有一台只有 1 个 NIC 的 FreeBSD 11.1-RELEASE 机器,在PF防火墙在相同的服务器。 我需要允许连接仅有的来自从内部网络 (/24) 连接的客户端。 目前看来这似乎是可行的: # Default deny policy block in log all # allow Samba connections only from internal IPs pass in quick on $ext_if inet proto tcp from $ext_if:network to $ext_if:network port {135,...

Admin

如何在 Virtualbox 中配置两个不同的内部网络之间的路由器?
pf

如何在 Virtualbox 中配置两个不同的内部网络之间的路由器?

我想在 Virtualbox 中构建这个网络: 我使用 OpenBSD 作为路由器,这个操作系统非常简单,配置起来也很容易,但是我仍然遇到一个问题。名为 router02 的路由器可以通过 router01 访问互联网,并且 LAN 网络中的设备可以与 router02 通信。因此,router02 发生了一些事情,因此 LAN 网络无法通过 router01 访问网络。我也想从 LAN 内部网络访问网络,然后在这两个子网之间进行双向通信。我猜问题出在 pf.conf 文件上,但我找不到它。 router01 有两个网卡: em0->NAT...

Admin

Mac 接收 ICMP 请求但未发送任何回复
pf

Mac 接收 ICMP 请求但未发送任何回复

为什么我的 osx 机器可以接收 ICMP 请求(我发送的),但没有返回任何回复? $ sudo tcpdump -nni any icmp tcpdump: data link type PKTAP tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type PKTAP (Packet Tap), capture size 65535 bytes 07:59:37.858801 IP 192.168.1.2 &...

Admin

禁用 OSX 内核空间 TCP 处理
pf

禁用 OSX 内核空间 TCP 处理

我正在使用 Scapy 编写 TCP 的部分重新实现,用于学习目的。我的 TCP server.py 没有机会响应发送给它的 SYN 消息,因为内核会先响应它们(OSX 10.10.5)。我已阅读手册pf.conf页,但似乎没有选项可以创建一条规则,该规则会过滤来自内核空间但不来自用户空间的数据包(令人沮丧的是,Linux 似乎iptables确实提供了这样的选项,QUEUE)。 我尝试了以下pf规则,但它直接过滤了数据包(无论是来自内核还是我的应用程序)。我这样说的原因是,我在 wireshark 中看不到目标端口为 3000 的数据包。 pf 规则:...

Admin

macOS Sierra 上的 PF 似乎没有读取 ApplicationFirewall
pf

macOS Sierra 上的 PF 似乎没有读取 ApplicationFirewall

我让 PF 正常工作,但当我启动/重新启动系统时,postfix“主”程序会询问我是否要授予它接受来自互联网的连接的权限。现在,权限已在 SystemFirewall 中设置,您可以通过首选项进行设置。但是,我在 /etc/pf.anchors/local.rules 中也有自己的规则集,pf 会在启动时加载这些规则集。 # # com.apple anchor point # int_if = "en0" lan_net = "192.168.0.0/24" set skip on lo0 tcp_services = "{ ssh, smtp, d...

Admin