恢复 pfSense WebGUI 访问的多种方法
在某些情况下,管理员可能被锁定在 WebGUI 外面。如果发生这种事,不要害怕;有很多方法可以重新获得控制权。有些方法有点棘手,但总有办法可以恢复访问。最坏的结果是需要物理访问,因为任何具有物理访问权限的人都可以绕过安全措施。
注意:防火墙的物理安全性至关重要,尤其是在防火墙实际位于公共区域,而非授权管理员可访问的环境中时。
在采取任何这些步骤之前,请尝试使用默认的密码选项:
| 用户名 | 密码 |
|---|---|
admin | pfsense |
忘记密码
如果忘记了防火墙管理员密码,可以轻松地使用防火墙控制台重置。访问物理控制台(串行或键盘/显示器)并使用选项 3 重置 WebGUI 密码。此选项也可以重置管理员帐户,如果它已被禁用或过期。
重置密码后,admin 用户可以使用默认密码 pfsense 登录。
在控制台已锁定的时候忘记密码
如果控制台受密码保护,需要两次重启,通过物理访问控制台来重置密码:
- 重启 pfSense 防火墙
- 从加载程序菜单(带有 pfSense 字符标志的选项)中选择 Boot Single User(启动单个用户) 选项(2)
- 当提示启动到
/bin/sh时按回车 将所有分区重新装入为可重写:
/sbin/mount -a -t ufs运行内置的密码重置命令:
/etc/rc.initial.password- 按照提示重置密码
- 重启
当防火墙重新启动时,admin 用户可以使用默认密码 pfsense 登录。
HTTP 与 HTTPS
确保客户端使用正确的协议进行连接,用 HTTP 或 HTTPS。如果其中一个不能访问,可以尝试用另一个进行访问。如果 GUI 没有正确配置,防火墙可能会在意外的端口和协议组合上运行 GUI,如:
http://pfsensehostname:443https://pfsensehostname:80
要从控制台重置此设置,请重置 LAN 接口 IP 地址,输入相同的 IP 地址,脚本会提示将 WebGUI 重置为 HTTP。
阻止访问与防火墙规则
如果远程管理员由于防火墙规则更改而失去对 WebGUI 的访问权限,则仍然可以从 LAN 端获取访问权限。除非阻止锁定规则被禁用,否则 LAN 规则不能阻止访问 GUI。反锁定规则确保 LAN 上的主机能够随时访问 WebGUI,而不管 LAN 接口上的其他规则如何设置。
远程通过规则限制防火墙锁定
有几种方法可以在 shell 上操作防火墙行为来重新获得对防火墙 GUI 的访问。下面的策略按照它们的容易程度以及它们对运行系统的影响顺序列出。
用 EasyRule 添加一个规则
假设管理员知道需要访问的远程客户端 PC 的 IP 地址,最简单的方法是使用 easyrule 脚本来添加新的防火墙规则。在下面的例子中,easyrule 脚本将允许通过 443 端口从 x.x.x.x(客户端 IP 地址)访问地址 y.y.y.y(推测为 WAN IP 地址):
easyrule pass wan tcp x.x.x.x y.y.y.y 443一旦 easyrule 脚本添加规则成功,客户端将能够从指定的源地址访问 GUI。
从 shell 中添加允许所有 WAN 规则
另一种策略是临时激活 WAN 上的“允许所有”规则让客户端进入。
注意:在互联网连接的 WAN 接口上,“允许所有”规则是危险的。在完成设置后,不要忘记删除此脚本添加的规则。
要向 WAN 接口添加“允许所有”规则,请在 shell 提示符运行以下命令:
pfSsh.php playback enableallowallwan一旦管理员重新获得访问权限,并修复原来的问题,请立即删除 WAN 上的“允许所有“规则。
禁用防火墙
管理员可以(临时)使用物理控制台或 SSH 来禁用防火墙规则。
注意:这将完全禁用防火墙规则和 NAT。如果这个防火墙运行的网络依赖于 NAT 来运行,那么运行这个命令会中断从 LAN 到 Internet 的所有连接。
要禁用防火墙,请连接到物理控制台或 ssh,然后输入选项 8 启动一个 shell,然后键入:
pfctl -d该命令将禁用防火墙,包括所有的 NAT 功能。现在可以从任何地方访问 WebGUI。一旦管理员调整了规则并重新获得了必要的访问权限,请键入以下命令重新打开防火墙:
pfctl -e手动编辑规则集
加载的规则集保留在 /tmp/rules.debug 中。如果管理员熟悉 PF 规则集语法,他们可以编辑该文件来解决连接问题并重新加载这些规则:
pfctl -f /tmp/rules.debug使用临时修复返回到 WebGUI 后,管理员必须执行 WebGUI 中所需的任何工作。当规则保存在 WebGUI 中时,临时编辑的 /tmp/rules.debug 将被覆盖。
通过 SSH 隧道远程屏蔽防火墙
如果远程访问 WebGUI 被防火墙阻止,但是允许 SSH 访问,那么有一个相对容易的方法:通过 SSH 隧道。
如果 WebGUI 位于端口 80 上,则将 SSH 客户端设置为将本地端口 443(或 4443 或其他端口)转发到远程端口 localhost:443。如果防火墙 WebGUI 位于另一个端口上,请将其用作目标,然后将浏览器指向 https://localhost。将端口添加到 URL 的末尾(如果它与默认的 443 不同),例如 https://localhost:4443。如果 GUI 使用 HTTP,请将 URL 上的协议更改为 http://。

在 PuTTY 中设置 80 端口的 SSH 隧道,填写如图所示的选项,然后单击“添加”。
一旦客户端连接并进行身份验证,就可以从重定向的本地端口访问 WebGUI。
由于 Squid 配置错误而被锁定
如果防火墙管理员意外地将 Squid 配置为使用与 WebGUI 相同的端口,则可能会导致控制端口出现冲突,具体取决于在特定时间启动的服务(重新启动)。如果 Squid 设法控制 WebGUI 所需的端口,那么 WebGUI 将无法访问以修复配置。
以下程序可能有助于重新获得控制:
- 使用 SSH 或物理访问连接到 pfSense 防火墙控制台
- 从控制台启动一个 shell,输入选项 8。
终止 squid 进程
/usr/local/etc/rc.d/squid.sh stop如果这不起作用,请尝试使用下面的命令:
killall -9 squid或:
squid -k shutdown
一旦 squid 进程完全终止,使用控制台菜单选项 11 重新启动 WebGUI 进程,然后尝试再次访问 WebGUI。
注意:squid 可能会由其内部监视脚本自动重新启动。
觉得内容不错?我要