Проброс TCP соединения через ICMP туннель

Утилита PingTunnel (http://www.cs.uit.no/~daniels/PingTunnel/) позволяет организовать
TCP тунель поверх ICMP ‘echo’ или 53 UDP порта. Подобное может оказаться полезным для обеспечения
работы клиента, для которого пакетным фильтром заблокирован весь трафик, кроме ICMP или 53 UDP порта.
Для работы PingTunnel необходим запуск прокси-процесса на удаленной машине
(не важно, под какой ОС, утилитой поддерживается даже Windows), имеющей выход в сеть.

Ставим ptunnel.
В Debian/Ubuntu:

   apt-get install ptunnel

В RedHat/CentOS/Fedora:

   yum install ptunnel

Во FreeBSD:

   cd /usr/ports/net/ptunnel && make && make install

На внешней машине, имеющей выход в сеть, запускаем icmp-прокси («-x пароль» можно не указывать,

но тогда пустит любого):

   ptunnel -x пароль

На локальной машине, на которой ничего кроме ICMP не работает, поднимаем туннель:

   ptunnel -p хост_прокси -lp локальный_порт_туннеля -da адрес_дальнейшего_проброса \
      -dp порт_дальнейшего_проброса -x пароль

Например:

    ptunnel -p proxy.testhost.ru -lp 2222 -da server.testhost.ru -dp 22 -x пароль

На proxy.testhost.ru у нас должен быть запущен icmp-прокси.
При коннекте на 2222 порт локальной машины мы будем переброшены на 22 порт хоста server.testhost.ru
Например, для входа на server.testhost.ru по SSH нужно набрать:

   ssh -p 2222 localhost

В случае проблем можно попробовать указать имя внешнего сетевого интерфейса через опцию «-c»,

например «-c eth1».
Для создания туннеля через 53 UDP порт на локальной и удаленной стороне нужно запустить ptunnel c опцией «-udp».

Источник