Linux - статьи

Накладывание ограничений на идентификаторы SSH


Путем модификации файла .ssh/authorized_keys{2} можно наложить ограничения на принимаемые идентификаторы SSH. Просто вставьте перед строкой, содержащей публичный ключ, на который вы желаете повлиять, список ограничений. Наиболее полезные ограничения перечислены в Таблице 3.2.

Таблица 3.2 Полезные ограничения идентификаторов SSH



Ограничение Описание
from=”pattern-list” Разделяемый запятыми список хостов, которым оказывается доверие. Если идентификатор приходит от другой машины, в соединении будет отказано. Допустимы символы * и ?, а также ! (для отрицания).
command = “command” Какую бы команду не пытался выполнить клиент, выполняется указанная команда. Это может быть скрипт shell , загружающий pppd с соответствующими аргументами приведенный ниже в этой главе.
environment = “VARIABLE=value” Создает переменную окружения VARIABLE со значением value , позже мы используем это ограничение для указания имени VPN , связанной с данным соединением.
no-port-forwarding Отключение маршрутизации портов через SSH . Для VPN это не требуется.
no-X11-forwarding Отключение маршрутизации X 11. Для VPN X 11не требуется.
no-agent-forwarding Отключить маршрутизацию агента. Для VPN не требуется.

Данные опции можно объединить запятыми и поместить первым аргументом в строку authorized_keys{2} с идентификатором SSH. Пример может выглядеть так: from=”client.example.com”, command=”/usr/bin/sudo /usr/sbin/pppd noauth 192.168.254.254:192.168.254.253”, environment=”vpn_network=vpn1”, no-port-forwarding, no-X11-forwarding,no-agent-forwarding 1024 35 128494554020444581541671425906529809779416661821446...

В этом примере мы разрешаем поступление идентификатора только с машины client.example.com, принудительно будет выполняться команда sudo pppd, все ненужные маршруты SSH будут отключены, а переменная окружения vpn_network приобретет значение vpn1 (для дальнейшего использования).

Включение этих параметров будет создавать очень, очень длинные командные строки. Используйте только редакторы, поддерживающие такие строки. В частности, старые версии vi могут не позволить редактировать и правильно отображать их. Мы предлагаем использовать vim или Emacs.



Содержание раздела