《The BOOK Of PF》中文版 —— 18. 更大更棘手的网络环境
发表于 : 2010-07-13 9:44
更大更棘手的网络环境
本章我们将基于前面的基础继续探讨,同时尝试模拟如何应对大型网络或者有特定要求的应用程序或用户的网络的环境。 本章的所有范例中假设你的PF主机提供对本地网络的包过滤服务。 我们主要从Unixd的视角进行讨论, 重点为SSH, email, 和Web服务, 也会顺带探讨一下其它情况。
当你的用户对网络有其它需要时: 过滤服务
时过境迁, 可能是单位网络不断增长或者你自己决定使用BSD和PF来管理你的网络构架。
本章主要探讨用PF主机负责包过滤和其它外部可访问的服务。规则集的复杂程度取决于你的网络设计—和特定的网络服务, 以及多有多少网络IP地址。
下面几页的内容讨论的是为包过滤及提供对外服务的简单环境。我们将配置官方、可路由地址(译者注:公网地址),然后讨论仅有一个可路由地址的情况,以及怎样配置PF来实现对外的服务。
内部有一个Web和一个Mail服务器的环境—可路由地址
你的网络环境有多复杂? 你的网络环境需要多复杂?
我们还是以前面第三章的情况作为基本环境,但是搬来了三个新邻居: 一台邮件服务器, 一台web服务器, 还有一台文件服务器(fileserver)。
本例中我们使用官方可路由地址, 因为这样更简单一些。使用可路由地址还有一些其它的优势: 使用可路由地址,我们用两台新主机为我们的域example.com提供域名解析服务(DNS) , 一台作为master, 另一台作为authoritative slave。详说明1
因为我们的网络在前面做了基本设置, 我们现在仅需为开启的服务设置规则集。还是一样,为了规则易读,我们从基本的规则集入手,然后设置一些宏。
我们需要的这些宏来自规范。
它们是web服务器 (webserver = "192.0.2.227") 和其提供的服务 (webports = "{ http, https }"); 邮件服务器 (emailserver = "192.0.2.225") 和其提供的服务 (email = "{ smtp, pop3, imap, imap3, imaps, pop3s }"); 最后是, 域名服务器(nameservers = "{ 192.0.2.221, 192.0.2.223 }").
我们这里假设不需要从外部访问这里的文件服务器(fileserver),除非我们的本地服务必须设置为对外可见 , 例如为我们的域服务的一个authoritative slave域名服务器。
本章我们将基于前面的基础继续探讨,同时尝试模拟如何应对大型网络或者有特定要求的应用程序或用户的网络的环境。 本章的所有范例中假设你的PF主机提供对本地网络的包过滤服务。 我们主要从Unixd的视角进行讨论, 重点为SSH, email, 和Web服务, 也会顺带探讨一下其它情况。
当你的用户对网络有其它需要时: 过滤服务
时过境迁, 可能是单位网络不断增长或者你自己决定使用BSD和PF来管理你的网络构架。
本章主要探讨用PF主机负责包过滤和其它外部可访问的服务。规则集的复杂程度取决于你的网络设计—和特定的网络服务, 以及多有多少网络IP地址。
下面几页的内容讨论的是为包过滤及提供对外服务的简单环境。我们将配置官方、可路由地址(译者注:公网地址),然后讨论仅有一个可路由地址的情况,以及怎样配置PF来实现对外的服务。
内部有一个Web和一个Mail服务器的环境—可路由地址
你的网络环境有多复杂? 你的网络环境需要多复杂?
我们还是以前面第三章的情况作为基本环境,但是搬来了三个新邻居: 一台邮件服务器, 一台web服务器, 还有一台文件服务器(fileserver)。
本例中我们使用官方可路由地址, 因为这样更简单一些。使用可路由地址还有一些其它的优势: 使用可路由地址,我们用两台新主机为我们的域example.com提供域名解析服务(DNS) , 一台作为master, 另一台作为authoritative slave。详说明1
在现阶段我们保持网络环境相对简单一些。我们将新的服务器加入原来的网络作为客户端, 尽管它们可能布置在不同的房间内, 但实际上位于同一网段或作为客户端连接到同一台交换机上。 概念上, 这个新网络像图5-1。说明
对DNS来说,在任何情况下至少拥有一台在你本地网络外的authoritative slave服务器都是有意义的。 (事实是, 你无法随意使用一些顶级的域名,除非你已经注册了)。 也许你还想将一台备用的邮件服务器放在别的地方。搭建网络时脑子里记住这些细节。不过, 这些细节对我们编写PF规则影响不大。
因为我们的网络在前面做了基本设置, 我们现在仅需为开启的服务设置规则集。还是一样,为了规则易读,我们从基本的规则集入手,然后设置一些宏。
我们需要的这些宏来自规范。
它们是web服务器 (webserver = "192.0.2.227") 和其提供的服务 (webports = "{ http, https }"); 邮件服务器 (emailserver = "192.0.2.225") 和其提供的服务 (email = "{ smtp, pop3, imap, imap3, imaps, pop3s }"); 最后是, 域名服务器(nameservers = "{ 192.0.2.221, 192.0.2.223 }").
我们这里假设不需要从外部访问这里的文件服务器(fileserver),除非我们的本地服务必须设置为对外可见 , 例如为我们的域服务的一个authoritative slave域名服务器。
说明1
实际example.com网络使用的192.0.2.0/24地址是作为RFC 3330保留的文档使用地址,在本例中我们使用这个地址的目的主要是为了区别于本书其它地方NAT实例中使用的RFC 1918“私有”地址空间。