Рейтинг:0

Настройка MitM уровня 2

флаг th

Настройка MitM уровня 2:

                +------+
                | ХОЗЯИН |
+--------+ |------| +--------+
| КЛИЕНТ | <--> | МИТМ | <--> | СЕРВЕР |
+--------+ +------+ +--------+

TLDR:

Rasperry Pi eth0 подключен к интернету и wlan0 действует как точка доступа, используя hostapd. Мост обоих интерфейсов работает нормально. Перенаправление трафика HTTP(S) на мосту на mitmproxy Python не работает. Следующие команды дают клиентам, подключенным к Интернету точки доступа, но трафик не проходит через mitmproxy Python, прослушивающий 8080:

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
эхо "интерфейс br0" >> /etc/dhcpcd.conf
эхо "мост=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 Публикация -o eth0 -j МАСКАРАД

Что я уже пробовал:

  1. Вернемся на два шага назад и настроим NAT уровня 3 MitM.
  2. Делаем шаг вперед и настраиваем простой сетевой мост
  3. Пытаюсь снова настроить Layer 3 MitM и гуглю проблему

Настройка MitM уровня 3:

+--------+ +------+ +--------+
| КЛИЕНТ | <--> | МИТМ | <--> | СЕРВЕР |
+--------+ +------+ +--------+

Настройка уровня 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) клиентов, подключенных к точке доступа Pi, прошел через mitmproxy Python:

iptables -A FORWARD -i eth0 -o wlan0 -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
iptables -A FORWARD -i wlan0 -o eth0 -j ПРИНЯТЬ

У кого-нибудь есть объяснение этому? Я не понимаю, почему, потому что для NAT-роутинга достаточно этого единственного правила:

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

Настройка моста уровня 2

Затем я настроил простой мост без намерения перехватывать какой-либо HTTP(S)-трафик:

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
эхо "интерфейс br0" >> /etc/dhcpcd.conf
эхо "мост=br0" >> /etc/hostapd/hostapd.conf

systemctl демон-перезагрузка

Эта установка работала нормально.

Настройка MitM уровня 2:

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

echo "denyinterfaces wlan0 eth0" >> /etc/dhcpcd.conf
эхо "интерфейс br0" >> /etc/dhcpcd.conf
эхо "мост=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 Публикация -o eth0 -j МАСКАРАД

[Справка]

Клиенты точки доступа Pi имеют доступ в Интернет, но трафик не проходит через mitmproxy Python.

С помощью Google я узнал, что iptables по умолчанию не работает для моста уровня 2, и мне нужно включить это:

modprobe br_netfilter
эхо 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

[Справка]

Также некоторые дополнительные настройки не решили проблему:

эхо 0 > /proc/sys/net/ipv4/conf/default/rp_filter
эхо 0 > /proc/sys/net/ipv4/conf/all/rp_filter

[Справка]

Ситуация ухудшилась, поскольку ни один клиент, подключенный к точке доступа Pi, не имеет доступа в Интернет. Я не понимаю, в чем проблема. Любые идеи?

Может быть, это поможет:

$ кошка /etc/os-релиз
PRETTY_NAME="Raspbian GNU/Linux 10 (бастер)"

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.