Puncte:0

Layer 2 MitM Setup

drapel th

Configurarea nivelului 2 MitM:

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

TLDR:

Un Rasperry Pi eth0 este conectat la internet și wlan0 acționează ca un punct de acces folosind hostapd. Conectarea ambelor interfețe funcționează bine. Redirecționarea traficului HTTP(S) de pe punte către mitmproxy Python nu funcționează. Următoarele comenzi oferă clienților conectați la punctul de acces internet, dar niciun trafic nu trece prin Python mitmproxy care ascultă 8080:

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interfață 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

Ce am incercat deja:

  1. Mergând doi pași înapoi și configurarea unui strat 3 NAT MitM
  2. Mergând cu un pas înainte și configurarea unui pod simplu de rețea
  3. Încercați să configurați din nou Layer 3 MitM și căutați problema pe Google

Configurarea nivelului 3 MitM:

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

Configurarea Layer 3 nu a funcționat cu următoarele reguli 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

[Referinţă]

[Referinţă]

După adăugarea următoarelor reguli suplimentare, a funcționat bine și întregul trafic HTTP(S) al clienților conectați la punctul de acces al Pi a trecut prin mitmproxy Python:

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

Are cineva o explicație pentru asta? Nu înțeleg de ce, deoarece pentru o rutare NAT este suficient să existe această singură regulă:

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

Configurarea podului Layer 2

În continuare, am configurat o punte simplă fără intenția de a intercepta orice trafic HTTP(S):

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interfață br0" >> /etc/dhcpcd.conf
echo "bridge=br0" >> /etc/hostapd/hostapd.conf

systemctl daemon-reload

Această configurație a funcționat bine.

Configurarea nivelului 2 MitM:

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
echo "interfață 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

[Referinţă]

Clienții punctului de acces al lui Pi au acces la internet, dar traficul nu trece prin mitmproxy Python.

Cu ajutorul Google, am aflat că iptables în mod implicit nu funcționează pentru un bridge layer 2 și trebuie să îl activez:

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

[Referinţă]

De asemenea, unele modificări suplimentare nu au rezolvat problema:

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

[Referinţă]

Lucrurile s-au înrăutățit, deoarece niciun client conectat la punctul de acces al lui Pi nu are acces la internet. Nu văd care este problema. Vreo idee?

Poate asta ajuta:

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

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.