Autenticación fr Apache: Basic et PAM

Print E-mail
Technologie - Général
Saturday, 13 March 2010 21:43

Apache Le serveur Web Apache peut être associé avec différents modules de fournir des modèles d'authentification différents. Aujourd'hui, nous prenons un coup d'oeil à la configuration de base de deux des plus utilisés et sencillotes. Here we go.

La façon d'abord nous allons voir, c'est le plus simple. Nous avons l'habitude de faire le module d'authentification de base qui est installé en standard "avec un autre Apache. La configuration que nous devons ajouter dans le fichier de définition de l'hôte virtuel pour protéger pourrait être quelque chose comme:

<Directory " /var/www/miweb/privado ">
Order deny,allow
AuthUserFile " /etc/apache2/claves/passwd.txt "
AuthName " Palabra de paso "
AuthType Basic
<Limit GET POST>
Require valid-user
</Limit>
</Directory>

Personnalisez les informations sont indiquées en gras. En écrivant le répertoire Répertoire de protéger, qui mai être la racine de notre hôte virtuel ou d'un annuaire interne à cet égard. Dans le fichier AuthUserFile Nous conservons les informations d'utilisateur et mots de passe qui devrait être, comme dans cet exemple, dans un répertoire qui n'est pas visité depuis notre Apache. Maintenant nous allons voir comment le générer. Enfin, AutnName personnaliser le message affiché dans la fenêtre du navigateur que nous avons demandé le mot de passe. Il existe d'autres politiques complémentaires ou des modifications à ces documents utiles pour la personnalisation de l'accès: AuthGroupFile, exiger des utilisateurs, nécessitent de groupe, etc Vous savez: Google est ton ami ;-)

Le fichier de mot de passe est généré en utilisant l'utilitaire htpasswd. Sa syntaxe est très simple. Pour ajouter un nouvel utilisateur au fichier de fonctionner comme suit:

# htpasswd /etc/apache2/claves/passwd.txt carolina
New password:
Re-type new password:
Adding password for user carolina

Pour créer le fichier de mot de passe avec l'introduction du premier utilisateur il faut ajouter l'option-c (créer) la commande précédente. Si l'on a utilisé par erreur lorsque de nouveaux utilisateurs va supprimer toutes les dernières, donc soyez prudent. Mots de passe, comme on le voit ci-dessous, ne sont pas stockés en clair. Ce qui est stocké est le résultat de l'application d'une fonction de hachage.

josemaria:rOUetcAKYaliE
carolina:hmO6V4bM8KLdw
alberto:9RjyKKYK.xyhk

Pour refuser l'accès à n'importe quel utilisateur tout simplement effacer la ligne de sa création. Il n'est pas nécessaire de vous demander de relire la configuration d'Apache (/ etc/init.d/apache2 reload) chaque fois que nous apportons une modification dans le fichier de mots de passe, mais si c'est après avoir fait des modifications au fichier Host définition virtuelle.

autenticación en apache Le principal avantage de cette méthode est sa simplicité. Les inconvénients: il mal à l'aise de déléguer la génération de nouveaux utilisateurs dans quelqu'un qui n'est pas un administrateur système ou de faire un front-end à l'utilisateur qui change son mot de passe. Et, bien sûr, pour effacer ces mots de passe Voyage à travers le réseau. Si nous évitons ces derniers peuvent créer une instance d'Apache avec SSL.

La deuxième méthode utilise PAM nous jouons, le système même de l'authentification de la machine où vous avez installé le serveur Apache. Si vous avez déjà un outil de gestion des utilisateurs et mots de passe sur le même système nous avons maintenant le tracas d'avoir à générer un autre type d'utilisateur. Sinon, nous ne gagnons pas beaucoup en ce sens et nous avons encore le problème que les mots de passe en clair, Voyage avec les prestations complémentaires aggravante, c'est que maintenant les utilisateurs de la machine ... si vous connaissez: configuráis o vous utilisez SSL ou un truc qui nous avons discuté ici l'autre jour pour désactiver la connexion à distance.

Nous allons utiliser ce module pour mod_auth_pam et la première chose que nous devons faire est de l'installer:

# sudo apt-get install libapache2-mod-auth-pam

Dans le fichier de configuration de l'hôte virtuel devrait inclure quelque chose comme ceci:

<Directory " /var/www/privado ">
AuthType Basic
AuthName " Palabra de paso "
AuthPAM_Enabled On
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require user josemaria gemma fernando araceli
</code>
<Directory " /var/www/privado ">
AuthType Basic
AuthName " Palabra de paso "
AuthPAM_Enabled On
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require user josemaria gemma fernando araceli
</code>

Si, dans ce cas, la directive utilisée Require valid-user seraient autorisés à avoir accès à n'importe quel compte utilisateur sur la machine. Oh, et n'oubliez pas de faire un rechargement Apache après ce changement.

Nous avons seulement quelques étapes. D'abord, ajouter l'utilisateur www-data (qui utilise apache) au groupe d'inspecter les mots de passe shadow:

usermod -a -G shadow www-data

Et deux, faire un lien comme celui-ci. Je ne sais pas la cause, mais la raison de cette mesure est nécessaire parce que les binaires apache (dans Debian et Ubuntu, au moins) veut lire le fichier / etc / pam.d http tandis que le module d'authentification a été créé Fichier / etc/pam.d/apache2. Les années auth_pam module qui n'est pas supporté et j'imagine que cela a quelque chose à faire, mais vous ne savez pas avec certitude. Il suffit de le lire là-bas ...

ln -s /etc/pam.d/apache2 /etc/pam.d/httpd

Et que tout est prêt. Je n'ai jamais goûté, mais j'ai lu aussi que l'authentification est faite contre l'Active Directory Si Apache est installé sur un ordinateur configuré Windows sur un domaine. Il ya aussi un module permettant d'authentifier l'encontre d'un (mod_auth_ldap LDAP) que, si j'ai essayé et on verra un autre jour ;-)


Font