Ограничить выполнение команд по SSH

Не зря существует поговорка: "Век живи - век учись". Буквально на днях узнал, что есть очень простой способ, как ограничить выполнение каких-то команд при подключении по SSH с аутентификацией через сертификат.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

В файл authorized_keys перед самим сертификатом добавляем разрешённую команду:

command="top" ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAt....

И больше ничего не надо делать. Подключившийся, кроме top, ничего запустить не сможет. Команда top запустится автоматически при успешном подключении. Я просто пример привёл, как быстро протестировать возможность.

На практике это очень пригодится для служебных учётных записей, которые ходят по серверам и выполняют какие-то заскриптованные действия. Например, делают дамбы баз, запускают скрипты бэкапа и т.д. Достаточно просто добавить ограничение в виде command и учётная запись не сможет сделать ничего, кроме разрешённого.

Я знал, что можно настраивать подобные ограничения через конфиг sshd и настройку ForceCommand, но с authorized_keys всё намного проще, быстрее, нагляднее.

Возникла ещё одна идея, где это может быть удобно. Если сами настраиваете bastion host или jump host, по разному может называться. Суть в том, что только через этот хост можно подключаться к другим серверам. Можно сделать учётки, для которых будет разрешено подключение к какому-то конкретному серверу. А параметры подключения прописать сразу в command. При подключении по ssh на jump host, пользователь сразу окажется на нужном сервере. Сразу готова и система ограничения доступа, и логирования на базе sshd.

Подробнее об этой настройке можно прочитать в документации к sshd.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar