Поиск по сайту:

Как аутентифицировать клиентские компьютеры с помощью LDAP на Ubuntu 12.04 VPS


Статус: устарело

В этой статье рассматривается версия Ubuntu, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением Ubuntu 12.04, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию Ubuntu:

  • Обновите Ubuntu до версии 14.04.
  • Обновление Ubuntu 14.04 до Ubuntu 16.04
  • Перенесите данные сервера в поддерживаемую версию.

Причина:

Смотрите вместо этого:

Введение

LDAP, или упрощенный протокол доступа к каталогам, — это один из способов хранения аутентификационных данных в одном централизованном месте. В предыдущей статье мы обсуждали, как настроить LDAP-сервер на Ubuntu 12.04 VPS. Это объяснило фактическую конфигурацию сервера.

В этой статье мы обсудим, как настроить клиентский компьютер для удаленной аутентификации на этом сервере для различных служб.

Для выполнения этого проекта вам понадобится сервер Ubuntu 12.04, настроенный как сервер LDAP. Посмотрите ссылку на предыдущее руководство, если вы еще этого не сделали. Вам также понадобится еще одна капля Ubuntu 12.04, которая будет выступать в качестве клиентской машины.

Установить клиентские пакеты

На клиентской машине вам нужно будет установить несколько пакетов, чтобы аутентификация работала правильно с сервером LDAP.

Вы можете установить их из стандартных репозиториев Ubuntu с помощью следующих команд:

sudo apt-get update
sudo apt-get install libpam-ldap nscd

Вам будет задано множество вопросов, подобных тем, которые задавались при установке серверных компонентов.

  • Унифицированный идентификатор ресурса сервера LDAP: ldap://LDAP-сервер-IP-адрес
    • Измените исходную строку с \ldapi:/// на \ldap:// перед вводом информации о вашем сервере

    Отличительное имя поисковой базы:

    • Это должно совпадать со значением, которое вы указали в файле /etc/phpldapadmin/config.php вашего сервера LDAP.
    • Найдите: «сервер», «база», массив «в файле.
    • Наш пример был \dc=test,dc=com

    Используемая версия LDAP: 3

    Сделать локальным корневым администратором базы данных: Да

    Требуется ли вход в базу данных LDAP? Нет

    Учетная запись LDAP для root:

    • Это также должно соответствовать значению в вашем /etc/phpldapadmin/config.php.
    • Найдите: 'login','bind_id' в файле
    • Наш пример: \cn=admin,dc=test,dc=com

    Пароль корневой учетной записи LDAP: Your-LDAP-root-password

    Если вы допустили ошибку и вам нужно изменить значение, вы можете снова пройти через меню, выполнив эту команду:

    sudo dpkg-reconfigure ldap-auth-config
    

    Настройка клиентского программного обеспечения

    Нам нужно настроить несколько файлов, чтобы сообщить нашим файлам аутентификации, что они могут обращаться к нашему серверу LDAP за информацией для аутентификации.

    Сначала отредактируйте файл /etc/nsswitch.conf. Это позволит нам указать, что учетные данные LDAP должны быть изменены, когда пользователи выдают команды изменения аутентификации.

    sudo nano /etc/nsswitch.conf
    

    Три строки, которые нас интересуют, — это определения \passwd, \group и \shadow. Измените их, чтобы они выглядели следующим образом:

    <пред>

    Далее мы добавим значение в нашу конфигурацию PAM.

    PAM, или подключаемые модули аутентификации, — это система, которая соединяет приложения, которые могут обеспечивать аутентификацию, с приложениями, требующими аутентификации.

    PAM уже реализован на большинстве компьютеров и работает за кулисами, не требуя взаимодействия с пользователем. Когда мы установили и настроили наш модуль LDAP PAM, большая часть необходимой информации была добавлена в файлы конфигурации.

    Отредактируйте файл /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». Она была выбрана не случайно. Она совпадает с группой «admin», которая создается по умолчанию на компьютерах с Ubuntu.

    Пользователи LDAP, которых вы добавили в группу \admin, будут иметь доступ к команде sudo.

    Это потому, что у нас есть строка, которая дает членам группы \admin доступ sudo в файле /etc/sudoers. Отредактируйте файл, введя эту команду:

    sudo visudo
    

    Есть строка, которая гласит:

    %admin ALL=(ALL) ALL
    

    Записи, начинающиеся со знака процента (%), указывают группу вместо пользователя. Если вы хотите отключить эту функцию или предоставить ее только определенным пользователям, закомментируйте эту строку:

    #%admin ALL=(ALL) ALL
    

    Войдите в систему как пользователь LDAP

    Теперь мы достаточно настроили нашу клиентскую машину, чтобы иметь возможность войти в систему как один из наших пользователей LDAP. Этот пользователь не обязательно должен существовать на клиентской машине.

    В новом окне терминала (лучше оставить вход в исходное окно терминала на случай ошибки конфигурации) подключитесь по ssh к клиентскому компьютеру, используя учетные данные пользователя LDAP:

    <пред>

    Вы должны иметь возможность войти в систему, как если бы ваш пользователь был создан локально. Выполните команду печати рабочего каталога:

    pwd
    

    Вы должны увидеть, что домашний каталог, который вы выбрали для своего пользователя на сервере LDAP, используется на этом компьютере. Он был создан по запросу для обслуживания пользователя LDAP.

    Если вы выйдете из системы и войдете под другим пользователем LDAP, вы увидите две записи домашнего каталога:

    ls /home
    
    user1  user2
    

    Если ваш пользователь входит в группу «admin» и вы не отключили эту возможность в предыдущем разделе, у вас будет обычный доступ к 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. Откройте этот файл сейчас с привилегиями root:

    sudo nano /etc/security/access.conf
    

    Нам нужно добавить правило в конец файла.

    Прочерк (-) в начале строки означает, что это ограничение. От первого двоеточия (:) до следующего двоеточия мы указываем, к кому применяется это правило.

    Указываем, что это относится ко всем пользователям, кроме root и группы «admin». Группы указаны в скобках.

    От второго двоеточия до конца строки мы укажем, при каких обстоятельствах должно применяться правило. В нашем случае ограничение будет применяться при любых обстоятельствах, кроме локальных входов в систему.

    <пред>

    Это позволит нам ограничить вход в группу «admin». Мы можем добавить другие группы или изменить группу.

    Это также позволит нам войти в систему через кнопку «доступ к консоли» на консоли DigitalOcean, если мы каким-то образом заблокируем себя от SSH.

    Имейте в виду, что это относится ко всем пользователям, а не только к пользователям LDAP. Таким образом, любые пользователи, которых вы создаете на клиентской машине, должны быть членами одной из указанных групп.

    Заключение

    Теперь у вас должна быть возможность аутентифицировать несколько компьютеров с помощью централизованного сервера LDAP. Вашим пользователям LDAP будет разрешено использовать любые машины, которые вы настроите таким образом, если у них есть соответствующие учетные данные для входа.

    Это может предотвратить рассредоточение, дублирование и неуправляемость вашей пользовательской информации. Когда количество пользователей, обращающихся к вашим серверам или проектам, увеличивается, а количество машин также растет, аутентификация LDAP может оказаться огромным подспорьем.

    Джастин Эллингвуд