如何在Linux下使用iptables和TCP包装器保护端口映射服务
时间:2020-01-09 10:41:56 来源:igfitidea点击:
问题描述:如何保护portmap服务?
我正在使用Debian Linux。
解决方法:根据维基百科,Portmap是在类Unix系统下运行的服务器软件,可将RPC程序号转换为DARPA协议端口号。
它的设计目标是最大程度地减少使用的端口数量,但这从未发生,因为它从未得到广泛采用。
它必须正在运行才能进行RPC调用。
启动RPC服务器时,它将告诉portmap它正在侦听的端口号以及准备服务的RPC程序号。
当客户端希望对给定程序号进行RPC调用时,它将首先在服务器计算机上保留完整的端口映射,以确定应将RPC数据包发送到的端口号。
它被NIS,NFS和FAM"广泛使用"。
它用于将动态端口分配给NIS和NFS。
您可以使用以下方法保护端口映射:- TCP包装器
- iptables
TCP包装器
如果您要保护端口映射器,请使用守护程序名称portmap作为名称。
请记住,对于端口映射程序和rpc.mountd(NFS安装守护程序),只能使用关键字ALL和IP地址(NOT主机名或者域名)。
打开/etc/hosts.allow文件:
# vi /etc/hosts.allow
portmap服务器的整体示例仅允许从192.168.1.0/24访问。
sshd : ALL portmap : 192.168.1.0/24
保存并关闭文件。
IPTables端口映射规则
Portmap侦听端口111。
向您的iptables添加以下规则:
如果不是来自192.168.1.0/24的,则丢弃UPD端口111数据包
iptables -A INPUT -p udp -s! 192.168.1.0/24 --dport 111 -j DROP
如果不是来自192.168.1.0/24和本地主机(127.0.0.1)的TCP端口111数据包,则将其丢弃
iptables -A INPUT -p tcp -s! 192.168.1.0/24 --dport 111 -j DROP iptables -A INPUT -p tcp -s 127.0.0.1 --dport 111 -j ACCEPT