nixp.ru v3.0

21 января 2017,
суббота,
16:22:30 MSK

DevOps с компанией «Флант»
raba написал 3 октября 2008 года в 09:47 (538 просмотров) Ведет себя неопределенно; открыл 33 темы в форуме, оставил 77 комментариев на сайте.

(OS FreeBSD 7)У меня ldapbrowser-2.8.2_2, он либо не запускается(вообще ничего не происходить), либо запускается, пока ты с ним ничего не сделал он стоить и не шивелится, как только поднажал пару тройку кнопочек, вываливается как миленкий без всеких предупреждении.В логах ничего. Если кто-нибудь с етим сталкивался, поделитесь, а то у меня нервы не хватить .

Anarchist

Уточняющий вопрос: тебе просто нужен работоспособный GUI LDAP Client или ты хочешь упереться в ldapbrowser.

Если первое — могу поделиться своими наработками и способом решения проблемы.

Если второе — только пожелать удачи.

raba

Поделись, структура у меня большая с gui проще работат, а к ldapbrowsery я просто привик, он мне очень нравился :)

Anarchist
raba
Поделись, структура у меня большая с gui проще работат

Не соглашусь.

Существенно зависит от выполняемых действий.

raba
а к ldapbrowsery я просто привик, он мне очень нравился :)

Попробуй на досуге самостоятельно разобраться.

Получится — отпишись.

Ещё можешь передать Шурупу всё, что ты о нём думаешь относительно его спячки: уже не первый месяц как я отправил ему для публикации две статьи по LDAP’у…

Короче, я решил задачу так:

1. Есть не безупречная, с жутким гуём, но весьма приятной и продуманной функциональностью программа luma.

2. Но в качестве основного решения я всё же остановился на phpldapadmin.

Ну и краткое описание по последнему (цитирую себя любимого):

Установку PLA (три буквы — наше фсё) имеет смысл описать поподробнее, тем более что в силу особенностей архитектуры клиент-сервер (но не только поэтому) предполагаю использовать в качестве основного клиента.

Версия 1.1.0.5 меня очень порадовала.

\subsubsection{Установка PLA.}

Дабы не грузить попусту мою (и только мою) рабочую станцию, ну и для получения полного набора преимуществ от клиент-серверной архитектуры, сервер PLA будет разворачиваться на вспомогательном сервере (т.е. на FreeBSD, возможно, но совершенно не обязательно — на том же хосте, что и LDAP-сервер; в моём зоопарке реализовано оба варианта).

Там нужный клиент располагается в несколько другом каталоге: net/phpldapadmin.

\paragraph{Выбор web-server’а.}

Варианты устанавливаемого по мягкой зависимости web-server’а в FreeBSD описаны в файле

/usr/ports/Mk/bsd.apache.mk.

По умолчанию при не объявленной явно в зависимости версии web-server’а ставится Apache 1.3. Что меня категорически не устраивает.

Согласно указанному файлу для установки желаемой версии Индейца (2.2) необходимо задать значение переменной USE_APACHE=«2.2».

Задавать его просто в командной строке столь же неправильно, как в Gentoo Linux устанавливать ПО командой

USE="some_value" emerge some_package

Но куда его прописывать по-правильному — совершенно непонятно.

Поэтому:

# export USE_APACHE="2.2"

\paragraph{Собственно установка PLA.}

Здесь делать нечего.

Нужный web-server уже выбран, осталось только:

# cd /usr/ports/net/phpldapadmin
# make
# make install
# make clean


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

\paragraph{Конфигурирование web-server’а.}

Авторизованный доступ к LDAP работает только для случая защищённого соединения (т.е. необходимо использовать OpenSSL).

Генерация сертификатов подробно описана в здесь (только необходимо помнить, что не все браузеры корректно отрабатывают такие сертификаты центров авторизации, не далее как 03.10.2008 Опера 9.5 сказала, что этот метод шифрования ключа она не поддерживает).

Кратко:

В /etc/ssl/openssl.cnf прописать требуемую длину ключа (4096 или 8192).

Далее (в предположении, что генерация осуществляется на машине с основной базой сертификатов, ну и, естественно, ca.crt и ca.key):

# openssl genrsa -des3 -out pla.key 8192
# openssl req -new -subj '/C=RU/ST=Moscow/L=Moscow/O=ORGANIZATION/OU=LDAP/CN=pla/emailAddress=ldap-admin@mydomain.ru' -key pla.key -out pla.csr
# openssl ca -days 366 -in pla.csr -cert /etc/ssl/ca.crt -keyfile /etc/ssl/ca.key -out pla.crt
(Для автоматического запуска web-server'а необходимо сформировать ключ содержащий passphrase)
# openssl rsa -in pla.key -out www.pla.key
# chmod 400 www.pla.key

И собственно правка конфигурационных файлов web-server’а:

В /usr/local/etc/apache22/httpd.conf необходимо прописать в секцию типов (mime) php:

AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps


а в секцию индексов — index.php

DirectoryIndex index.html index.php

Закомментировать директиву Listen для 80-го порта, собственно DocumentRoot и раскомментировать объявление конфига extrs/httpd-ssl.conf

Если PLA разворачивается на существующем web-сервере, для него необходимо прописать alias что-нибудь типа:

Alias /phpldapadmin/ "/usr/local/www/phpldapadmin/"

!!! Завершающий слэш в полном имени каталога носит наипринципиальнейший характер!!!

И в конфиге extra/httpd-ssl.conf:

1. Прописать заботливо сгенерённые сертификаты.

2. Прописать правила доступа к каталогу PLA:


Options none AllowOverride none AuthName "Посторонним В..." AuthType Basic AuthBasicProvider ldap AuthLDAPURL "ldap://authldap.mydomain.ru:389/ou=Users,dc=mydomain,dc=ru" AuthzLDAPAuthoritative off AuthLDAPBindDN uid=apache,ou=Services,dc=mydomain,dc=ru AuthLDAPBindPassword $SOME_PASSWORD Require ldap-attribute uid=my_super_uid uid=boss Order Deny,Allow Deny from all Allow from my-workstation.mydomain.ru boss.mydomain.ru </Directory>

И не забыть прописать ротацию логов Индейца в /etc/newsyslog.conf.

/var/log/httpd-access.log               640  8     *    $M1D0 JC
/var/log/httpd-error.log                640  8     *    $M1D0 JC
/var/log/httpd-ssl_request.log          640  8     *    $M1D0 JC

\paragraph{Конфигурирование PLA.}

Конфигурационный файл:

/usr/local/www/phpldapadmin/config/config.php

Из наличного примера не совсем очевидно как прописывать несколько серверов, поэтому этот моментя разберу поподробнее:

Секция с многообещающим названием

/*********************************************/

/* Define your LDAP servers in this section */

/*********************************************/

Переменная 'i’ — счётчик LDAP-серверов

Строку '$ldapservers = new LDAPServers;' грязными руками не трогать!!!

Первый LDAP-сервер прописывается следующим образом:

$ldapservers->SetValue($i,'server','name','Some OpenLDAP Server');
$ldapservers->SetValue($i,'server','host','$SERVER_IP');
// Или:
$ldapservers->SetValue($i,'server','host','samba-server.mydomain.ru');
// Требует наличия соответствующей записи в DNS.
$ldapservers->SetValue($i,'server','port','389');
// $ldapservers->SetValue($i,'login','dn','cn=Manager,dc=my-domain,dc=com');
// $ldapservers->SetValue($i,'login','pass','cleartext (!!!) password');
// $ldapservers->SetValue($i,'server','tls',false);//или 'true'

Последние три строчки можно раскомментировать по потребностям/вкусу/ситуации.

Второй:

i=1;
$ldapservers->SetValue($i,'server','name','Another OpenLDAP Server');
...

Далее — аналогично.

Для третьего i=2 etc.

Предопределённые поиски — это что-то с чем-то (короче: пиздец полный).

Завязаны исключительно на Самбу (возможно — на AD).

И секцию так просто не удалишь… :(

Про переписывание предопределённых поисков в PLA расскажу как-нибудь потом, может быть…

В конфиге объявляются далеко не все переменные.

Поэтому полезно:

1. Знать параметры базы.

2. Создать конфигурационный файл php (из умолчательного или рекомендованного примера) и прописать в него нужные параметры.

Кое-что можно объявить и в config.php, например таймаут:

$config->custom->session['timelimit'] = 300;

А вот как объявить в том же конфиге выделяемый объём памяти — пока не ясно.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 14499841 bytes) in /usr/local/www/phpldapadmin/lib/AJAXTree.php on line 82

Умолчания заданы (выбраны?) достаточно грамотно.

На моих примерах все проблемы решались в рамках умолчательных примеров за счёт изменения приёмов работы.

Скриншоты (PLA) посмотреть можно и на сайте проекта :)

raba

Anarchist, спасибо за довольно подробное описание, вечерком или на выходные попробую. Я кажется сталкивался увидев срийншоты pla с похожей щуке (lam-ldap account manager), попробую новенкий, и посмотрью кто для меня лучше. luma, счас ставлью и посмотрью на ее красоты :)), а похоже упертого ослика я победил — поставил diablo-jdk16 и скачал новенкого ldapbrowser и с ним пожалуй все работает :) .

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.