У меня есть прокси / брандмауэр, работающий под управлением 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 подобного механизма нет.
Ваши возможности довольно ограничены:
Если у вас есть SSH-сервер для git на альтернативном порту, вы можете автоматически использовать его, добавив в свой ~/.ssh/config
:
Host git.mydomain.com
HostName router.mydomain.com
Port 2222
Если это должна быть та же машина, то просто укажите на нее git.example.com, и все готово.