解决:Linux漏洞目标主机showmount -e信息泄露(CEE-1999-0554)
1、背景:
允许指定主机通过mount到nfs服务器上,阻止其他主机通过showmount -e方式,泄露NFS共享目录结构信息。
2、Centos6和Centos7网络拓扑图:
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227171908324-726884058.png)
3、centos7采用以下方式,能实现showmount -e的信息泄露
1)vi /etc/hosts.allow
mountd:192.168.56.13
2)vi /etc/hosts.deny
mountd:all
【提示】无需重启rpc.bind和nfs
3)测试结果
192.168.56.14
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227172028021-896089719.png)
192.168.56.13
192.168.56.12
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227172126048-562767333.png)
第二种方式:采用iptables防火墙限制
4、Centos6的NFS服务叫做rpcbind,而Centos5的NFS服务叫portmap。
第一种方式:
1)vi /etc/hosts.allow rpcbind: 192.168.56.4:allow
2)vi /etc/hosts.deny
rpcbind: ALL : deny
【提示】无需重启rpc.bind和nfs
3)测试结果
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227182602319-575574451.png)
第二种方式:采用iptables防火墙限制
1)修改nfs配置文件,分配未使用的端口。
xxx]# vi /etc/sysconfig/nfs
RQUOTAD_PORT=30001
LOCKD_TCPPORT=30002
LOCKD_UDPPORT=30002
MOUNTD_PORT=30003
STATD_PORT=30004
2)重启nfs服务
1)/etc/init.d/rpcbind restart
2)/etc/init.d/nfs restart
3)允许客户端挂载主机的ip地址
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 111 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 2049 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 30001:30004 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 30001:30004 -j ACCEPT
4)其他客户端全部拒绝访问nfs服务
iptables -A INPUT -p tcp --dport 111 -j DROP
iptables -A INPUT -p udp --dport 111 -j DROP
iptables -A INPUT -p tcp --dport 2049 -j DROP
iptables -A INPUT -p udp --dport 2049 -j DROP
iptables -A INPUT -p tcp --dport 30001:30004 -j DROP
iptables -A INPUT -p udp --dport 30001:30004 -j DROP
5)开机启动服务加载
vim /etc/profile.d/iptables-nfs.sh
#!/bin/bash
#允许客户端挂载主机的ip地址
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 111 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 2049 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 2049 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.85.15 --dport 30001:30004 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.85.15 --dport 30001:30004 -j ACCEPT
#其他客户端全部拒绝访问nfs服务
iptables -A INPUT -p tcp --dport 111 -j DROP
iptables -A INPUT -p udp --dport 111 -j DROP
iptables -A INPUT -p tcp --dport 2049 -j DROP
iptables -A INPUT -p udp --dport 2049 -j DROP
iptables -A INPUT -p tcp --dport 30001:30004 -j DROP
iptables -A INPUT -p udp --dport 30001:30004 -j DROP
6)测试结果
192.168.56.5 (NFS-server)
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227172156594-2128954188.png)
防火墙规则显示
192.168.56.4
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227172256447-43732343.png)
192.168.56.3
![](https://img2018.cnblogs.com/common/1617002/202002/1617002-20200227172333068-1195353467.png)