Как настроить клиент LDAP для подключения внешней аутентификации – IT is good

Приложение, вероятно, недостаточно защищено, чтобы оперировать учетными данными

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

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

С другой стороны, серверы приложений имеют совершенно иной уровень безопасности и более подвержены риску компрометации. Они менее защищены, работают с более сложными программными стеками и с большей вероятностью имеют уязвимости. И чаще они находятся под управлением людей, которые не имеют глубоких знаний о безопасности. Построение правильной системы безопасности — сложнейший процесс, в котором очень легко допустить ошибку.

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

Многие разработчики знают о механизмах работы LDAP недостаточно, чтобы правильно его использовать

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

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

Введение

Мы хотим добиться того, чтобы наши пользователи сохранялись в LDAP, аутентифицировались через LDAP (direct или pam) и чтобы вы имели некоторый инструмент для управления этими всем понятным для человека способом.

Похожее:  Играть в длинные нарды онлайн на LiveGames

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

Более подробную информацию о идее LDAP можно найти в Википедии: LDAP wikipedia

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

LDAP-сервер не может гарантировать безопасность транзакции. Несмотря на то, что LDAP-сервер, например, может обеспечить принудительное выполнение операции bind по TLS, чтобы гарантировать, что учетные данные не передаются в открытом виде, сам сервер никогда не принимал никакой роли в получении учетных данных от пользователя. Существует риск, что приложение будет получать пароль по небезопасному каналу.

Пользователь вынужден делиться своим секретом аутентификации с третьей стороной

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

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

К пунктам Шумона Хука добавлю описание нескольких нюансов LDAP-аутентификации, основываясь на собственном опыте. Прежде всего, тема касается использования Active Directory.

Администраторы приложений зачастую не настраивают LDAP-клиенты корректным образом

При управлении Active Directory в большой распределенной среде есть один неприятный нюанс: трудно определить, какие конкретно приложения используют Active Directory в качестве LDAP-каталога, и как именно администраторы приложений настроили LDAP-клиент.

Ниже представлены примеры ужасов некорректной настройки.

  • Хардкодинг DN в приложениях или использование DN при выполнении операции bind. Постоянно случаются неприятности при переименовании или перемещении объектов внутри директории, а все потому, что кто-то где-то захардкодил DN. (Примечание для тех, кто выполняет простые операции bind с Active Directory: нет необходимости использовать DN. Active Directory также предоставляет альтернативные форматы DN, которые являются более надежными, чем использование традиционного формата).
  • Для операции bind используется не сервисный аккаунт, а персональный аккаунт разработчика или администратора (представьте, что будет, когда владелец аккаунта покинет компанию).
  • Отправка паролей в открытом виде на 389-й порт.
  • Существуют приложения, где чекбокс «Валидировать сертификат» не является обязательным при подключении к AD с использованием TLS (порт 636). Почему такое вообще допустимо? Как можно передать пароль стороннему сервису, не убедившись в его достоверности?

Заставить LDAP-клиент работать легко. Но только тот факт, что он работает, не означает, что конфигурация правильная.

LDAP-аутентификация и современные сервисы аутентификации взаимоисключают друг друга

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

Advanced linux ldap authentication –

In

an earlier look at LDAP

, we set up a simple LDAP-based authentication system. We configured client machines to retrieve authentication information from a server running

OpenLDAP

. Now let’s go further by enabling encryption and looking at how to make user modifications through LDAP.

If client machines are to authenticate through LDAP, administrators must make sure user changes are reflected within the LDAP server. Most user management utilities on a client system expect to find information in files like /etc/passwd and /etc/group. If such information is only available through LDAP, utilities may complain about unknown users. To make changes in these cases, an administrator must modify the corresponding LDAP entries. While utilities such as phpLDAPadmin can help with this task, you must know what you’re doing if you’re to use them effectively.

Changing user information in LDAP

Just as creating users and groups with LDAP is often a process of populating and adding Lightweight Directory Interchange Format (LDIF) files, so is the process of making LDAP changes. Suppose you had used the following LDIF file to add a user called “myuser” to LDAP:

	dn: cn=Myuser,ou=People,dc=example,dc=org
	cn: Myuser
	objectClass: posixAccount
	objectClass: shadowAccount
	objectClass: inetOrgPerson
	sn: User
	uid: myuser
	uidNumber: 1025
	gidNumber: 9000
	homeDirectory: /tmp

Later you decide you would like a directory other than /tmp as myuser’s home. Make a file with a name like myuser_change.ldif and add the following:

	dn: cn=Myuser,ou=People,dc=example,dc=org
	homeDirectory: /home/myuser

Notice all that is needed here is the DN (Distinguished Name) and the information we wish to change. Though we only changed the home directory, we could also have changed attributes like the uidNumber or uid. Add your changes with the ldapmodify command:

ldapmodify -x -D "cn=admin,dc=example,dc=org" -W -f myuser_change.ldif

Because the DN is a unique identifier, deleting a DN with the ldapdelete command will remove everything about a user or group:

ldapdelete -x -D "cn=admin,dc=example,dc=org" -W "cn=Myuser,ou=People,dc=example,dc=org"

Encrypting communication between the clients and server

Our LDAP authentication system works well but has a major drawback: nothing is encrypted. Anyone with a packet analyzer and access to the network can read all communication between the client and server, so it’s vital to enable LDAP encryption.

OpenLDAP offers two major methods of encrypting communication: LDAP with Transport Layer Security (TLS), and LDAP over Secure Sockets Layer (SSL). LDAP with TLS describes a normal LDAP session where a client requests SSL communication. This type of encryption would occur over the normal LDAP port (389). LDAP over SSL is LDAP being transmitted through an SSL tunnel over port 636. This communication is also called “ldaps://”. Both approaches offer the same amount of security. Our example will use the latter approach, LDAP over SSL.

On your machine running OpenLDAP, ensure you have OpenSSL installed. If not, issuing a simple apt-get install openssl will do the trick for Debian systems. If you’re using a different Linux distribution, you should be able to find packages for OpenSSL.

Our example will create our own CA (certificate authority), but you can have a third party act as a certificate authority as well. The following commands create our CA:

mkdir /etc/myca
cd /etc/myca
sh /usr/lib/ssl/misc/CA.sh -newca

After running the CA.sh script, you will be prompted to enter a certificate filename or press Enter for a new certificate. In this case, you’ll want to press Enter. Then you’ll be prompted for a pass phrase; use “cacert,” and enter it twice. Then you’ll be prompted for the following information:

	Country Name (2 letter code) [AU]: US
	State or Province Name (full name) [Some-State]: Yourstate
	Locality Name (eg, city) []: Your City
	Organization Name (eg, company) [Internet Widgits Pty Ltd]: Exampleorg
	Organizational Unit Name (eg, section) []: Exampleunit
	Common Name (eg, YOUR name) []:	example.org
	Email Address []: [email protected]

Enter the correct information for your company or organization.

The Common Name, or “CN” for short, must be a fully qualified domain name pointing to your server. Incorrect CN values will completely break encryption, and there exist countless examples of this error on mailing lists and forums throughout the Internet.

Next we will create a certificate request and private key. Perform the following:

openssl req -new -nodes -keyout newreq.pem -out newreq.pem

You will then be prompted for the following information:

	Country Name (2 letter code) [AU]: US
	State or Province Name (full name) [Some-State]: Yourstate
	Locality Name (eg, city) []: Your City
	Organization Name (eg, company) [Internet Widgits Pty Ltd]: Exampleorg
	Organizational Unit Name (eg, section) []: Exampleunit
	Common Name (eg, YOUR name) []: example.org
	Email Address []: [email protected]

Enter the appropriate information for your certificate. You will also be prompted for a challenge password and optional company name, which you can leave blank. OpenLDAP does not support password-protected private keys.

Notice the questions are roughly the same as the ones we saw before, and be aware that the same domain name warnings apply to the CN value here. The CA we created earlier will now sign our certificate request, and we will move the resulting files into place:

sh /usr/lib/ssl/misc/CA.sh -sign

Enter your CA password and answer “y” to the two questions, then copy the certificates to /etc/ldap:


cp demoCA/cacert.pem /etc/ldap/cacert.pem
cp newcert.pem /etc/ldap/servercrt.pem
cp newreq.pem /etc/ldap/serverkey.pem
chmod 600 /etc/ldap/serverkey.pem

We now have all the files we need to enable LDAP encryption. Edit the LDAP daemon’s configuration file, /etc/ldap/slapd.conf, and add the following values:

	TLSCACertificateFile /etc/ldap/cacert.pem
	TLSCertificateFile /etc/ldap/servercrt.pem
	TLSCertificateKeyFile /etc/ldap/serverkey.pem
	loglevel	256

This tells slapd where to find our certificates and key, and we added an option to enable more verbose logging. Next we need to start an LDAP daemon that listens on port 636. To test your setup and get immediate feedback, start a debugging slapd. Ensure no other instances of slapd are running and issue the following command as root:

slapd -h 'ldap:// ldaps://' -d1

This command starts a normal slapd running on port 389 and an SSL-only slapd running on port 636. If you messed up any of the above steps, slapd will refuse to start with a sometimes less-than-helpful error message.

Client encryption configuration

Once the server is running smoothly and listening on port 636, we can configure a client. While on the client machine, open /etc/ldap/ldap.conf and make the following changes:

	BASE    dc=example,dc=org
	URI     ldaps://example.org
	TLS_REQCERT allow

We changed the URI stanza to consult ldaps:// instead of the unencrypted ldap://. The TLS_REQCERT stanza allows the client to request the server’s certificate, alleviating the need to place a copy of the certificate on each client machine.

Next we need to configure the client’s authentication files to use our newly minted secure connection. First up is /etc/libnss-ldap.conf. Comment out any “host” lines and ensure only the following exists:

	base dc=example,dc=org
	uri ldaps://example.org
	ldap_version 3

Notice the change to “ldaps://” in the above lines. Next we will edit /etc/pam_ldap.conf and change it to use SSL. Open /etc/pam_ldap.conf and ensure the following exists:

	base dc=example,dc=org
	uri ldaps://example.org/
	ldap_version 3
	rootbinddn cn=admin,dc=example,dc=org
	pam_password exop

Note the mention here of ldaps://. Again, any “host” stanzas or any lines referring to an IP address rather than the CN of the server certificate will break your setup. SSL is extremely picky in this regard.

Since we have made some serious changes, we now need to restart the name service cache daemon (nscd). Issue the command:

/etc/init.d/nscd restart

Because we made the server run a slapd that listens to both insecure and secure connections, we can test normal and encrypted LDAP. First, test a normal LDAP connection:

ldapsearch -x -b dc=example,dc=org -H 'ldap://example.org'

And to test LDAP over SSL:

ldapsearch -x -b dc=example,dc=org -H 'ldaps://example.org'

If the second ldapsearch command worked, client logins will be encrypted. You can verify this by looking at the output on the server terminal you started slapd with. Log in as an LDAP user on your client machine. Congratulations, you’ve securely authenticated over LDAP.

To make LDAP over SSL the only option on your network, open /etc/default/slapd on the OpenLDAP server and change the SLAPD_SERVICES line to the following:

	SLAPD_SERVICES="ldaps:///"

Linux and LDAP play together nicely, and now we know how to make LDAP more flexible and secure. Making LDAP work with SSL is a sometimes tedious process that grinds to a halt if LDAP is not configured correctly. But the alternative of exchanging unencrypted user information is not an option. With what you now know, you should be able to make the connections work.

Apache mod_auth_ldap

Чтобы получить авторизацию LDAP в apache, вам необходимо загрузить модуль mod_auth_ldap

Теперь достаточно изменить .htaccess:

Обратите внимание, что этот метод можно также использовать для авторизации Subversion WebDAV

Can’t connect to ldap accounts with lightdm

Let us start with a fresh install of Linux Mint and reconfigure the LDAP client from scratch. I am referencing this guide as it appears to be the most straight forward one I could find.

Study up on PAM and LDAP authentication here. You can also reference this guide for additional information. You mentioned that you have done this before, to help troubleshoot look into what is different about your current set up compared to the previous known working set up. Best of Luck!

Configure ldap client in ubuntu 16.04 and 18.04

First start by installing the necessary packages by running the following command.

$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

During the installation, you will be prompted for details of your LDAP server (provide the values according to your environment). Note that the ldap-auth-config package which is auto-installed does the most of the configurations based on the inputs you enter.

Enter LDAP Server URI
Enter LDAP Server URI

Next, enter the name of the LDAP search base, you can use the components of their domain names for this purpose as shown in the screenshot.

Enter LDAP Search Base
Enter LDAP Search Base

Also choose the LDAP version to use and click Ok.

Select LDAP Version
Select LDAP Version

Now configure the option to allow you to make password utilities that use pam to behave like you would be changing local passwords and click Yes to continue..

Create a container ( ou=server ) for managing servers

Create a file named serverou.ldif with the below content,

dn: ou=server,ou=group,dc=devopsideas,dc=com
objectClass: organizationalUnit
ou: server
description: Group for managing servers

Run the below command to implement the change,

Create the server group entries within ou=server container

Create a file named server_group.ldif and copy the below content.

Deleting entries

Deleting an entry is very easy, just use ldapdelete command with the cn you want:

Information security squad

stay tune stay secure

Installing openldap

To install OpenLDAP, you have to install openldap, openldap-servers, and openldap-clients packages.

$ yum -y install openldap openldap-servers openldap-clients

Or, if you are using CentOS 7, you can use dnf or Dandified Yum.

$ dnf -y install openldap openldap-servers openldap-clients

If you are using a Debian based system like Ubuntu, you can install it like this:

$ sudo apt-get install slapd

$ sudo apt-get install ldap-utils

Then we can enable the service to run automatically at startup:

$ systemctl enable slapd

Ldap port

LDAP port is 389, and in case you secure your LDAP using TLS, the port will be 636.

You can ensure what port your OpenLDAP is running using the netstat command.

$ netstat -ntlp | grep slapd

Ldap server implementations

LDAP is an open standard protocol that many companies make their implementation of the protocol.

There are commercial implementations of LDAP like:

  • Microsoft Active Directory.
  • Oracle Internet Directory.
  • Oracle Unified Directory.
  • IBM Security Directory Server.
  • UnboundID Directory Server.
  • NetIQ eDirectory or eDirectory.
  • CA Directory or CA eTrust Directory.

And free open source implementations like:

  • OpenLDAP.
  • ForgeRock OpenDJ.
  • Apache DS.
  • 389 Directory Server.

In this post, we will use OpenLDAP, which is very common and loved by the community.

OpenLDAP is the open-source implementation of LDAP that runs on Linux/UNIX systems.

Ldap terminology

If we are going to deal with LDAP protocol, there are some terms that we need to know because we will use them a lot.

Entry (or object): every unit in LDAP considered an entry.

dn: the entry name.

o: Organization Name.

Ldap-«аутентификация» — это антипаттерн

Сегодня в любой организации есть LDAP-каталог, наполненный пользователями этой организации. Если присмотреться, вы найдете одно или несколько приложений, которые используют этот же каталог для «аутентификации». И кавычки здесь неспроста, ведь LDAP — это протокол доступа к каталогам, спроектированный для чтения, записи и поиска в службе каталогов.

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

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

Чтобы разобраться в том, что это за уязвимости, сперва нужно понять, как работает LDAP-аутентификация.

Modifying entries

OpenLDAP stores its information in bdb or hdb files. You can find the hdb file in:

/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

file.

To identify an element, use the dn (distinguished name) attribute. So the first line in our LDIF file will be:

dn: olcDatabase={2}hdb,cn=config

Then we specify if we want to add or modify

changeType: modify

We also must clarify if we’ll replace it or delete it

replace: olcSuffix

And, finally, we type the new value of the changed attribute.

olcSuffix: dc=likegeeks,dc=local

Back to our file. Change the following entries like this:

olcSuffix: dc=my-domain,dc=com

olcRootDN: cn=Manager,dc=my-domain,dc=com

So our LDIF file will be like this:

Overcoming posixgroup and groupofnames caveat

We will be creating server group objects of type posixGroup under ou=server container. The posixgroup is required to provide the translation between group id numbers and their name. We’ll be providing access to servers based on membership of the groups.

Service id for linux client binding

Create a service id cn=serverid,ou=service_ids,dc=devopsideas,dc=com, for binding LDAP clients. Since we need to specify password for this, we’ll create password hash first,

$ slappasswd -h {SHA} -s <password>{SHA}qUqP5cyxm6YcTAhz05Hph5gvu9M=

Create a file named serverid.ldif with the below content.

Авторизация с использованием ldap

Здравствуйте! Пытаюсь настроить авторизацию на Linux mint 17 через Active Directory 2003, делаю по статье Ссылка.

getent passwd не выводит доменных пользователей, но в логах появляется ошибка:

Авторизация через ldap на linux сервере

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

Записки линуксоидов

У программиста есть два состояния: “Втупляю” и “Попёрло”. (C) Gen

Как работает ldap-аутентификация

Представьте себе следующую ситуацию (она далека от реальности, но отлично передает суть).

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

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

Помимо проблем с логистикой, данная ситуация полна других вопросов. Что, если недобросовестный проверяющий сделал копию моего ключа? Или он оставил ключ надолго без присмотра, и это сделал кто-либо еще? Что, если на проверяющего напали и забрали мой ключ? Когда я отдаю ключ от своей квартиры незнакомцу, я не могу быть уверен в его порядочности и своей безопасности.

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

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

К счастью, в более полном мире аутентификации у нас также есть паспорта и водительские права! Протоколы аутентификации, такие как Kerberos, SAML и OpenID Connect, выпускают токены третьим лицам. Токены подтверждают, что вы являетесь тем, за кого себя выдаете, и нет необходимости передавать кому-либо свои ключи. Поскольку LDAP никогда не разрабатывался как протокол аутентификации, соответствующие механизмы у него отсутствуют.

Как установить и настроить клиент ldap в ubuntu и centos

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

Какие есть варианты?

Сегодня веб-приложения действительно могут обойтись без LDAP-аутентификации. Существует множество прекрасных веб-протоколов аутентификации, таких как SAML, WS-Federation и OpenID Connect, которые не требуют учетных данных пользователя для работы со сторонними приложениями.

Бесчисленное количество продуктов предоставляют эти услуги, включая Active Directory Federation Service (встроенные в Windows Server) или сторонние сервисы, такие как Microsoft Azure AD, Okta, Ping и другие. Если в организации нет федеративного IdP, первое, что нужно сделать — внедрить его.

Главное, на что стоит обратить внимание при выборе нового ПО — поддержка современных протоколов аутентификации. Даже если приложение требуется бизнесу здесь и сейчас, не стоит спешить с выбором решения, особенно, если этот выбор ограничен только продуктами с LDAP-аутентификацией.

Число десктоп-приложений с «толстым клиентом», поддерживающих современные протоколы аутентификации, растет, и это действительно радостная тенденция. Эти приложения обычно были оплотом LDAP-аутентификации. Растет число SDK, таких, как Microsoft Authentication Library (MSAL), которые позволяют разработчикам легко добавлять поддержку современных сервисов аутентификации в свои мобильные и десктоп-приложения.

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

Источник

Конфигурация клиента

Под клиентом я имею в виду машину, которая подключается к LDAP-серверу для получения пользователей и авторизации.

Это может быть и машина, на которой работает LDAP-сервер.

В обоих случаях мы должны отредактировать три файла: /etc/ldap.conf, /etc/nsswitch.conf и /etc/pam.d/system-auth

Начнем с ldap.conf, клиента ldap:

Теперь пришло время для nsswitch.conf и pam

Добавьте в nsswitch.conf:

И измените system-auth (или все, что у вас есть, например login, sshd и т. д.):

Время проверить его. Лучший инструмент для этого — хороший старый getent.

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

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

По часть pam , работоспособность может быть протестирована путем удаления пользователя из /etc/passwd и попытки входа в систему через ssh.

Миграция / добавление данных в каталог

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

Я покажу вам, как переносить существующие записи из обычных /etc/ passwd, /etc/shadow, /etc/groups

Первый шаг — настроить mogrationtools.

Конфигурационный файл в Gentoo находится в /usr/share/migrationtools/migrate_common.ph.

Как правило, вам нужно изменить только эти моменты:

Теперь вы готовы перенести данные (на самом деле это работает даже без команды export):

Теперь у нас есть данные в формате, понятном серверу LDAP.

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

После этого мы можем добавить данные из ldifs.

Вы можете попробовать найти некоторые данные:

Настройка openldap

OpenLDAP состоит из slapd и slurpd-демона.

Этот способ охватывает один сервер LDAP без репликации, поэтому мы сосредоточимся только на slapd.

Я также предполагаю, что вы установили и инициализировали установку OpenLDAP (в зависимости от системы / распространения).

Если да, перейдем к части конфигурации.

В моей системе (Gentoo) конфигурация OpenLDAP хранится в /etc/openldap, нас интересует файл /etc/openldap/slapd.conf.

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

Конфигурация выглядит так:

Не забудьте изменить суффикс и пути.

Это варианты с некоторыми базовыми ACL, необходимыми для изменения паролей пользователем.

Если вам нужна дополнительная функциональность, прочитайте руководство по OpenLDAP.

Теперь, когда у нас есть надлежащая конфигурация для slapd, мы можем запустить демон:

Пожалуйста, не забудьте сделать что-то подобное в файле конфигурации, отвечающем за аргументы, переданные slapd (путь должен указывать на slapd.sock):

Теперь мы можем проверить, работает ли openldap и работает ли он правильно.

У нас еще нет данных в каталоге, но мы можем попытаться связать их как cn = Manager, dc = domain, dc = com.

Когда вас попросят ввести пароль, вы должны использовать тот, который вы создали (конечно, его текстовая версия :):

Настройка клиента ldap в centos 7

Чтобы установить необходимые пакеты, выполните следующую команду.

Обратите внимание, что в этом разделе, если вы работаете с системой как пользователь без полномочий root, используйте команду sudo для запуска всех команд.

# yum update && yum install openldap openldap-clients nss-pam-ldapd

Затем включите клиентскую систему для аутентификации с использованием LDAP.

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

Настройте клиент ldap в ubuntu 16.04 и 18.04

Сначала начните с установки необходимых пакетов, выполнив следующую команду.

$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

Во время установки вам будет предложено ввести информацию о вашем сервере LDAP (укажите значения в соответствии с вашей средой).

Обратите внимание, что автоматически устанавливаемый пакет ldap-auth-config выполняет большинство конфигураций на основе введенных вами данных.

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

Также выберите версию LDAP для использования и нажмите Ok.

Теперь настройте опцию, чтобы позволить вам создавать утилиты паролей и нажмите Yes

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

Также определите учетную запись LDAP для root и нажмите Ok.

Затем введите пароль для использования, когда ldap-auth-config пытается войти в каталог LDAP, используя учетную запись LDAP пользователя root.

Результаты диалога будут сохранены в файле /etc/ldap.conf.

Если вы хотите внести какие-либо изменения, откройте и отредактируйте этот файл, используя ваш любимый редактор командной строки.

Затем настройте профиль LDAP для NSS, запустив.

$ sudo auth-client-config -t nss -p lac_ldap

Затем настройте систему на использование аутентификации LDAP, обновив конфигурации PAM.

В меню выберите LDAP и любые другие необходимые вам механизмы аутентификации.

Теперь вы должны войти в систему, используя учетные данные на основе LDAP.

$ sudo pam-auth-update

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

$ sudo vim /etc/pam.d/common-session

Добавьте эту строку в него.

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

Сохраните изменения и закройте файл.

Затем перезапустите службу NCSD (Name Service Cache Daemon) с помощью следующей команды.

$ sudo systemctl restart nscd
$ sudo systemctl enable nscd

Примечание. Если вы используете репликацию, клиенты LDAP должны будут ссылаться на несколько серверов, указанных в /etc/ldap.conf.

Вы можете указать все серверы в этой форме:

Недостатки ldap как системы аутентификации

В 2007 году Шумон Хак выпустил фантастическую статью (LDAP Weaknesses as a Central Authentication System), в которой он описывает три конкретные проблемы при использовании LDAP в качестве системы аутентификации.

Ограничение авторизации

Помимо этого метода можно сделать через nss_base_ это позволит указывать LDAP на какие машины разрешено заходить пользователю или группе.

Источник

Средства администрирования ldap

Есть несколько инструментов, которые я рекомендую использовать для администрирования сервера OpenLDAP

Источник

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

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