我们可以从nginx日志中看到有一个IP地址在做一些讨厌的事情。
我们如何使用pf
命令阻止它,然后使用/etc/pf.log
? 我们如何阻止x.x.x.x/24
该 IP 的 a?例如:1.2.3.4
更新:不,看起来 OpenBSD 在 /etc 中没有允许/拒绝文件。AFAIK 阻止滥用 IP 地址的最佳建议是使用 pf。
# cd /etc
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 amd64
#
Run Code Online (Sandbox Code Playgroud) 我认为没有 iptables/pf 解决方案只允许 XY 应用程序,例如:出站 tcp 端口 80、eth0。因此,如果我有一个用户 ID:“500”,那么我怎么能阻止任何其他通信,然后是在端口 80/outbound/tcp/eth0 上提到的?(例如:只是 privoxy 在 eth0 上使用端口 80)
额外:virtualbox 也使用端口 80?当来宾操作系统上的浏览器访问站点时..如何声明?- 设置普通用户会太坑
我正在做一些研究,以找出哪些 linux 发行版包含内核数据包过滤并与 BPF 兼容。
http://kernelnewbies.org/Linux_3.0
http://lwn.net/Articles/437981/
这两篇文章让我相信有一个包包含库和二进制文件?
我专门寻找像我在 FreeBSD 中那样的“pfctl”命令
谢谢
我刚刚读了一本关于 PF 的书(The Book Of PF, No Starch),但有一个问题没有得到解答。
如果我有一台使用两个接口 $int_if 和 $ext_if 的网关机器,并且我将来自 $int_if:net(假设为 10.0.0.0/24)的包使用match
NAT到 $ext_if ,当应用 NAT 时? 在过滤规则之前还是之后?
例子:
match out on $ext_if from 10.0.0.0/24 nat-to ($ext_if)
pass out on $ext_if from 10.0.0.0/24
block drop out on $ext_if from 10.0.0.23
Run Code Online (Sandbox Code Playgroud)
那样有用吗?或者在检查它是否来自 10.0.0.23 之前获取来自 10.0.0.23 NAT 的数据包的源 IP 到 $ext_if 的地址被评估?
我认为这个图对回答这个问题没有帮助,但它仍然很有趣:[ http://www.benzedrine.cx/pf_flow.png ]
如果您阅读 PF NAT FAQ [ http://www.openbsd.org/faq/pf/nat.html ],尤其是“配置 NAT”部分,您会看到以下句子:
当一个数据包被匹配规则选中时,该规则中的参数(例如 nat-to)会被记住,并在达到与该数据包匹配的传递规则时应用于该数据包。这允许通过单个匹配规则处理整类数据包,然后可以使用阻止和通过规则做出是否允许流量的具体决定。
我认为这听起来好像不像我在上面的段落中所说的那样,因此源 IP 会被“记住”,直到决定要对数据包执行的操作。如果做出决定,则应用 NATting。
你怎么认为?
PS:这是一个非常理论化的问题。如果你有点务实,你会这样做:
match out on $ext_if from 10.0.0.0/24 nat-to …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的脑海中制定一个解决方案,其中两个后端 linux 服务器运行 HTTP、SMTP、XMPP 镜像,并且应该对它们之间的连接进行负载平衡。
我目前的解决方案是一个 OpenBSD box infront,当然可以用 carp 扩展以在未来添加更多以避免单点故障。使用 PF,我可以使用随机或循环方法将流量发送到服务器池。
并使用中继我可以从中删除不起作用的池服务器。
但我会重视社区在这件事上的意见,所以请告诉我您针对此类环境的最佳 Unix 负载平衡解决方案。
一个目标是允许单个服务器以最少的服务中断发生故障。
每当任何 TCP 请求发送到特定 IP 地址时,有人能给我一个关于如何设置基本拒绝规则的提示吗?我正在使用PF 数据包过滤器。有什么帮助吗?
我已经工作了一个多星期,试图让出站数据包符合安全协会的要求。
这是我的(示例)场景:
尽管事实上我已经在 FreeBSD Box 中启动并运行了所有 SA,但尝试使用 pf 或 ipfw 对数据包进行 nat 处理是行不通的,nat 的数据包使用默认路由接口继续流动并且没有得到进入ipsec隧道。
这是一个示例 SA,使用:
$ ipsec status vpn
vpn{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cca608fa_i d74355dc_o vpn{1}: AES_CBC_256/HMAC_SHA2_256_128, 2688 bytes_i (32 pkts, 32s ago), 4992 bytes_o (32 pkts, 32s ago), rekeying in 43 minutes vpn{1}: 2.2.2.2/32 === 3.3.3.3/32
Run Code Online (Sandbox Code Playgroud)
这是我的 nat 规则pf.conf
:
nat on enc0 from 1.1.1.0/24 to 2.2.2.2/32 -> 3.3.3.3
Run Code Online (Sandbox Code Playgroud)
这是我的ipsec0 interface …
我正在尝试使用pf
.
这是预期的旅行路线:
Client to port 5800 ? Router (Yes, port forwarding is setup here) ? Mac with PF ? PF ? 192.168.1.246 port 5900
Run Code Online (Sandbox Code Playgroud)
以下是我打算使用的规则(可能是错误的):
rdr pass inet proto tcp from any to any port 5800 -> 192.168.1.246 port 5900
Run Code Online (Sandbox Code Playgroud)
当我/etc/pf.conf
直接添加规则并运行时,sudo pfctl -f /etc/pf.conf
我得到:
$ sudo pfctl -f /etc/pf.conf
pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf …
Run Code Online (Sandbox Code Playgroud) 在 FreeBSD 10 设置中,我有一个运行可公开访问的 nginx Web 服务器的监狱和另一个基于 Jetty 的 Java 后端服务器的监狱。每个 jail 都有自己的内部 IP 地址 127.0.1.x 连接到 lo1 环回接口。所有这些都配置为与 pf 防火墙一起运行,它将传入流量重定向到 nginx jail,然后从那里重定向到 Jetty jail。基本 pf 配置如下所示。
现在我想通过 https 从外部访问一个 Git 存储库。这已经设置并运行良好,但只能通过外部访问它。在 Jetty jail 中,无法进行连接。但是,我想通过公共 IP 地址从我的 Jetty 后端监狱访问 Git 存储库。
我尝试了类似以下行的内容来在 pf 中启用它,但没有成功:
rdr pass proto tcp from $ip_jetty to $ip_public port https -> $ip_nginx
Run Code Online (Sandbox Code Playgroud)
我的 pf 防火墙配置如下所示:
ip_public = "6.7.8.9"
if_external = "igb0"
net_jails = "127.0.1.0/24"
ip_nginx = "127.0.1.1"
ip_jetty = "127.0.1.10"
# Allow traffic from jails to …
Run Code Online (Sandbox Code Playgroud) 如何配置pfsense
NAT 服务器,以便公司外部可以访问它们?我尝试使用 NAT 设置,但一无所获。如果可以,我希望能够使用 HTTP、SSH 和 RDP 远程访问它们。