1 Устанавливаем:
* svn с mod_dav_svn module for Apache 2.X и db4 repository backend.
* apache с bdb и dav
* mod_auth_pam (/usr/ports/www/mod_auth_pam)
* ldap сlient
2 Настраиваем ldap. Настраиваем стандартно, добавляем ограничения на логин(для пущей безопасности)(тут указано как: http://angel4gm.blogspot.com/2009/10/ldap-host.html)
3 Настраиваем pam:
в FreeBSD 7.2-RELEASE нужно настроить только /etc/pam.d/other, поскольку apache своего pam конфига не имеет(кстати, нужно поискать, может его и можно создать).
auth sufficient pam_opie.so no_warn no_fake_prompts
auth requisite pam_opieaccess.so no_warn allow_local
#auth sufficient pam_krb5.so no_warn try_first_pass
#auth sufficient pam_ssh.so no_warn try_first_pass
auth sufficient /usr/local/lib/pam_ldap.so no_warn try_first_pass
auth required pam_unix.so no_warn try_first_pass
# account
account required pam_nologin.so
#account required pam_krb5.so
account required pam_login_access.so
account required pam_unix.so
# session
#session optional pam_ssh.so
session required pam_permit.so
# password
нас интересует строка выделенная жирным.
4 создаем репозитории svnadmin create $REPOS_PATH
5 В файле $REPOS_PATH/conf/authz добавляем пользователей для доступа к репозиторию.
6 Настраиваем apache.
Проверяем наличие:
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so
LoadModule auth_pam_module libexec/apache22/mod_auth_pam.so
LoadModule auth_sys_group_module libexec/apache22/mod_auth_sys_group.so Поднимаем ssl:
Убираем 80 порт.
Настраиваем VirtualHost:
< VirtualHost svn.local:443>
ServerName svn.local
# DocumentRoot /usr/local/www/validator/htdocs
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/etc/apache22/crt/server.crt
SSLCertificateKeyFile /usr/local/etc/apache22/crt/server.key
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
< Location /js/svn>
DAV svn
# SVNPath /js/svn/
SVNParentPath /js/svn
AuthzSVNAccessFile /js/svn/test/conf/authz
SVNAutoversioning on
AuthPAM_Enabled on
AuthType Basic
AuthName "SVN Repository"
Require valid-user
Order Allow,Deny
Allow from all
< /Location>
< /VirtualHost>ВАЖНО: блогер слишком умный и обрабатывает Location и VirtualHost как теги, поэтому поставила доп. пробел. При копипасте в apache пробелы нужно убрать.
7 Чтобы разрешить иметь доступ до svn в ldap профиль каждого пользователя нужно добавить поле
host: svn.local 8 Проверяем: svn list https://svn.local/js/svn/test (например).
Комментариев нет:
Отправить комментарий