Centos 7 ldap client настройка

Обновлено: 08.07.2024

OpenLDAP - это легкий протокол доступа к каталогам. Учетная запись является единственной записью в системе. Чтобы войти в систему, система должна сначала иметь учетную запись (/ etc / passwd) и информацию о пароле (/ etc / shadow), используемую для входа в систему. Для персонала по управлению учетными записями, если число компьютеров достигает более 1000, персонал по управлению учетными записями перегружен рядом операций, таких как создание учетной записи, утилизация, распределение разрешений, политика паролей и аудит безопасности учетной записи. В это время появилось ПО для централизованного управления учетными записями OpenLDAP, которое может осуществлять централизованное обслуживание и управление учетной записью. Для этого нужно только добавить управляемую машину на сервер. После этого все стратегии, связанные с учетной записью, реализуются на сервере. Проблемы управления, вызванные случаями эксплуатации и обслуживания.

Подготовка сетевой среды

Имя IP-адрес Hostname
Openldap сервер 13.10.29.3 node29.3
Openldap клиент 13.10.29.2 node292

Подготовка сетевой среды

Подготовка перед установкой *

1. Остановите брандмауэр

2. Запретить запуск брандмауэра

2. Изменить Selinux

Измените SELINUX = принудительно на: SELINUX = отключено и выполните setenforce 0 Сделайте его эффективным немедленно, конечно, вы можете перезагрузить машину

Настроить сервер Openldap

1. Установите пакет программного обеспечения

2. Установите пароль управления Openldap

3. Измените корневой DN и добавьте пароль

Модификации: olcSuffix: dc =domain,dc=com
olcRootDN: cn=root,dc=domain,dc=com
Добавить содержимое: olcRootPW: dmVe9cQJu / 8xyHKI0dMjUxft + nz6rPA4
Добавленный здесь пароль - это пароль, созданный на предыдущем шаге.

4. Модификация и проверка

olcAccess: to * by dn.base=“gidNumber=0+uidNumber=0,cn=peercred,cn=extern al,cn=auth” read by dn.base=“cn=root,dc=domain,dc=com” read by * none

5. Настройте базу данных БД




7. Дайте соответствующие разрешения для файла запуска

8. Запустите службу и установите автоматический запуск загрузки

9. Проверьте, успешно ли запущен сервис, если вывод такой, как показано на рисунке, запуск успешен



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

11. Импорт базы данных

В настоящее время очень вероятно сообщить об ошибке, я обнаружил ошибку 49, это должен быть неправильный пароль
Также обнаружена ошибка 21, затем необходимо импортировать базовую схему, используйте следующую команду:

12. Убедитесь, что импорт выполнен успешно

Если есть импортированная информация, это означает успех
13. Далее можно начать импорт пользователей и групп пользователей, сначала создать пользователей и группы пользователей.

14. В настоящее время вы можете использовать cat / etc / passwd и cat / etc / group для просмотра созданных пользователей и групп пользователей и их извлечения. Я обнаружил, что оба идентификатора пользователя и идентификатор группы пользователей - 1001, поэтому я извлек их в файл.

15. Атрибуты пользователя и группы пользователей, сгенерированные выше, используйте файл migrate_passwd.pl для генерации ldif для добавления пользователей и групп пользователей.

Если вы непосредственно выполнили две вышеупомянутые команды для генерации, это на самом деле не правильно. Вы можете просмотреть содержимое файла ldif. Вы можете увидеть, что в нем записаны dc = padl и dc = com. Это не dc = domain, dc = com, который мы установили выше, и шаблон должен быть изменен в это время.

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


16. Импорт в ldap

Если импорт уже существует, добавьте параметр -c

Настроить клиент openldap

1. Установочный пакет

Также может быть установлен непосредственно с помощью графического интерфейса настройки
3. Настройте пароли для пользователей ldap

4. Перезапустите службу nslcd.

Интеллектуальная рекомендация


[Makefile от более мелких к более глубоким полная запись обучения 4] Переменные и различные методы присвоения

Давайте сегодня узнаем о различных методах присваивания переменных в Makefile! Смысл тяжелой работы, чтобы бедность больше не ограничивать свое воображение! Добавьте QQ, чтобы вместе учиться и обменив.

[Luogu P3147] [BZOJ 4576] [USACO16OPEN]262144

Портал Луогу БЗОЙ Портал Описание заголовка Bessie likes downloading games to play on her cell phone, even though she doesfind the small touch screen rather cumbersome to use with her large hooves. Sh.

1. Файл /etc/pam_ldap.conf должен иметь следующий вид (необходимо заменить тот файл, который устанавливается автоматически):

base BASE_DN
ldap_version 3
binddn BIND_DN
bindpw BIND_PW
pam_password md5
uri ldap://LDAP_SERVER_IP/
ssl no
tls_cacertdir /etc/openldap/cacerts

Где (в квадратных скобках приведены примеры реальной конфигурации):
o LDAP_SERVER_IP - это адрес LDAP-сервера, к которому необходимо подключаться (может принимать значения как 127.0.0.1, "белого" IP или доменного имени). [188.227.75.82]
o BASE_DN - корень дерева LDAP от которого начинается поиск учётных записей при авторизации. [dc=mblztr]
o BIND_DN - учётная запись аккаунта под которым осуществляется подключение к LDAP-серверу для поиска учётных данных и реквизитов доступа при авторизации. [uid=uadmin,dc=mblztr]
o BIND_PW - пароль для аккаунта BIND_DN. [secret]

base dc=local,dc=zet
ldap_version 3
binddn cn=admin,dc=local,dc=zet
bindpw thebestldap
pam_password md5
uri ldap://212.113.109.213/
ssl no
tls_cacertdir /etc/openldap/cacerts

2. Файл /etc/nslcd.conf должен иметь следующий вид (необходимо заменить тот файл, который устанавливается автоматически):

uid nslcd
gid ldap
uri ldap://LDAP_SERVER_IP/
base BASE_DN
ssl no
tls_cacertdir /etc/openldap/cacerts
ldap_version 3
binddn BIND_DN
bindpw BIND_PW

uid nslcd
gid ldap
uri ldap://212.113.109.213/
base dc=local,dc=zet
ssl no
tls_cacertdir /etc/openldap/cacerts
ldap_version 3
binddn cn=admin,dc=local,dc=zet
bindpw thebestldap

3. В файл /etc/nsswitch.conf необходимо внести следующие изменения:

строку:
passwd: files
поменять на:
passwd: files ldap

строку:
group: files
поменять на:
group: files ldap

строку:
shadow: files
поменять на:
shadow: files ldap

4. Запуск утилиты authconfig-tui

в ней выставить пункты:
а. Use LDAP
б. Use shadow passwords
в. Use LDAP Authentification
г. Local authorization is sufficient

в итоге должено быть написано: Starting nslcd: [ OK ]

5. Файл /etc/pam.d/password-auth-ac привести в следующий вид:

auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so

password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so

6. Файл /etc/pam.d/system-auth-ac привести в следующий вид:

account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so

password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session optional pam_mkhomedir.so skel=/etc/skel umask=0022

7. Ограничение прав доступа к файлам /etc/pam_ldap.conf и /etc/nslcd.conf:

chmod 640 /etc/pam_ldap.conf
chmod 640 /etc/nslcd.conf

8. Перезапуск демона:

После этих действий должна быть обеспечена работоспособность взаимодействия с LDAP.

В инструкции разберем пример установки сервера FreeIPA (аналог Microsoft Active Directory, Samba DC) на Linux CentOS (также протестировано на Rocky Linux). В качестве клиентов будем использовать дистрибутивы на базе RPM (Red Hat, CentOS, . ) и deb (Debian, Ubuntu, . ).

Подготовка сервера

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

Время

Установим часовой пояс:

timedatectl set-timezone Europe/Moscow

* в данном примере используется московское время.

Затем устанавливаем и запускаем утилиту для синхронизации времени chrony.

yum install chrony

systemctl enable chronyd --now

Имя сервера

Для корректной работы сервера, необходимо, задать ему полное доменное имя (FQDN). Выполняем команду:

hostnamectl set-hostname ipa-server.dmosk.local

* где ipa-server.dmosk.local — имя сервера, которое будет использоваться.

Брандмауэр

Необходимо открыть несколько портов, которые используются службами FreeIPA:

firewall-cmd --permanent --add-port=53/ --add-port=/tcp --add-port=/ --add-port=123/udp --add-port=/tcp

SELinux

Отключаем SELinux командами:

Установка и запуск FreeIPA

Установка выполняется из репозитория. Команды немного отличаются в зависимости от версии CentOS.

а) для Rocky Linux / CentOS 8:

dnf install @idm:DL1

dnf install ipa-server

* первая команда установит модуль DL1 Stream-репозитория. Вторая — сам freeipa.

yum install ipa-server

Если мы хотим использовать наш сервер еще и как DNS, то устанавливаем:

yum install ipa-server-dns

После выполняем конфигурирование сервиса:

Отвечааем на первый вопрос, хотим ли мы использовать и сконфигурировать DNS-сервер BIND:

Do you want to configure integrated DNS (BIND)? [no]: yes

* в случае, если мы не хотим, чтобы сервер DNS был установлен вместе с сервером IPA, просто нажимаем Enter.

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

Когда система запросит пароль для Directory Manager, необходимо придумать и ввести его дважды:

Directory Manager password:
Password (confirm):

. будет создана учетная запись для подключения к LDAP.

Затем также нужно придумать и задать пароль для IPA admin:

IPA admin password:
Password (confirm):

. будет создана учетная запись IPA Administrator для первого пользователя FreeIPA с правами администратора.

Для настройки DNS на первый запрос, хотим ли мы настроить перенаправления, отвечаем да:

Do you want to configure DNS forwarders? [yes]:

Система предложит сначала использовать DNS-серверы из настроек сети (если они прописаны) — если нас это устроит, оставляем значение по умолчанию:

Do you want to configure these servers as DNS forwarders? [yes]:

. также можно добавить дополнительные серверы:

Enter an IP address for a DNS forwarder, or press Enter to skip: 8.8.8.8

Также оставляем значение по умолчанию для попытки найти обратные зоны:

Do you want to search for missing reverse zones? [yes]

После система выведет информацию о конфигурации и попросит ее подтвердить — вводим yes:

Continue to configure the system with these values? [no]: yes

Начнется процесс конфигурации. После его завершения мы увидим подсказку со следующими шагами:

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

. после вводим пароль администратора, который указывали при конфигурировании FreeIPA.

Проверяем, что билет получен:

Ответ должен быть, примерно, следующим:

Ticket cache: KEYRING:persistent:0:0
Default principal: admin@DMOSK.LOCAL

Valid starting Expires Service principal
23.07.2019 08:53:02 24.07.2019 08:52:55 krbtgt/DMOSK.LOCAL@DMOSK.LOCAL

* где DMOSK.LOCAL — домен в моей системе. В данном примере мы получили билет для пользователя admin.

Настройка и подключение клиента

Клиентские компьютеры должны быть настроены на использование DNS-сервера, который мы сконфигурировали на сервере FreeIPA во время его установки. В сетевых настройках указываем использовать наш сервер ipa для разрешения имен:

  1. Пример настройки сети в CentOS / Rocky Linux
  2. Настройка сети с помощью netplan (Debian, Ubuntu).
  3. В устаревающих системах на основе deb настройка выполняется в файле /etc/network/interfaces (опция dns-nameservers) или /etc/resolv.conf (опция nameserver).

Время

Для корректной работы и подключения необходимо проверить настройки времени.

В первую очередь, укажем часовой пояс:

timedatectl set-timezone Europe/Moscow

* командой timedatectl list-timezones можно посмотреть список всех часовых поясов.

Устанавливаем утилиту для синхронизации времени, разрешаем запуск демона и стартуем его.

а) если на системе Ubuntu / Debian:

apt-get install chrony

systemctl enable chrony

б) если на системе Rocky Linux / CentOS / Red Hat:

yum install chrony

systemctl enable chronyd --now

Подключение к домену

а) на компьютеры с Red Hat / CentOS:

yum install freeipa-client

б) на компьютеры с Debian / Ubuntu:

apt-get install freeipa-client

Для Debian 9 приходится использовать дополнительный репозиторий:

Обновляем список и устанавливаем:

apt-get install freeipa-client

Выполним конфигурирование клиента:

Система на основе данных из DNS попробует определить настройки и либо попросит ввести наш домен (если не сможет найти данные автоматически):

. либо отобразить настройки в консоли, например:

Discovery was successful!
Client hostname: freeipa-client.dmosk.local
Realm: DMOSK.LOCAL
DNS Domain: DMOSK.LOCAL
IPA Server: ipa-server.dmosk.local
BaseDN: dc=dmosk,dc=local

Если эти настройки верны, отвечаем положительно на запрос Continue to configure the system with these values?

Continue to configure the system with these values? [no]: yes

Система спросит, от какого пользователя производить настройку — вводим admin:

User authorized to enroll computers: admin

Password for admin@DMOSK.LOCAL:

Начнется процесс конфигурации — после его завершения:

.
Configured /etc/openldap/ldap.conf
NTP enabled
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring DMOSK.LOCAL as NIS domain.
Client configuration complete.
The ipa-client-install command was successful

. сразу проверим, что клиент может получать билет от сервера:

. и вводим пароль от пользователя admin.

Проверяем, что билет получен:

Ответ должен быть, примерно, следующим:

Ticket cache: KEYRING:persistent:0:0
Default principal: admin@DMOSK.LOCAL

Valid starting Expires Service principal
25.07.2019 23:39:56 26.07.2019 23:39:52 krbtgt/DMOSK.LOCAL@DMOSK.LOCAL

Работа с учетными записями

Создадим пользователя. Для этого рассмотрим пример использования командной строки и веб-интерфейса.

Командная строка

Авторизуемся на FreeIPA:

Создаем нового пользователя командой:

ipa user-add dmosk --first=Дмитрий --last=Моск --password

* где dmosk — логин; first — имя пользователя; last — фамилия; password — ключ для запроса пароля.

. после ввода команды система запросит пароль для создаваемого пользователя — вводим его дважды.

Мы должны увидеть сводку по параметрам для созданного пользователя:

Добавлен пользователь «dmosk»
-----------------------------
Логин пользователя: dmosk
Имя: Дмитрий
Фамилия: Моск
Полное имя: Дмитрий Моск
Отображаемое имя: Дмитрий Моск
Инициалы: ДМ
Домашний каталог: /home/dmosk
GECOS: Дмитрий Моск
Оболочка входа: /bin/sh
Principal name: dmosk@DMOSK.LOCAL
Principal alias: dmosk@DMOSK.LOCAL
User password expiration: 20190725205853Z
Электронный адрес: dmosk@dmosk.local
UID: 1798800001
ID группы: 1798800001
Пароль: True
Member of groups: ipausers
Kerberos ключей доступно: True

Примет более полной команды для создания пользователя:

* в данном примере мы использовали дополнительные поля:

* более полный список атрибутов можно найти на странице с мануалом Fedora Project.

Веб-интерфейс

Откроется страница управления пользователями:

Управление пользователями в веб интерфейса FreeIPA

На панели справа (над списком пользователей) кликаем по Добавить:

Кнопка Добавить в веб-интерфейсе FreeIPA

В открывшемся окне заполняем поля для создания пользователя и нажимаем по Добавить:

Заполняем данные для создания пользователя

Проверка

На компьютере с клиентом вводим команду для проверки:

. и вводим пароль от созданной учетной записи:

Password for dmosk@DMOSK.LOCAL:

При вервом входе система попросит поменять пароль на новый:

Password expired. You must change it now.
Enter new password:
Enter it again:

Редактирование учетных записей

Редактирование выполняется командой:

ipa user-mod <имя записи> <опции>

Например, поменять пароль можно командой:

ipa user-mod username --password

* в данном примере будет запрошен новый пароль для учетной записи username.

Для удаления вводим:

ipa user-del <имя записи>

ipa user-del user_name

Подробная информация

Получить информацию мы можем о любой сущьности в LDAP с помощью командной строки.

ipa user-find --all

ipa user-find user_name --all

* первая команда вернет информацию по всем пользователям, вторая — по конкретному (в данном примере user_name).

ipa group-find --all

ipa group-find admins --all

* первая команда вернет информацию по всем группам, вторая — только для admins.

Примеры команд

Рассмотрим отдельно примеры работы с FreeIPA посредством командной строки.

Работа с группами

1. Создание группы безопасности:

* создаем группу безопасности managers.

2. Добавить пользователя в группу:

ipa group-add-member managers --users=user1,user2,user3

* добавим в группу managers пользователей user1, user2 и user3.

3. Переименовать группу:

ipa group-mod --rename=<новое имя> <старое имя>

ipa group-mod --rename=admins users

* в данном примере мы переименуем группу users в группу admins.

Работа с сертификатами

1. Выпустить сертификат для компьютера (выполняется на компьютере, который присоединен к freeipa):

ipa-getcert request -k /etc/pki/tls/certs/freeipa.key -f /etc/pki/tls/certs/freeipa.crt -r

* в данном примере будет сформирован запрос на получение сертификата и сохранен в каталог /etc/pki/tls/certs.

2. Посмотреть список запросов на сертификат с узла можно командой:

3. Удалить запрос можно командой:

ipa-getcert stop-tracking -i <идентификатор>

ipa-getcert stop-tracking -i openvpn

4. Обновить сертификат:

ipa-getcert resubmit --id="20210923072007"

* где 20210923072007 — идентификатор запроса, который можно посмотреть командой ipa-getcert list.

Дополнительные настройки

Рассмотрим отдельно некоторые настройки и возможности работы с FreeIPA.

SSH аутентификация через FreeIPA

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

Открываем конфигурационный файл для pam:

Добавим в конец одну строку:

.
session required pam_mkhomedir.so skel=/etc/skel umask=0022

* данная настройка укажет на необходимость автоматического создания домашней директории для пользователя.

Вывод клиента из домена

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

Система выполнит необходимые настройки самостоятельно:

Unenrolling client from IPA server
Removing Kerberos service principals from /etc/krb5.keytab
Disabling client Kerberos and LDAP configurations
Redundant SSSD configuration file /etc/sssd/sssd.conf was moved to /etc/sssd/sssd.conf.deleted
Restoring client configuration files
Unconfiguring the NIS domain.
nscd daemon is not installed, skip configuration
nslcd daemon is not installed, skip configuration
Systemwide CA database updated.
Client uninstall complete.
The original nsswitch.conf configuration has been restored.

И отправляем компьютер в перезагрузку:

You may need to restart services or reboot the machine.
Do you want to reboot the machine? [no]: yes

Возможные ошибки

Разберем некоторые ошибки, которые могут возникнут в процессе установки FreeIPA.

Ошибка появляется при попытке запустить команду ipa-server-install.

Понадобилась общая адресная книга в небольшой сети без домена, основной почтовый клиент Mozilla Thunderbird. Решено было использовать OpenLDAP для этих целей.

Приступаем к установке и настройке OpenLDAP. Устанавливаем пакеты openldap и migrationtools:

Создаем пароль администратора LDAP:


Изменяем конфигурацию еще одного файла:


Ранее, в конфигурацию были добавлены пути к сертификатам, сгенерируем их (сроком на 10 лет):

Проверяем наличие сертификатов в папке /etc/pki/tls/certs/:



Включаем и запускаем сервис:


Генерируем base.ldif файл:

Вставляем свои данные в этот файл:


Создадим локального пользователя:

Filter out these user from /etc/passwd to another file:

Filter out user group from /etc/group to another file:

Конвертируем файл локальных пользователей в LDAP Data Interchange Format (LDIF). Генерируем ldif файл для пользователей

Генерируем ldif файл для групп

Импортируем эти LDIF-файлы в LDAP Database:


Для удобства администрирования используется утилита LDAPAdmin в Windows. Параметры подключения к LDAP:


Все действия с учетными записями и группами можно производить из этой утилиты:


Подключим адресную книгу в почтовик


Фильтруем поиск по mail


Вводим символ @ в строке поиска и видим все записи LDAP-сервера, у которых прописан e-mail

Читайте также: