bon , je commence à m'arracher les cheveux là ^^
J'essaie de restreindre l'accès de mon serveur web. Quand je développe mon site, j'ai pas forcément envie qui des gens se connectent et puissent vois ce qu'il y a sur le serveur.
Donc j'ai lu un peu de doc, et je suis tombé assez naturellement sur le .htaccess. J'ai créé ce fichier dans le répertoire concerné, sauf que ca ne marche pas....
Pour avoir accès à mes sites depuis mon navigateur je les stockes sur /var/www/. Donc j'ai mis le .htaccess a cet endroit, sans succès. J'ai également essayé de le déplacer dans des sous dossier pour tester, pas plus de réussite.
Voila le contenu du .htaccess :
AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName "it works!"
AuthType Basic
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Est-ce que je me suis trompé quelque part ![]()
Quand je me connecte depuis un autre pc que le mien, ca marche, ce qui est donc un échec.
merci.
Restrictions d'accès
Vous pouvez interdire l'accès à votre site à partir de certaines adresses IP. Rappel : une adresse IP est constitué de quatre nombres de 0 à 255 séparés par des points, par exemple l'adresse IP de clipper est 129.199.121.1.
Pour interdire une adresse IP :
deny from 123.456.789.10
Inversement, on peut autoriser une adresse IP :
allow from123.456.789.10
Si on indique un ou deux nombres seulement, ils sont interprétés comme des plages d'adresses IP. Par exemple, allow from 129.199 autorise tous les accès venant de l'École. deny from all interdit à tout le monde l'accès à vos fichiers, mais des scripts peuvent continuer à les utiliser.
En pratique, une interdiction de certaines IP prend la forme suivante :
order allow,deny
deny from 123.45.6.7 # on interdit l'adresse précise 123.45.6.7
deny from 12.34.5 # on interdit toutes les adresses IP commençant par 12.34.5
allow from all # on autorise tous les autres
Exemple : vous souhaitez réserver une partie de votre site aux connexions venant de l'École. Admettons qu'il s'agisse de votre répertoire ~/www/normalos/. Créez dans ce répertoire une fichier .htaccess dans lequel vous écrirez :
order deny,allow
deny from all
allow from 129.199
On peut aussi utiliser des noms de domaine. Admettons que vous n'aimiez ni le gouvernenent américain ni l'entreprise de M. Gates. Vous pouvez écrire :
Deny from .gov microsoft.com
Authentification par mot de passe
JavaScript vous permet également ce genre d'identification, mais il vaut mieux passer par .htaccess : il est périlleux de confier la sécurité au navigateur de l'internaute, qui en fait ce qu'il veut. Vous n'avez pas ce genre de problème côté serveur.
Gardez cependant à l'esprit que la protection par mot de passe au niveau du serveur va faire passer le mot de passe en clair (non crypté). Si vous protégez par mot de passe un répertoire, il est possible de passer outre votre protection si l'on a connaissance de sous-répertoires non protégés.
Procédons par étapes.
1) On commence par créer un fichier .passwds qui contiendra les renseignements sur les personnes autorisées. Pour ce faire, on tape :
htpasswd -c .passwds toto
Ce qui crée à la fois .htpasswd et l'utilisateur toto, pour lequel on vous demande un mot de passe.
clipper ~ $ htpasswd -c .passwds
toto
New password:
Re-type new password:
Adding password for user toto
Pour ajouter d'autres utilisateurs : htpasswd .htpasswd titi. Pour en retirer, il suffit d'éditer le fichier et d'effacer la ligne correspondant à l'utilisateur concerné. htpasswd chiffre les mots de passe (en utilisant une variante de md5), qui ne figurent donc pas en clair dans les fichiers.
Pour en savoir plus, consultez la page de man de htpasswd.
2) On en revient à .htaccess et on tape :
AuthType Basic
AuthUserFile /users/03/pataphys/vian/www/repertoire/.passwds
# endroit où vous conservez les mots de passe
AuthName "Entrez votre mot de passe" # ici vous indiquez ce qui figurera dans la barre de titre
# de la fenêtre
require valid-user
Si vous voulez protéger par mot de passe seulement certaines parties du site, il faut créer un .htaccess dans le répertoire concerné.
Vous ne voulez peut-être pas que l'on sache où vous rangez vos mots de passe. Il faut dans ce cas empêcher l'accès au fichier .htaccess lui-même. Pour protéger le fichier, taper :
<Files .htaccess>
order allow,deny
deny from all
</Files>
il me semble que j'ai déjà lu ca.
Cela ne me dit pas en quoi mon .htaccess est faux ![]()
Si tu veux pas ce qu'on voie ce qu'il y a sur le serveur, met un index sinon. ^^
sur les répertoire tu fait un chmod 755 et sur les document un chmod 644
mon .htaccess:
AuthUserFile /home/user/account/.htpasswd
AuthGroupFile /home/user/account/.htgroup
AuthName "Acces reserve aux membres"
AuthType Basic
Require valid-user
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files .htpasswd>
order allow,deny
deny from all
</Files>
<Files .htgroup>
order allow,deny
deny from all
</Files>
ca marche bien avec FTP j'ai pas teste avec HTTP
d'après http://www.glatozen.org/apachehtaccess.php il faut configurer apache pour le htaccess
Je viens de teste avec apache, en effet il faut bien ajouter AuthConfig à la place de None uniquement sur cette conf:
<Directory /var/www/>
Options Indexes Includes FollowSymlinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
J'ai du aussi refaire mon .htaccess comme suit:
AuthUserFile /home/user/account/.htpasswd
AuthGroupFile /home/user/account/.htgroup
AuthName "Acces reserve aux membres"
AuthType Basic
<Limit GET POST>
Require valid-user
</Limit>
Curcochonne : mettre un index n'empèche des gens d'essayer d'accès au fichier mdp.txt... le pire, c'est que parfois ça marche. ![]()
arf, j'ai bêtement remplacer le mauvais "none", du coup j'ai perdu pas mal de temps pour rien^^
Je me suis un peu aidé de ca :
http://www.markup.fr/Activer-le-mode-rewrite-sur-un-serveur-local
Et je voulais savoir à quoi servait le mod rewrite dans notre cas du htaccess
Sinon je n'ai pas trop compris l'histoire de l'index...
en tout cas merci pour l'aide, ca marche maintenant ![]()
honettement y'a plein de truc que je ne comprend pas comme pourquoi créer des fichier virtualhost? j'ai tout mis a la fin de mon fichier de conf de apache et cela marche nikel. pour le rewrite je n'y ai pas touché et cela fonctionne aussi bien en local qu'en public...
pourquoi créer des fichier virtualhost ? quand tu as un site, peut-être que ta solution est viable...mais imagine quand tu as plusieurs sites
Typiquement, sur mon serveur je gère 46 sites là (tout du moins, 46 noms de domaines pointant vers des répertoires différents) sachant que chaque site à une config sur le port 80 et parfois sur le 443 pour https. Les virtual host sont là pour ça, autant les utiliser
Dans la conf d'apache, tu dois avoir un truc comme :
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
Pour protéger un repertore via htaccess :
Dans le .htaccess :
AuthName "Titre de la restriction"
AuthType Basic
AuthUserFile "/chemin/vers/.htpasswd"
Require valid-user
Dans le .htpassd :
username:passwordCryte
http://bordel.deblan.fr/html2/crypt.php
(script copié/collé from sdz http://www.siteduzero.com/tutoriel-3-14649-proteger-un-dossier-avec-un-htaccess.html#ss_part_2 )
bah justement, j'ai demi douzaine de site (nom de domaine dirigent vers des repertoires différents) et ca marche nikel sauf que je n'use pas le port 443 mais bon, je peux le modifier directement du fichier de conf d'apache.
Oui, mais tu mélanges les configs apache & celles de tes sites...ça craint ^^
ah bon? je vais suivre tes conseils alors.
Cela dit j'ai jamais mis de fichier virtual host ailleur.
par exemple :
<VirtualHost 192.168.1.21:80>
ServerAdmin aodren82@yahoo.fr
DocumentRoot /var/www/html/TG
ServerName aodren82.homelinux.net
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>
comment dois-je nommé mon fichier virtualhost et comment dire a apache où il doit le trouver?
Et ci je met ceci dans un fichier VH, les ligne sont-elles correcte?
Merci
tu le nommes comme tu veux, et tu dois avec un repertoire sites-enabled (regarde dans la config apache, tu dois avec un : Include "/etc/apache2/sites-enabled/") ![]()
ok merci, je vais voir ca