如何通过 PC 传递设备来阻止 http 请求

如何通过 PC 传递设备来阻止 http 请求

我有一台设备,我想阻止一些 http 请求。我的设置是

[设备]--[开关]

由于该设备非常简单,我无法阻止它的请求,也无法修改程序来阻止请求

我想做的是

[设备]--[PC]--[交换机]

我正在使用 Ubuntu 14.04,我的电脑有两个以太网端口。我尝试在网上寻找一些答案,但运气不佳。

有什么办法吗?将我的设备通过我的电脑并阻止特定的 http 请求(例如使用 fiddler)?

答案1

我也推荐使用透明代理设置。这可以通过三个步骤完成。

  1. Squid 配置(以便它充当透明代理)
  2. Iptables 配置(将系统配置为路由器,然后将所有 http 流量转发到 Squid)
  3. 使用 Squid ACL 过滤你的 http 请求

1. Squid 配置

假设您能够安装 squid 并编辑您的 squid.conf,这将是一个简单的(浓缩的)示例,用于为网络 192.168.111.0/24 和 *.222./24 启用透明 http 代理。

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl lan src 192.168.111.1 192.168.222.0/24
http_access allow localhost
http_access allow lan

2. Iptables 设置

你的基因转移酶假设 squid 服务在默认端口(3128)上运行,规则将如下所示。

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

3. Squid ACL

您的示例 ACL 可能看起来像这样。只需使用合适的访问控制适合你的情况。

acl evelrequest url_regex -i ^http(s)://([a-zA-Z]+).hostname.tld/requestpath/.*$
http_access deny evelrequest

相关内容