Мы настроим систему таким образом, что не только аутентификация будет проходить через защищённое соединение, но и phpldapadmin будет использовать TLS для соединения с openLDAP.
Установку и настройку будем производить в CentOS 6. Установим apache, php и php-ldap:
[root@server ~]# yum install httpd php php-ldap
Далее настроим шифрованное соединение с нашим web-сервером(https://). Для этого установим пакет mod_ssl:
[root@server ~]# yum install mod_ssl
Создадим каталог и сформируем ключи для безопасного соединения, которые будут лежать в созданном каталоге:
[root@server ~]# mkdir /etc/httpd/ssl
[root@server ~]# cd /etc/httpd/ssl
[root@server ssl]# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out /etc/openldap/certs/slapdcert.pem -keyout /etc/openldap/certs/slapdkey.pem
[root@server ~]# cd /etc/httpd/ssl
[root@server ssl]# openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out /etc/openldap/certs/slapdcert.pem -keyout /etc/openldap/certs/slapdkey.pem
Теперь настроим apache на использование этих ключей. В файле /etc/httpd/conf.d/ssl.conf в секции
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/slapdcert.pem
SSLCertificateKeyFile /etc/httpd/ssl/slapdkey.pem
SSLCertificateFile /etc/httpd/ssl/slapdcert.pem
SSLCertificateKeyFile /etc/httpd/ssl/slapdkey.pem
Теперь приступим к установке и настройке phpldapadmin. Можно пойти простым путём и установить пакет из репозитория epel, но я считаю, что web-приложения от этого только теряют, поскольку исправления и новшества этих проектов медленно попадают в репозитории(если вообще попадают).
Скачиваем последний доступный архив с оф.сайта и распаковываем в удобную для вас директорию, например, /var/www/html:
[root@server ~]# cd /var/www/html
[root@server html]# wget http://sourceforge.net/projects/phpldapadmin/files/latest/download?source=files
[root@server html]# tar -xf phpldapadmin-1.2.3.tgz
[root@server html]# mv phpldapadmin-1.2.3 phpldapadmin
[root@server html]# wget http://sourceforge.net/projects/phpldapadmin/files/latest/download?source=files
[root@server html]# tar -xf phpldapadmin-1.2.3.tgz
[root@server html]# mv phpldapadmin-1.2.3 phpldapadmin
Копируем файл config.php.example в config.php
[root@server html]# cd /var/www/html/phpldapadmin/config
[root@server config]# cp config.php.example config.php
[root@server config]# cp config.php.example config.php
Внесём изменения в файл config.php:
$servers->SetValue('server','name','My LDAP Server');
$servers->SetValue('server','host','ldap_server_ip');
$servers->SetValue('server','port','389');
$servers->SetValue('server','attr','dn');
$servers->SetValue('server','tls',true);
$servers->SetValue('server','host','ldap_server_ip');
$servers->SetValue('server','port','389');
$servers->SetValue('server','attr','dn');
$servers->SetValue('server','tls',true);
Обратите внимание, что в файле config.php эти опции могут быть определены, но иметь другое значение, поэтому исправьте их, а не добавляйте новые.
Теперь создадим файл phpldapadmin.conf в каталоге /etc/httpd/conf.d и наполним его таким содержимым:
Alias /phpldapadmin /var/www/html/phpldapadmin/
<Directory /usr/share/phpldapadmin/htdocs>
Order Deny,Allow
Deny from all
Allow from all
</Directory>
<Directory /usr/share/phpldapadmin/htdocs>
Order Deny,Allow
Deny from all
Allow from all
</Directory>
Теперь для того, чтобы phpldapadmin соединялся с openLDAP используя TLS, необходимо добавить добавить такую опцию в /etc/openldap/ldap.conf
TLS_REQCERT allow
И наконец, добавим сервер apache в автозагрузку и запустим его
[root@server ~]# chkconfig httpd on
[root@server ~]# /etc/init.d/httpd start
[root@server ~]# /etc/init.d/httpd start
Теперь можете зайти на страничку по адресу https://ваш_сервер/phpldapadmin и войти под аккаунтом администратора.
P.S. При создании аккаунта samba-пользователя, имя аккаунта будет вида cn=username. Мне это неудобно и для меня необходимо вида uid=username. Если это важно и для вас, то для этого нужно в файле /var/www/html/phpldapadmin/templates/creation/sambaSamAccount.xml строку <rdn>cn</rdn> заменить на <rdn>uid</rdn>.
Комментариев нет:
Отправить комментарий