romain74960 Posté(e) le 11 septembre 2009 Posté(e) le 11 septembre 2009 Protéger un dossier avec un .htaccess Vous voulez donner acces a un dossier a seulement quelques personnes? voici une solution simple et efficace. cette methode peut etre aussi inclus dans la navigation d un site Web. Pré-requis : -Aucun. Configuration de départ: -1 dossier nommé: «site» -1 dossier: «prive» Logiciels: Bloc-notes ou Pspad (ideal) Détails: -Chemin et organisation des dossiers: votresyno/site/prive Il va falloir créer 2 fichiers : .htaccess : ce fichier contiendra l'adresse du .htpasswd et quelques autres options que vous pourrez définir. .htpasswd : ce fichier contiendra une liste de logins / mots de passe, pour chaque personne autorisée à accéder aux pages ! Créer le .htaccess La première étape est de créer sur votre disque dur un fichier appelé ".htaccess". Mais là, vous allez certainement avoir un problème (ça commence fort) En effet, Windows n'aime pas les fichiers qui commencent par un point. Pour tous les autres systèmes d'exploitation (Mac OS, Linux) vous n'aurez aucun problème. Mais Windows lui il veut pas... sauf si on utilise une petite astuce que je vous montrerai plus loin. Commencez donc par ouvrir Bloc-Notes ou PSPad, Là dedans, on va rentrer des informations qui n'ont rien à voir avec du HTML ou du PHP : ce sont des instructions pour le serveur. Elles vont expliquer au serveur que seules certaines personnes sont autorisées à accéder au dossier. Copiez-y ce code : AuthName "Page d'administration protégée" AuthType Basic AuthUserFile "/home/sdz/www/gestion/admin/.htpasswd" Require valid-user Parmi ces 4 lignes, il y en a 2 que vous allez devoir changer : AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login / mot de passe. Vous pouvez personnaliser ce texte comme bon vous semble. AuthUserFile : là c'est plus délicat, c'est le chemin absolu vers le fichier .htpasswd (que vous mettrez dans le même répertoire que le .htaccess). Mais comment je trouve ce chemin absolu? Il existe une fonction PHP qui va beaucoup nous aider : realpath. Cette fonction donne le chemin absolu vers le fichier que vous indiquez. Vous allez donc faire comme ceci pour trouver le chemin absolu : 1.Créez un fichier appelé "chemin.php". 2.Mettez juste cette ligne de code dedans : <?php echo realpath('chemin.php'); ?> 3.Envoyez ce fichier sur votre serveur avec votre logiciel FTP ou copier le directement dans le dossier «prive». 4.Ouvrez votre navigateur et allez voir ce fichier PHP en tapant l'adresse www.votresyno/site/prive/chemin.php. Il vous donne le chemin absolu, par exemple : /volume1/web/prive/chemin.php 5.Copiez ce chemin dans votre .htaccess, et remplacez le "chemin.php" par ".htpasswd", ce qui nous donne au final par exemple : /volume1/web/site/prive/.htpasswd 6.Supprimez le fichier "chemin.php" de votre serveur, il ne nous sert plus à rien maintenant qu'il nous a donné le chemin absolu La ligne AuthUserFile indique donc où se trouve le fichier .htpasswd qui contient les mots de passe. Enregistrez le fichier en mettant le nom entre guillemets, comme ceci : ".htaccess". Cela permet de forcer Windows à enregistrer le fichier, parce qu'avec le point au début en temps normal il ne veut pas ou il fait n'importe quoi. Une précision : quand on enregistre les fichiers .htaccess et .htpasswd avec des guillemmets sur le NAS, il n'y pas besoin de les modifier par la suite. Les guillemmets sont "automatiquement" enlevés. Voilà, on a fini de créer le .htaccess, on peut maintenant passer au .htpasswd Créer le .htpasswd Créez maintenant un nouveau fichier avec Bloc-Notes. Le .htpasswd contient la liste des personnes autorisées à accéder aux pages du dossier. On met une personne par ligne, sous cette forme : login:mot_de_passe_crypté Au final, votre fichier .htpasswd devrait ressembler à ceci : pierre:$1$MEqT//cb$hAVid.qmmSGFW/wDlIfQ81 paul:$1$/lgP8dYa$sQNXcCP47KhP1sneRIZoO0 remi:$1$lT7nqnsg$cVtoPfe0IgrjES7Ushmoy. luc:$1$h4oVHp3O$X7Ejpn.uuOhJRkT3qnw3i0 Dans cet exemple, il y a 4 personnes autorisées à accéder au dossier : qui sont pierre, paul, remi, luc. S'il n'y a qu'une personne autorisée à accéder au dossier, vous n'avez qu'à mettre qu'une ligne. Mais si vous êtes plusieurs admins, il est très pratique de pouvoir créer plusieurs "comptes" avec login / mot de passe Il y a une super fonction PHP qui va nous tirer d'affaire : crypt. Vous lui donnez un mot de passe et, ne cherchez pas à savoir comment, ça vous le crypte Par exemple, si mon mot de passe est "bonjour", voici le code PHP que je devrai écrire pour l'obtenir en version cryptée : <?php echo crypt('bonjour'); ?> Crypter ses mots de passe est très utile : en effet, si quelqu'un vient un jour à lire votre fichier .htpasswd (quelqu'un qui utilise le même PC que vous par exemple), il ne verra que le mot de passe crypté. Et là, aucun risque qu'il ne retrouve votre mot de passe : ce cryptage est indéchiffrable. C'est donc très pratique. Voici le script que vous devez mettre dans une page PHP dans un coin de votre Nas enregistrer le sous par exemple /volume1/web/crypt.php pour y acceder taper dans la barre de votre navigateur www.votre_syno/crypt.php, pour que vous puissiez crypter rapidement vos mots de passe pour le .htpasswd : //debut du code php de cryptage methode 1// <p> <?php if (isset($_POST['login']) AND isset($_POST['pass'])) { $login = $_POST['login']; $pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe echo 'Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte; } else // On n'a pas encore rempli le formulaire { ?> </p> <p>Entrez votre login et votre mot de passe pour le crypter.</p> <form method="post"> <p> Login : <input type="text" name="login"><br /> Mot de passe : <input type="text" name="pass"><br /><br /> <input type="submit" value="Crypter !"> </p> </form> <?php } ?> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <title>Entrez votre login et votre mot</title> </head> <body> </body> </html> //fin du code php de cryptage methode 1// Si vous ne voulez pas cryptez vos mots de passe, il faut les entrer directement. Par exemple : pierre:bonjour Envoyer les fichiers sur le serveur Vous avez maintenant 2 fichiers sur votre disque dur : .htaccess et .htpasswd. Lancez votre logiciel FTP. Transférez les fichiers .htaccess et .htpasswd dans le dossier que vous voulez protéger par mot de passe. Ou plus simplement en travaillant en direct sur votre Nas et dans les dossiers que vous souhaitez protégés. Voilà, désormais le dossier est protégé Si quelqu'un essaie d'accéder à une des pages du dossier, alors il obtiendra une fenêtre lui demandant de se logger : Si vous rentrez le bon login avec le bon mot de passe, vous serez alors autorisé à accéder aux pages ! voici une autre variante pour le cryptage des mots de passe en fonction du logiciel que vous utilisez pour créer votre fichier //debut du code php de cryptage methode 2// <p> <?php if (isset($_POST['login']) AND isset($_POST['pass'])) { $login = $_POST['login']; $pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe echo 'Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte; } else // On n'a pas encore rempli le formulaire { ?> </p> <p>Entrez votre login et votre mot de passe pour le crypter.</p> <form method="post"> <p> Login : <input type="text" name="login"><br /> Mot de passe : <input type="text" name="pass"><br /><br /> <input type="submit" value="Crypter !"> </p> </form> <?php } ?> //fin du code php de cryptage methode 2// 0 Citer
romain74960 Posté(e) le 11 septembre 2009 Auteur Posté(e) le 11 septembre 2009 Très bon tuto mais ils faudrait éditer le titre pour remettre le 't' a Hacces et rajouter la mention <tuto> Salut effectivement pour le "T" et la mention "tuto" le probleme est que je ne peut que modifier l ensemble du message mais pas le titre. il me dit erreur sur la page (voir details en bas du message). si un modo peut le faire se serais sympa. Merci encore @+ Romain Détails de l’erreur de la page Web Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618) Horodateur : Fri, 11 Sep 2009 21:22:11 UTC Message : Non implémenté Ligne : 277 Caractère : 1 Code : 0 URI : http://www.ferank.fr/logo.js Message : Objet requis Ligne : 268 Caractère : 3 Code : 0 URI : http://www.nas-forum.com/forum/public/js/ips.topic.js 0 Citer
KFCL Posté(e) le 11 septembre 2009 Posté(e) le 11 septembre 2009 Je viens de tester et le tuto marche bien. Super boulot Romain. Merci pour ta contribution. 0 Citer
romain74960 Posté(e) le 11 septembre 2009 Auteur Posté(e) le 11 septembre 2009 Je viens de tester et le tuto marche bien. Super boulot Romain. Merci pour ta contribution. merci a toi d avoir tester. tu n as pas eu de soucis particulier a certaines etapes? (c est juste pour voir si s est accessible a tous) merci @+ Romain 0 Citer
KFCL Posté(e) le 12 septembre 2009 Posté(e) le 12 septembre 2009 Non, je n'ai pas rencontré de pb particulier. Une précision : quand on enregistre les fichiers .htaccess et .htpasswd avec des guillemmets sur le NAS, il n'y pas besoin de les modifier par la suite. Les guillemmets sont "automatiquement" enlevés. A la première lecture, je me suis dit qu'il faudrait les enlever par la suite sous telnet mais finalement pas besoin. Il manque peut-être quelques explications pour le script php permettant de crypter les mots de passe : enregistrement du fichier sous "/volume1/web/crypt.php" par exemple et éxecution du script dans un navigateur internet à l'adresse http://nomdusyno/crypt.php Et une dernière remarque pour finir : tu pourrais utiliser des balises de code pour éclaircir ton premier post. Et encore merci, je peux maintenant sécuriser l'accès à mes fichiers partagés directement avec un lien (sans passer par Filestation ou autres) 0 Citer
MS_Totor Posté(e) le 12 septembre 2009 Posté(e) le 12 septembre 2009 coucou bien content de te voir participer à l'édifice, super tuto ! comme KFCL au dessus, à force de faire des tutos de ci de là depuis des années, ma remarque constructive..... essayes d'aérer ton propos, à l'aide de quote, ton tuto aura bien plus d'impact visuel pour comprendre les différentes étapes à mener, et différencier tes commentaires pour décrire une fonction, de la partie code sous ssh et la partie édition de fichiers conf via vi ou nano ou autre éditeur. pour éditer, tu prends ton premier post et tu choisis "édition avancée" pour à la fois éditer ton titre et coller un [Tuto] au titre, et pour ton contenu, mef aux pièges de l'édition sous cette version de ipb , pour ne pas te chopper pleins de break et autres blagues, copie/colle ton texte avant via un blocnote ou équivalent si tu a besoin d'un coup de paluche pour l'édition, MP j'effacerais ce post ensuite pour ne pas gêner ce thread @+ 0 Citer
romain74960 Posté(e) le 13 septembre 2009 Auteur Posté(e) le 13 septembre 2009 bonjour mise en page effectu 0 Citer
KFCL Posté(e) le 13 septembre 2009 Posté(e) le 13 septembre 2009 La mise en page de ton tuto est beaucoup mieux comme 0 Citer
romain74960 Posté(e) le 13 septembre 2009 Auteur Posté(e) le 13 septembre 2009 La mise en page de ton tuto est beaucoup mieux comme 0 Citer
eole0 Posté(e) le 21 septembre 2009 Posté(e) le 21 septembre 2009 Bonjour Pour ceux que cela interresse il y a un complement ici : http://www.siteduzero.com/tutoriel-3-14649-proteger-un-dossier-avec-un-htaccess.html cordialement 0 Citer
Shawn Posté(e) le 24 octobre 2009 Posté(e) le 24 octobre 2009 Merci pour ce tuto mais un probl 0 Citer
romain74960 Posté(e) le 24 octobre 2009 Auteur Posté(e) le 24 octobre 2009 Merci pour ce tuto mais un probl 0 Citer
Shawn Posté(e) le 25 octobre 2009 Posté(e) le 25 octobre 2009 Merci pour ton aide Romain. J'ai reessay 0 Citer
wolff67 Posté(e) le 8 mars 2010 Posté(e) le 8 mars 2010 cela m'interresse vraiment mais je suis un nexs la dedans, est ce que cela prot 0 Citer
ikeke Posté(e) le 8 mars 2010 Posté(e) le 8 mars 2010 cela m'interresse vraiment mais je suis un nexs la dedans, est ce que cela prot 0 Citer
Swan Posté(e) le 28 mars 2010 Posté(e) le 28 mars 2010 Bhein sur le principe s est le dossier prive que l on protege donc les fichiers donc les fichiers Htaccess Et Htpasswd seront deja dedans. Certes, mais les utilisateurs ayant accès au dossier aurons de ce fait accès à des information qui ne les regardent peut être pas a savoir, la liste des utilisateur et, dans le cas ou les mots de passe ne sont pas cryptés, les mots de passe "usuels" des autres utilisateurs... Bien sur je parle ici d'une utilisation plus "pro" (j'entends par la un rapport entre les utilisateurs pas forcément amicale). Par contre c'est vrai que il faudra créer un répertoire uniquement pour le fichier .htpasswd Bonne nuit Swan 0 Citer
tricoton Posté(e) le 23 juin 2010 Posté(e) le 23 juin 2010 Merci pour ce tuto. Je constate que le mot de passe doit 0 Citer
aly83 Posté(e) le 25 novembre 2010 Posté(e) le 25 novembre 2010 Parfait le tuto .... mais en le suivant 0 Citer
aly83 Posté(e) le 25 novembre 2010 Posté(e) le 25 novembre 2010 Salut ou je pense que tu as zapp 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.