【防火墙 pfsense】1简介
(1) pfSense 有以下可能的用途:
边界防火墙
路由器
交换机
无线路由器 / 无线接入点
(2)边界防火墙
->要充当边界防火墙,pfSense 系统至少需要两个接口:一个广域网(WAN)接口(用于连接外部网络)和一个局域网(LAN)接口(用于连接本地网络)。
->边界防火墙主要执行两项功能。第一项功能,即监控和控制入站流量。允许特定端口上的某些流量通过,同时阻止所有其他流量,这是所有防火墙的核心功能。第二项功能,即监控和控制出站流量。
->在防火墙后面设置具有分割架构的网络是很常见的做法,将可从互联网访问的资产与网络的其他部分隔离开来。在这种情况下,可从互联网访问的资源被放置在一个单独的网络中,这个网络通常被称为非军事区(DMZ)。
(3)路由器
->在家庭或小型办公室 / 家庭办公室(SOHO)环境中,防火墙和路由器的功能通常由同一设备来执行。然而,在中型到大型网络中,路由器是与边界防火墙分开的设备。
->在更为复杂的网络设置中, pfSense 系统可能需要与网络上的其他路由器交换路由信息。用于交换此类信息的协议有两种类型:距离矢量协议通过与相邻路由器交换信息来获取其路由信息;路由器使用链路状态协议来构建网络地图,以便计算到另一台路由器的最短路径,每台路由器都独立计算距离。pfSense 能够运行这两种类型的协议。对于距离矢量协议,如路由信息协议(RIP)和 RIP 版本 2(RIPv2),以及链路状态协议,如边界网关协议(BGP)。
(4) 硬件选型事项
->关于 CPU:对于更快的互联网连接,CPU 的要求会增加。以下是一般的指导原则:最低硬件规格(英特尔或 AMD 500 兆赫兹或更高主频的 CPU)适用于最高 20 兆比特每秒(Mbps)的网络速度。当网络速度超过 20 Mbps 时,CPU 的要求就开始增加。
->网络连接速度:100 Mbps 或更快的网络连接将需要使用 PCI-E 网络适配器,以跟上增加的网络吞吐量。
->接口桥接情况:如果你打算使用 pfSense 来桥接接口,例如,如果你想桥接无线网络和有线网络,或者你想把 pfSense 用作交换机,那么就应该考虑 PCI 总线的速度。PCI 总线很容易成为瓶颈。因此,在这种情况下,使用 PCI-E 硬件是更好的选择,因为它的速度最高可达 31.51 GB/s(对于 16 通道插槽上的 PCI-E 4.0 标准),而最快的传统 PCI 总线速度仅为 533 MB/s。
->用作 VPN 服务器的情况:如果你计划将 pfSense 用作 VPN 服务器,那么你应该考虑到 VPN 使用对 CPU 的影响。每一个 VPN 连接都需要 CPU 对流量进行加密,连接数量越多,CPU 的负担就越重。一般来说,最具成本效益的解决方案是使用更强大的 CPU。不过,也有一些方法可以减少 VPN 流量对 CPU 的负载。
->关于内存:如果你不是高级用户,512 MB 的内存可能对于你的 pfSense 系统来说就足够了。然而,这样留给状态表(如前所述,状态表用于跟踪活动连接)的空间就很少了。每个连接状态大约需要 1 KB 的内存,这比一些消费级路由器所需的内存要少,但如果你预计会有大量的同时连接,你仍然需要留意内存的使用情况。pfSense 的其他组件需要 32 MB 到 48 MB 的内存,根据你使用的功能不同,可能需要更多内存,所以在计算最大状态表大小时,你必须从可用内存中减去这部分内存用量。
->磁盘空间的大小以及你所使用的存储形式,很可能取决于你安装的软件包以及你启用的日志记录形式。有些软件包对存储的要求比其他软件包更高。一些软件包比其他软件包需要更多的磁盘空间。像 Squid 这样的代理服务器会存储网页;像 pfBlocker 这样的反垃圾邮件程序会下载被阻止的 IP 地址列表,因此需要额外的磁盘空间。代理服务器还往往会进行大量的读写操作,所以,如果你要安装代理服务器,磁盘的输入输出(I/O)性能可能是你应该考虑的因素。
->关于网卡,你可能会倾向于选择最便宜的网卡(NIC)。然而,便宜的网卡通常有复杂的驱动程序,这些驱动程序会将大部分处理工作卸载到 CPU 上。它们可能会使 CPU 因处理中断而不堪重负,从而导致丢包。较便宜的网卡通常缓冲区较小(通常不超过 300 KB),当缓冲区满了时,数据包就会被丢弃。此外,它们中的许多不支持大于最大传输单元(MTU)1500 字节的以太网帧。
不支持较大帧的网卡无法发送或接收巨型帧(MTU 大于 1500 字节的帧),因此它们无法利用使用巨型帧所带来的性能提升。此外,这类网卡在处理 VLAN 流量时往往会出现问题,因为 VLAN 标签会使以太网报头的大小超出传统的大小限制。
pfSense 项目推荐基于英特尔芯片组的网卡,这类网卡被认为可靠有几个原因。它们往往具有足够大小的缓冲区,并且在处理较大帧时不会出现问题。此外,其驱动程序往往编写得很好,并且能与基于 UNIX 的操作系统很好地配合工作。