2 votes

Apache Mod SVN Accès interdit

Comment résoudre l'erreur svn: access to '/repos/!svn/vcc/default' forbidden ?

J'ai récemment mis à jour un serveur Fedora 13 vers 16, et j'essaie maintenant de déboguer une erreur d'accès avec un serveur Subversion fonctionnant avec Apache et mod_dav_svn.

La course à pied :

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

Les fichiers corrects sont listés. Mais quand je vais à commit, j'obtiens l'erreur :

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

Mon serveur virtuel Apache pour svn est :

<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>

Quelle est la cause de cette erreur ?

EDIT : Dans mon /var/log/httpd/error_log, je vois un grand nombre de ces erreurs :

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

Je ne suis pas tout à fait sûr de la façon dont il faut lire cela, mais j'interprète "Method is not allowed by policy" comme signifiant qu'il y a un module Apache de sécurité qui pourrait bloquer l'accès. Comment puis-je changer cela ?

2voto

Christopher Perrin Points 4721

Il est probable que l'utilisateur www (l'utilisateur qui exécute apache) n'ait pas les droits d'écriture pour ce dossier.

Changer les permissions des dossiers avec par exemple ls -l et assurez-vous que l'utilisateur www dispose des droits d'écriture.

1voto

fmdev Points 11

@Cerin merci pour la réponse, j'ai commenté les lignes suivantes dans la configuration d'Apache, j'ai redémarré et c'est résolu ! (Dans mon cas, il s'agissait de ce fichier : /etc/httpd/conf.d/mod_security.conf ):

  1. Commentez ces lignes :

    #LoadModule security2_module modules/mod_security2.so
    #LoadModule unique_id_module modules/mod_unique_id.so
  2. Redémarrer le serveur Apache : apachectl -k restart

  3. Vous devriez maintenant être en mesure de faire svn commits à votre dépôt.

Si ce n'est pas le cas, vérifiez votre configuration SELINUX, consultez également cette page https://stackoverflow.com/questions/960241/svn-permission-denied

Note : L'emplacement du fichier peut varier (il peut être fusionné dans le fichier httpd.conf avec toutes les autres configurations).

0voto

Cerin Points 3382

Apparemment, la mise à jour a automatiquement installé mod_security, dont les règles par défaut interdisent effectivement l'accès à commit pour SVN.

La solution rapide a été yum remove mod_security . Il est évident que cela le rend moins sûr, mais comme il s'agit d'un serveur interne, cela ne pose pas de problème.

Il semble qu'il y ait une quantité frustrante de documentation sur mod_security mais je n'ai pas des semaines pour lire des centaines de documents juste pour trouver comment faire fonctionner mod_security avec SVN.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X