Показаны сообщения с ярлыком OpenLDAP. Показать все сообщения
Показаны сообщения с ярлыком OpenLDAP. Показать все сообщения

суббота, 12 ноября 2011 г.

Squid + OpenLDAP


Настройка Squid на аутентификацию и авторизацию по данными из OpenLDAP. Резолвятся логин, пароль, членство в группе.
Аутентификация:
Добавляем в /etc/squid/squid.conf:
auth_param basic program /usr/lib/squid/squid_ldap_auth -v 3 -b "dc=company,dc=lan" -f sn=%s localhost
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
Смотрим группу:
Добавляем в /etc/squid/squid.conf:
external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -P -v 3 -b "dc=company,dc=lan" -f "(&(objectClass=posixGroup)(cn=%a)(memberUid=%v))" localhost
Настройка соответствия групп openldap и ACL squid
acl full_access external ldap_group full_access
acl simple_access external ldap_group simple_access
acl simple_access_and_messagers external ldap_group simple_access_and_messagers
acl only_work_sites external ldap_group only_work_sites
ACL
acl list_work_sites dstdomain .ru.wikipedia.org
acl list_negative_sites dstdomain .vkontakte.ru .odnoklassniki.ru .youtube.com
ACL skype & icq
acl icq dstdomain .icq.com
acl numeric_IPs dstdom_regex ^(([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)|(\[([0-9af]+)?:([0-9af:]+)?:([0-9af]+)?\])):443
acl Skype_UA browser ^skype^
Раздача прав
http_access allow simple_access !list_negative_sites !icq !numeric_IPs !Skype_UA
http_access allow simple_access_and_messagers !list_negative_sites
http_access allow only_work_sites list_work_sites
http_access allow full_access
В openldap соответственно создаем группы и делаем их членами нужные нам учетные записи, сейчас схема такая:
simple_access - обычный доступ к инет
simple_access_and_messagers - доступ в инет + доступ к isq, skype
only_work_sites - доступ к рабочим сайтам
full_access - доступ в инет без ограничений
(вместо company.lan подставляем имя вашего домена в openldap)

Установка OpenLDAP

(ОС: CentOS)


Устанавливаем:
yum install openldap-servers openldap-clients
Генерируем пароль:
slappasswd -h {MD5}
Полученный результат вставляем в /etc/openldap/slapd.conf значением для rootpw и корректируем все остальные параметры, если нас не устраивают их дефолтные значения
suffix          "dc=company,dc=lan"
rootdn          "cn=sysadmin,dc=company,dc=lan"
rootpw         {MD5}hNlhVodfgzwdfg6yFrKldg==

access to attrs=userPassword,shadowLastChange
        by dn="cn=sysadmin,dc=company,dc=lan" write
        by anonymous auth
        by self write
        by * none

access to dn.base="" by * read

access to *
        by dn="cn=sysadmin,dc=company,dc=lan" write
        by * read
(вместо "dc=company,dc=lan" указываем свой новый домен)
Удаляем базы из /var/lib/ldap и перезапускаем openldap
cd /var/lib/ldap
rm -fr ./*
Копируем файл /etc/openldap/DB_CONFIG.example в /var/lib/openldap/
cp /etc/openldap/DB_CONFIG.example /var/lib/openldap/DB_CONFIG
Перезапускаем
service openldap restart
Создаем файл cat.diff
dn: dc=company,dc=lan
objectClass: dcObject
objectClass: top
objectClass: organization
dc: company
o: main_domain
Заливаем первичные данные из этого файла в openldap
ldapadd -x -D "cn=sysadmin,dc=company,dc=lan" -W -f cat.diff
Проверяем созданный нами домен
ldapsearch -x -LLL -D «cn=sysadmin,dc=company,dc=lan» -b «dc=company,dc=lan» «dc=company» -W
Ставим админку
yum install php, phpldapadmin
Правим /etc/ldap.conf
BASE    dc=company,dc=lan
URI     ldap://127.0.0.1
Переименовываем /etc/phpldapadmin/config.php.example в config.php
mv /etc/phpldapadmin/config.php.example /etc/phpldapadmin/config.php
Заходим в phpldapadmin
http://<ip_address>/phpldapadmin