使用 IPTABLES,是否可以根据主机或请求的 IP 删除所有网络输入?
我希望我的服务器拒绝所有传入传输,如果它的 IP 被调用 EG:
- 删除:
ssh [email protected]
http://192.168.0.10
- 公认:
ssh [email protected]
http://server.local
好处是它只根据 /etc/hosts 接受其 IP……
我知道 HTTP 和 HTTPS 可以使用如下规则:
iptables -I INPUT -p tcp --dport 80 -m string --to 700 --algo bm --string 'Host: 192.168.0.10' -j DROP
iptables -I INPUT -p tcp --dport 443 -m string --to 700 --algo bm --string 'Host: 192.168.0.10' -j DROP
我确信其他协议也可以实现,但目前我还不知道如何实现……
在此先感谢您的帮助。
答案1
这是不可能的iptables
。iptables
是网络层工具。
对于 SSH,解析是在客户端进行的,因此您的服务器根本不知道客户端是否输入了 IP 或 DNS 名称。
HTTP 请求包含“Host:”标头,因此可以使用 Web 服务器软件进行建议的过滤。