Мне нужно перехватить все пакеты, идущие на внешний IP / порт, перенаправленные на туннель ssh. Невозможно использовать VPN, это как пройти через туннель ssh. Это будет перенаправление Citrix
У меня есть правило iptables, которое позволяет мне выполнять перенаправление
iptables -t nat -A OUTPUT -p tcp -d w.x.y.z --dport 1494 -j DNAT --to-destination 127.0.0.1:2494
Я должен упомянуть, что у меня также была настройка sysctl, чтобы правила iptables работали
sysctl -w net.ipv4.conf.eth0.route_localnet=1
Когда я тестирую соединение Citrix с помощью telnet, я получаю приглашение ICA от обоих
telnet w.x.y.z 1494
telnet 127.0.0.1 2494
Но когда я запускаю Citrix из файла ica с IP-адресом сервера w.x.y.z:2494
, Я не могу подключиться. С другой стороны, если я использую тот же файл конфигурации и изменю IP на 127.0.0.1:1494
это действительно работает.
Я что-то упускаю, но просто не знаю что.
Любая идея ??
Предположительно, это может сработать
iptables -t nat -A PREROUTING -p tcp -d w.x.y.z --dport 1494 -j REDIRECT --to 2494
Я бы, вероятно, немного усложнил это, указав исходный адрес вашей внутренней сети. Я также предполагаю, что прокси также прослушивает внутреннюю сетевую карту.
Единственное, что это делает - он перезаписывает заголовок IP-пакета на 127.0.0.1 и заголовок TCP на порт 2494, но это происходит слишком поздно - решение о маршрутизации уже принято, поэтому вы просто создаете недопустимый пакет на интерфейсе, а следующий маршрутизатор сбрасывает его.
Взгляни на эта картинка, он описывает поток пакетов. Поэтому вам нужно изменить свои правила в соответствии с этим.
В конце я должен сказать, что этот подход является прекрасным примером самого уродливого и странного способа достижения цели с точки зрения сетевого инженера, хотя с точки зрения новичка он может показаться простым и логичным.