пятница, 25 марта 2011 г.

Установка SVN, BUGZILLA на Ubuntu server с авторизацией в ActiveDirectory

Что мы хотим получить
1. Ubuntu и пользователя авторизующегося в Active Directory
2. Установленный сервер SVN и опять авторизацию через Active Directory
3. WEBSVN и снова авторизацию через Active Directory
4. И конечно же bugzilla с авторизацией через Active Directory
Для начала установим apache web server, он нам понадобится для доступа к репозиторию через web. Установка выполняется командой:

sudo apt-get install apache2
#Включаем модуль отвечающий за авторизацию в LDAP
a2enmod mod_authnz_ldap

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

sudo apt-get install subversion libapache2-svn

После успешной установки необходимо создать репозиторий. Это делается командой

svnadmin create /path_to_repository/

Если ненужны никакие супер плюшки и достаточно только доступа по  webDAV, необходимо отредактировать файл /etc/apache2/mods-available/dav_svn.conf

<location /svn>
DAV svn
SVNPath /путь_к_репозиторию
AuthType Basic
AuthName "Название репозитория"
AuthUserFile /etc/subversion/файл_паролей
<limitexcept get options propfind report >
Require valid-user
</limitexcept>
</location>

Для  того что бы работала авторизация через ActiveDirectory в Ubuntu необходимо сделать следующее:
Изучить материал https://help.ubuntu.com/community/ActiveDirectoryWinbindHowto
И http://wiki.izhnet.org/pages/viewpage.action?pageId=5668930 После прочтения двух статей я внесла изменения в настройки samba, настройки PAM я не использовала из статьи, а оставила стандартные.
Для присоединения к домену я использовала следующую команду, с другими  не работало:

sudo net rpc  join -S ROOT2 -U user%domain

Для того что бы заработало SUDO добавляем в sudoer файлик следующие данные

username ALL=(ALL) ALL
или
%adgroup ALL=(ALL) ALL

Для авторизации через домен в APACHE я использую следующие настройки:
1. С начало в Ldap.conf добавить параметр REFERALS off, пока его не добавила авторизоваться через домен система отказывалась
2. Для настройки авторизации websvn изменяем файл websvn.conf
Дополнительное описание параметров можно найти тут - http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html

<location /websvn>
AuthType Basic
AuthName "My Repository"
AuthBasicProvider ldap
AuthLDAPURL "ldap://root2.domain.local:389/DC=domain,DC=local?sAMAccountName?sub?(objectClass=user)" NONE
AuthzLDAPAuthoritative off
AuthLDAPBindDN "readldap@DOMAIN"
AuthLDAPBindPassword 1qaz2wsx3edc
#  Require valid-user # Нужен только правильный логин
require ldap-group cn=GSVN,cn=Users,dc=domain,dc=local #Пользователь должен быть членном группы
</location>

3. А для svn

<location /var/svn>
DAV svn
SVNParentPath /var/svn/
SVNListParentPath on
AuthName "UBB  repository"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL "ldap://root2.domain.local:389/ou=users,DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
AuthzLDAPAuthoritative off
AuthLDAPBindDN "readldap@DOMAIN"
AuthLDAPBindPassword 1qaz2wsx3edc
#Разрешения для работы с репозиторием
<limitexcept copy delete lock merge mkactivity mkcol move post proppatch put unlock=>
require ldap-group cn=GSVN,cn=Users,dc=domain,dc=local
</limitexcept>
</location>

Как устанавливать bugzilla писать нет смысла, в общем случае нужна всего одна команда sudo apt-get install bugzilla3
Что бы не перенастраивать apache  подменяем файлика index.html в /var/www на index.html из каталога bugzilla
Для авторизации  bugzilla через ldap должен быть обязательно установлен
libnet-ldap-perl
Для настройки авторизации в домене - я использовала стандартные параметры

LDAPserver ldap://root2.domain.local:389/DC=domain,DC=local?sAMAccountName?sub?(objectClass=*)
LDAPbinddn readldap@domain.local:1qaz2wsx3edc
LDAPBaseDN DC=domain,DC=local
LDAPuidattribute sAMAccountName
LDAPmailattribute sAMAccountName
Также Ldapfilter должен выглядить так(&(memberOf=cn=GSVN,cn=Users,dc=domain,dc=local))

Комментариев нет: