Аутентификация клиентов при помощи LDAP на сервере Ubuntu 12.04
LDAP (или Lightweight Directory Access Protocol) – это протокол, позволяющий хранить данные аутентификации в одном централизованном месте. В предыдущей статье было показано, как настроить сервер LDAP на Ubuntu 12.04.
Данная статья поможет настроить удалённую аутентификацию клиентских машин.
Примечание: Для выполнения руководства нужны предварительно настроенный сервер Ubuntu 12.04 и установленный сервер LDAP. Также понадобится ещё один сервер Ubuntu 12.04, который будет использован в качестве клиента.
Установка пакетов клиента
На клиентскую машину нужно установить несколько пакетов для корректной поддержки аутентификации LDAP.
Чтобы загрузить эти пакеты из стандартного репозитория Ubuntu, используйте следующие команды:
sudo apt-get update
sudo apt-get install libpam-ldap nscd
Система задаст несколько стандартных вопросов и запросит некоторые данные, а именно:
- Uniform Resource Identifier сервера LDAP: ldap://IP-адрес-сервера-LDAP.
- Будет предложено изменить начальную строку ldapi:/// на ldap://, прежде чем продолжить вводить данные.
- Distinguished name of the search base: Это значение должно совпадать с тем, что было внесено в файл /etc/phpldapadmin/config.php на сервере LDAP. Найдите в файле server, base, array (в предыдущем руководстве это были значения dc=test,dc=com).
- LDAP version to use: 3
- Make local root Database admin: Yes
- Does the LDAP database require login? No
- LDAP account for root: Это значение тоже должно совпадать с тем, что было внесено в файл /etc/phpldapadmin/config.php на сервере LDAP. Найдите в файле login, bind_id (в предыдущем руководстве это были значения cn=admin,dc=test,dc=com).
- LDAP root account password: пароль root-пользователя
Если вы допустили ошибку и хотите её исправить, можете вернуться в это меню при помощи команды:
sudo dpkg-reconfigure ldap-auth-config
Настройка клиента
Теперь нужно отредактировать некоторые настройки, чтобы файлы аутентификации могли обращаться к серверу LDAP за информацией.
Для начала отредактируйте файл /etc/nsswitch.conf. Он позволяет настроить изменение учетных данных LDAP при запуске пользователями определённых команд аутентификации.
sudo nano /etc/nsswitch.conf
Найдите в файле строки passwd, group и shadow и отредактируйте их следующим образом:
passwd: ldap compat
group: ldap compat
shadow: ldap compat
Затем нужно добавить некоторые значения в настройки PAM.
PAM (или Pluggable Authentication Modules) – это система, которая соединяет приложения, обеспечивающие аутентификацию в тех приложениях, которые требуют проверки подлинности.
Система PAM внедрена по умолчанию на большинстве компьютеров, работает в фоновом режиме и не требует вмешательства пользователя. После установки модуля PAM для LDAP большая часть необходимой информации была добавлена в конфигурационные файлы.
Отредактируйте файл /etc/pam.d/common-session:
sudo nano /etc/pam.d/common-session
В конец файла добавьте строку:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
Это создаст на клиентской машине домашний каталог при подключении пользователя LDAP, у которого нет такого каталога.
Чтобы обновить настройки, перезапустите сервис:
sudo /etc/init.d/nscd restart
Права доступа
Как помните, во время настройки сервера LDAP была создана группа admin. Это название выбрано не случайно. Оно совпадает с названием группы, созданной на машине Ubuntu по умолчанию.
Пользователи LDAP, добавленные в группу admin, получают доступ к команде sudo согласно настройкам файла /etc/sudoers.
Отредактируйте этот файл:
sudo visudo
Найдите строку:
%admin ALL=(ALL) ALL
Все записи, начинающиеся с символа %, обозначают группу, а не пользователя. Чтобы отключить доступ пользователей к команде sudo или передать права доступа только определённым пользователям, закомментируйте эту строку:
#%admin ALL=(ALL) ALL
Вход пользователя LDAP
Теперь клиентская машина настроена и может подключиться в качестве пользователя LDAP. Этот пользователь не должен существовать на клиентском компьютере.
В новом окне терминала создайте SSH-подключение к клиентскому компьютеру, используя учетные данные пользователя LDAP.
Примечание: Рекомендуется оставить исходное окно терминала на случай ошибок в конфигурации.
ssh LDAP_user@LDAP_client_IP_Address
Пользователь должен подключиться так, будто он был создан локально. Запросите рабочий каталог:
pwd
Команда вернёт домашний каталог, созданный при входе этого пользователя.
Попробуйте выйти и войти снова как другой пользователь LDAP. На сервере появится ещё один домашний каталог пользователя:
ls /home
user1 user2
Если пользователь входит в группу admin, и вы не отключили доступ к sudo в предыдущем разделе, то тот пользователь сможет запускать команды с sudo.
Запустите команду passwd, чтобы изменить пароль. Как видите, сервер LDAP позволяет изменить учётные данные:
passwd
Enter login(LDAP) password:
Ограничение доступа по группам
Чтобы возможность войти на данный компьютер была только у членов определенных групп, можно отредактировать файлы PAM.
Откройте для редактирования с правами root:
sudo nano /etc/pam.d/common-auth
В конце файла нужно указать, что система PAM должна проверять файлы доступа, прежде чем пропустить пользователя.
auth required pam_access.so
Сохраните и закройте файл.
Файл, к которому обращается PAM за информацией о доступе – /etc/security/access.conf. Откройте его:
sudo nano /etc/security/access.conf
В конец этого файла нужно добавить правило.
Символ тире в начале строки значит, что это ограничение. Между символами двоеточия указывается само правило.
В данном случае правило касается всех пользователей, кроме root и членов группы admin. Группы указываются в скобках.
После второго символа двоеточия уточняется, при каких обстоятельствах правило должно применяться. В данном примере ограничение будет применяться во всех случаях, кроме локальных подключений.
-:ALL EXCEPT root (admin):ALL EXCEPT LOCAL
Внимание: Это правило применяется ко всем пользователям, а не только к пользователям LDAP. Потому любой пользователь, созданный на клиентской машине, должны входить в одну из указанных в правиле групп, чтобы получить доступ.
Заключение
Теперь сервер LDAP позволяет аутентифицировать клиентов. Пользователи LDAP с валидными учётными данными смогут пользоваться всеми машинами, доступ к которым не заблокирован.
Такой подход позволяет предотвратить рассредоточение, дублирование и потерю контроля над данными. Аутентификация LDAP особенно важна в случаях, когда количество пользователей, имеющих доступ к серверам и проектам, постоянно растет.
Tags: LDAP, PAM, Ubuntu 12.04
1 комментарий
А где клиенту указать ip адрес/hostname ldap серверу