第5章 服务器防火墙,缓存服务器
- 部署地点
- 防火墙结构和原理
- 通过将请求平均分配给多台服务器来平衡负载
- 利用缓存服务器分担负载(客户端也可以部署缓存服务器, 缓存服务器用法很多)
- 内容分发服务(从缓存服务器发展而来,引导用户的访问引向离其最近的缓存服务器)
5.1 部署地点
- 在公司里部署Web服务器(部署防?墙)
- 在数据中心部署。
Web 服务器不仅可以部署在公司里,也可以 把服务器放在网络运营商等管理的数据中心里,或者直接租用运营商提供的服务器。但仍有丢失的可能(偶尔出现这种新闻)。
5.2 防火墙结构
防火墙对包进行检查,只允许发往特点服务器中的特点应用程序的包通过。普及的方式是包过滤(见第2章)。
现在已经出现了很多可以绕过防火墙的攻击方法,因此防火墙一般需要和反病毒、非法入侵检测、访问隔离等机制并用。
5.22 如何设置包过滤的控制信息
网络包的头部包含了用于控制通信操作的控制信息,只要检查这些信息,就可以获得很多有用的内容。
假设我们的网络将开放给外网的服务器和公司内网分开部署,Web 服务器所在的网络可以从外网直接访问。
现在我们希望允许从互 联网访问 Web 服务器,但禁止 Web 服务器访问互联网。如何设置包过滤的规则呐?
1 接受方的ip地址。设置接收方ip地址固定,发送方任意。
2 通过端口号限定程序类型。 web服务器是80
3 通过控制位判断连接的方向。SYN, ACK。
TCP 在执行连接操作时需要收发 3 个包,其中第一个包的 TCP 控制位中 SYN 为 1,而 ACK 为 0。
如果这第一个包是从 Web 服务器发往互联网的,那么我们就阻止它 (图 5.2 表中的第 2 行)。
这样设置后也就不会收到对方返回的第二个响应包了。
从互联网访问 Web服务器时,第一个包是接收方为 Web 服务器,图 5.2 表中的第 1 行, 因此允许通过。
它的第二个响应包,Tcp控制位的规则与第二行不符合,所以通过。
通过接收方 IP 地址、发送方 IP 地址、接收方端口号、发送方端口号、 TCP 控制位这些条件,
可以判断出通信的起点和终点、应用程序种类,以及访问的方向。
当然,还有很多其他的字段 可以用作判断条件。通过对这些条件进行组合,我们就可以对包进行筛选。
这里也可以添加多个规则,直到能够将允许的访问和不允许的访问完全区 分开为止。这样,我们就可以通过设置规则,让允许访问的包通过防火墙, 其他的包则不能通过防火墙 。
5.27 通过防火墙
在防火墙允许包通过之后,就没有什么特别的机制了,因此 包过滤并不是防火墙专用的一种特殊机制,而是应该看作在路由器的包转 发功能基础上附加的一种功能。
只不过当判断规则比较复杂时,通过路由 器的命令难以维护这些规则,而且对阻止的包进行记录对于路由器来说负 担也比较大,因此才出现了专用的硬件和软件。
如果规则不复杂,也不需 要记录日志,那么用内置包过滤功能的普通路由器来充当防火墙也是可 以的。
5.28防火墙无法抵御的攻击
防火墙指关心包的起点和终点,包内的特定数据,防火墙无法发现。
如果Web服务器出现Bug,必须立即修复。用户需要关注安全漏洞信息及时更新。
5.3负载均衡:将请求平均分配给多台服务器。
5.31性能不足:负载均衡
当服务器访问量上升后,增加带宽是有效的,但不解决所有问题,服务器性能跟不上也会变慢。
最简单的 一种方法就是采用多台 Web 服务器,减少每台服务器的访问量。
这需要一种分配访问的机制,最简单的是通过DNS来分配。轮询机制round-robin。
每次查询返回不同的服务器的IP地址,轮流分配IP地址。但也有缺点具体看书。
5.32 使用负载均衡器
解决上面的缺点。 客户端请求先发往负载均衡器, 然后均衡器来判断将请求转发给哪台服务器。
关键点就是如何判断将请求转发给哪台服务器,判断条件多种,方法多种。
1. 操作不跨页面,根据服务器负载状况来判断,如定期采集服务器cpu数据,发送测试包。
2.跨页面多请求,HTTP头部字段上有信息可以判断,将相关请求发送到同一服务器,将不相关请求发送低负载服务器。
5.4 使用cache server分担负载
将整个系统按功能分成不同的服务器,如 Web 服务器、数据库服 务器。缓存服务器就是一种按功能来分担负载的方法。
缓存无需执行网址的检查和访问权限的检查,和一些内部操作,速度自然比Web服务器上快。
因此,使用缓存服务器整体效能会提高,同时分担了web服务器的负担,也提高了Web服务器效能。
缓存服务器和负载均衡服务器一样需要注册到DNS上。
本质是充当客户端和服务器的中间人,代理。agency/proxy
5.5内容分发服务
缓存服务器放到web端或客户端各有优缺点,因此出现了将缓存服务器放置在客户端的运营商处的办法,需要Web服务器运营商和网络运营商签约,但需要和所有的运营商都签约才行,成本高,因此从事相关服务的厂商出现了,它们来部署缓存服务器,然后租借给Web服务器运营商,这就是内容分发服务content delivery service。cdn/cds。
Web 服务器与缓存服务器建立关联,那么当客户端访问 Web 服 务器时,实际上就是在访问 CDSP 的缓存服务器