Apache SVN: Acesso ao repositório proibido via cliente, HTTP está ok?

3

O SVN no meu servidor parece ter quebrado depois de algumas alterações. Está configurado para fazer parte de um host virtual HTTPS, não acessível universalmente. Meus clientes SVN dão ao erro 'acesso ao (repo) proibido', mas se eu passar pela interface web (SVNListParentPath está ligado), tudo funciona corretamente, usando o mesmo URL. Eu posso até acessar os arquivos através do navegador. Quando eu uso um cliente, percebo que o meu log do Apache indica que o cliente está tentando acessar '/ var / www / mysite / svn', quando meus repositórios SVN estão localizados em '/ home / svn'. Eu tenho uma página de redirecionamento uma vez, ao solucionar problemas usando Elinks, isso poderia significar que meu servidor está usando algum tipo de redirecionamento que está falhando para os clientes SVN? O resto do site funciona corretamente em SSL, é apenas o SVN que não funciona. Obrigado.

Aqui está minha configuração do Apache para este site:

#mydomain.co.uk
NameVirtualHost *:443
<VirtualHost *:80>
    ServerAdmin [email protected]
ServerName mydomain.co.uk
    DocumentRoot /var/www/mydomain
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/mydomain>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
    </Directory>

<Directory /usr/share/ampache>
    RewriteEngine On
            RewriteCond %{HTTPS} off
            RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Directory>

<Directory /var/www/mydomain/opendocman>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</Directory>

<Directory /var/www/mydomain/44kg>
            Options Indexes FollowSymLinks MultiViews
            Order deny,allow
            Deny from all
            Allow from 192.168.1
    </Directory>

<Directory /var/www/mydomain/69td>
    Options Indexes FollowSymLinks MultiViews
    Order deny,allow
    Deny from all
    Allow from 192.168.1 127.0.0.1 localhost
    SCGIHandler on
    SCGIServer 127.0.0.1:5000
</Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

ErrorDocument 404 /fourohfour.html

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

<VirtualHost *:443>
ServerAdmin [email protected]
ServerName mydomain.co.uk
DocumentRoot /var/www/mydomain/
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/mydomain/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory /var/www/mydomain/44kg>
    Order deny,allow
    Deny from all
</Directory>

<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  SVNListParentPath on
  AuthType Basic
  AuthName "Excalibur SVN Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/QPR/qpr.pem
SSLCertificateKeyFile /etc/ssl/certs/QPR/ca.key
</VirtualHost>

#SquirrelMail
<VirtualHost *:443>
ServerName webmail.mydomain.co.uk
DocumentRoot /usr/share/squirrelmail
SSLEngine on
SSLCertificateFile /etc/ssl/certs/QPR/qpr.pem
SSLCertificateKeyFile /etc/ssl/certs/QPR/ca.key
</VirtualHost>

A última vez que as coisas funcionaram foi antes de adicionar o webmail, mas desativá-lo não traz o SVN de volta. Eu não cheguei a ver a página de redirecionamento - isso me deu tempo suficiente para identificar que era um redirecionamento 302 antes que acontecesse, e eu não consegui reproduzi-lo. Por meio de um navegador, todos os meus repositórios estão disponíveis no link , mas o mesmo URL nos clientes apresenta esse erro SVN CLI e Dreamweaver:

Pegasus:Uni Gargravarr$ svn update
svn: access to '/svn/Uni' forbidden
    
por Gargravarr 22.01.2012 / 23:19

1 resposta

3

Entendi.
Eu esqueci completamente que instalei 'mod-evasive' no Apache recentemente. Desativar trouxe o SVN de volta instantaneamente. Acontece que há um bug conhecido no Debian com mod-evasive e mod-dav-svn. Exatamente como nesta pergunta aqui:

Problemas com o servidor svn do apache (Forbidden 403)
Estupidamente, eu li essa pergunta antes de postar também. Acho que pulei o post final.

TL; DR: Mod-evasive e Apache2 / SVN não se dão bem:)

    
por 23.01.2012 / 23:43