परत 2 मिटम सेटअप:

                +------+
                | HOST |
+--------+      |------|      +--------+
| CLIENT | <--> | MITM | <--> | SERVER |
+--------+      +------+      +--------+

टीएलडीआर:

एक रास्पबेरी पाई eth0इंटरनेट से जुड़ा है और wlan0होस्टपैड का उपयोग करके एक एक्सेस प्वाइंट के रूप में कार्य करता है। दोनों इंटरफेस को पाटना ठीक काम करता है। ब्रिज पर HTTP(S) ट्रैफिक को Python mitmproxy पर रीडायरेक्ट करने से काम नहीं चलता। निम्नलिखित कमांड क्लाइंट को एक्सेस प्वाइंट इंटरनेट से कनेक्ट करते हैं, लेकिन कोई भी ट्रैफिक पायथन मिटप्रॉक्सी को सुनकर नहीं गुजरता है 8080:

brctl addbr br0
brctl addif br0 eth0
ip link set dev br0 up

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interface br0" >> /etc/dhcpcd.conf
echo "bridge=br0" >> /etc/hostapd/hostapd.conf

iptables -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -A POSTROUTING -o eth0 -j MASQUERADE

मैंने पहले ही क्या कोशिश की है:

  1. दो कदम पीछे जाकर एक लेयर 3 NAT MitM सेट करना
  2. एक कदम आगे बढ़ते हुए और एक साधारण नेटवर्क ब्रिज की स्थापना
  3. परत 3 मिटएम को फिर से स्थापित करने और समस्या को समझने की कोशिश कर रहा है

परत 3 मिटम सेटअप:

+--------+      +------+      +--------+
| CLIENT | <--> | MITM | <--> | SERVER |
+--------+      +------+      +--------+

परत 3 सेटअप ने निम्नलिखित iptable नियमों के साथ काम नहीं किया:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -i wlan0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080

[संदर्भ]

[संदर्भ]

फ़ोलोइंग अतिरिक्त नियमों को जोड़ने के बाद यह ठीक काम करता है और पाई के एक्सेस पॉइंट से जुड़े क्लाइंट्स का संपूर्ण HTTP (S) ट्रैफ़िक Python mitmproxy से होकर गुज़रता है:

iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

क्या किसी के पास इसका स्पष्टीकरण है? मुझे समझ में नहीं आता क्यों, क्योंकि NAT रूटिंग के लिए यह एकल नियम होना पर्याप्त है:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

लेयर 2 ब्रिज सेटअप

इसके बाद मैंने किसी भी HTTP (एस) यातायात को रोकने के इरादे से एक साधारण पुल स्थापित किया है:

brctl addbr br0
brctl addif br0 eth0
ip link set dev br0 up

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interface br0" >> /etc/dhcpcd.conf
echo "bridge=br0" >> /etc/hostapd/hostapd.conf

systemctl daemon-reload

यह सेटअप ठीक काम किया।

परत 2 मिटम सेटअप:

brctl addbr br0
brctl addif br0 eth0
ip link set dev br0 up

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interface br0" >> /etc/dhcpcd.conf
echo "bridge=br0" >> /etc/hostapd/hostapd.conf

iptables -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -A POSTROUTING -o eth0 -j MASQUERADE

[संदर्भ]

Pi के एक्सेस प्वाइंट के क्लाइंट के पास इंटरनेट एक्सेस है, लेकिन ट्रैफिक Python mitmproxy से नहीं गुजरता है।

Google की मदद से मुझे पता चला है कि डिफ़ॉल्ट रूप से iptables परत 2 ब्रिज के लिए काम नहीं करता है और मुझे इसे सक्षम करने की आवश्यकता है:

modprobe br_netfilter
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

[संदर्भ]

इसके अलावा कुछ अतिरिक्त बदलावों ने समस्या का समाधान नहीं किया:

echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

[संदर्भ]

हालात बदतर हो गए हैं क्योंकि पीआई के एक्सेस प्वाइंट से जुड़े किसी भी ग्राहक के पास इंटरनेट का उपयोग नहीं है। मैं नहीं देखता कि समस्या क्या है। कोई विचार?

शायद यह मदद करता है:

$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
no answer