我需要build立一个服务器(最好是RedHat / CentOS / Fedora,但是Debian系列也可以),而在给定的接口上没有可用的服务。
我不能使用iptables (这将是最简单的解决scheme)。
我可以检查哪些是启用的,或者手动禁用它们,或者强制绑定到另一个接口,但是在更新/升级/额外的软安装之后更改将被恢复或部署额外的服务存在风险。
有没有办法configurationnetworking接口,以便它不允许任何服务绑定到它,所以没有端口监听?
我想我终于明白了这个问题。 我主要的误解(我想其他人)是我build议扫描仪是在外面的地方。
如果你打算使用这个主机作为扫描仪,那么iptables可能真的不堪重负。
如果是这样,则需要一些保护主机应用程序的设置,但不要为扫描程序通信创build会话logging。
解决scheme很简单:创build一个容器(LXC或OpenVZ)并将您的扫描仪人员隐藏在那里。 使用容器的桥接连接设置到真实的networking。
因此,您的扫描器将有一个专用的IP地址,主机应用程序将永远不会绑定它。 在基本设置容器的stream量将跳过iptables。
如果要额外保护容器,请打开桥的iptable查找( net.bridge.bridge-nf-call-iptables = 1 )并添加规则如下:
-I FORWARD -p ip -s <rogue_network> -d <scanner_ip> -j ACCEPT -I FORWARD -p ip -s <scanner_ip> -d <rogue_network> -j ACCEPT -I FORWARD -j REJECT --reject-with icmp-host-unreachable
UPD :
上一个工作不正常 – 忘记禁用连接跟踪:
-t raw -I PREROUTING -p ip -s <rogue_network> -d <scanner_ip> -j NOTRACK -t raw -I PREROUTING -p ip -s <scanner_ip> -d <rogue_network> -j NOTRACK -t raw -I PREROUTING -j REJECT --reject-with icmp-host-unreachable
我不知道有什么办法可以告诉内核不允许绑定到给定的networking接口。 你说你会考虑iptables ,所以我的钱有线
iptables -I INPUT 1 -p tcp -m state --state NEW -j REJECT --reject-with tcp-reset
将具有相同的效果(对于守护进程绑定到TCP端口),因为没有绑定守护进程; 在这两种情况下都会发出TCP重置。 同样,行
iptables -I INPUT 2 -p udp -m state --state NEW -j REJECT --reject-with icmp-port-unreachable
将对与UDP端口的新连接做同样的事情,因为没有绑定监听器:在任何一种情况下,内核都将发出一个ICMP端口不可达数据包。
这是一个非常简单的iptables安装程序,不太可能被任何可以通过该网卡传输的stream量所淹没。