允许使用负载平衡器访问网站(更改IP),禁用iptablesrest

我需要阻止访问除一组工作站上的几个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 

不久,我要testing这是否有助于:

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

但是,也许你们更清楚如何允许来自负载均衡器背后的Web服务器(IP)池的传入(响应)stream量?

哎呀,我误解了这个问题….这可能更接近你的要求? 过滤出站stream量?

iptables -P OUTPUT DROP

iptables -Pinput接受

for $ in $(cat list.of.allowed.websites.txt); 为我在$(dig $ x + short | cut -d \ -f [theip]); 做iptables -A OUTPUT -d $ i / 32 -j ACCEPT; 完成; DONE

允许所有通常的传出… ntp,dchp,DNS等…

编辑:以上将是您的最终用户私人局域网上需要被限制(所以input接受政策并不可怕)的iptables规则集。 没有基于主机的规则集tho可能会更好,但只有一个设置在FORWARD默认网关路由器而不是OUTPUT

如果任何网站的DNS名称parsing为多个IP,bash oneliner将需要更聪明。 许多负载均衡器只使用一个外部IP来传入stream量。 我认为亚马逊elb每个az注册一个。

(接受input默认的策略不是很好,可能是更好的解决办法)