mod_dav_svn и разделение авторизации по ip

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Raven_kg
рядовой
Сообщения: 46
Зарегистрирован: 2009-11-30 9:38:35
Контактная информация:

mod_dav_svn и разделение авторизации по ip

Непрочитанное сообщение Raven_kg » 2012-11-06 8:29:21

Доброго всем времени суток. Есть интересная задачка - нужно разграничить доступы к svn-репозиторию исходя из ip пришедшего. Т.е. изначальный конфиг следующий:

subversion.conf

Код: Выделить всё

                                                       
LoadModule dav_svn_module     modules/mod_dav_svn.so                                                          
LoadModule authz_svn_module   modules/mod_authz_svn.so                                                        

<Location /svn>
  DAV svn      
  SVNParentPath /home/svn
  SVNListParentPath On
  SSLRequireSSL

  AuthType Basic
  AuthName "Subversion Repository"
  AuthBasicProvider ldap
  AuthLDAPBindDN "administrator@dc.domain.tld"
  AuthLDAPBindPassword "rootpw"
  AuthLDAPURL "ldap://192.168.0.10:389/cn=Users,dc=dc,dс=domain,dc=tld?sAMAccountName?sub"
  AuthLDAPRemoteUserAttribute sAMAccountName
  AuthLDAPRemoteUserIsDN off

  AuthLDAPGroupAttributeIsDN on
  AuthLDAPGroupAttribute member

  <LimitExcept GET PROPFIND OPTIONS REPORT>
       Require ldap-group CN=svn-committers,CN=Users,DC=dc,DC=domain,DC=tld
  </LimitExcept>

</Location>

<Directory /home/svn>
        Options +ExecCGI -Includes FollowSymLinks
        php_admin_flag engine off
        AllowOverride All
        Order deny,allow
        Deny from none
        Allow from all
</Directory>
т.е. неавторизованым юзерам доступно только то, что описано в LimitExcept. На все остальное требуется авторизация. Теперь же мне нужно добавить дополнительно проверку по адресу посетителя - если пришедший не из пространства 127.0.0.1 и 192.168.0.0/24 то затребовать от него авторизацию на все, если же пришедший "свой", то применять к нему ограничения из вышеизложеного конфига.

З.Ы. Пробовал мигрировать на апач 2.4 - все работает отлично, но "затык" вскрылся в самом subverion - вместе с апачем пришлось обновить и модуль вкупе со всеми его зависимостями до версии 1.7.6 (текущая 1.6.11). Стали отваливаться локальные копии пользователей. Лекарство было найдено в виде удаления папок .svn и перезаливки их свежих версий из svn, но 1 - терялась история незакоммиченых изменений, 2 - коммиттеров слишком много, ко всем не применить. Вот его конфиг, из которого мб будет понятнеее что конкретно я хочу:

Код: Выделить всё

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule dontdothat_module  modules/mod_dontdothat.so

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  SVNListParentPath On
  SSLRequireSSL

  AuthType Basic
  AuthName "Subversion Repository"
  AuthBasicProvider ldap
  AuthLDAPBindDN "administrator@dc.domain.tld"
  AuthLDAPBindPassword "rootpw"
  AuthLDAPURL "ldap://192.168.0.10:389/cn=Users,dc=dc,dс=domain,dc=tld?sAMAccountName?sub"
  AuthLDAPRemoteUserAttribute sAMAccountName
  AuthLDAPRemoteUserIsDN off

  AuthLDAPGroupAttributeIsDN on
  AuthLDAPGroupAttribute member

  <If "-R '192.168.0.0/24'">
    <LimitExcept GET PROPFIND OPTIONS REPORT>
       Require ldap-group CN=svn-committers,CN=Users,DC=dc,DC=domain,DC=tld
    </LimitExcept>
  </If>
  <ElseIf "-R '127.0.0.1'">
    <LimitExcept GET PROPFIND OPTIONS REPORT>
       Require ldap-group CN=svn-committers,CN=Users,DC=dc,DC=domain,DC=tld
    </LimitExcept>
  </ElseIf>
  <Else>
       Require ldap-group CN=svn-committers,CN=Users,DC=dc,DC=domain,DC=tld
  </Else>

</Location>

<Directory /home/svn>
        Options +ExecCGI -Includes -FollowSymLinks
        AllowOverride All
        Require all denied
</Directory>
Сервер доступен только по https, что осложняет вариант с применением авторизации с помощью реверсных проксей.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: mod_dav_svn и разделение авторизации по ip

Непрочитанное сообщение Alex Keda » 2013-05-21 8:14:11

нифига не понял...
Убей их всех! Бог потом рассортирует...