RHCA培训笔记(333网络安全 – 4)《关于基于网络的身份验证》

NIS

1、NSS(Network Security Services)网络安全服务,包含SSL v2、SSL v3、 TLS、 PKCS#5、 PKCS#7、 PKCS#11、 PKCS#12、 S/MIME、 X.509v3 certificates和其它安全协议;

2、网络登录也和其它的登录服务一样,分为验证和授权两部分。反应为密码和其它的信息(登录shell、UID、GID等)分开存放。一般的实现是用NIS(Network Information Service)存储其它信息(NIS也能存放密码,不过是明文传输的,所以不安全),用kerberos存放密码;

3、上述的“其它信息”除了NIS,还可以选择使用LDAP(Lightweight Directory Access Protocol)、DNS(Hesiod记录);

5、RPC中每个应用程序都有一个自己的Program ID,可以在文件/etc/rpc中找到所有的ID的列表。其中最常用到的两个是NFS和NIS;

6、RPC的一个弱点是它会向其它的机器暴露自己可以提供所有基于RPC的应用的列表;

7、nmap -sR -sU -p 1-65535可以扫描目标机器的所有UDP端口,这会是个非常慢的过程,因为一般的标准Linux系统每秒只允许扫描20个UDP端口;

8、NIS服务器支持一个master,可以支持若干个slave服务器;

9、NIS协议是基于Sun RPC的,所以服务器和客户端都必须运行portmap,而且都必需加入同一个NIS域(其实就是一个预定义的统一的字符串);

10、NIS可以的存储的东西相当于/etc/passwd、/etc/shadow、/etc/group中的内容;

11、NIS协议有1、2、3。NIS3又叫NIS+,在RHEL中只有客户端。服务器端只有版本1、2;

12、NIS虽然使用明文传输,安全性十分低下,但是由于其部署和维护简单,所以在低安全要求的企业环境中还是十分常用;

13、NIS的包名和进程名都是ypserv,同时rpc.yppasswdd和rpc.ypxfrd也是为它服务的。配置文件存在于/var/yp和/etc/yp*;

15、NIS的安全怎么做?
a> NIS基于UDP协议,所以不能使用TLS,只能使用IPsec(一组端对端的网络加密协议,在IPv6中是强制的,在IP4zhog是可选的,详见http://zh.wikipedia.org/wiki/IPsec);
b> NIS绝对不能暴露在公网或者无线网络中,要严格限制在私有的可信的网络里。限制的方法可以使用tcpwrapper,或者使用/var/yp/securenets来限制网段;
c> 上述手段这样依然可以被IP伪装攻击绕过,所以在一定程度上要尽量不泄露NIS domain name(前述的那个字符串,有这个服务器才会响应你的请求);
d> 禁用广播的方式去发现NIS Server,而是使用指定NIS的域名或者IP的方式。以防止前述恶意伪造NIS Server的行为;
e> 攻击者可以伪装NIS的响应,用已知的密码hash代替正确的NIS Server响应,这样攻击者就可以登入目标服务器了。要防止这种攻击,就要使用Kerberos(下述)来代替NIS存储密码的那部分功能了(这可以防止攻击者登入目标主机了,但这依然不能防止攻击者获取用户信息);

rpc

相关推荐