iptables port forward - получить исходный IP-адрес и порт

У меня есть маршрутизатор с LEDE. Там у меня есть настройка перенаправления портов по умолчанию в среде NAT. Когда пункт назначения получает запрос, IP-адрес источника был переписан IP-адресом маршрутизатора, а исходный порт был заменен на случайный порт маршрутизатора. Было бы здорово сохранить исходный IP и порт. К сожалению, это кажется невозможным, когда мне приходится использовать NAT.

Теперь я ищу способ получить исходный IP-адрес и порт на основе замаскированного порта, открытого на маршрутизаторе. Теоретически это должно быть возможным, потому что это информация, которая записывается в ответный пакет. Есть ли команда, как это найти? Или мне придется переписывать iptables? Я ищу что-то вроде этого:

$ iptables -t nat --lookup-masquerading-table --masqueraded-port 98765
Original Source-IP:      192.0.2.146
Original Source-Port:    7890
Original Dest-IP:        198.51.100.123
Original Dest-Port:      1234

Masqueraded Source-IP:   10.0.0.1
Masqueraded Source-Port: 98765
Masqueraded Dest-IP:     10.0.0.2
Masqueraded Dest-Port:   1234

Заранее спасибо!

0
задан 16 September 2017 в 18:27
1 ответ

Записи маскарадного NAT можно увидеть в / proc / net / ip_conntrack или / proc / net / nf_conntrack . В файле есть одна строка для каждого соединения, отслеживаемого IPTables. В каждой строке отображается информация об адресе / порте как для входящих, так и для исходящих пакетов для конкретного соединения.

Если входящий IP-адрес отличается от исходящего IP-адреса, то это соединение NAT, и из него можно анализировать необходимую информацию. .

Существует также инструмент netstat-nat , который обрабатывает описанный выше процесс и просто показывает соединения NAT, проходящие через устройство. Можно также дополнительно отфильтровать соединения с помощью параметров командной строки.

0
ответ дан 5 December 2019 в 07:27

Теги

Похожие вопросы