Эта статья актуальна для компаний с множеством серверов. Как часто Вы привлекаете сторонние организации к выполнению части работ? Как много у Вас разработчиков, и администраторов, имеющих доступ к серверам? Если ответ часто и много, то читайте далее обязательно.
Оба положительных ответа, ставят перед вами вопросы, а как же мне всех контролировать, кто что делал на серверах, и как мне предоставить и забрать права у пользователей которые выполняли временные работы, или тех кто уволился, при этом не сбрасывая пароли на всех серверах.
ЗАДАЧА:
- Обеспечить контроль доступа пользователей (администраторов) к серверам. Выполнить разграничения прав. Полный доступ к серверу предоставить ограниченной группе.
- Настроить логирования действий пользователей (администраторов) на каждом сервере.
- Реализовать гибкое управление доступом ко всем серверам, т.е. предоставление доступа ко всем серверам и лишение прав пользователя в одной точке входа.
ВАРИАНТ РЕАЛИЗАЦИИ
На самом деле вариантов может быть множество, все зависит от специфики инфраструктуры, количества серверов, пользователей и решаемых задач. Мы рассмотрим один из возможных примеров.
Для реализации поставленной задачи предлагаем использовать LDAP сервер для разграничения и управления правами пользователей
LDAP означает легковесный протокол доступа к каталогу (Lightweight Directory Access Protocol). Каталог — это специализированная база данных, созданная для частых запросов, но нечастых обновлений. LDAP обеспечит централизованное управление пользователями, хранение всех учетных записей пользователей в одном местонахождении. Так же на нем возможно более гибкое управление группами пользователей, группами серверов, sudo и командами, которые могут выполнять пользователи.
В качестве LDAP сервера можно использовать OpenLDAP.
- Выполняем установку и настройку OpenLDAP сервера (здесь будет выполняться подключение и отключение пользователей)
- Настройка входов по ключу. В случае если LDAP сервер не будет доступен, сервера клиенты LDAP хранят в кеше, информацию о доступе пользователей.
- Логирование действий пользователя на сервере будет производится в стандартном файле ~/.bash_history на клиент серверах
РЕАЛИЗАЦИЯ:
- Установка OpenLDAP на сервер с CentOS, который будет выступать в роли сервера аутентификации, настройка LDAP сервера и установка FusionDirectory (fork Gosa) для управления пользователями через WEB интерфейс.
- Подключаем доменное имя для LDAP сервера. Можно не использовать реальное доменное имя.
- Установка и настройка серверов-клиентов, подключение к LDAP, установка asciinema, /etc/ssh/sshd_config ForceCommand asciinema rec – данная система позволит сразу после логина пользователя в ssh — сохранять все что он вводил в консоли в json формате (настройка займет на каждого клиента по 25-30 минут).
- Тестирование работы установленных сервисов, дополнительная настройка системы.
- Разработка процедуры настройки клиента на сервере, для возможности дальнейшего применения на новых серверах.
Возникли вопросы? В таком случае, вы можете написать нам [email protected]