2016-02-12 85 views
0

爲阻止xxx.com所有請求:如何使用iptable來過濾包含字符串的網址?

須藤的iptables -A OUTPUT -p tcp的-m串--string 「xxx.com」 --algo KMP -j DROP

什麼會阻止請求任何包含xxx的網址都像?

google.com?q=xxx & ......

無阻塞google.com。

+0

我不認爲你可以用iptables來做應用層的東西。即使可以,它也不適用於https(已加密)。你可能想安裝一個過濾代理(你可以使用iptables來路由)。 – Thilo

回答

0

您建議的方法可能會阻止DNS請求,但是如果有人直接使用IP地址將被繞過。

如上所示,您可以使用http代理。

或者,我使用dnsmasq和ipset實施了對您提到的類型的限制,而不使用代理。我在這裏列出的是如何做到這一點的高級步驟:

  1. 創建一個空的IPSET稱爲myprohibitedsites
  2. 運行自己的dnsmasq的實例(你不需要的dnsmasq的DHCP部分這一點,只是DNS高速緩存)
  3. 配置所有機器使用你的dnsmasq(或UDP端口53重定向到通過您的iptables的dnsmasq)
  4. 配置您的dnsmasq登錄到IPSET myprohibitedsites所有DNS類型xxx.com的 請求(見的dnsmasq用戶指南)
  5. configure iptables f ILTER下降具有作爲目的地包含在myprohibitedsites
0

您可能需要使用kpcre的 IP地址的所有數據包,iptables的PCRE擴展。

例如,以過濾你已經指出的例子:

iptables -I INPUT -p tcp -m string --string "/\/.+xxx.+/i" --algo pcre -j DROP 

字符串「//.+xxx.+/i」表示不區分大小寫的字符串,其以「/」開始,幷包含「XXX」 。

相關問題