我正在使用运行 kvm/虚拟化的 centos 7 服务器,我使用 VNC 服务器进行访问。
今天我收到一条警告,说我的服务器正在使用端口 111 攻击其他服务器,我完全不知所措。我的服务器密码非常非常难,我怀疑几年内有人能破解它……问题是,我需要保护,是否可以禁用此端口?我需要吗?我用过
netstat -l
在机器上时没有看到任何 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
但没有工作,输出:
Bad argument `192.168.0.0/24'
有没有办法阻止它,或者使它只能在我的本地网络/本地主机上使用(如果阻止将阻止服务器访问)?
我收到的警告:
您网络上的一个面向公众的设备在 IP 地址(IP 地址)上运行,运行在 UDP 端口 111 上响应的 RPC 端口映射服务,并参与了针对我们客户的大规模攻击,对声称来自攻击目标的欺骗请求生成响应。
请考虑采用以下一种或多种方式重新配置此服务器:
- 添加防火墙规则以阻止网络边缘对该主机的 UDP 端口 111 的所有访问(在这种情况下,它将继续在 TCP 端口 111 上可用)。
- 添加防火墙规则以允许从授权端点连接到此服务(在 UDP 端口 111 上),但阻止来自所有其他主机的连接。
- 完全禁用端口映射服务(如果不需要)。
我没有使用任何防火墙。
答案1
你的 iptables 命令有点错误。试试这个:
iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 127.0.0.1 --dport 111 -j ACCEPT
iptables -A INPUT -p udp --dport 111 -j DROP
这将允许从本地主机 (127.0.0.1) 和网络 192.168.0.0 连接到端口 111。所有其他连接将被丢弃。
请注意,您的警告建议阻止 UDP,而不是 TCP。我在示例中替换了协议。
答案2
如果你不需要 rpcbind 那么:
systemctl stop rpcbind.socket
systemctl disable rpcbind.socket
如果您不使用某些功能,那么将其打开然后用防火墙过滤是愚蠢且不太安全的。描述中的建议 3 应该是 1。