portmap 服务是用于 RPC 服务(如 NIS 和 NFS)的动态端口分配守护进程。它的验证机制比较薄弱,而且具备为它所控制的服务分配大范围端口的能力。由于这些原因,要保护它的安全比较困难。
注记 | |
---|---|
设置 portmap 只对 NFSv2 和 NFSv3 起作用,NFSv4 不再使用这个服务。如果你想实现一个 NFSv2 或 NFSv3 服务器,你需要使用 portmap。 |
如果运行 RPC 服务,请遵守以下基本规则。
使用 TCP 会绕程序来限制可以使用 portmap 服务的网络或主机这一点很重要,因为 portmap 没有内建的验证方式。
更进一步,在限制对服务的使用时,只使用 IP 地址。避免使用主机名,因为主机名可以通过 DNS 污染或其它方法被伪造。
要进一步限制对 portmap 服务的使用,在服务器上添加 IPTables 规则来限制对指定网络的访问是一个好办法。
以下是两个 IPTables 命令的例子: 只允许从网络 192.168.0/24 和本地主机(Nautilus 程序使用的 sgi_fam 服务所需要的)到 portmap 服务(监听端口111)的 TCP 连接。所有其它分组都被放弃。
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章 。 |