Назад | Перейти на главную страницу

маршрутизация внешнего IP-адреса в ssh-туннель

Мне нужно перехватить все пакеты, идущие на внешний 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, но это происходит слишком поздно - решение о маршрутизации уже принято, поэтому вы просто создаете недопустимый пакет на интерфейсе, а следующий маршрутизатор сбрасывает его.

Взгляни на эта картинка, он описывает поток пакетов. Поэтому вам нужно изменить свои правила в соответствии с этим.

В конце я должен сказать, что этот подход является прекрасным примером самого уродливого и странного способа достижения цели с точки зрения сетевого инженера, хотя с точки зрения новичка он может показаться простым и логичным.