解剖NetScreen (7)


本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: [email protected]
来源:http://yfydz.cublog.cn

0. 声明
本文仅仅是从技术角度分析如何实现NetScreen防火墙,即如果要把本人的一台Linux机器变成NetScreen防火墙估计要作那些工作,所有观点均为个人观点,不代表任何组织或团体,只谈技术,不带任何吹捧、攻击或贬低,欢迎大家一起讨论,有错误请指正,但对文章中如有不明白的名词和概念请问google而不要问我。

1. 参考资料:
http://www.juniper.net/techpubs/software/screenos/screenos5.1.0/translated/
CE_v8_SC.pdf 第8卷:用户认证
 
2. 前言
 
认证是保证信息只能由合法用户访问的常用手段,一般是通过双方共享一个秘密信息,只要对方提供持有该秘密的证据,即认为认证成功。这种秘密可以是逻辑信息,如一般的口令;也可以是生物信息,如指纹、虹膜等。对于网络安全应用,秘密只能是逻辑信息,而对此秘密的识别过程即为认证算法,最普通的就是用户名/口令认证,如普通的PAP认证等;为防止口令信息被监听,通常对通信过程进行加密,如radius认证过程就是加密的;有的干脆就不用在网络上传输,如CHAP认证,通过对随机的挑战附加秘密信息后HASH的方法来进行处理;有的使用非对称算法进行认证,如用对方公钥加密挑战信息,对方如果能用私钥解开就可认证成功。
 
防火墙的认证一般用在认证防火墙管理员、防火墙控制的用户、VPN对端等,一般都支持多种认证处理,一般认证秘密信息存在防火墙内部,但由于大部分防火墙的存储量有限,在用户数很大时通常使用外部认证服务器,防火墙只起一个认证转发作用:把用户提供的认证信息转到认证服务器,然后接收认证服务器的返回结果,根据认证成功还是失败进行不同的处理。
3. NS的认证对象
 
NS的认证对象包括:
 
ADMIN用户:即防火墙的管理员,包括根ADMIN、根读写ADMIN、根只读ADMIN、虚拟系统ADMIN、虚拟系统只读ADMIN,其中根ADMIN的秘密信息必须存防火墙内部,其他的可以在外部认证服务器。
 
多类型用户:auth、IKE、L2TP、XAuth用户组,并可组合在一起。不过个人认为这种由防火墙控制的用户最好还是统一化,不用和应用进行绑定,具体该用户是否可以在某应用中使用是管理员设置的用户属性。我个人不认为将用户类型分为多个单独帐户有更高的安全性,和单一多类型用户安全性一样。
 
NS支持组表达式处理,这虽然没有理论上的难度,只是属于有点麻烦。
NS的认证设置是在策略中的,可在运行时认证,但只是HTTP、FTP、TELNET之一的访问,如果不是这几个协议的访问,如何实现这个认证过程呢?这地方感觉NS没说清楚。
 
4. NS认证服务器和用户
 
NS支持的外部认证类型是radius/ldap/SecureID,没有很常用的TACACS/TACACS+,而且每种认证不是所有类型的认证对象都支持。在Linux有现成的radius/ldap认证客户端,SecureID由于要有其他硬件配合,就不考虑了,在防火墙内的各个应用程序中当然没必要都实现radius/ldap认证客户端,我想应该在防火墙内部设置一个认证代理,综合各种认证客户端,各应用程序使用统一接口把认证信息提交到认证代理,再由代理根据是哪种认证再进行相应的处理,把结果返回各应用程序。
 
NS中认证的一个难点是其运行时认证,虽然只支持HTTP、FTP、TELNET三个协议,不过有点不明白的是既然截取了用户的请求信息,随后的认证处理应该也是在这个TCP连接中处理的,如果认证通过,后续通信应该是另一个TCP连接了,不知道NS说会缓冲原来数据再转发是怎么完成,被认证端还认识这个连接么?我自己要实现的话只能让用户认证完后还要发新连接重新连接服务器,觉得很难在一个连接中完成,尤其是在FTP、TELNET这样连接一直保持着的协议,不过用类似SYN代理的方式可以实现,但一定要算好之前通信的序列号和确认号,这样防火墙的负载就大了些。
 
策略前检查认证就无所谓了,现在很多防火墙就是那么作的。
 
NS定义了词典文件定义了RADIUS认证服务的一些属性值,可以实现用户相关数据处理,这个不难实现。
 
NS可以将外部服务器作为缺省认证服务器,这点在系统设计时要注意。
 
没看出NS是如何判断认证是运行时认证的,难道是把认证信息加到策略中后NS就自动作为运行时认证?
 
NS的认证用户提供用户组的概念,这样设置处理方便些,这些实现难度不大,关键是要能想到,就象MS本身技术比UNIX差得多,但只是从用户使用方便性上下了很多功夫而已。
 
至于其他的IKE、XAUTH、L2TP等的认证,那是在各应用程序中处理的了,这个没什么特别的。
 
5. 小结
 
NS的认证处理应该没有太多特别的,除了运行时认证外,其他的很多国内防火墙都能作。

猜你喜欢

转载自cxw06023273.iteye.com/blog/866814