家庭网络设计 - 第一部分
Ethan Robish //
在本系列文章中,我将讨论如何通过VLAN技术对我的家庭网络进行分段,以及如何不再使用风险较高的消费级路由器作为网络边界设备。本系列的目标是以尽可能低的成本,带你从使用运行扁平网络的消费级路由器过渡到分段网络。我还会介绍更简单、更高级和更昂贵的选项,让你了解可用的选择。
我最初使用的网络和大多数人一样:完全扁平,仅靠一台消费级无线路由器为所有家庭设备提供服务。我有几台有线系统,但由于便利性和家中缺乏布线,大部分连接都是无线的。我最初的动机是为来访的朋友和家人分离出一个访客网络。但后来我想:“为什么不更进一步,也对一些家庭设备进行分段呢?”
如果你已获得思科认证或以网络架构为生,那么这篇文章不适合你(尽管你可能可以教我很多)。同样,如果你已经拥有除了大卖场现成路由器之外的其他设备,那么我会推荐你阅读Troy Hunt的文章(https://www.troyhunt.com/ubiquiti-all-the-things-how-i-finally-fixed-my-dodgy-wifi/),了解他如何配置家庭网络。不过,你当然可以浏览这篇文章,看看其他你可能不知道的可用选项。
在本文中,我将从通用术语和一些不同的可用选项开始介绍。
网络拓扑
在下面的图表中,我将忽略任何调制解调器或你需要与ISP接口的其他设备。你在我的图表中看到的连接到互联网的设备具有公共可路由IP地址。第一张图显示了我网络(可能也是你的)的起点。
满足我最初目标的最简单解决方案是简单地设置一个访客无线网络。以下是满足该目标的几个选项。
-
具有访客SSID的单个无线路由器 – 如果你的无线路由器支持此功能(我的不支持),只需在路由器配置中花费几分钟即可设置新的访客网络。你的消费级路由器有望在后台处理所有网络配置以隔离两个网络。你甚至可以开启无线隔离模式,这将防止访客设备在其网络上相互通信;它们只被允许与互联网通信。这绝对是“简单”按钮,但不会让我们很好地理解内部工作原理。
-
并行无线路由器 – 这种设置稍微复杂一些,但基本上是扁平网络设置的两个副本。它涉及为家庭网络和访客网络分别使用一个无线路由器。每个路由器都具有典型消费级无线路由器默认的NAT、DHCP和防火墙配置。然后,两个网络通过第三个路由设备允许访问互联网。这设备是否有无线功能并不重要,因为在此场景中你不会使用无线功能。网络是分段的,因为从每个无线路由器的角度来看,另一侧(你的第三个路由器)的任何东西都被视为互联网流量。有很多方法可以调整此设置,并且可能会变得更复杂。我不会深入更多细节,但我的观点是,你可以使用在旧货销售中找到或闲置的一些基本设备,插入电源,只需很少的配置即可工作。
-
串联无线路由器 – 如果你只有两个无线路由器怎么办?下图也显示了一个有效的配置,但我更喜欢上面的#2,原因有二:1)在此场景中,网络不会被正确分段,2)家庭网络的网关位于访客网络中。这意味着在下图中,家庭网络中的设备将能够发起与访客网络中设备的通信(但反之则不行)。如果你的路由器允许你添加静态路由,你可能可以禁用此功能,但默认情况下路由会存在。这也意味着,如果一个特别恶意的设备进入你的访客网络,它有可能通过像ARP欺骗这样的攻击对家庭网络的网关进行中间人攻击,并检查所有进出互联网的未加密流量。
经济实惠的选项
根据我阅读的内容,共识是使用专用设备比使用一体机设备能获得更好的结果(即网络性能)。我的意思是,不是使用我们目前拥有的一体式消费级无线路由器,而是使用一个设备作为防火墙,一个作为路由器,可能多个交换机,和多个无线接入点(更多内容见下文)。每个新设备也会增加成本和复杂性,因此我们需要在深入之前确保权衡收益与成本。
以下是我为边界路由器考虑的几种选项。
运行DD-WRT或Open-WRT的消费设备 – 如果你有一个支持刷写开源固件(如DD-WRT或Open-WRT)的设备,你可以将你的消费级设备变成指数级更可配置的东西。就个人而言,我对这两种都没有最好的运气,尽管有些人非常信赖它们。
真正的企业级设备,如思科 – 这些通常是机架式(读作:大)的,并且对于家庭网络来说新的价格不菲。如果你有空间并想学习市场需求的技能,这绝对是一条有效的途径。我听说在eBay上二手思科设备可能相当实惠。
企业思科设备看起来像这样:
不是这样:
消费价格的企业质量设备 – 你可以购买具有上述思科设备大部分可配置性但价格与消费级路由器相当的东西。我遇到的两个主要竞争者是Mikrotik和Ubiquiti。我的印象是Mikrotik设备更便宜,并且不像Ubiquiti那样提供太多手把手的指导。Ubiquiti设备在外观和图形界面上都更加时尚。
如果Ubiquiti听起来更吸引你,我绝对推荐阅读Troy Hunt的文章。我对他最终拥有的设置类型垂涎三尺,但我不想花那么多钱,也不想尝试通过墙壁运行以太网电缆。
https://www.troyhunt.com/ubiquiti-all-the-things-how-i-finally-fixed-my-dodgy-wifi/ https://arstechnica.com/gadgets/2015/10/review-ubiquiti-unifi-made-me-realize-how-terrible-consumer-wi-fi-gear-is/
构建你自己的路由器/防火墙 – 你可以拿几乎任何闲置的旧电脑,安装其中一个免费或开源操作系统,并拥有比大多数现成产品性能更好的路由器/防火墙。使用此选项,你需要单独购买一个管理型交换机和一个无线网卡或接入点。我在这里还没有任何个人经验,因此以下建议纯粹基于我的研究。
https://pfsense.org/ – DIY防火墙的事实标准操作系统。就个人而言,我会先尝试OPNsense而不是pfSense,看看它是否满足我的需求,但这可能只是我支持弱者的偏好。再次说明,我对这两种软件都没有第一手经验,所以请随意选择最适合你的那个。
https://opnsense.org/ – OPNsense是完全开源的,具有一系列不错的功能和一个漂亮的Web UI。最初这是pfSense的一个分支,但现在他们声称已经重写了几乎所有的原始代码。我喜欢他们似乎比pfSense更早修补安全问题和实现新功能。像Pfsense一样,它也是构建在FreeBSD之上。
http://blog.packetheader.net/2016/03/how-to-create-soho-router-using-ubuntu.html – Joff Thyer有一篇关于如何利用Linux系统上的开源服务配置自己的路由器的文章。这绝对会给你任何选项中最多的控制权,但除非你像Joff一样是数据包 wizard,否则很可能需要最多的时间。如果你属于那一类,为什么还在读这个? 🙂
https://vyos.io/ – 这是一个Linux发行版,为许多优秀的开源工具提供管理界面。他们的网站声明“与OpenWRT或pfSense不同,VyOS更类似于传统的硬件路由器。”这将类似于Joff建议的DIY Linux解决方案,但由于中央界面可能更容易使用。然而,一切仍然从命令行完成,因为VyOS缺乏GUI。
https://www.sophos.com/en-us/products/free-tools/sophos-utm-home-edition.aspx – 在DIY范围的另一端是Sophos UTM(统一威胁管理)家庭版。虽然不是开源的,但它是免费的。它有一个光滑的Web UI,但看起来肯定更侧重于防火墙和过滤服务,而不是低级路由。
值得提及:
最近的热潮是“全屋Wi-Fi”和“网状网络”系统。这些一直存在于像你这样的 dedicated DIYer 中,但最近,像Google和Eero这样的公司创建了消费级套件,使安装和设置变得非常简单。这无疑是获得优秀Wi-Fi覆盖而无需额外布线的绝佳选择,但由于这些设备旨在供非技术受众使用,它们不满足我的要求,即允许在不同VLAN上分段无线网络。
术语
到目前为止,我在使用“接入点”和“路由器”等术语时相当随意。为了进一步讨论,我必须更小心我的术语。下面我用我自己的话解释了几个术语,并有意简化了一些概念,因为它们在后续内容中不需要。我确信我的理解并不完美,但到目前为止它工作得足够好。如果我在某些主要点上错了,请联系并告诉我。
无线接入点(AP) – 这仅仅是无线基站,将与你的无线客户端设备(例如手机、平板电脑、笔记本电脑)发送和接收信号。然后,AP将数据包发送到它连接的无线控制器、交换机或路由器。无线AP的传输功率以毫瓦为单位测量,天线以dBi为单位测量,这决定了它们的范围。多个AP可以协同工作以承载相同的无线信号并覆盖更大的区域,但这些AP必须使用以太网电缆连接在一起。
集线器 – OSI第1层设备(想想电线)。在任何物理接口上接收到的任何数据包都被发送到所有其他物理接口。这意味着,如果你有一个系统插入一个接口,你将接收来自同一集线器上所有其他系统的流量,无论流量是否针对你。我不会使用集线器,但我提到它们是为了突出集线器和交换机之间的区别。
交换机 – OSI第2层设备(想想MAC地址),在其不同物理接口(又称端口)之间转发数据包。与集线器不同,交换机在其端口和关联的MAC地址之间保持内部映射。它利用这些知识只将数据包转发到正确的端口,而不是所有端口。通常,此映射通过交换机侦听从每个端口发送的第一个数据包自动填充。
路由器 – OSI第3层设备(想想IP地址),保持内部路由表。路由表是路由器存储哪些子网可用(例如192.18.1.1/24)以及哪个物理接口是到达该子网的最佳路径的地方。路由表可以使用静态路由手动填充,或通过使用路由协议(如OSPF、EIGRP、 RIP、 BGP和EGP)与其他路由器通信自动填充。当数据包进入路由器时,它会查阅路由表以确定将数据包再次发送到哪里。
防火墙 – OSI第3层及以上设备,检查每个传入或传出的数据包,并应用一组规则来确定要采取的操作。这是一个相当模糊的陈述,但这是因为防火墙可以配置为执行许多不同的操作并在许多不同的OSI层上运行。基本上,防火墙配置有一系列规则,允许或拒绝具有某些特征的流量。防火墙使用每个数据包中包含的信息以及它存储的关于最近看到的数据包的信息来应用这些规则。
以下是一些例子:
- 允许来自某些IP地址的入站流量通过(第3层)。
- 阻止发往特定TCP端口的流量(第4层)。
- 允许与已建立会话对应的入站数据包(第3层)。
- 检查HTTP流量并阻止访问某些URL(第7层)。
附加信息:
Reddit用户monoman67给出了路由器和防火墙之间的简明比较。“路由器是用于允许LAN相互通信的第3层设备。防火墙是用于限制LAN之间流量的第3-7层设备。”
这篇文章稍长一些,但仍然易于理解,描述了交换机、路由器和防火墙之间的差异。
https://developcents.com/2013/08/12/routers-switches-firewalls-differences/
如果你感兴趣,这里还有另一篇文章,以信息安全风格进行了更广泛的调查。哦,它充满了表情包。
这些是理论定义(或至少是我的理解)。然而,事情变得混乱,因为商店中销售的设备通常承担上述多个角色。例如,
第3层交换机 – 这些是具有第3层功能(想想IP地址)的交换机(记住,想想MAC地址)。本质上,这些只是路由器。它们可能没有通常与路由器相关的所有功能,但对于我们的目的,它们的功能相同。
具有硬件交换功能的路由器 – 我提到这一点是因为我将使用的Mikrotik设备具有此功能。基本上,这归结为速度。为了做出路由决策,数据包必须发送到CPU,这需要时间。但通过将一组端口配置为交换机功能,数据包可以以“线速”(快速)发送。你失去了通过IP地址路由的好处,但当你的具体情况允许时,你可以用速度来交换。
企业防火墙设备 – 这些很可能具有路由功能。可以有一个纯粹的防火墙在线放置而不进行路由,但为了在市场上具有竞争力,包含了基本的路由功能。这允许客户购买一个硬件设备而不是两个。
消费级无线路由器 – 这些是你在大多数人家中找到的设备。每个都充当防火墙、路由器和交换机。防火墙功能旨在保护你免受来自互联网的攻击,并防止你的设备在上网时立即被入侵。我不确定这些设备是否具有真正的第2层交换机功能,但对于我们的目的,这并不重要。
在下一篇文章中,我将介绍一种确定如何分组和分段设备的方法。 在此处阅读第二部分:https://www.blackhillsinfosec.com/home-network-design-part-2/
致谢: 图标和图表来自yEd和思科 https://www.yworks.com/products/yed https://www.cisco.com/c/en/us/about/brand-center/network-topology-icons.html