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

Направлять трафик ssh на основе имени хоста с помощью FreeBSD / pf?

У меня есть прокси / брандмауэр, работающий под управлением FreeBSD 9, использующий PF для маршрутизации и фильтрации трафика по мере необходимости.

Сейчас я настраиваю сервер git, который работает по ssh, но я уже использую порт 22 для ssh. Я хотел бы перенаправить трафик с любого IP-адреса на порт 22 на другой компьютер, если имя хоста, которое они использовали для доступа к серверу, было поддоменом (git.mydomain.com). Вид виртуального хоста, но для ssh ...

Возможно ли это с помощью pf? Какие-либо предложения?

Извините, то, о чем вы просите, невозможно - IP-трафик (и брандмауэр IP) знает только IP-адреса - он ничего не знает об именах хостов.

У вас может быть только один процесс, прослушивающий определенный порт на определенном IP-адресе. Виртуальные хосты для веб-сайтов работают, потому что веб-сервер получает имя хоста в заголовке HTTP (см. http://en.wikipedia.org/wiki/Virtual_hosting), а в SSH подобного механизма нет.

Ваши возможности довольно ограничены:

  1. Настройте свой обычный SSH-сервер для обработки трафика git (вероятно, лучший вариант).
  2. Получите другой IP-адрес.
  3. Запустите SSH-сервер для git на альтернативном порту.

Если у вас есть SSH-сервер для git на альтернативном порту, вы можете автоматически использовать его, добавив в свой ~/.ssh/config:

Host git.mydomain.com
    HostName router.mydomain.com
    Port 2222

Если это должна быть та же машина, то просто укажите на нее git.example.com, и все готово.