Форум → Разработка → Установка и администрирование ПО → Разное ПО → svn + sasl кто поднимал?
svn + sasl кто поднимал?
-
16 декабря 2010 г. 15:59, спустя 7 часов 14 минут 17 секунд
ура, я настроил эту поебеньне всё полезно, что в swap полезло -
-
16 декабря 2010 г. 17:25, спустя 1 час 23 минуты 42 секунды
master, ты красавчик. опиши, будет куда заглянуть когда приспичитιιlllιlllι унц-унц -
16 декабря 2010 г. 18:35, спустя 1 час 10 минут 33 секунды
я не уверен что сделал всё правильно, однако то как я сделал более-менее работает
предположим мы установили пакет subversion и собираемся запускать его из-под пользователя svnuser, папка репозиториев ~/repos/, realm = REALM
далее
[email protected]:~$ cd ~/repos/
[email protected]:~/repos/$ svnadmin create demo
[email protected]:~/repos/$ nano demo/conf/svnserve.conf
тестовый пользователь будет alice. настраиваем репозиторий без sasl до такого состояния, чтоб мы могли подключиться к svn и сделать
svn ls –username alice svn://host/demo
после этого
читаем файл sasl.txt.gz (найти его можно в пакете subversion-doc или subversion-dev или типа того), многое понимаем
в центосе [email protected]:~$ sudo yum install cyrus-sasl cyrus-sasl-lib
в убунте [email protected]:~$ sudo aptitude sasl2-bin
т.е. устанавливаем sasl
[email protected]:~$ sudo chown svnuser:svnuser /etc/sasldb2
в этом файле будут храниться пароли и он вроде как должен быть доступен svnserve
[email protected]:~$ saslpasswd2 -c -u REALM alice
этим мы создаём в /etc/sasldb2 пользователя alice в домене REALM
saslpasswd2 лежит в /usr/sbin
realm тот же что прописан в svnserve.conf
[email protected]:~$ sudo service saslauthd start
тут он должен либо запуститься, либо ругнуться. если ругнётся, значит нужно открыть файл /etc/default/saslauthd и исправить там START на yes
если не ругнётся значит этот файл не был создан автоматически (как в блядском центосе) и его нужно добавить вручную (пример ниже)
проверяем пользователей:
[email protected]:~$ sasldblistusers2
он должен показать что-то вроде
[email protected]: userPassword
если не покажет ничего, значит фейл, пользователей в файле /etc/sasldb2 не обнаружено
[email protected]:~$ testsaslauthd -u alice -p password
варианты ответа
connect(): Permission Denied - значит где-то не выставлены права на нужные конфигурационные файлы
0: NO "authentification failed" - пароль не подходит, это может говорить о том что пароль неправильный или же о том что это ебаный центос. т.е. если вы видите фейл не расстраивайтесь, закончите шаги и попробуйте аутентифицироваться через svn-клиент
0: OK "Success" - всё заебись
[email protected]:~$ cd /usr/lib/sasl2/
[email protected]:/usr/lib/sasl2/$ sudo nano svn.conf
в него пишем
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: DIGEST-MD5
s[email protected]:/usr/lib/sasl2/$ sudo chown svnuser:svnuser svn.conf
дальше правим svnserve.conf :
use-sasl = true
min-encryption = 128
max-encryption = 256
затем проверяем с этого хоста или другого
svn ls –username alice svn://host/demo
вводим пароль, должно типа всё заработать
добавляем в автозапуск service saslauthd start
этот сервис должен быть запущен из-под рута
вуалеап
чтобы добавить или изменить пользователя нужно править не passwd репозитория, а использовать команду saslpasswd2
при этом если realm двух репозиториев будет одинаковым, то и права доступа на них будут одинаковыми
пример /etc/default/saslauthd, взят с ubuntu-настроек#
# Settings for saslauthd daemon
# Please read /usr/share/doc/sasl2-bin/README.Debian for details.
#
# Should saslauthd run automatically on startup? (default: no)
START=yes
# Description of this saslauthd instance. Recommended.
# (suggestion: SASL Authentication Daemon)
DESC="SASL Authentication Daemon"
# Short name of this saslauthd instance. Strongly recommended.
# (suggestion: saslauthd)
NAME="saslauthd"
# Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent – use the getpwent() library function
# kerberos5 – use Kerberos 5
# pam – use PAM
# rimap – use a remote IMAP server
# shadow – use the local shadow password file
# sasldb – use the local sasldb database file
# ldap – use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"
# Additional options for this mechanism. (default: none)
# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""
# How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THREADS=5
# Other options (default: -c -m /var/run/saslauthd)
# Note: You MUST specify the -m option or saslauthd won't run!
#
# WARNING: DO NOT SPECIFY THE -d OPTION.
# The -d option will cause saslauthd to run in the foreground instead of as
# a daemon. This will PREVENT YOUR SYSTEM FROM BOOTING PROPERLY. If you wish
# to run saslauthd in debug mode, please run it by hand to be safe.
#
# See /usr/share/doc/sasl2-bin/README.Debian for Debian-specific information.
# See the saslauthd man page and the output of 'saslauthd -h' for general
# information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
OPTIONS="-c -m /var/run/saslauthd"Спустя 150 сек.тонкость в том, что /etc/sasldb2 хранит пароли в открытом виде, поэтому доступ к нему не должен быть публичным, 0600 думаю будет в самый разне всё полезно, что в swap полезло
Пожалуйста, авторизуйтесь, чтобы написать комментарий!