Использование порта 443 несколькими службами одновременно при помощи SSLH

    2013-04-14 13:26 | Автор: jekader | Filed under: Jekader


    Так уж устроен мир, что некоторые порты TCP/IP имеют лучшую "репутацию" чем другие. Даже в самых параноидальных сетях порт 443 зачастую разрешён для прямых SSL подключений. В связи с этим многие службы вешаются на порт 443 для простоты доступа к ним отовсюду. Логично, что для каждой такой службы требуется один "белый" IP, а это дело стоит денег.

    Тут нам на помощь и приходит sslh - мультиплексор, который анализирует первый пакет от клиента, и по его содержимому переадресовывает траффик нужной службе!

    Итак, допустим у нас есть всего один внешний IP и мы хотим повесить на 443 порт SSH, apache и OpenVPN.
    1) ставим sslh (для openvpn нужна версия не меньше 1.10):
    apt-get install sslh
    2) перенастраиваем Apache чтобы освободить 443 порт - вешаем SSL скажем на 444
    3) проверяем, где у нас висят SSH и OpenVPN - по умолчанию это *:22 и *:1194
    4) открываем /etc/default/sslh и выставляем:
    RUN=yes
    DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --openvpn 127.0.0.1:1194 --ssl 127.0.0.1:444 --ssh 127.0.0.1:22 --pidfile /var/run/sslh/sslh.pid"
    5) запускаем мультиплексор!
    /etc/init.d/sslh start
    6) пробуем заходить на все службы через порт 443 и радуемся. Попутно смотрим лог:
    tail -f /var/log/auth.log
    там хорошо видно, что куда переадресовывается. Сами службы видят перенаправленный траффик как приходящий с 127.0.0.1

    Поздравляю, теперь наш порт даёт доступ сразу к нескольким различным службам!

    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading...

    Метки: , , , ,

    3 комментария »


    комментария 3

    1. Vasile Chelban:

      пока не нужно, но идея класс. Жаль в логах apache httpd не будет адреса клиента. может mod_rpaf можно с sslh подружить?

    2. jekader:

      Само собой, это решение для тех, у кого есть только один IP и не сильно нагруженный сервер. Ну да ничего, скоро наступит счастье вместе с ipv6 😉

    3. jekader:

      Для апача в качестве backend есть модуль RPAF который подменяет исходный IP в логах. В данном случае он не сработает, конечно, но знать об этом не помешает!

    Leave a comment

    *