5.2. 保护 Portmap 的安全性

portmap 服务是用于 RPC 服务(如 NIS 和 NFS)的动态端口分配守护进程。它的验证机制比较薄弱,而且具备为它所控制的服务分配大范围端口的能力。由于这些原因,要保护它的安全比较困难。

如果运行 RPC 服务,请遵守以下基本规则。

5.2.1. 使用 TCP 会绕程序来保护 portmap

使用 TCP 会绕程序来限制可以使用 portmap 服务的网络或主机这一点很重要,因为 portmap 没有内建的验证方式。

更进一步,在限制对服务的使用时,使用 IP 地址。避免使用主机名,因为主机名可以通过 DNS 污染或其它方法被伪造。

5.2.2. 使用 IPTables 来保护 portmap

要进一步限制对 portmap 服务的使用,在服务器上添加 IPTables 规则来限制到指定网络的进出是一个好办法。

以下是两个 IPTables 命令的例子,允许网络 192.168.0/24TCP 和 localhost(Nautilus 程序使用的 sgi_fam 服务所必需的)到 portmap 服务(监听端口111)的连接。所有其它分组都被放弃。

iptables -A INPUT -p tcp -s! 192.168.0.0/24  --dport 111 -j DROP
iptables -A INPUT -p tcp -s 127.0.0.1  --dport 111 -j ACCEPT

要以相似的方法限制 UDP 交通,使用以下命令。

iptables -A INPUT -p udp -s! 192.168.0.0/24  --dport 111 -j DROP

窍门窍门
 

关于使用 IPTables 命令实现防火墙的详情,请参阅第7章