LINUX.ORG.RU

Ответ на: комментарий от mskmsk1985

Постараюсь написать сегодня/завтра как будет время.

gh0stwizard ★★★★★
()

Пока вкратце, основная фишка это настроить saslauthd. У меня осталась жива лишь машина c Fedora 14, в завимости от дистра влияет лишь одна строчка svn.conf/saslauthd.conf (для дебиана что-то надо было закомментировать или наоборот добавить - точно не помню). Настройка была для svn + sasl + ldap, итак конфиги:

$ cat /etc/sasl2/svn.conf

pwcheck_method: saslauthd
auxprop_plugin: ldap
mech_list: PLAIN
saslauthd_path: /var/run/saslauthd/mux

# кажись фишка была в этой строчке...
ldapdb_uri: ldapi://

$ cat /etc/saslauthd.conf

# ldap configuration
ldap_servers: ldap://localhost.localdomain/
ldap_search_base: dc=localdomain
ldap_auth_method: bind
#ldap_default_domain: localdomain
#ldap_start_tls: no
#ldap_use_sasl: no
#ldap_version: 3
ldap_bind_dn: cn=root,dc=localdomain
ldap_bind_pw: my_super_secret
ldap_filter: uid=%u
ldap_password_attr: userPassword
ldap_cache_ttl: 30
ldap_cache_mem: 32768

sasl запущен так: /usr/sbin/saslauthd -m /var/run/saslauthd -a ldap

$ cat /etc/sysconfig/saslauthd

# Directory in which to place saslauthd's listening socket, pid file, and so
# on.  This directory must already exist.
SOCKETDIR=/var/run/saslauthd

# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list
# of which mechanism your installation was compiled with the ablity to use.
MECH=ldap

# Options sent to the saslauthd. If the MECH is other than "pam" uncomment the next line.
DAEMONOPTS="--user saslauth"

# Additional flags to pass to saslauthd on the command line.  See saslauthd(8)
# for the list of accepted flags.
FLAGS=

$ cat /etc/sysconfig/saslauthd

# Directory in which to place saslauthd's listening socket, pid file, and so
# on.  This directory must already exist.
SOCKETDIR=/var/run/saslauthd

# Mechanism to use when checking passwords.  Run "saslauthd -v" to get a list
# of which mechanism your installation was compiled with the ablity to use.
MECH=ldap

# Options sent to the saslauthd. If the MECH is other than "pam" uncomment the next line.
DAEMONOPTS="--user saslauth"

# Additional flags to pass to saslauthd on the command line.  See saslauthd(8)
# for the list of accepted flags.
FLAGS=
localhost ~ #  cat /etc/sysconfig/svnserve 
USER="svn"
OPTIONS="--daemon --root /home/svn"

Запуск svnserve как обычно: /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid --daemon --root /home/svn

$ cat /home/svn/gh0stwizard/conf/svnserve.conf

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
# password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = /home/svn/svn-access
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
# realm = My First Repository
realm = localdomain

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
min-encryption = 0
max-encryption = 256

У меня был один конф для всех реп, пример: $ cat /home/svn/svn-access

[/]
gh0stwizard = rw

Плюс еще фишка была в установке плагинов для cyrus, yum показывает следующее:

$ rpm -qa | grep sasl

cyrus-sasl-md5-2.1.23-12.fc14.i686
cyrus-sasl-2.1.23-12.fc14.i686
cyrus-sasl-gssapi-2.1.23-12.fc14.i686
cyrus-sasl-lib-2.1.23-12.fc14.i686
cyrus-sasl-ldap-2.1.23-12.fc14.i686
cyrus-sasl-plain-2.1.23-12.fc14.i686

Сам subversion из коробки, ничего в нем патчить не надо, просто собрать с поддержкой sasl, т.к. sasl вещь простая: svn делает запрос в sasl, sasl отвечает да или нет, дальше вступает в силу файл authz-db (или наоборот).

На неделе буду все это проделывать под дебианом, заодно вспомню что и как. Извини, что так мало объяснений. Но сначала тебе надо настроить saslauthd и авторизовываться спокойно через его утилиту:

$ testsaslauthd -u 'gh0stwizard' -p 'mypass'

0: OK "Success."

Потом уже подключать svn. Это все, что я помню сейчас.

gh0stwizard ★★★★★
()

И да, в некоторых системах путь /etc/sasl2 жестко зашит в saslauthd, а в других - может быть иной.

gh0stwizard ★★★★★
()

Насчет tls для ldap - это можно врубить, просто придется повозиться с настройкой openldap. На этом, уж точно все :)

gh0stwizard ★★★★★
()
27 мая 2012 г.

Сделал все для debian squeeze, вобщем как я и говорил ранее настройки демъяновский subversion для saslauthd тянет из другого места, лечится так:

# ln -s /etc/sasl2/svn.conf /usr/lib/sasl2/svn.conf
# /etc/init.d/svnserve restart

Симтом № 1 /var/log/auth.log:

May 27 10:47:51 tvv svnserve: auxpropfunc error invalid parameter supplied
May 27 10:47:51 tvv svnserve: _sasl_plugin_load failed on sasl_auxprop_plug_init for plugin: ldapdb

Симтом № 2 /var/log/auth.log (в момент авторизации по svn):

May 27 10:43:14 tvv svnserve: unable to open Berkeley db /etc/sasldb2: Permission denied
May 27 10:43:14 tvv svn: DIGEST-MD5 client step 2

Конфиги выше все верные, я делал тупо копипаст.

gh0stwizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.