Локальний SOCKS-прослуховувач корисний в одних мережах і відсутній в інших. OpenSSH може вибирати проксі-команду умовно, не роблячи цей вибір обов'язковим для кожного вузла.

Для OpenSSH з формою nc з OpenBSD приклад клієнтської конфігурації такий:

Host work-server
    HostName ssh.example.net
    User alex

Match originalhost work-server exec "nc -z -w 1 127.0.0.1 1080"
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

Match all

originalhost обмежує перевірку іменем, указаним у командному рядку SSH. exec збігається, коли його команда завершується успішно. Завершальний Match all закриває цю умовну область для наступних налаштувань.

Це припускає, що жодне попереднє чинне налаштування вже не вибрало конфліктну проксі-команду чи маршрут стрибка. SSH зазвичай використовує перше отримане значення параметра, тому широке значення за замовчуванням угорі може завадити пізнішій умові дати очікуваний ефект.

Прослуховувальний сокет — скромна обіцянка

Перевірка тестує доступ TCP до локального порту. Вона не завершує узгодження SOCKS, не встановлює потрібне з'єднання з пунктом призначення й не доводить, яка програма володіє цим портом. Прослуховувач може зникнути й після перевірки.

Час очікування тримає невдалу перевірку в межах. Показані параметри належать інтерфейсу nc з OpenBSD; інші програми з тим самим іменем файлу можуть пропонувати інші параметри.

Коли умова не збігається, цей приклад залишає з'єднання без цього ProxyCommand, дозволяючи звичайний маршрут. Це доречно лише тоді, коли прямий доступ дозволено. Обов'язкова політика проксі не повинна використовувати перевірку доступності як дозвіл утекти іншим маршрутом.

Ім'я цільового вузла SSH і перевірки ключа вузла й далі ідентифікують сервер призначення. Вибір засобу транспорту не є причиною приймати неочікуваний ключ вузла.

Схожі статті