当前位置:首页 > 技术教程 > 正文

pfSense防火墙NAT详解(二)

NAT(二)

  • 出站NAT

  • 选择一个NAT

  • NAT和协议兼容性

  • IPv6网络前缀转换(NPt)

  • 故障排查


出站NAT

出站NAT也称为源NAT,用于控制pfSense如何转换离开接口流量源地址和端口。要配置出站NAT,请导航到防火墙> NAT,出站选项卡。

有四种可能的出站NAT模式:

  1. 自动出站NAT:默认选项,可自动执行从内部接口(如LAN)到外部接口(如WAN)的NAT。

  2. 混合出站NAT:使用手动规则,同时对自动输入规则不匹配的流量使用自动规则。 对于需要一点额外控制但不希望手动管理整个列表的管理员来说,此模式是最灵活和易于使用的。

  3. 手动出站NAT:只遵守手动输入的规则。 可能提供更多的控制选项,但可能很难管理,并且任何对内部接口或WAN进行的更改都必须由手动规则解决。 如果从自动切换到手动时列表为空,则列表中将填入与自动生成的组相同的规则。

  4. 禁用出站NAT:禁用所有出站NAT。如果防火墙在所有局域网和广域网上仅包含可路由地址(例如公共IP地址),则此功能很有用。

更改模式后,单击保存按钮以应用新的设置

在每个WAN有单个公共IP地址的网络中,通常没有理由启用手动出站NAT。 如果需要手动控制,混合模式是最佳选择。 在具有多个公有IP地址和复杂NAT要求的环境中,手动出站NAT可以更好地控制各个方面。

对于使用高可用性与CARP的环境,如高可用性中所述,将出站流量NAT转为CARP VIP地址很重要。这可以在混合或手动模式下完成。

与pfSense中的其他规则一样,从列表顶部向下考虑出站NAT规则,并优先使用第一个匹配项。 即使规则出现在“出站NAT”页面中,除非“模式”设置为“混合出站NAT”或“手动出站NAT”,否则它们将不会被接受。

注意

出站NAT仅控制流量在离开接口时发生的情况。 它不控制哪个流量将退出防火墙的接口。 这是由路由表(静态路由)或策略路由(策略路由)处理的。

默认出站NAT规则

当设置为默认的自动出站NAT模式时,pfSense会维护一组NAT规则,以将任何内部网络的流量转换为流量离开的WAN接口的IP地址。 自动NAT规则中还包含静态路由网络和远程访问***网络。

将出站NAT配置为自动或混合模式时,自动规则显示在标有自动规则页面的下方部分。

如果出站NAT规则列表为空,切换到手动出站NAT并保存将生成一组与自动规则等效的规则。

静态端口

默认情况下,pfSense会重写除UDP端口500(VPN通信的IKE)之外的所有传出连接上的源端口。 一些操作系统在源端口随机化方面做得不好,如果他们这样做的话。 这使得IP地址欺骗变得更容易,并且可以为防火墙后面的主机指定出站流量。 重写源端口消除了这些潜在的安全漏洞。 出站NAT规则(包括自动规则)将在设置为随机化源端口的规则的“静态端口”列中显示为pfSense防火墙NAT详解(二)  第1张

源端口随机化打破了一些罕见的应用程序。默认的自动出站NAT规则集禁用UDP 500的源端口随机化,因为几乎总是通过重写源端口来破坏它。保留原始源端口的出站NAT规则称为“静态端口”规则,该规则位于“静态端口”列中。默认情况下,所有其他流量都会重写源端口

其他协议(如游戏控制台使用的协议)在重写源端口时可能无法正常工作。要禁用此功能,请使用静态端口选项。

为需要静态源端口的设备添加规则:

  • 导航到防火墙> NAT,出站选项卡

  • 选择混合出站NAT规则生成

  • 点击保存

  • 点击 pfSense防火墙NAT详解(二)  第2张 将新的NAT规则添加到列表顶部

  • 配置规则以匹配需要静态端口的流量,例如PBX的源地址或游戏控制台(请参阅下面的使用手动出站NAT规则)

  • 检查页面转换部分的静态端口

  • 点击保存

  • 点击应用更改

进行更改后,符合规则的传出流量上的源端口将被保留。 最好的做法是在利用静态端口时使用严格的规则,以避免两台本地主机使用相同的源端口、使用相同的外部IP地址与同一远程服务器和端口进行通信时发生任何潜在冲突。

禁用出站NAT

如果在本地接口上使用公共IP地址,并且因此不需要NAT来通过防火墙传输流量,请禁用可路由子网的NAT。这可以通过几种方式实现:

  • 如果任何接口都不需要NAT,请将出站NAT模式设置为“禁用”

  • 使用混合出站NAT,使用非NAT的规则集可以禁用匹配通信的NAT

  • 使用手动出站NAT,删除(或不创建)任何匹配可路由子网的NAT规则

在上述任何情况下,出站NAT将不再为这些源IP地址生效,pfSense将在不转换的情况下路由公共IP地址

使用手动出站NAT规则

出站NAT规则非常灵活,能够以多种方式转换流量。

NAT规则显示在单个页面中,当流量离开接口时,仅查询为该特定接口设置的出站NAT规则。

点击 pfSense防火墙NAT详解(二)  第2张 从出站NAT页面添加一条规则到列表顶部。 点击 pfSense防火墙NAT详解(二)  第4张 在底部添加规则。 在顶部放置特定规则,在底部放置一般的规则。 规则由防火墙处理,从列表顶部开始处理,并使用第一条匹配的规则。 规则可能会重新排序以符合要求的方式。

出站NAT规则的选项包括:

禁用: 设置此规则决定NAT是否处于活动状态。

禁用NAT: 选中此选项会导致符合规则的数据包在离开时不会应用NAT。 如果流量无需匹配NAT规则,则这是必要的。 其中一个常见用途是添加特例规则,以便防火墙IP地址不会应用NAT,尤其是在CARP的情况下,此类NAT会在辅助节点处于备份模式时断开Internet通信。

接口: 此流量通过此接口离开时,此NAT规则适用的接口。通常这是WAN或OPT WAN,但在某些特殊情况下,它可能是LAN或另一个内部接口。

协议: 在大多数情况下,出站NAT将适用于任何协议,但偶尔需要限制NAT将采用的协议。例如,仅对来自PBX的UDP流量执行静态端口NAT。

源: 源是本地网络,当它离开选定的接口时,它的地址将被转换。 这通常是LAN,DMZ或VPN子网。 源端口几乎总是留空以匹配所有端口。 如果“类型”设置为“网络”,则此字段支持使用别名。

注意:避免使用任何源地址,因为这也会匹配来自防火墙本身的流量。这会导致网关监控和其他防火墙启动的流量出现问题。

目标: 在大多数情况下,目的地保持设置为任何状态,以使来自该接口的任何流量都将被转换,但目的地可以根据需要进行限制。 例如,要在转到特定目标时以某种方式进行转换,例如仅执行静态端口NAT到SIP中继地址。 如果“类型”设置为“网络”,则此字段支持使用别名。

转换: “转换”部分内部的地址字段控制匹配此规则的流量的源地址发生了什么变化。 通常,这被设置为接口地址,以便将通信量转换为接口的IP地址,例如, WAN IP地址。 地址下拉菜单还包含所有定义的虚拟IP地址,主机别名和其他子网,以手动输入子网进行转换。

注意:包含子网的别名不能用于转换。只能使用主机别名或单个手动输入的子网。

使用主机别名或手动输入的子网,出站NAT规则可以转换为地址池。 这可以帮助大型NAT部署,或者在多个客户端需要静态端口的地区。 当转换为主机别名或子网时,“池选项”下拉菜单提供几个选项。 只有循环类型可以与主机别名一起使用。 任何类型都可以与子网一起使用。

默认:不定义任何用于从池中选择转换地址的特定算法。

Round Robin:依次循环访问别名或子网中的每个潜在转换地址。

Round Robin with Sticky Address:与Round Robin一样工作,但只要来自源主机的状态存在,就会为给定源地址保留相同的转换地址。

Random:随机选择从子网使用的转换地址。

Random with Sticky Address:只要来自源主机的状态存在,就会随机选择一个地址,但对于给定源地址保持相同的转换地址。

源哈希:使用源地址的哈希来确定转换地址,确保转换的地址对于给定的源IP地址总是相同的。

掩码:应用子网掩码并保持最后部分相同。 例如,如果源地址是10.10.10.50,转换子网是192.2.0.0/24,则该规则将把地址更改为192.2.0.50。 这与1:1 NAT的工作方式类似,但仅限于出站方向。

端口: 指定一个特定的转换源端口。这几乎总是留空,但如果客户端选择随机源端口,但服务器需要特定的源端口,则可能需要该端口。

静态端口: 在源IP地址转换后,导致客户端流量的原始源端口得以维持。 有些协议要求这样做,比如没有NAT-T的IPsec,并且一些协议的行为会更好,比如SIP和RTP。 选中此选项将禁用端口输入框。

不同步XML-RPC:此选项仅在正在使用HA群集配置时才相关,否则应该跳过此选项。 在使用具有配置同步的HA群集时,选中此框将阻止将规则同步到群集的其他成员(请参阅高可用性)。 但是,通常所有规则都应该同步。 此选项仅在主节点上有效,它不会阻止规则在从节点上被覆盖。

描述: 文本描述,用来解释这个规则的目的。

这些规则可以适应大多数任何NAT场景,无论大小。

跟踪对出站NAT规则的更改

如防火墙规则时间戳中针对防火墙规则所述,将时间戳添加到出站NAT条目中,指明其创建时间或上次编辑时间。 此时间戳显示哪个用户创建了规则,以及编辑规则的最后一个人。 从自动出站NAT模式切换到手动出站NAT模式时,创建的规则将被标记为由该进程创建。

选择一个NAT配置

最佳NAT配置主要取决于可用的公有IP地址数量以及需要从Internet进行入站访问的本地服务数量。

每个WAN的单个公共IP地址

当每个WAN只有一个公共IP可用时,NAT选项是有限的。 1:1 NAT规则可以用于WAN IP地址,但这可能有缺点。在这种情况下,我们建议只使用端口转发。

每个WAN有多个公共IP地址

当每个WAN有多个公有IP地址可用时,入站和出站NAT配置上可以有多个选项。取决于站点的需求,端口转发,1:1 NAT和混合或手动出站NAT都是可取的。

NAT和协议兼容性

有些协议不适用于NAT,另外一些协议根本无法在NAT环境工作。 有问题的协议在分组内嵌入IP地址和/或端口号(例如SIP和FTP),如果源端口被重写(SIP来自PBX,IPsec),这些协议将无法正常工作。

FTP

由于协议的设计,FTP会给NAT和防火墙带来问题。 FTP最初是在20世纪70年代设计的,目前定义协议规范的标准是在1985年编写的。由于FTP是在NAT之前十多年创建的,并且在防火墙出现之前已经存在很久,在防火墙和NAT的应用方面,它的行为方式非常不友好。

pfSense默认不包含FTP代理,但有一个客户端代理作为附加插件提供。

FTP限制

由于pf缺乏在没有代理的情况下正确处理FTP流量的能力,并且FTP代理插件应用较少,所以FTP的使用有一些限制。

NAT后面的FTP服务器

对于NAT后面的FTP服务器,必须将所有相关端口手动转发到服务器,并允许使用防火墙规则。 或者在1:1 NAT的情况下,只需要防火墙规则。 根据FTP模式,服务器软件和客户端软件的不同,也可能需要某些服务器进行特殊配置。

FTP模式

FTP可以在多种模式下运行,这些模式可以改变客户端和服务器的行为,以及哪一端监听传入连接。 NAT和防火墙规则的复杂性取决于这些模式以及远程客户端是否尝试连接到pfSense后面的服务器,或者pfSense后面的客户端是否尝试连接到远程服务器。

活动模式

使用活动模式FTP,当请求文件传输时,客户端侦听本地端口,然后告诉服务器客户端IP地址和端口。 然后服务器将连接回该IP地址和端口以传输数据。 这对防火墙来说是个问题,因为端口通常是随机的,尽管客户端允许限制使用的范围。 对于NAT后面的客户端,给定的IP地址将是本地地址,从服务器无法访问。 不仅如此,还需要添加防火墙规则以及允许流量进入此端口的端口转发。

当使用FTP代理插件并且客户端在连接到远程服务器的pfSense后面时,代理会尝试执行三项主要操作:首先,它将重写FTP 端口命令,以使IP地址成为防火墙WAN IP地址以及该IP地址上随机选择的端口。 接下来,它添加一个端口转发,将转换的IP地址和端口连接到由FTP客户端指定的原始IP地址和端口。 最后,它允许来自FTP服务器的流量连接到该“公共”端口。 使用多WAN时,代理将只在包含默认网关的WAN上运行。

当一切工作正常时,这一切都是透明的。服务器从来不知道它正在与NAT后面的客户端交谈,而客户端从不知道服务器没有直接连接。

在NAT后面的服务器的情况下,主动模式通常不是问题,因为服务器只会监听标准FTP端口上的连接,然后将出站连接返回给客户端。 出站防火墙规则必须允许服务器进行任意的出站连接,并且规则策略不得将这些连接路由到除接受入站FTP连接的WAN之外的WAN。

被动模式

被动模式(PASV)有些相反。 对于客户端来说,它更适合NAT和防火墙,因为服务器在请求文件传输时侦听端口,而不是客户端。 通常情况下,PASV模式将适用于NAT后面的FTP客户端,而无需使用任何代理或特殊处理。

类似于前一节中的情况,当客户端请求PASV模式时,服务器将向客户端提供其IP地址和客户端可以尝试连接的随机端口。 由于服务器位于专用网络上,因此需要转换IP地址和端口并允许其通过防火墙。 有关规则要求,请参阅下面的FTP服务器和端口转发。 FTP服务器必须提供客户端连接到的公共IP地址,但是某些客户端(如Filezilla)足够聪明,可以忽略给定IP地址(如果它是私有IP地址),而是连接到原始服务器IP地址。

扩展被动模式

扩展被动模式(EPSV)与PASV模式类似,但允许在IPv6上使用。 当客户端请求传输时,服务器将回复客户端应连接的端口。 注意事项与PASV模式的服务器相同。

FTP服务器和端口转发

对于为客户端提供被动模式的FTP服务器,FTP服务器的配置必须定义一个被动端口范围,并且还必须设置外部NAT地址,通常是防火墙的WAN IP地址。 设置这些值的方法取决于FTP服务器软件的实现。 在防火墙上,被动端口范围必须连同TCP端口21一起进行端口转发。

对于为客户端提供主动模式的FTP服务器,只有TCP端口21需要端口转发。

FTP服务器和1:1 NAT

对于1:1 NAT,防火墙规则必须允许端口21和被动端口范围。

TFTP

标准TCP和UDP流量使用临时端口范围内的随机源端口启动与远程主机的连接,该端口范围因操作系统而异,但落在1024-65535之间,并且正在使用的协议的目标端口。 从服务器到客户端的回复反转:源端口是客户端目标端口,目标端口是客户端源端口。 这就是pf如何将回复流量与从网络内部发起的连接相关联的原因。

然而,TFTP(普通文件传输协议)不遵循这个惯例。 定义TFTP(RFC 1350)的标准规定了从TFTP服务器到客户端的回复来自伪随机端口号。 TFTP客户端可以选择一个10325的源端口(作为例子),并使用目的端口作为TFTP,端口69。其他协议的服务器然后将使用源端口69和目的端口10325发送应答。由于TFTP改为使用伪随机源端口,回复流量将不匹配为此流量创建的pf状态。 因此,应答将被阻止,因为它们似乎是来自互联网的未经请求的流量。

TFTP不是Internet上常用的协议。 偶尔会遇到这种问题的唯一情况是某些IP电话使用TFTP连接到互联网上的外部VoIP提供商以提取配置和其他信息。 大多数VoIP提供商不需要这个。

如果TFTP流量必须通过防火墙,则TFTP代理可用,在系统>高级设置,防火墙和NAT选项卡下配置。

PPTP / GRE

pfSense中对PPTP的限制是由pf对GRE协议进行NAT转换的能力所限制的。因此,这些限制适用于任何GRE协议的使用,但PPTP一直是最常见的GRE应用。

用于GRE协议的pf状态跟踪代码只能跟踪每个外部服务器每个公共IP地址的单个会话。 这意味着如果PPTP ***连接就位,则只有一台内部机器可以同时连接到Internet上的相同PPTP服务器。 一千台机器可以同时连接到一千个不同的PPTP服务器,但只能同时连接一台服务器。 一个客户端也可以连接到无限数量的外部PPTP服务器。

唯一可用的解决方法是在防火墙上使用多个公用IP地址,每个客户端通过出站或1:1 NAT,或在外部PPTP服务器上使用多个公用IP地址。 这对其他类型的***连接没有问题。

由于PPTP中的安全性极差,包括对整个协议的完全折衷,应尽快停止使用。因此根据当前的安全标准,此问题已经不重要。

在线游戏

除了一些注意事项之外,游戏通常对NAT友好。 本节涉及具有在线功能的PC游戏和控制台游戏系统。 本节概述了众多pfSense用户的体验。 访问pfSense论坛上的游戏板块以获取更多信息。

静态端口

除非在出站NAT规则上启用静态端口,否则某些游戏无法正常工作。 如果游戏在建立连接时出现问题,最好先尝试启用来自控制台的流量的静态端口。

一台NAT设备后面有多个播放器或设备

有些游戏存在多个播放器或设备位于单个NAT设备后面的问题。 这些问题似乎特定于NAT,而不是pfSense,因为尝试其他防火墙的用户也遇到同样的问题。 搜索pfSense论坛上的游戏板块,查找游戏或系统,查找具有类似经历的其他人的信息。

克服UPNP的NAT问题

许多现代游戏系统都支持通用即插即用(UPnP)自动配置任何所需的NAT端口转发和防火墙规则。 在pfSense上启用UPnP通常可以让游戏在很少干预或不干预的情况下工作。 有关配置和使用UPnP的更多信息以及有关潜在安全问题的信息,请参阅UPnP和NAT-PMP。

IPv6网络前缀转换(NPt)

网络前缀转换(Network Prefix Translation,简称NPT)的作用与1:1 NAT类似,但是可以在IPv6地址上运行。 NPt可以在防火墙> NAT,NPt选项卡上找到。

NPt需要一个前缀并将其转换为另一个前缀。因此,2001:db8:1111:2222::/64变为2001:db8:3333:4444::/64,尽管前缀发生更改,但该地址的其余部分对于该子网上的给定主机将是相同的。

NPt有几个目的,但很多人质疑它的实际用途。 使用NPt时,可以在局域网上使用“专用”IPv6空间(fc00::/7),并且可以通过NPt将其转换为公开的路由IPv6前缀,并通过WAN进行传输。 这个用途是有争议的。 一种用途是避免在外部提供者发生变化时重新编号局域网,但是因为任何寻找旧前缀的外部数据都必须进行调整,所以可以采取任何方式,尤其是当配置必须考虑避免在***隧道的fc00::/7空间发生冲突时。

NPT对于SOHO IPv6多WAN部署非常有用。 家庭或小型企业最终用户拥有自己独立于提供商的IPv6空间和BGP源的可能性非常小。 在这些情况下,防火墙可以利用来自多个WAN的路由前缀,其功能类似于IPv4上的多WAN。 当流量离开从局域网子网获得的第二个WAN时,NPt会将其转换为该WAN的路由子网中的等效IP地址。 局域网可以使用其中一个路由前缀,并在其他WAN上执行NPt,或者使用fc00::/7中的地址,并在所有WAN上执行NPt。 我们建议避免使用fc00::/7空间来执行此任务。

添加NPt条目时,由于NPt非常基本,因此可以考虑的选项很少:

禁用: 切换是否使用此规则。

接口: 在流量退出时选择此NPt规则生效的接口。

内部IPv6前缀:本地(例如LAN)IPv6子网和前缀长度,通常是LAN上的/ 64或其他内部网络。

目标IPv6前缀:内部IPv6前缀将被转换到的路由外部IPv6子网和前缀长度。这不是WAN本身的前缀。它必须是通过接口路由到此防火墙的网络

描述: 简要说明此条目的用途。

下图NPt示例显示了NPt规则,其中当LAN IPv6子网2001:db8:1111:2222::/64离开HENETV6DSL接口时,它将转换为2001:db8:3333:4444::/64。

pfSense防火墙NAT详解(二)  第5张

NPt 示例

故障排查

NAT配置可能相对复杂,除了最基本的环境之外,必然会有各种问题需要去排查并解决。本节将介绍几个常见问题和建议,以便如何解决这些问题。

端口转发故障排除

端口转发可能会很棘手,因为有很多环节会出错,其中许多可能在客户端配置中,而不是pfSense。用户遇到的大多数问题已通过一个或多个以下建议解决。

端口转发条目不正确

在执行任何其他故障排除任务之前,请验证端口转发的设置。 再次在添加端口过程中,仔细检查设置的值是否正确。 请记住,如果NAT IP地址或端口已更改,如果未选择链接的防火墙规则的话,则防火墙规则可能还需要调整。

常见检查方法 :

  • 正确的接口:通常是广域网,或任何流量进入防火墙的地方。

  • 正确的NAT IP:必须可以从防火墙上的接口访问IP地址。

  • 正确的端口范围:它必须与正在转发的服务相对应。

  • 源端口和源端口范围应该被设置为任意。

防火墙规则缺少或不正确的

检查端口转发设置后,请仔细检查防火墙规则是否具有适当的设置。 查看防火墙日志也会显示错误的防火墙规则。 请记住,防火墙规则的目标是目标系统的内部IP地址,而不是包含端口转发的接口的地址。

目标机器上启用了防火墙

需要考虑的另一件事是,pfSense可能会正确转发端口,但目标机器上的防火墙可能会阻止流量。 如果目标系统上有防火墙,请检查其日志和设置,以确认转发的流量是否被阻止。

PFSENSE不是目标系统网关

为了使pfSense正确地转发本地系统的端口,pfSense必须是目标系统的默认网关。

目标系统没有网关或不能使用pfSense作为其网关

目标机器网关较大问题的一个子集是设备没有网关或无法拥有网关。 在这些情况下,通过切换到混合或手动出站NAT并在局域网或面向本地设备的其他内部接口上制定规则来解决该问题。 此规则将转换来自目标端口上目标系统的任何源的流量。

例如,如果文件服务器不支持位于10.3.0.6的网关,请切换到“混合出站NAT”并创建一个规则,如图“手动出站NAT规则”以使LAN设备虽然缺失网关但也能从外部网络访问它。 文件服务器将看到防火墙的局域网IP地址作为流量的来源,并且由于这对服务器来说是“本地”的,它会正确响应。

pfSense防火墙NAT详解(二)  第6张

缺少网关的LAN设备的手动出站NAT规则

目标机器未在转发的端口上侦听

如果请求被拒绝,而不是在连接测试时超时,很可能pfSense正在正确转发连接,并且连接被目标系统拒绝。 当目标系统没有服务在有问题的端口上侦听时,或者如果被转发的端口与目标系统正在侦听的端口不匹配,就会发生这种情况。

例如,如果目标系统应该监听SSH连接,但端口转发是为23端口而不是22端口输入的,则该请求很可能会被服务器拒绝。 通常可以通过尝试使用netcat或telnet连接到有问题的端口来检测差异。 诸如“拒绝连接”之类的消息指示内部主机常常在主动拒绝连接。 使用诊断>测试端口也可以提供帮助,请参阅测试TCP端口。

ISP阻止端口

一些ISP将传入流量过滤到未知端口。 检查ISP的服务条款(ToS),看看是否有关于运行服务器的条款。 家庭网络的这种限制比商业连接更常见。 如有疑问,致电ISP可能会解决此问题。

如果端口被ISP过滤,则将服务移动到其他端口可以解除该限制。 例如,如果ISP不允许端口80上的服务器,请尝试8080或18080。

尝试解决过滤问题之前,请咨询ISP以确保运行服务不违反其规则。

从网络内部而不是外部进行测试

默认情况下,端口转发仅在连接来自本地网络之外时才起作用。 在测试端口转发时,这是一个非常常见的错误。

如果端口转发不需要在内部工作,请参阅NAT回流。分离DNS是一个更合适和优雅的解决方案,不需要依赖NAT回流或端口转发,值得花时间来实现。

即使有NAT回流,来自网络内部的测试也不一定表明它是否能够从互联网上运行。 ISP限制、防火墙上游设备的限制以及其他可能性在从网络内部进行测试时无法看到。

虚拟IP地址不正确或丢失

使用不是分配给接口的实际IP地址的IP地址时,必须使用虚拟IP地址(VIP,请参阅虚拟IP地址)。 如果在备用IP地址上转发的端口不起作用,则可能需要使用不同类型的VIP。 例如,代理ARP类型可能是必要的,而不是“其他”类型的VIP。

在测试时,还要确保客户端连接到正确的VIP。

PFSENSE不是边界/边缘路由器

在某些情况下,pfSense是一个内部路由器,它与互联网之间还有其他路由器也在执行NAT。 在这种情况下,还必须在边缘路由器上输入端口转发,将端口转发到pfSense,然后再转发到本地系统。

将端口转发到入网门户后面的系统

将端口转发到入网门户后面的主机需要特别考虑。

需要进一步测试

如果这些解决方案都不会导致工作端口转发,请查询防火墙状态以查找指示连接已通过防火墙的NAT状态,或者通过数据包捕获获取有关端口转发问题的信息。

NAT 回流故障排查

NAT回流很复杂,因此可能无法在某些高级场景中使用。 我们建议在大多数情况下使用分离DNS。 当前版本的pfSense的NAT回流几乎适用于所有情况,任何问题通常都是配置错误。 确保它以正确的方式启用,并确保大量端口没有被不必要地转发。

NAT回流规则对于系统中存在的每个接口也是重复的,所以如果使用了很多端口转发和接口,回流器的数量可以轻易超过系统的限制。 如果发生这种情况,系统日志中会打印一个条目。 检查系统日志是否有任何错误或信息。

启用NAT回流后无法访问WEB

如果防火墙上存在未正确指定的NAT端口转发,则启用NAT回流时可能会导致问题。 出现此问题最常见的方式是使用本地Web服务器,并且端口80被指定了不正确的外部地址。

如果启用了NAT回流并且外部地址设置为任意,则在防火墙上进行的任何连接都将作为本地Web服务器进行。 要解决此问题,请编辑特殊端口的端口转发,并将外部地址更改为接口地址。

如果需要任何外部地址,则NAT回流将不起作用,必须使用分离DNS。

出站NAT故障排查

当启用手动出站NAT并且存在多个本地子网时,每个NAT入口都是必需的。这尤其适用于在通过VPN连接(如OpenVPN)进入pfSense路由器后,流量必须通过NAT退出的情况。

缺少出站NAT规则的一个迹象是将数据包从WAN接口看到的是私有网络的源地址。