mitmproxy - 配置自定义网关透明代理

问题描述

我目前正在为 raspbian 开发一个热点调试工具,它应该模拟无线网络的不同状态(丢包、速度降低等),以测试我公司在开发中的应用程序对不同可能网络的反应.为此,我想使用 mitmproxy 来模拟强制门户。 参考 https://docs.mitmproxy.org/stable/concepts-modes/,我希望自定义网关透明模式最适合我的任务,但是设置起来似乎相当困难,尤其是我不是网络专家。

我尽可能地遵循手册,不同之处仅在于在路由表中添加了规则,其中我使用 wlan0 作为重定向认接口:

# /etc/iptables/rules.v4 (equivalent for v6)
*mangle
:PREROUTING ACCEPT [10053:9338796]
:INPUT ACCEPT [9876:9311779]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6688:579995]
:POSTROUTING ACCEPT [6749:589673]
COMMIT
*nat
:PREROUTING ACCEPT [739:193562]
:INPUT ACCEPT [562:166545]
:POSTROUTING ACCEPT [11:640]
:OUTPUT ACCEPT [307:22552]
-A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
-A PREROUTING -i wlan0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [9876:9311779]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6688:579995]
COMMIT

但是当我运行 mitmproxy 并将任何测试设备连接到我的 AP 时,使用我的 pi 的 ip 作为标准网关配置,没有流量被重定向到我的代理。我看到它启动并运行,它正确显示了来自 Pi 的所有手动 GET 请求,但没有任何设备使用 AP。 我怀疑我的错误出在我为与我的项目一起工作而设置的网络配置中的某个地方,但即使将我的所有配置文件重置为认值(+手册中的更改)也会导致相同的行为。

# /etc/network/interfaces (resetting to default does not change behavIoUr)
# Localhost
auto lo
iface lo inet loopback

# Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet manual

# WLAN
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wireless-power off

# Bridge
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0 # build bridge
bridge_fd 0             # no forwarding delay
bridge_stp off          # disable Spanning Tree Protocol
# /etc/hostapd/hostapd.conf
# Bridge-Betrieb
bridge=br0 (tried removing the bridge,same behavIoUr except no internet-connection for the testing device)

# Schnittstelle und Treiber
interface=wlan0
driver=nl80211

# WLAN-Konfiguration
ssid=mysupernicenetworkname
channel=1
hw_mode=g
ieee80211n=1
ieee80211d=1
country_code=DE
wmm_enabled=1

# WLAN-Verschlüsselung
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=myultraprivateandsecurepassword

使用 wireshark 分析网络活动显示来自相应设备的传入流量,但它只是对 172.16.0.1 路由器的 arp 请求和偶尔的 igmpv3 - 离开组报告。所以看起来流量到达了 pi,但没有正确重定向到代理。 首先怀疑我的iptables配置有问题,尝试直接将test-devices ip重定向到对应的8080端口,mitmproxy运行。行为没有变化。

我很高兴收到这里的各种建议,通过路由和网络文档和 OSI 教程自己工作并没有真正引导我现在解决问题。 提前致谢。

环境:

RaspBerry Pi 4 B 型修订版 1.1

Raspbian GNU/Linux 10(破坏者)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)