使用负载均衡器允许访问网站(更改 IP),使用 iptables 禁用其他

使用负载均衡器允许访问网站(更改 IP),使用 iptables 禁用其他

我需要阻止访问一组工作站上除几个 URL 之外的所有网站。显然,其中一些网站是负载平衡的。我使用 iptables:

iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -s my.dns.ip -j ACCEPT # local DNS

... # some other websites
iptables -A INPUT -p tcp -s www.rcsb.org -j ACCEPT # problematic website, load balanced?

iptables -A INPUT -p tcp -j REJECT

我很快将测试这是否有帮助:

iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

但是也许你们更了解如何允许来自负载均衡器后面的 Web 服务器(IP)池的传入(响应)流量?

答案1

哎呀,我误读了这个问题……这可能更接近你想要的?过滤出站流量?

iptables -P 输出删除

iptables -P 输入接受

对于 $(cat list.of.allowed.websites.txt) 中的 x;对于 $(dig $x +short | cut -d\ -f[theip]) 中的 i;执行 iptables -A OUTPUT -d $i/32 -j ACCEPT;完成;完成

允许所有常见的传出...ntp、dchp、DNS 等...

编辑:以上是需要限制的私有局域网上的最终用户主机上的 iptables 规则集(因此输入接受策略并不糟糕)。最好不要有基于主机的规则集,而只是在默认网关路由器上设置一个,使用 FORWARD 而不是 OUTPUT

如果任何网站的 DNS 名称解析为多个 IP,则 Bash Oneliner 需要更智能。许多负载均衡器仅使用一个外部 IP 来接收传入流量。我认为 amazon elb 在其注册的每个 az 中都有一个。

(接受输入默认策略不太好,可能是更好的解决方案)

相关内容