У меня есть два хозяина, А и Б. Узел A размещает службы на порте 8080 и имеет исходящие правила брандмауэра в Интернете, разрешающие портам 80 и 443 доступ к узлу C.
Узел B находится в той же подсети, что и узел A. Хост B заблокирован от доступа к Интернету Хосту C. Узел A, однако, имеет правила исходящих сообщений на внешнем брандмауэре, который разрешает порты 80 и 443 исходить к узлу C.
На хосте B запускается программный клиент с жестко закодированными URL-адресами для загрузки с хоста A (http-порт 8080) и хоста C (http-порт 80). Снова, Узел B заблокирован от доступа к Узлу C через межсетевой экран. Клиент на хосте B не поддерживает SOCKS или любые другие возможности прокси. Единственный способ, которым я могу достичь хоста C:80, - это перенаправление или туннелирование через хост A.
У меня есть root-доступ к узлу A и узлу B. Как хост B может достичь хоста C через хост A через порт 80?
Почему это не работает на хосте B?
ssh -L 80:hostC:80 root @ hostA -N
Я включил AllowTCPForwarding и GatewayPorts на хосте A. Правильно ли для этого или есть трюк iptables, который я могу использовать?
Это изображение является диаграммой желания сделать с тем, что у меня есть: http://i.imgur.com/rOhQ9Us.png