是否可以使用 ufw 阻止网页?

Ed *_*rge 8 firewall ufw

基本上我有两台机器 X 和 Y。

我想使用 ufw 在 HTTP 端口 80 上阻止来自机器 X 的“http:// <IP-of-Y-Here> /AFolder/”。

简单地说,这可以(非常)使用 ufw 通过以下方式完成:

sudo ufw deny out 80
Run Code Online (Sandbox Code Playgroud)

但是是否有可能按照以下方式做一些事情:

ufw deny from (X IP ADDRESS) port 80 to (Y IP ADDRESS)/AFolder
Run Code Online (Sandbox Code Playgroud)

那会满足我的要求吗?

Oli*_*Oli 6

您可以使用ufw. man ufw有一大堆例子,但假设它已启用,它应该是这样的:

sudo ufw deny out to <<ip address>> port 80
Run Code Online (Sandbox Code Playgroud)

我刚刚在我自己的服务器上对此进行了测试,并且可以正常工作。请记住,端口 443 用于 SSL,因此可能也需要阻塞。

请记住,这会阻止此服务器上的整个端口 80。


如果您想根据子文件夹开始过滤(允许某些路径但不允许其他路径),您将需要代理请求的东西。防火墙不查看内容,它查看连接。对于防火墙,对 /subfolder 的请求与对 /a-different-subfolder 的请求相同。

所以你正在寻找的是一个透明的代理,你可以扭曲它来抑制你的一些流量。家长控制软件可能是您快速设置的最佳选择。像这样的东西dansguardian肯定曾经很受欢迎,我会说它值得探索。维基上提供了更多信息:


Eli*_*gan 6

不,您不能使用 ufw 来阻止访问 Web 服务器上的某些特定页面,而不是其他页面。

ufw 是一个前端,iptables用于控制内置于 Linux 内核中的netfilter防火墙。这是一个普通的防火墙—​​—您可以使用它根据包头过滤数据包。

IP 地址和端口包含在数据包的标头中,但正在检索的Web 文档没有。取而代之的是,在建立连接后,该信息在数据包正文中传输。

正如您可能知道的那样,可以阻止对某些网站的访问(尽管有人通常很容易绕过阻止),并且有一些实用程序可以提供阻止特定页面的粒度,同时允许访问其他页面同一个服务器。但是要解决您提出的问题:ufw 不会这样做。