<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP</id>
	<title>Настройка SVN вместе с LDAP - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://lorwiki.zhbert.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP"/>
	<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP&amp;action=history"/>
	<updated>2026-10-12T23:39:45Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP&amp;diff=317&amp;oldid=prev</id>
		<title>Admin: 1 версия импортирована</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP&amp;diff=317&amp;oldid=prev"/>
		<updated>2023-02-27T18:39:18Z</updated>

		<summary type="html">&lt;p&gt;1 версия импортирована&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 21:39, 27 февраля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>http://lorwiki.zhbert.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP&amp;diff=316&amp;oldid=prev</id>
		<title>lor&gt;Cetjs2: Откат правок Abc123456 (обсуждение) к версии Mandala</title>
		<link rel="alternate" type="text/html" href="http://lorwiki.zhbert.ru/index.php?title=%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_SVN_%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B5_%D1%81_LDAP&amp;diff=316&amp;oldid=prev"/>
		<updated>2018-05-04T11:18:04Z</updated>

		<summary type="html">&lt;p&gt;Откат правок &lt;a href=&quot;/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Abc123456&quot; title=&quot;Служебная:Вклад/Abc123456&quot;&gt;Abc123456&lt;/a&gt; (&lt;a href=&quot;/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:Abc123456&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Обсуждение участника:Abc123456 (страница не существует)&quot;&gt;обсуждение&lt;/a&gt;) к версии &lt;a href=&quot;/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Mandala&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Участник:Mandala (страница не существует)&quot;&gt;Mandala&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Назначение ==&lt;br /&gt;
&lt;br /&gt;
В данной статье описывается настройка Subversion для авторизации пользователей через протокол LDAP. В качестве связующего звена между двумя сервисами будет использоваться демон saslauthd, предоставляющий простой уровень аутентификации и безопасности - SASL.&lt;br /&gt;
&lt;br /&gt;
== Целевая аудитория ==&lt;br /&gt;
&lt;br /&gt;
Данное руководство расчитано на опытных системных администраторов и/или опытных пользователей *nix-систем, которые настраивали раз в жизни subversion и openldap дома или на предприятии. Не смотря на такие жесткие требования, обычный copy-paste в 95% случаев приведет к желаемому результату. В статье акцент делается на настройку двух сервисов: subversion и saslauthd. Вопросы по администрированию и управлению openldap не рассматриваются, т.к. выходят за рамки данной статьи.&lt;br /&gt;
&lt;br /&gt;
== Стендовое оборудование ==&lt;br /&gt;
&lt;br /&gt;
Работоспособность методики проверена на двух системах: Fedora 14 и Debian Squeeze. Ключевые моменты, коих немного, будут описаны по мере необходимости. Тем не менее в других дистрибутивах GNU/Linux или ОС придется догадываться в чем может быть проблема, когда ничего не заработает.&lt;br /&gt;
&lt;br /&gt;
== Установка ПО ==&lt;br /&gt;
&lt;br /&gt;
Программное обеспечение ставится из репозиториев по умолчанию. При самостоятельной сборки из исходников работоспособность метода не гарантируется.&lt;br /&gt;
&lt;br /&gt;
'''Debian Squeeze''':&lt;br /&gt;
&lt;br /&gt;
 # apt-get install subversion subversion-tools&lt;br /&gt;
 # apt-get install ldap-utils slapd&lt;br /&gt;
 # apt-get install libsasl2-modules-ldap sasl2-bin&lt;br /&gt;
 # apt-get install libgsasl7 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-heimdal&lt;br /&gt;
&lt;br /&gt;
'''Fedora''':&lt;br /&gt;
&lt;br /&gt;
 # yum install openldap openldap-servers openldap-clients&lt;br /&gt;
 # yum install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-gssapi cyrus-sasl-lib&lt;br /&gt;
 # yum install cyrus-sasl-ldap cyrus-sasl-plain&lt;br /&gt;
&lt;br /&gt;
== Подготовка ==&lt;br /&gt;
&lt;br /&gt;
Первым делом вам необходимо настроить сервер openldap. К этому моменту считаем, что вы это уже сделали. В кратце вам необходимо иметь хотя бы одну учетную запись с objectClass organizationalPerson и/или inetOrgPerson.&lt;br /&gt;
&lt;br /&gt;
== Настройка saslauthd ==&lt;br /&gt;
&lt;br /&gt;
Зададим параметры, по которым saslauthd будет искать и проверять введенные данные от пользователей. Файл ''/etc/saslauthd.conf''&lt;br /&gt;
&lt;br /&gt;
 ldap_servers: ldap://'''&amp;lt;SERVER IP ADDRESS&amp;gt;'''/&lt;br /&gt;
 ldap_search_base: '''&amp;lt;search DN&amp;gt;'''&lt;br /&gt;
 ldap_auth_method: bind&lt;br /&gt;
 ldap_bind_dn: '''&amp;lt;bind DN&amp;gt;'''&lt;br /&gt;
 ldap_bind_pw: '''&amp;lt;bind DN password&amp;gt;'''&lt;br /&gt;
 ldap_filter: uid=%u&lt;br /&gt;
 ldap_password_attr: userPassword&lt;br /&gt;
&lt;br /&gt;
Описание полей:&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;SERVER IP ADDRESS&amp;gt;''' - IP адрес сервера openldap, например, localhost.&lt;br /&gt;
* '''&amp;lt;search DN&amp;gt;''' - Корень каталога для поиска, например, dc=localdomain.&lt;br /&gt;
* '''&amp;lt;bind DN&amp;gt;''' - учетная запись, у которой есть права на поиск в каталоге '''&amp;lt;search DN&amp;gt;'''. Опытным путем выяснилось, что ей не нужны права на чтение userPassword учетных записей пользователей.&lt;br /&gt;
* '''&amp;lt;bind DN password&amp;gt;''' - пароль для '''&amp;lt;bind DN&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
Более подробную информацию вы можете найти на страницах интернета, например, здесь: [http://www.opensource.apple.com/source/passwordserver_sasl/passwordserver_sasl-159/cyrus_sasl/saslauthd/LDAP_SASLAUTHD?txt auth_ldap module for saslauthd]&lt;br /&gt;
&lt;br /&gt;
Запускаем демон и проверяем, что все в порядке:&lt;br /&gt;
&lt;br /&gt;
 # /etc/init.d/saslauthd restart&lt;br /&gt;
 # testsaslauthd -u gh0stwizard -p my_super_password&lt;br /&gt;
 0: OK &amp;quot;Success.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Для Subversion также необходимо указать настройки, исходя из которых будет сделан выбран метод работы с saslauthd. Грубо говоря, это опции для плагина sasl внутри subversion.&lt;br /&gt;
&lt;br /&gt;
'''Fedora'''&lt;br /&gt;
Файл ''/etc/sasl2/svn.conf''&lt;br /&gt;
&lt;br /&gt;
 pwcheck_method: saslauthd&lt;br /&gt;
 auxprop_plugin: ldap&lt;br /&gt;
 mech_list: PLAIN&lt;br /&gt;
 saslauthd_path: /var/run/saslauthd/mux&lt;br /&gt;
 ldapdb_uri: ldap://&lt;br /&gt;
&lt;br /&gt;
'''Debian Squeeze''' использует иную конфигурацию.&lt;br /&gt;
Файл ''/usr/lib/sasl2/svn.conf''&lt;br /&gt;
&lt;br /&gt;
 pwcheck_method: saslauthd&lt;br /&gt;
 auxprop_plugin: ldap&lt;br /&gt;
 mech_list: PLAIN&lt;br /&gt;
 saslauthd_path: /var/run/saslauthd/mux&lt;br /&gt;
 ldapdb_uri: ldap://&lt;br /&gt;
&lt;br /&gt;
'''Debian Wheezy''' работает с ''auxprop_plugin: ldapdb''&lt;br /&gt;
Файл ''/usr/lib/sasl2/svn.conf''&lt;br /&gt;
&lt;br /&gt;
 pwcheck_method: saslauthd&lt;br /&gt;
 auxprop_plugin: ldapdb&lt;br /&gt;
 mech_list: PLAIN&lt;br /&gt;
 saslauthd_path: /var/run/saslauthd/mux&lt;br /&gt;
 ldapdb_uri: ldap://&lt;br /&gt;
== Настройка Subversion ==&lt;br /&gt;
&lt;br /&gt;
Запускаем svnserve и создаем репозиторий:&lt;br /&gt;
&lt;br /&gt;
 # svnserve --daemon --root /var/svn&lt;br /&gt;
 # svnadmin create /var/svn/test_repo&lt;br /&gt;
&lt;br /&gt;
Файл ''/var/svn/test_repo/conf/svnserve.conf''&lt;br /&gt;
&lt;br /&gt;
 [general]&lt;br /&gt;
 anon-access = none&lt;br /&gt;
 auth-access = write&lt;br /&gt;
 authz-db = /var/svn/svn-access&lt;br /&gt;
 &lt;br /&gt;
 [sasl]&lt;br /&gt;
 use-sasl = true&lt;br /&gt;
 min-encryption = 0&lt;br /&gt;
 max-encryption = 256&lt;br /&gt;
&lt;br /&gt;
Остальные настройки в данном файле не играют никакой роли.&lt;br /&gt;
Файл ''/var/svn/svn-access''&lt;br /&gt;
&lt;br /&gt;
 [test_repo:/]&lt;br /&gt;
 gh0stwizard = rw&lt;br /&gt;
&lt;br /&gt;
== Проверка и диагностика проблем ==&lt;br /&gt;
&lt;br /&gt;
 # svn info svn://localhost/test_repo --username gh0stwizard&lt;br /&gt;
&lt;br /&gt;
 Path: test_repo&lt;br /&gt;
 URL: svn://localhost/test_repo&lt;br /&gt;
 Repository Root: svn://localhost/test_repo&lt;br /&gt;
 Repository UUID: e1991669-3dcc-4b64-9eac-4219ddd374b6&lt;br /&gt;
 Revision: 0&lt;br /&gt;
 Node Kind: directory&lt;br /&gt;
 Last Changed Rev: 0&lt;br /&gt;
 Last Changed Date: 2012-05-27 10:08:45 -0400 (Sun, 27 May 2012)&lt;br /&gt;
&lt;br /&gt;
Наиболее частая проблема заключается в том, что плагин sasl из subversion не находит корректный файл svn.conf. Симптомы:&lt;br /&gt;
&lt;br /&gt;
1. При запуске subversion, в логе /var/log/auth.log видно:&lt;br /&gt;
&lt;br /&gt;
 May 27 10:47:51 tvv svnserve: auxpropfunc error invalid parameter supplied&lt;br /&gt;
 May 27 10:47:51 tvv svnserve: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb&lt;br /&gt;
&lt;br /&gt;
2. При попытке авторизации через svn, в том же файле:&lt;br /&gt;
&lt;br /&gt;
 May 27 10:43:14 tvv svnserve: unable to open Berkeley db /etc/sasldb2: Permission denied&lt;br /&gt;
 May 27 10:43:14 tvv svn: DIGEST-MD5 client step 2&lt;br /&gt;
&lt;br /&gt;
Для решения проблемы необходимо выяснить в какой именно директории данная сборка subversion ищет файл svn.conf, как было указано выше:&lt;br /&gt;
&lt;br /&gt;
Debian использует /usr/lib/sasl2/svn.conf&lt;br /&gt;
&lt;br /&gt;
Fedora использует /etc/sasl2/svn.conf&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
# [http://www.opensource.apple.com/source/passwordserver_sasl/passwordserver_sasl-159/cyrus_sasl/saslauthd/LDAP_SASLAUTHD?txt Описание модуля auth_ldap для saslauthd]&lt;br /&gt;
# [http://www.linux.org.ru/forum/development/7622495 Тема на форуме: subversion + sasl]&lt;br /&gt;
# [http://www.linux.org.ru/forum/admin/7689522 Тема на форуме: svnserver &amp;amp; sasl+ldap]&lt;/div&gt;</summary>
		<author><name>lor&gt;Cetjs2</name></author>
	</entry>
</feed>