У меня есть проводной порт Ethernet и беспроводной порт. Мне подключили устройство непосредственно к моему ПК (запускающий Windows 7) посредством порта Ethernet и подключений устройства к Интернету, который доступен по беспроводной сети. Я могу справедливо просто соединить проводной порт мостом к беспроводному порту посредством Control Panel > Network and Internet > Network Connections
, выбор двух интерфейсов и образование моста их. Это позволяет доступ к устройствам к Интернету.
Однако я хотел бы разместить VirtualBox VM посреди этого моста, позволяя этому осуществить сниффинг (и изменить посредством libnetfilter_queue
в Linux) сетевой трафик на мосту. Каков самый простой метод достижения этого?
Вы не можете сделать этого путем простого образования моста интерфейсов вместе. Необходимо было бы настроить соединенные мостом адаптеры от VM до обоих интерфейсов и включить передачу IP в vm. Этот подход работал на меня в прошлом.
править: почти забыл, Вам также нужен dhcp, врученный из поля Linux в этой конфигурации и постправиле маршрутизации NAT
VirtualBox позволяет сетевым адаптерам VM быть соединенными мостом к определенным интерфейсам на хосте. Я соединил мостом один адаптер VM к одному хост-адаптеру и другой адаптер VM к другому хост-адаптеру - как aking1012 сказал, образующая мост функциональность, обеспеченная Windows, не требуется, ни не полезна здесь.
На госте Linux я выполнил следующие команды:
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig eth0 0.0.0.0 promisc up
ifconfig eth1 0.0.0.0 promisc up
ifconfig br0 <lan ip> netmask <netmask> broadcast <broadcast>
iptables -A FORWARD -p all -i br0 -j ACCEPT
iptables -t mangle -A FORWARD -m physdev --physdev-in eth0 -j NFQUEUE --queue-num 0
iptables -t mangle -A FORWARD -m physdev --physdev-in eth1 -j NFQUEUE --queue-num 1
Это не может обязательно быть корректно или наиболее эффективный способ, но это, кажется, работает на меня. Большое спасибо aking1012 для указания на меня в правильном направлении.