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

Заставить sshd прослушивать определенный интерфейс

На своей машине я использую OpenVPN, который использует интерфейс tun0. Я хочу, чтобы sshd слушал только этот интерфейс.

Я знаю, могу указать IP-адрес для прослушивания

/etc/ssh/sshd_config

с

ListenAddress 0.0.0.0

директива. Но мой IP-адрес изменится, поэтому я не могу выбрать здесь всегда действующий IP-адрес. Я знаю, что могу запустить демон только тогда, когда работает VPN - проблема не в этом.

Как сделать так, чтобы sshd слушал только определенный интерфейс (tun0)?

Вы не можете сделать это напрямую, поскольку sshd понимает только IP-адреса. Вы можете собрать что-нибудь вместе, используя скрипт openvpn up

-up cmd Команда оболочки для запуска после успешного открытия устройства TUN / TAP (изменение UID до --user). Сценарий up полезен для указания команд маршрута, которые направляют IP-трафик, предназначенный для частных подсетей, которые существуют на другом конце VPN-соединения, в туннель ...

См. Также --down возможность очистки и соответствующие части документации, подробно описывающие безопасность сценариев и т. д.

Вы обнаружите, что IP-адрес устройства tun передается в сценарий как переменная среды. Также sshd принимает параметры в командной строке формы

-oSomeOption=SomeValue

-o option Может использоваться для указания параметров в формате, используемом в файле конфигурации. Это полезно для указания параметров, для которых нет отдельного флага командной строки. Для получения полной информации о параметрах и их значениях см. Sshd_config (5).

Итак, вы можете использовать

-o ListenAddress=<some address>

Предположительно у вас есть какой-то внеполосный метод разговора с вашим VPS, чтобы вы могли связаться с сервером, когда он сломается.