#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
У меня это сработало.