Задача
Настроить аутентификацию Active Directory пользователей в Subversion для работы по протоколу SVN.
Использованные материалы
Using Cyrus SASL Authentication with Subversion
Настройка SVN вместе с LDAP
SVN SASL Commit - Authorisation failed
Subversion+OpenLDAP
SVN Authentication against a Microsoft Active Directory using svnserve sasl, ldap
Chapter 6. Server Configuration
Создаем свой SVN сервер: 3$ и 30 минут
Реализации
Доступ к SVN может быть предоставлен несколькими способами:
1. Доступ по протоколу SVN используя встроенную аутентификацию.
2. Доступ по протоколу SVN используя SASL аутентификацию.
3. Доступ по протоколу HTTP/HTTPS через Apache и libapache2-svn.
4. Доступ через тонель поверх SSH.
На данный момент у нас настроен с пособ с Apache/HTTPS. Устраивает всё кроме скорости работы. Посему всё склоняются к работе по протоколу svn:// и используя внутренюю аутентификцию.
Будет использован механизм аутентификации SASL-ldap.
Настройка
Окружение
Устанавливаем необходимые пакеты
Настраиваем SASL
Стартуем SASL демон
Тестируем что наш SASL-ldap механизм работает
Указываем SVN что аутентификация у нас будет через SASL
Создаём файл с настройками уатентификации для SVN в папке с плагинами для sasl(имя файла svn.conf)
Перегружаем демон SVN
Теперь пользователи Active Directory смогут получать доступ к репозиторию согласно доступам прописанным в файле authz-db = ../../authz
Недостатки метода
При таком методе аутентификации мы вынуждены передавать пароль в PLAIN а иначе мы несможем cоедениться с AD.
В результате:
Метод я настроил и понял что пользоваться им нестоит, т.к. под угрозу ставяться пароли пользователей.
Пошёл смотреть в сторону SVN + SASL GSSAPI(Kerberos)
Стоит обратить внимание на параметр auxprop_plugin: в файле svn.conf. В ubuntu 12.04 precise его значение должно быть ldapdb, хотя в других системах, в том числе и ubuntu 10.04 lucid допускалось ldap.
Настроить аутентификацию Active Directory пользователей в Subversion для работы по протоколу SVN.
Использованные материалы
Using Cyrus SASL Authentication with Subversion
Настройка SVN вместе с LDAP
SVN SASL Commit - Authorisation failed
Subversion+OpenLDAP
SVN Authentication against a Microsoft Active Directory using svnserve sasl, ldap
Chapter 6. Server Configuration
Создаем свой SVN сервер: 3$ и 30 минут
Реализации
Доступ к SVN может быть предоставлен несколькими способами:
1. Доступ по протоколу SVN используя встроенную аутентификацию.
2. Доступ по протоколу SVN используя SASL аутентификацию.
3. Доступ по протоколу HTTP/HTTPS через Apache и libapache2-svn.
4. Доступ через тонель поверх SSH.
На данный момент у нас настроен с пособ с Apache/HTTPS. Устраивает всё кроме скорости работы. Посему всё склоняются к работе по протоколу svn:// и используя внутренюю аутентификцию.
Будет использован механизм аутентификации SASL-ldap.
Настройка
Окружение
Код: [Выделить]
cat /etc/lsb-release
Цитировать
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"
Код: [Выделить]
svn --version
Цитировать
svn, version 1.6.17 (r1128011)Т.е. настройка в Ubuntu 12.04 где SVN уже идёт с поддержкой SASL.
compiled Dec 17 2011, 16:12:52
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
Устанавливаем необходимые пакеты
Код: [Выделить]
sudo apt-get install sasl2-bin libsasl2-2 libsasl2-modules libsasl2-modules-ldap
Настраиваем SASL
Код: [Выделить]
vi /etc/default/saslauthd
Цитировать
START=yes
MECHANISMS="ldap"
Код: [Выделить]
vi /etc/saslauthd.conf
Цитировать
ldap_servers: ldap://dc.domain.com
ldap_search_base: OU=Users,DC=DOMAIN,DC=COM
ldap_bind_dn: domain\ldapuser
ldap_bind_pw: *******
# Misc options for LDAP to make it work with Microsoft AD
ldap_deref: never
ldap_restart: yes
ldap_scope: sub
ldap_use_sasl: no
ldap_start_tls: no
ldap_version: 3
ldap_auth_method: bind
ldap_filter: (sAMAccountName=%u)
ldap_password_attr: userPassword
ldap_timeout: 10
ldap_cache_ttl: 30
ldap_cache_mem: 32768
Стартуем SASL демон
Код: [Выделить]
/etc/init.d/saslauthd restart
Тестируем что наш SASL-ldap механизм работает
Код: [Выделить]
testsaslauthd -u domainuser -p *******
Цитировать
0: OK "Success."Ежели проблемы, то стартуем sasl демон с дебагом и смотирм логи
Код: [Выделить]
/usr/sbin/saslauthd -a ldap -d -n 1 -V
tail /var/log/auth.log
Указываем SVN что аутентификация у нас будет через SASL
Код: [Выделить]
vi /var/svn/sandbox/conf/svnserve.conf
Цитировать
[general]
anon-access = none
auth-access = write
authz-db = ../../authz
realm = Sandbox
[sasl]
use-sasl = true
min-encryption = 0
max-encryption = 256
Создаём файл с настройками уатентификации для SVN в папке с плагинами для sasl(имя файла svn.conf)
Код: [Выделить]
vi /usr/lib/sasl2/svn.conf
Цитировать
## Password check method, default to the SASL AUTH daemon
pwcheck_method: saslauthd
## Auxiliary (propery) plugin, use ldapdb
auxprop_plugin: ldapdb
## Mechanism list, MS AD requires you to send credentials in plain text
mech_list: PLAIN
ldapdb_mech: PLAIN
## Saslauthd socket path
saslauthd_path: /var/run/saslauthd/mux
## Ldap server uri
ldapdb_uri: ldap://dc.domain.com
Перегружаем демон SVN
Код: [Выделить]
service svnserve restart
Теперь пользователи Active Directory смогут получать доступ к репозиторию согласно доступам прописанным в файле authz-db = ../../authz
Недостатки метода
При таком методе аутентификации мы вынуждены передавать пароль в PLAIN а иначе мы несможем cоедениться с AD.
В результате:
Код: [Выделить]
tcpdump -ni eth0 -A src host 192.168.1.2 and tcp dst port 3690
Цитировать
17:10:10.488834 IP 192.168.1.2.59751 > 192.168.1.1.3690: Flags [P.], seq 145:184, ack 166, win 65115, length 39Заходим Base64 Decode и видим какой пароль передавался по сети.
E..O.b@...."..@...@ .g.j....~...P..[....( PLAIN ( 21:AHVzZXIAcGFzc3dvcmQ=
Метод я настроил и понял что пользоваться им нестоит, т.к. под угрозу ставяться пароли пользователей.
Пошёл смотреть в сторону SVN + SASL GSSAPI(Kerberos)
Источник:
http://forum.ubuntu.ru/index.php?topic=197819.0Стоит обратить внимание на параметр auxprop_plugin: в файле svn.conf. В ubuntu 12.04 precise его значение должно быть ldapdb, хотя в других системах, в том числе и ubuntu 10.04 lucid допускалось ldap.
Комментариев нет:
Отправить комментарий