Старый 13.03.2012, 20:12   #1
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию проксирование трафика на другой порт (ssh, mysql, etc)

зачем нужен такой "проброс портов"?
- иногда на сервере фаерволом запрещено подключение на 22 (или там 3306 и т.п) порт с левых адресов, но разрешено с локалхоста и собственного IP сервера. для того, чтобы иметь возможность коннектиться к ссш с левых адресов, можно проксировать трафик с левого порта того же сервера на 22 порт.
для этой цели рекомендую юзать haproxy: http://haproxy.1wt.eu/ как ультрапростой в конфигурации и мегапроизводительный прокси-сервер.

идём на офсайт и качаем сорцы, например, http://haproxy.1wt.eu/download/1.4/s...-1.4.20.tar.gz

конпелируем
Код:
tar -zxf haproxy-1.4.20.tar.gz
cd haproxy-1.4.20/
#обязательно курим README, чтобы сконпелировать правильно. пример команды для конпеляции на 64битном линупсе >= 2.6:
make TARGET=linux26 ARCH=x86_64 USE_STATIC_PCRE=1
опцию USE_STATIC_PCRE=1 очень желательно использовать, это создаст более портабельный бинарь. если не конпелируется, типа "/bin/ld: skipping incompatible /usr/lib/libcrypt.so when searching for -lcrypt; /bin/ld: cannot find -lpcreposix; итд, то конпелируйте без неё.
предварительно может понадобиться установить зависимости, такие как libpcre libpcre-devel libpcreposix libpcreposix-devel libcrypt libcrypt-devel, и т.д., разберётесь по ошибкам make-а. названия пакетов зависят от дистрибутива.

теперь опять курим ридми, чтобы написать правильный конфиг. пример конфига для проксирования ssh:

Код:
global
          daemon
          nbproc 1

defaults
          mode tcp
          option dontlognull option redispatch
          maxconn 4096
          contimeout 5000

listen ssh
          bind 12.34.56.78:8081
          option httpchk
          balance roundrobin
          server 1 127.0.0.1:22
тут достаточно изменить только три строки - listen, вместо ssh написав нужный сервис (например, mysql для мускула. весь список сервисов лежит в /etc/services); bind, вместо 12.34.56.78 написав реальный IP сервера, вместо 8081 написав порт, на который вешать прокси; и server 1, вместо :22 написав нужный порт, например, :3306 для мускула

без палева переименовываем бинарь хапрокси в httpd, конфиг в httpd.conf, и запускаем его
Код:
./httpd -f ./httpd.conf -p ./httpd.pid
ну и чекаем, что ссш проксируется:
Код:
h4x0r@localhost$ telnet 12.34.56.78 8081
Trying 12.34.56.78...
Connected to lamer.com.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.8
удачного хека :3

//для админов: тоже рекомендую хапрокси, заебись балансирует нагрузку, например, http балансит производительнее энжынкса, также в продакшене юзал его для проксирования mysql-трафа с нескольких серверов на один(дабы не йбацо с репликацией).
12309 вне форума   Ответить с цитированием
Старый 15.03.2012, 11:28   #2
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию

Спасибо за вариант.

Но если разрешены входящие на какой то свободный порт, то просто вешаем сокс, 3poxy к примеру, без хлопот с компиляцией и дополнительного файла конфигурации, разрешит обращение к любому локальному порту.
nikp вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot