Назад | Перейти на главную страницу

Apache Mod SVN Доступ запрещен

Как устранить ошибку svn: access to '/repos/!svn/vcc/default' forbidden?

Недавно я обновил сервер Fedora 13 до 16, и теперь я пытаюсь отладить ошибку доступа с сервером Subversion, работающим на Apache с mod_dav_svn.

Бег:

svn ls http://myserver/repos/myproject/trunk

Перечисляет правильные файлы. Но когда я иду на фиксацию, я получаю сообщение об ошибке:

svn: access to '/repos/!svn/vcc/default' forbidden

Мой виртуальный хост Apache для svn:

<VirtualHost *:80>
    ServerName svn.mydomain.com
    ServerAlias svn
    DocumentRoot "/var/www/html"

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    <Location /repos>
      Order allow,deny
      Allow from all
      DAV svn
      SVNPath /var/svn/repos

      SVNAutoversioning On

      # Authenticate with Kerberos
      AuthType Kerberos
      AuthName "Subversion Repository"
      KrbAuthRealms mydomain.com
      Krb5KeyTab /etc/httpd/conf/krb5.HTTP.keytab

      # Get people from LDAP
      AuthLDAPUrl ldap://ldap.mydomain.com/ou=people,dc=mydomain,dc=corp?uid

      # For any operations other than these, require an authenticated user.
      <LimitExcept GET PROPFIND OPTIONS REPORT>
         Require valid-user
      </LimitExcept>

    </Location>
</VirtualHost>

Что вызывает эту ошибку?

РЕДАКТИРОВАТЬ: в моем / var / log / httpd / error_log я вижу много из них:

[Fri Jun 22 13:22:51 2012] [error] [client 10.157.10.144] ModSecurity: Warning. Operator LT matched 20 at TX:inbound_anomaly_score. [file "/etc/httpd/modsecurity.d/base_rules/modsecurity_crs_60_correlation.conf"] [line "31"] [msg "Inbound Anomaly Score (Total Inbound Score: 15, SQLi=, XSS=): Method is not allowed by policy"] [hostname "svn.mydomain.com"] [uri "/repos/!svn/act/0510a2b7-9bbe-4f8c-b928-406f6ac38ff2"] [unique_id "T@Sp638DCAEBBCyGfioAAABK"]

Я не совсем уверен, как это читать, но я интерпретирую «Метод не разрешен политикой» как означающий, что есть какой-то модуль безопасности Apache, который может блокировать доступ. Как мне это изменить?

Вероятно, пользователь www (пользователь, использующий apache) не имеет прав на запись в эту папку.

Проверьте разрешения папок, например, ls -l и убедитесь, что у пользователя www есть права на запись.

@Cerin, спасибо за ответ, я просто прокомментировал следующие строки в конфигурации Apache, перезапустил и РЕШЕН !! (В моем случае это был файл: /etc/httpd/conf.d/mod_security.conf):

  1. Прокомментируйте эти строки:

    #LoadModule security2_module modules/mod_security2.so
    #LoadModule unique_id_module modules/mod_unique_id.so
    
  2. Перезагрузите сервер Apache: apachectl -k restart

  3. Теперь ты должен уметь делать svn commits в ваш репозиторий.

Если нет, проверьте конфигурацию SELINUX, также проверьте эту страницу. https://stackoverflow.com/questions/960241/svn-permission-denied

Примечание. Местоположение файла может быть разным (может быть объединено в httpd.conf со всеми остальными конфигами.)

По-видимому, обновление автоматически установило mod_security, правила которого по умолчанию фактически нарушают доступ к фиксации для SVN.

Быстрое решение было yum remove mod_security. Очевидно, это делает его менее безопасным, но, поскольку это внутренний сервер, это нормально.

Кажется, есть разочаровывающе большое количество документации mod_security, но у меня нет недель, чтобы прочитать сотни документов, чтобы узнать, как заставить mod_security работать с SVN.