Acesso ao SVN do Mod Apache Proibido

2

Como você resolve o erro svn: access to '/repos/!svn/vcc/default' forbidden ?

Eu recentemente atualizei um servidor Fedora 13 para 16, e agora estou tentando depurar um erro de acesso com um servidor Subversion rodando usando o Apache com mod_dav_svn.

Em exibição:

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

Lista os arquivos corretos. Mas quando vou me comprometer, recebo o erro:

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

Meu virtualhost do Apache para o 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>

O que está causando esse erro?

EDIT: No meu / var / log / httpd / error_log, estou vendo muitos deles:

[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"]

Não sei bem como ler isso, mas estou interpretando "O método não é permitido pela política", já que há algum módulo de segurança do Apache que pode estar bloqueando o acesso. Como eu mudo isso?

    
por Cerin 22.06.2012 / 00:22

3 respostas

0

Aparentemente, a atualização instalou automaticamente o mod_security, cujas regras padrão efetivamente quebram o acesso de confirmação para o SVN.

A solução rápida foi yum remove mod_security . Obviamente, isso o torna menos seguro, mas como é um servidor interno, tudo bem.

Parece haver uma quantidade absurdamente grande de documentação do mod_security , mas não tenho semanas para ler centenas de docs apenas para descobrir como fazer o mod_security ser legal com o SVN.

    
por 22.06.2012 / 19:43
2

Provavelmente, o usuário www (o usuário que está executando o apache) não possui permissões de gravação para esta pasta.

Chame as permissões das pastas com, por exemplo, ls -l e certifique-se de que o usuário www tenha permissões de gravação.

    
por 22.06.2012 / 01:58
1

@Cerin obrigado pela resposta, acabei de comentar as seguintes linhas na configuração do Apache, reiniciei e está RESOLVIDO !! (No meu caso foi esse arquivo: /etc/httpd/conf.d/mod_security.conf ):

  1. Comente estas linhas:

    #LoadModule security2_module modules/mod_security2.so
    #LoadModule unique_id_module modules/mod_unique_id.so
    
  2. Reinicie o servidor Apache: apachectl -k restart

  3. Agora você poderá fazer svn commits em seu repositório.

Se não, verifique sua configuração do SELINUX, verifique também esta página link

Nota: A localização do arquivo pode variar (pode ser mesclada no httpd.conf com todas as outras configurações).

    
por 21.12.2012 / 18:57