我有一台设备,我想阻止一些 http 请求。我的设置是
[设备]--[开关]
由于该设备非常简单,我无法阻止它的请求,也无法修改程序来阻止请求
我想做的是
[设备]--[PC]--[交换机]
我正在使用 Ubuntu 14.04,我的电脑有两个以太网端口。我尝试在网上寻找一些答案,但运气不佳。
有什么办法吗?将我的设备通过我的电脑并阻止特定的 http 请求(例如使用 fiddler)?
答案1
我也推荐使用透明代理设置。这可以通过三个步骤完成。
- Squid 配置(以便它充当透明代理)
- Iptables 配置(将系统配置为路由器,然后将所有 http 流量转发到 Squid)
- 使用 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