在某些情况下,管理员可能被锁定在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,如:
要从控制台重置此设置,请重置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可能会由其内部监视脚本自动重新启动。