我目前正试图通过他们的域名为我的OpenVPN服务器的所有客户端阻止一些网站。
我的第一个想法是使用/etc/hosts文件。 但是,它的效果似乎仅限于主机而不被OpenVPN考虑。
然后我尝试configurationbind9并与OpenVPN进行交互,但是这个解决scheme并不成功,并且不易使用。
在这之后,我考虑使用iptables将这些网站的所有数据包丢弃到这些网站,但是这个论坛让我觉得不然,因为iptables与FQDN的行为可能会产生复杂的问题。
你有没有解决scheme来阻止所有客户使用我的根的OpenVPN服务器的网站?
您可以像阻止公司networking上用户的网站一样执行此操作:运行代理服务器并强制所有人通过networking进行通信。
这非常合乎逻辑,因为客户端使用的DNS服务器可能不是您的主机。 你可以做的是获得所有的IP,并阻止这些IP而不是主机名。
即使您configuration了一个“阻止”这些域名的DNS服务器,客户端仍然可能select使用不同的DNS服务器,他将能够绕过这个控制。
你也可以尝试使用iptables和string过滤function进行过滤。 它应该是这样的:
iptables -A FORWARD -m string --string 'Host: facebook.com' -j DROP
这将是相当复杂的(因为你需要保留一个DNS名称列表,并为每个DNS名称构build一个命令),但是,正如@LucasKauffman已经指出,你没有在DNS的控制,所以没有过滤那里。
此外,请注意,这只适用于HTTP而不适用于HTTPS,因为所有请求都以HTTPSencryption。