Настройте 2 сетевых адаптера в одной подсети

#networking #iptables

#сеть #iptables

Вопрос:

Для целей отладки мне нужно настроить прокси MITM между 2 устройствами. Все устройства имеют статический IP (пример) и напрямую подключены друг к другу:

Device 1 : 192.168.10.50
Device 2 : 192.168.10.60

Прокси-компьютер имеет 2 сетевых адаптера в одной подсети и находится между другими устройствами :
D1 .50 <=> [.60 PROXY .50] <=> D2 .60

Моя проблема в том, что с прокси-сервера, если один из 2 сетевых адаптеров отключен, D1 или D2 могут связаться с прокси.
Как только я включу 2 сетевых адаптера, никто не сможет видеть другие устройства. IP-адреса D1 и D2 не могут быть изменены.

Прокси-сервер — linux centos 8.

Уже протестировано :

  • добавление журнала в iptables: если 2 сетевых адаптера подключены, журнал ввода / вывода больше не будет
  • Удалите весь ввод / вывод, затем примите только правильный IP-адрес из правильного интерфейса => нет результата
  • Изменение arp_filter = 1 и arp_announce = 2 => нет результата
  • Тестирование нескольких сообщений SO о 2 сетевых адаптерах в одной подсети

Если кто-нибудь может помочь.
Спасибо.

Ответ №1:

Я нашел решение, которое заключается в создании прозрачного прокси-сервера и перехвате некоторых пакетов.

1- Создайте мост с 2 сетевыми адаптерами :

 nmcli connection add type bridge autoconnect yes con-name "br0" ifname "br0"
nmcli connection modify "br0" ipv4.addresses "192.168.10.10/24" ipv4.method manual
nmcli connection delete enp0s3
nmcli connection delete enp0s8
nmcli connection add type bridge-slave autoconnect yes con-name enp0s3 ifname enp0s3 master br0
nmcli connection add type bridge-slave autoconnect yes con-name enp0s8 ifname enp0s8 master br0
  

2 Добавьте правильные правила для перехвата определенного трафика

 nft add table bridge mitm
nft add chain bridge mitm filter { type filter hook prerouting priority 0; }
nft add rule bridge mitm filter tcp dport 10000 ip saddr 192.168.10.50 meta pkttype set host ether daddr set xx:xx:xx:xx:xx:xx # br0 mac address
nft add rule ip nat PREROUTING tcp dport 10000 ip saddr 192.168.10.50 dnat to 192.168.10.10
  

У меня это сработало.