TCP pu sh пакет не доставлен из туннеля - PullRequest
0 голосов
/ 25 марта 2020

Я устанавливаю простую программу перехвата пакетов, используя две настройки, настраиваю так:

# ip tuntap add mode tun name tun0
# ip link set tun0 up
# ip addr add 10.0.0.0/31 dev tun0
# ip tuntap add mode tun name tun1
# ip link set tun1 up
# ip addr add 10.0.1.0/31 dev tun1

и перенаправляю вывод в программу следующим образом:

# ip rule add fwmark 1 table 1
# ip route add default dev tun0 table 1
# iptables -t mangle -A OUTPUT --source 192.168.1.0 -o enp34s0 -p tcp --dport 9732 -j MARK --set-mark 1
# iptables -t nat -A POSTROUTING --source 10.0.1.1 -o enp34s0 -j MASQUERADE

Я включил ip_forward и отключен rp_filter. Пакеты, полученные на tun0, обрабатываются, модифицируются и обновляются контрольные суммы ip / tcp. Я даже могу правильно перехватить tcp handshake SYN -> ACK,SYN -> ACK часть связи, но после этого любой входящий пакет будет корректно перехвачен, изменен и отправлен вне туннеля, но он никогда не будет доставлен в локальное приложение.

1 Ответ

0 голосов
/ 25 марта 2020

Хорошо, обнаружил проблему, хотя я пересчитал контрольную сумму, она вычисляла только одну правильную только для пакетов TCP без какой-либо полезной нагрузки, таким образом, TCP Handshak проходит и ничего больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...