Следующая наша задача - подключение клиентских машин.
На сервере необходимо разрешить внешние подключения по TCP на порт 389.
В CentOS на клиентской стороне оказалось достаточным воспользоваться специальной утилитой от Red Hat - authconfig.
Сам authconfig предназначен для работы с командной строкой, но к нему есть текстовый интерфейс authconfig-tui и графический authconfig-gtk.
Нужно лишь установить две галочки напротив пунктов LDAP, указать ldap-сервер и базовый dn (dc=oper777,dc=local).
Но универсальным способом можно считать ручную настройку. Эти же действия первым делом выполнил на самом сервере, после чего повторил на клиентской стороне.
Установим пакеты для подключения.
CentOS:
# yum install openldap nss_ldap
Gentoo:
# emerge openldap nss_ldap pam_ldap
Далее необходимо добавить следующие четыре строки в /etc/pam.d/system-auth (при этом имеющиеся строки в файле не трогать):
auth sufficient pam_ldap.so use_first_pass account sufficient pam_ldap.so password sufficient pam_ldap.so use_authtok use_first_pass session optional pam_ldap.so
Вот мой system-auth:
#%PAM-1.0 auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth sufficient pam_ldap.so use_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth required pam_deny.so account sufficient pam_ldap.so account required pam_unix.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok use_first_pass 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
В файле /etc/ldap.conf нужно найти, раскоментировать и изменить следующие строки:
suffix "dc=oper777,dc=local" uri ldap://192.168.1.204/ pam_password exop ldap_version 3 pam_filter objectclass=posixAccount pam_login_attribute uid pam_member_attribute memberuid nss_base_passwd ou=People,dc=oper777,dc=local nss_base_shadow ou=People,dc=oper777,dc=local nss_base_group ou=Groups,dc=oper777,dc=local nss_base_hosts ou=Hosts,dc=oper777,dc=local scope one
В сервера надо забрать файл /etc/openldap/ldap.conf:
# scp 192.168.1.204:/etc/openldap/ldap.conf /etc/openldap
В файле /etc/nsswitch.conf
passwd: files ldap group: files ldap shadow: files ldap
Готово. Можно попробовать войти под учетной записью oper.
А что обозначает эта строка:
ОтветитьУдалитьnss_base_hosts ou=Hosts,dc=oper777,dc=local
Что нужно чтобы добавить ее на сервер? в первой статье по настройке сервера не было подобнвъ данных
Да, она, по идее, и не нужна. Её суть в том, чтобы client мог смотреть список хостов в ldap (как в MS Active Directory), но, поскольку подобной строки в /etc/nsswitch.conf нет, то эта функция не должна работать. Действительно можно убрать или закоментировать (тем более, что конфигурация сервера эту функцию не поддерживает).
ОтветитьУдалить