3 votes

Utilisation des comptes système linux pour SVN

J'essaie de configurer un serveur svn pour qu'il utilise le compte système linux pour l'authentification au lieu d'un fichier htpasswd indépendant. J'utilise Fedora 16 et j'ai suivi le présent manuel afin d'installer et de configurer mod_authnz_external et pwauth, j'ai configuré le fichier /etc/httpd/conf.d/subversion.conf comme suit :

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

AddExternalAuth pwauth /usr/local/libexec/pwauth
SetExternalAuthMethod pwauth pipe 

<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Subversion repositories PAM"
   AuthBasicProvider external
   AuthExternal pwauth
   Require valid-user
</Location>

Mais je ne peux pas accéder au dépôt, tous les mots de passe sont rejetés. Le fichier journal d'Apache montre l'erreur suivante :

exec of '/usr/local/libexec/pwauth' failed: (13) Permission denied
[Tue Jan 29 11:23:18 2013] [error] [client ::1] AuthExtern pwauth [/usr/local/libexec /pwauth]: Failed (255) for user tom
[Tue Jan 29 11:23:18 2013] [error] [client ::1] user tom: authentication failure for "/svn/project/trunk": Password Mismatch

Qu'est-ce qui ne va pas ? Merci d'avance.

P.S. J'ai essayé pwauth pour l'utilisateur apache (sudo -u apache /usr/local/libexec/pwauth) et cela fonctionne très bien .

1voto

J'ai eu la même expérience en essayant de faire fonctionner pwauth sur Scientific Linux 6.3 (une autre distro basée sur RH.) SL est livré avec SELinux activé par défaut. J'ai fait un

setenforce permissive

et les choses ont commencé à fonctionner. Le fichier /var/log/messages contient toujours de nombreux messages. Par exemple, le fichier /var/log/messages contient toujours de nombreux messages.

Feb 7 14:59:26 VC-L001614-01 kernel : type=1400 audit(1360270766.350:44) : avc : denied { execute } for pid=32154 comm="sh" name="pwauth" dev=dm-0 ino=290254 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file

Je vais essayer de me débarrasser de la journalisation en désactivant SELinux dans /etc/selinux/conf et garder la correction des problèmes de contexte de sécurité SELinux pour un autre jour.

1voto

Tabs Points 11

L'arrêt de l'application des politiques selinux est rarement une solution. Le mieux est de trouver le booléen qui permettrait au serveur apache d'exécuter les commandes nécessaires, ou au pire de définir une nouvelle politique pour cela (l'audit2allow peut aider pour ce dernier point).

La commande 'setenforce permissive' n'est utile que pour vérifier que selinux est à l'origine du problème tout en gardant les logs actifs.

Vous pouvez consulter les booléens suivants : allow_httpd_mod_auth_pam

Je pense qu'il en existe également un pour l'exécution des binaires du système, mais je ne l'ai pas retrouvé.

Pour obtenir une liste des booléens disponibles : getsebool -a

Pour définir un booléen donné setsebool

0voto

Paul Points 555

Dans le cadre de la page de code d'état pour pwauth c'est écrit :

Si vous obtenez un code d'erreur négatif (ou un nombre comme 255 ou 254) dans le journal des erreurs d'Apache, il s'agit d'un code d'erreur provenant de mod_authnz_external et signifie qu'il n'a pas pu exécuter pwauth.

en suivant la documentation pour mod-auth-external il est dit :

Le deuxième message d'erreur est en fait généré par mod_auth_external. Il indique simplement que l'authentification a échoué pour l'utilisateur. Normalement, il devrait donner le code d'état renvoyé par l'authentificateur entre parenthèses, mais si l'authentificateur n'a pas pu être exécuté, il de -1 (que certains systèmes affichent comme 255).

Il semble que vous ne puissiez pas courir pwauth à partir d'apache, êtes-vous sûr d'avoir changé d'utilisateur à ce stade (puisque vous pouvez l'exécuter en tant qu'apache) ?

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