salfer@blog:~$ ▊
28.09.2026 · sshбезопасность

Jump-хосты: как ходить туда, куда «не пускают»

Половина моих машин недоступна из интернета напрямую — и это осознанный выбор. Фаервол пропускает только трамплин, трамплин пропускает только меня. Но сама идея «прямого доступа» как удобного дефолта долго жила у меня в голове, пока я не посчитал, сколько раз джамп меня спасал.

Три маршрута до одного хоста

Минимальное правило выживания: у каждого «запертого» хоста должно быть минимум два независимых пути. Один основной (трамплин A), один запасной (трамплин B, физически в другой сети). Трамплины не должны жить в одной подсети, иметь один аплинк или одного провайдера — иначе «независимость» заканчивается на первом порыве.

В ssh-конфиге это выглядит скучно и надёжно:

Host target
    HostName 10.0.0.5
    ProxyJump jump-a
Host target-b
    HostName 10.0.0.5
    ProxyJump jump-b

Почему «прямой доступ» — антипаттерн

Всякий раз, когда я ради удобства открывал порты наружу, через месяц там оказывался новый ботнет, а я писал правила fail2ban. Закрытые хосты не создают логов вторжений — потому что им нечего логировать. Это и есть метрика хорошей сетевой гигиены: пустой лог INPUT.

Побочный бонус: на трамплине живёт единственный known_hosts, и изменённые отпечатки хостов ты замечаешь сразу, а не в момент аварии.

← к списку записей