1. 前言:
当生产环境的主机数量到达一定规模时,如何安全的管理它们就需要特别关注。通常来说,在办公环境或者Internet到达生产环境之前,会使用安全网关产品。笔者有过近十年使用CheckPoint和Juniper产品的经验。这两个品牌的相关企业级产品已经有很长时间历史,功能都比较全面,也经过非常多用户的使用证明其专业性。抛开价格都有点小贵的因素,都是值得选择的好产品。
那么,从实用的角度,企业对于这一类安全网关/防火墙的需求究竟如何,他们又具备哪些具体功能?下面列出了CheckPoint FeatureList中的一部分重要功能,可以回答上面这个问题:
应用和访问控制。通过创建基于用户/用户组/主机/主机组的精确策略,网络管理员安全的控制对客户端、服务器和应用程序的访问。
认证。使用安全令牌/活动目录或者其他主流的认证方式验证身份。
传输加密。对于网络通信的所有内容进行加密,防止通过网络嗅探获取关键性内容。
NAT。通过网络地址转换 (NAT)隐藏网络拓扑和真实地址。
Bridge。通过桥接模式检测和转发流量,不干扰原始网络拓扑和IP路由。
日志记录和状态,通过SmartLog将数据变成安全情报,SmartLog是一种高级日志分析器,提供瞬间搜索结果,对多个时间段和域内的数十亿条日志记录提供实时可见性。
综合安全管理,通过统一的直观的图形界面将视图、详细信息和报告整合到一起,使IT管理者能够轻松管理各种安全管理功能。
对于CheckPoint和Juniper的特性、操作、界面、配置等,在此不再描述。
接下来这个系列的文章将会完整介绍一个原创的开源解决方案,其目的是基本实现上述功能,从而替代昂贵的企业级产品。
2. 软件选择:
我没有找到单独一款能够代替CheckPoint或者Juniper的软件,否则这个系列文章就不会那么长了。在选择软件环境时,主要原则是能够覆盖之前所说的功能列表。软件列表如下:
Open×××:实现×××功能;传输加密;NAT功能。
IPtables:实现应用和访问控制;日志记录。
Radiusclient:实现认证。
PHP/Mysql:实现综合安全管理。
LVS/HeartBeat:实现负载均衡和HA。这个解决方案的扩展是非常方便和廉价的。
另外,我所在的公司使用了某款基于RSA的安全令牌产品,来提高用户验证的安全性。我们使用Radius协议进行×××系统和安全令牌系统的对接。
3. 系统架构
下图描述了安全网关解决方案的系统架构,以及用户访问线上环境的流程。
这个图说明了系统的逻辑架构,实际使用中,物理服务器或者虚机的配置和数量可以根据具体的需求调整,AllInOne也是可能的。
用户访问生产环境的数据流如下:
用户首先向负载均衡服务器发起建立×××连接的请求。
DR模式的负载均衡服务器接到请求后会将请求转发给下面Real Server。
RealServer向安全令牌服务器或者其他Radius服务器进行用户认证。
用户认证通过之后,用户建立加密的×××连接,在此,建议Open×××使用TCP协议,这样用户和×××服务器的长连接会更加可靠。
建立连接的同时,Open×××/IPTABLES Real Server将会从配置数据库里面获取用户或主机所处的组所有的规则清单,IPTables将会应用这些规则。
用户根据规则允许,对线上环境安全访问。
当单个Open×××/IPTABLES服务器的负载过高时,可以直接添加新的主机,加入到LVS的Real Server列表中,这样整个系统就可以自如的扩展了。
管理端可以增/删/改 用户/用户组/主机/主机组/网络/IP范围/网络组/应用端口/应用端口组/规则集等内容。如果在管理端修改的内容和已经登陆的用户相关,管理端将会动态下发用户相关的规则。
接下来的文章中,我将会详细介绍各个组件的配置过程以及整合过程中涉及到的一些开发内容。