不久前,我在公司安装了光纤互联网连接,并拥有多个公共 IPv4 地址。ISP 提供了两个 IP 地址块:一个“P2P”地址块,其中包含网关(我所在站点的物理设备),另一个“可用”地址块,包含我付费购买的公共 IPv4 地址。
ISP 的指示是我需要一个路由器,所以我设置了一个 pfSense 来在两个块之间路由:“P2P”作为指定网关的 WAN,“可用”块作为 LAN。我认为只需禁用 NAT 就可以在它们之间路由,但虽然这对传出连接有效,但对我的“可用”IP 上的传入连接无效。然后我在“高级”>“防火墙和 NAT”下发现了“禁用所有数据包过滤”模式,并使用该模式按预期进行路由。
后来,在一次渗透测试中,我意识到 pfSense 的 Web 管理员可以在 WAN 接口上使用,这是有道理的,因为防火墙已被禁用。当然,这是不可取的。在这种配置下,我能做些什么来阻止 WAN 接口上的 Web 访问?或者完全禁用 Web 管理员(因为我可以使用控制台进行配置)?
答案1
启用数据包过滤并创建丢弃不需要的流量的防火墙规则。
这有点像目的防火墙——丢弃不需要的流量。
答案2
对于那些最终在这里寻找在 pfSense 中配置或禁用 nginx webConfigurator 的方法的人来说,在撰写本文时(截至 pfSense 2.7.2),还没有很好的方法可以做到这一点。但是,我有一些可能让您感兴趣的黑客解决方案。
禁用 webConfigurator
从 shell 中,您可以使用以下命令停止 webConfigurator:
pkill -F /var/run/nginx-webConfigurator.pid
然后在需要时使用控制台菜单上的选项 11“重新启动 webConfigurator”使其再次运行。/etc/rc.initial
如果您愿意,甚至可以编辑脚本以添加“禁用 webConfigurator”选项。
使 webConfigurator 仅监听某些接口
不幸的是,webConfigurator 的 nginx 配置是由一些脚本生成的,因此这个过程更加肮脏。配置文件由system_generate_nginx_config
中的函数生成/etc/inc/system.inc
。您可以在此处进行任何编辑,这些编辑在 nginx.conf 中有效,但它们可能会在下一次 pfSense 系统更新时被清除。您可能想要修改配置生成代码中的服务器块,您可以将其设置为仅监听您想要的 IP,但我个人为allow
我从中连接的 IP 添加了一条规则,然后是一条deny all
规则。