У меня два компьютера на одной локальной сети

Comp A: 192.1681.151.15
Comp B: 192.1681.151.19

Установка такая

Internet <---->  Computer B
      ^-------->  Computer A 

Оба компьютера имеют одну сетевую карту.

Когда я открываю Wireshark, для всего трафика, просматриваемого на компе A, я бы хотел, чтобы Wireshark захватывал трафик компа A и адреса назначения как адрес сервера, к которому он подключается.

Я пытался понять iptables и другие связанные с этим вопросы, но каким-то образом я все еще настраиваю это неправильно.

Я использую следующие приемлемые правила на компе Б

   iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.151.19:443 
   iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.151.19:80 
   iptables -t nat -A POSTROUTING -j MASQUERADE

Однако, когда я просматриваю трафик на компе B, я не вижу трафика на wireshark (работающем на компе A). Может кто-нибудь подсказать, пожалуйста, как правильно это настроить?

1 ответ1

0

Это действительно два вопроса, и я не уверен, что они связаны между собой.

1) Если компьютеры подключены через локальную сеть Ethernet через коммутатор, а не через беспроводную локальную сеть, весь трафик в локальной сети в принципе виден всем подключенным к нему устройствам. Нет необходимости делать маскировку / пересылку или использовать какие-либо приемлемые правила. Так что просто запустите Wireshark на любом компьютере, скажем, компьютере B, и вы должны увидеть трафик от компьютера A к маршрутизатору.

Если это не сработает, отправьте эхо-запрос на компьютер B с компьютера A. Затем выполните эхо-запрос на маршрутизатор с компьютера A. Если вы не видите пакеты с первого эхо-запроса, что-то с настройкой Wireshark работает неправильно. Если вы видите пакеты только с первого пинга, а не со второго пинга, интерфейс отбрасывает пакеты, не предназначенные для этого компьютера по какой-либо причине, или что-то фильтрует пакеты, поэтому проверьте iptables на компьютере B и т.д.

Изменить: Что также может произойти, это то, что ваш маршрутизатор не действует как коммутатор. Я немного протестировал и обнаружил, что у меня действительно есть один маршрутизатор, в котором все 4 порта LAN отображаются как отдельные устройства и соединены мостом (включая WLAN) с использованием моста ядра Linux. Этот тип моста отслеживает MAC-адреса, которые он видел, и только перенаправляет на порт, где он видел MAC-адрес назначения. В этом случае пакеты с двух компьютеров не могут быть видны на другом компьютере.

Решения: (a) Найдите какой-нибудь другой коммутатор Ethernet и подключите все к нему, или (b) используйте метод шлюза.

2) Если вы хотите использовать компьютер B в качестве шлюза для компьютера A (который необязателен только для наблюдения за трафиком в локальной сети Ethernet, но может потребоваться, например, для WLAN), вам необходимо настроить компьютер A для использования компьютера B в качестве шлюза , Весьма вероятно, что ваш "интернет" в вашей настройке - это домашний маршрутизатор, который действует как DHCP-сервер, назначает IP-адреса компьютеру A и компьютеру B и говорит им использовать маршрутизатор в качестве шлюза. Поэтому используйте route или ip route чтобы установить правильный маршрут на компьютере A. Убедитесь, что других маршрутов нет.

Следующий скрипт работает для меня, чтобы настроить пересылку (хотя, возможно, это не оптимально):

#!/bin/bash

# forward traffic on the same $IF for one particular $ADDR, acting as gateway

modprobe nf_conntrack
modprobe nf_conntrack_ipv4
modprobe nf_nat
modprobe iptable_nat  

IF="eth0"
ADDR="192.168.178.25"

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT 
iptables -P FORWARD DROP
iptables -F FORWARD 
iptables -t nat -F
iptables -A FORWARD -i $IF -o $IF -d $ADDR -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $IF -o $IF -s $ADDR -j ACCEPT
iptables -t nat -A POSTROUTING -s $ADDR -j MASQUERADE

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .