Aller au contenu

mettre en téléchargement HTTP, quelques fichiers en accès direct avec ou sans authentification


Messages recommandés

Posté(e)

Sujet : mettre en téléchargement HTTP, quelques fichiers en accès direct avec ou sans authentification

 

Préambule :

Actuellement si vous mettez des fichiers dans un dossier du dossier web par exemple : /web/doc et que vous essayez d'y accéder par http:/ipdunas/doc, vous avez une page d'erreur

erreursq.jpg

 

Solution :

On va utiliser les options possibles du serveur apache du syno, que l'on pourrait rentrer directement dans le fichier de conf qui se trouve /usr/syno/apache/conf/extra/httpd-autoindex.conf-user

mais comme ces modifs s'appliqueraient à tous les dossiers, je vais expliquer pour le faire seulement sur le dossier concerné et ses sous-dossiers correspondants

on va utiliser pour cela le petit fichier magique .htaccess que l'on mettra dans le dossier que l'on souhaite ouvrir à l'exploration pour mon exemple je vais prendre le dossier /web/doc/

pour créer le fichier .htaccess on utilisera l'éditeur universel Notepad++

 

- On va créer dans /web/doc/ un fichier .htaccess et on va lui ajouter une ligne que je vais faire précéder à chaque fois d'un commentaire pour comprendre

 

 
#lister les fichiers

Options +Indexes

on va maintenant essayer d'accéder à http:/ipdunas/doc et on optient (après avoir mis 3 fichiers et un dossier) copie0r.jpg - On remarque qu'il y a un problème, nous n'avons pas d'icones à coté des dossiers et fichiers Mise en place des Icones pour cela j'ai récupéré les icônes minimun nécessaire dans une installation d'apache et j'ai fait un fichier zip que vous pouvez télécharger fichier zip: icons.zip (nous verrons plus tard comment en ajouter d'autres pour certains types de fichiers non définis actuellement dans le fichier de conf) - il suffit de décompresser ce fichier dans /web par exemple pour avoir /web/icons/ maintenant on va mettre ce dossier dans le syno en utilisant Putty (oui il fallait bien une petite manip telnet) - il faut mettre les icônes dans : /usr/syno/apache/icons/ créer le dossier : mkdir /usr/syno/apache/icons/ faire la copie des icônes : cp /volume1/web/icons/* /usr/syno/apache/icons/ (effacer dedans le "Thumbs.db") : rm /usr/syno/apache/icons/Thumbs.db on va maintenant reéssayer d'accéder à http:/ipdunas/doc et on optient copie1l.jpg Ok maintenant on voit bien les icônes, mais quelque chose me gêne on a l'option " Parent Directory " qui permet de remonter au dossier racine /web Supprimer le "Parent Directory" - je vais le supprimer par l'ajout d'une ligne dans mon fichier .htaccess

 
#ignore le repertoire parent

IndexIgnore ..

on va maintenant ressayer d'acceder à http:/ipdunas/doc et on optient copie2.jpg Ok, on n'a plus l'option "Parent Directory" (elle est aussi désactivée sur les sous dossiers, je n'ai pas trouvé pour la remettre sur les sous-dossiers) on peut également ignorer certains fichiers ou répertoires en utilisant toutes les conditions simplement en les mettant à la suite séparées par un espace (sensible à la casse) exemple : je veux supprimer le "Parent Directory", les fichiers .bak et les fichiers commencant par z

 
#ignore le repertoire parent, les fichiers .bak et les fichiers commencant par z

IndexIgnore .. *.bak z*

Personnalisation de l'en-tête et du bas de page Maintenant on va personnaliser l'en-tête de page en créant tout simplement un fichier HEADER.html (en majuscule) dans le dossier /web/doc/ on va maintenant reéssayer d'accéder à http:/ipdunas/doc et on optient copie3.jpgSupprimer le bas de page Maintenant on veut supprimer le bas de page indiquant le nom du serveur Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k PHP/5.2.10 Server at diskstation Port 80 je vais ajouter une ligne dans mon fichier .htaccess

 
#supprimer le bas de page

ServerSignature off

ou dans le fichier de conf /usr/syno/apache/conf/extra/httpd-default.conf-user changer

 
ServerSignature on

Par

 
ServerSignature off

nota : si modification du fichier de conf relancer le serveur apache par : /usr/syno/etc/rc.d/S97apache-user.sh restart ou personnaliser le bas de page Maintenant on va personnaliser le bas de page en créant tout simplement un fichier README.html (en majuscule) dans le dossier /web/doc/ on va maintenant réessayer d'accéder à http:/ipdunas/doc et on optient copie4u.jpgTri des noms de dossiers et autres Options encore par l'ajout d'une ligne dans mon fichier .htaccess

 
# options (je trie les dossiers, puis les fichiers en ignorant la casse du nom)

IndexOptions +FancyIndexing +FoldersFirst +IgnoreCase +NameWidth=* +DescriptionWidth=*

explications : # FancyIndexing : active ses propres options pour la représentation de la liste du répertoire # IndexOptions : fixe d'autres options # le signe + ajoute l'option, le signe - la supprime # le signe + ajoute l'option, le signe - la supprime # FoldersFirst : les répertoires sont listés avant les fichiers, la largeur du champ description s'adapte en fonction la longueur du nom de fichier # IgnoreCase : igniore la casse dans le tri # NameWidth=* longueur du champ Nom * s'adapte au plus grand # DescriptionWidth=* longueur du champ description * s'adapte au plus grand # SuppressColumnSorting : les éléments du répertoire sont affichés sans être triés. # SuppressDescription : aucun descriptif de fichier n'est affiché. # SuppressLastModified : aucune date et heure n'est affichée pour les éléments. # SuppressSize : aucune taille de fichier n'est affichée. # IconHeight=32 IconWidth=32 : les graphiques icônes sont affichés avec une hauteur fixe de 32 pixels et une largeur fixe de 32 pixels. # IconsAreLinks : Les icônes peuvent être cliquées en tant que lien et appellent le fichier affiché à leur côté (intéressant pour rendre les icones cliquables) # ScanHTMLTitles : Dans la colonne du descriptif de fichier c'est le contenu de l'élément title qu'ils contiennent qui est lu et affiché comme court descriptif du fichier dans le cas des fichiers HTML. Ajout de la description des fichiers en fonction de l'extension maintenant si l'on veut ajouter une description de fichier on va ajouter une ligne soit dans le fichier de conf /usr/syno/apache/conf/extra/httpd-autoindex.conf-user soit plus simplement dans notre fichier .htaccess

 
#ajout description de fichier en fonction de l'extension

AddDescription "Fichier à télécharger" *.zip

AddDescription "Photo" *.jpg

AddDescription "Photo" *.JPG

AddDescription "Musique" *.mp3

AddDescription "Vidéo" *.mp4

nota : si modification du fichier de conf relancer le serveur apache par : /usr/syno/etc/rc.d/S97apache-user.sh restart Accès au dossier /doc par Authentification en indiquant un login et un mot de passe maintenant on souhaite protéger ce dossier /doc par une demande d'authentication par un login et un mdp pour cela on va ajouter toujours dans notre fichier .htaccess

 
AuthUserFile /volume1/web/doc/.htpasswd

AuthGroupFile /dev/null

AuthName "Veuillez vous identifier"

AuthType Basic

<Limit GET POST>

require valid-user

</Limit>

nota: 1ere ligne à modifier en fonction du nom de votre dossier AuthUserFile /volume1/web/doc/.htpasswd et on va creer un fichier .htpasswd avec la liste des comptes et mdp cryptés on utilisera un générateur comme par exemple http://shop.alterlin...sswd/passwd.php et pour créer le fichier .htpasswd on utilisera également l'éditeur universel Notepad++ exemple de fichier .htpasswd

 
patrick:eStfFAVwYg2K2

nota : autant de lignes que d'users possibles on peut également utiliser sur le syno : /usr/syno/apache/bin/htpasswd pour générer les mots de passe Supprimer l'indexation (référencement) de notre dossier /doc par les moteurs de recherche comme Google Maintenant on ne veut pas que notre dossier soit indexé par les moteurs de recherche, on va créer tout simplement un fichier robots.txt que l'on mettra dans /web avec dedans :

 
User-Agent: *

Disallow: /

Contrer les possibilités de remonter le dossier /doc et d'accéder dans /web en tapant http://mondyndns.org au lieu de http://mondyndns.org/doc Maintenant comme on ne souhaite pas que les accès extérieurs remontent le dossier /doc et accèdent dans /web il suffit de créer un fichier index.html dans le dossier /web qui va rediriger automatiquement vers http://mondyndns.org/doc

 
<html>

<head>

<title>http://mondyndns.org/doc</title>

<meta http-equiv="refresh" content="1; URL=http://mondyndns.org/doc">

</head>

</html>

c'est un exemple qu'on peut adapter, ou ça peut être une page d'info, une page d'erreur, etc. je vous laisse l'imagination (toujours mettre un fichier index.html dans le dossier /web sinon vous êtes redirigé vers l'administration du nas http://mondyndns.org:5000) ou sinon on pourra utiliser un domaine ou un sous.domaine (c'est gratuit quand on a un domaine) et paramétrer un virtual-host dans le syno accédant au dossier /doc dans ce cas pas de possibilité de remonter le dossier puisqu'on accède au dossier directement en tapant http://www.mondomaine.fr ou http://www.sous.mondomaine.fr Ajouter des icônes manquantes maintenant j'avais parlé au début de ce tuto d'ajout d'autres icônes, il suffit d'ajouter dans le fichier de conf /usr/syno/apache/conf/extra/httpd-autoindex.conf-user soit plus simplement dans notre fichier .htaccess les icônes à rajouter doivent êtres au format 20x22 pixels (j'ai mis dans le fichier icons.zip, 4 icones en plus, excel.gif, word.gif, ppt.gif, pdf.gif) ajout:

 
AddIcon /icons/excel.gif .xls .xlsx

AddIcon /icons/word.gif .doc .docx

AddIcon /icons/ppt.gif .ppt .pptx

AddIcon /icons/pdf.gif .pdf

exceptionnement vous pouvez mettre une ligne dans le fichier .htaccess qui sera prioritaire sur le fichier de conf pour changer une icône si vous faites la modif dans le fichier de conf, pour l'icone "pdf" il faut modifier la ligne :

 
AddIcon /icons/layout.gif .html .shtml .htm .pdf

par

 
AddIcon /icons/layout.gif .html .shtml .htm

 

nota : si modification du fichier de conf relancer le serveur apache par : /usr/syno/etc/rc.d/S97apache-user.sh restart

Voila le résultat :

copie5.jpg

 

nota : pour comprendre le lien entre le nom de l'icône et l'extension du fichier faire un cat /usr/syno/apache/conf/extra/httpd-autoindex.conf-user

et regarder les lignes commençant par : AddIcon

vous avez remarqué qu'il y a quand même une icône (Point d'interrogation) sur les extensions non déclarées

et bien sure, il faut mettre les nouveaux icônes toujours dans : /usr/syno/apache/icons/

 

 

si vous remarquez un complément à apporter merci de me contacter par MP

 

Et si vous avez utilisé mon tuto pour vos besoins vous pouvez laisser un commentaire sur le sujet

 

Merci

Patrick

  • 4 semaines après...
  • Réponses 88
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Posté(e)

Hello,

De retour de mon test, ça fonctionne super bien, j'ai juste un petit bémol pour les droits d'accès sur les dossiers. Peux t'on en définir ?

L'utilisateur pourrait avoir accès a certains dossiers mais pas aux autres !

Si tu as une idée Patrick :P

Merci

Posté(e)

Merci Patrick (l'autre) :P

J'ai effectivement mis un fichier .htaccess dans les dossiers que je voulais protéger pour les utilisateurs. Le code est le suivant :

order deny,allow

deny from all

require user (nom utilisateur)

</LIMIT>

Ce code permet de cacher le dossier pour les utilisateurs qui n'ont pas accès tout simplement :D

Je préférerais générer une page d'erreur 401 dans les dossiers dont les utilisateurs n'ont pas accès (ça évite que les dossiers soient cachés)

Mais je ne connais ni le code ni la manière. Si une idée vous viens ? :rolleyes:

Merci à tous

Posté(e)

Merci Patrick (l'autre) :P

J'ai effectivement mis un fichier .htaccess dans les dossiers que je voulais protéger pour les utilisateurs. Le code est le suivant :

order deny,allow

deny from all

require user (nom utilisateur)

</LIMIT>

Ce code permet de cacher le dossier pour les utilisateurs qui n'ont pas accès tout simplement :D

Je préférerais générer une page d'erreur 401 dans les dossiers dont les utilisateurs n'ont pas accès (ça évite que les dossiers soient cachés)

Mais je ne connais ni le code ni la manière. Si une idée vous viens ? :rolleyes:

Merci à tous

Bonsoir

en ajoutant une authentification par login et mdp comme expliquer dans mon tuto

tu places le meme fichier .htaccess que tu as mis dans ton dossier dans le sous-dossier, tu y ajoutes le code de demande d'authentification et tu y mets le fichier .htpasswd

/web/doc - .htaccess

/web/doc/dossier/ .htaccess (+ lignes de demande d'authentification)

/web/doc/dossier/ .htpasswd (contenant les users et mdp)

ou simplement en masquant le ou les dossiers en ajoutant leur nom sur la ligne "IndexIgnore nomdudossier1 nomdudossier2

Patrick

  • 4 semaines après...
  • 2 semaines après...
Posté(e)

Bonjour Patrick21 !

Moi j'ai un problème !

Je bloque à la première étape !

J'ai créer le dossier "doc" dans "web", et j'ai mis en place le .htaccess dans "doc" comme dans le tuto.

Mais en tapant l'adresse de mon nas en http en rajoutant /doc à la fin, je tombe toujours sur la page d'erreur de synology !

Pour info, j'ai un site et un blog WordPress chacun dans un répertoire.

Ce qui me donne dans le dossier web:

site -> pour le site.

blog -> pour le blog

doc -> pour le dl via http

J'ai fais aussi une redirection des noms de domaines (du blog et du site) depuis l'hôte virtuel du service web du syno vers leurs dossiers respectif.

Est ce que le problème pourrait venir de là ?

Merci d'avance pour ton aide !

Posté(e)

Bonsoir

as tu bien dans le .htaccess la ligne :

Options +Indexes

et as tu rafraichi l'affichage de ta page "F5"

Patrick

Merci pour cette rapidit

  • 4 semaines après...
Posté(e)

Voila un super tuto, clair, précis et que j'arrive à exploiter.

Donc un grand merci.

Mais un chtit coup de main serait le bienvenu :

  • j'ai la page "introuvable" du Syno dès que j'introduis la ligne Server Signature off dans le .htaccess. Un Serveur Signature on ne marche pas mieux. En gros cette ligne fait tout foirer.

je vois pas pourquoi, mes tests ont fonctionné (c'est "ServerSignature" sans espace)
mais cette ligne n'est pas crutiale si tu fais un fichier de fin de page README.html



  • même punition si j'ajoute(toujours dans le .htaccess)
    User-Agent: *
    
    Disallow: /
    
    

Bref, le tuto est excellent mais l'utilisateur moyen-moyen :D

Merci

Tu as mal lu le tuto, ces 2 lignes sont a mettre dans le fichier robots.txt

Patrick

Posté(e)

je vois pas pourquoi, mes tests ont fonctionné (c'est "ServerSignature" sans espace)

mais cette ligne n'est pas crutiale si tu fais un fichier de fin de page README.html

Tu as mal lu le tuto, ces 2 lignes sont a mettre dans le fichier robots.txt

Patrick

J'ai honte ... tu as raison sur les 2 points bien sûr ... et d'ailleurs je venais d'aller consulter les log Apache qui disaient la même chose.

Je suis vraiment un cloooown fatigué

@+++

  • 6 mois après...
  • 3 semaines après...
Posté(e) (modifié)

Merci pour ce tuto Patrick.

Je bloque à la première étape, c'est à dire qu'après avoir mis le .htaccess dans /volume1/web/doc et avoir rajouter des fichiers, j'ai toujours la page d'erreur du Syno. Mon fichier a bien été encodée au format UTF-8 ...

Une idée ? Merci

EDIT : A force de bidouiller mon fichier, j'ai réussi à passer cette étape :D

Modifié par mafiaman42
  • 2 mois après...
Posté(e) (modifié)

Hello merci pour cette excellent tuto! tout foi j'ai un souci, je ne comprend pas pourquoi j'ai un dossier @eaDir/ et Thumbs.db qui s'affiche ?

sanstitremo.png

Modifié par dede17
Posté(e)

Bonsoir

d'après ce qui est écrit "on va maintenant essayer d'accéder à http:/ipdunas/doc et on optient (après avoir mis 3 fichiers et un dossier)"

c’est toi qui choisi les fichiers à partager , je le voit comme ça ?

A++

Posté(e)

Hello merci pour cette excellent tuto! tout foi j'ai un souci, je ne comprend pas pourquoi j'ai un dossier @eaDir/ et Thumbs.db qui s'affiche ?

sanstitremo.png

Bonjour

Pour ne pas afficher certains fichiers ou dossiers, il suffit de les ajouter sur la ligne (comme expliqué dans me tuto) :

IndexIgnore .. Thumbs.db /@eaDir

Patrick

  • 1 mois après...
Posté(e) (modifié)

Bonjour,

j'ai suivi ce tuto et ça fonctionne bien en local (http:ipduNAS/doc).

par contre, comme je suis en https depuis l'extérieur, comment accéder à ce dossier /doc depuis l'extérieur en utilisant https?

j'ai essayé ceci : https://dns:port/doc/ (sachant que port est redirigé vers le 443), mais ça ne fonctionne pas (j'ai la page synology m'indiquant que la page est introuvable!)

y'a t-il une manip spéciale pour le https?

je précise juste que j'accède bien à mon syno depuis l'ext en https (https://dns:port)

Merci

edit:pb réglé pour moi, le port 443 étant déjà utilisé, fallait ouvrir le 5001 (ceci étant juste un test).

Modifié par kaza7
  • 5 mois après...
Posté(e) (modifié)

Bonjour à tous,

Quand on a pas webstation (usbstation 2), on fait comment pour avoir un dossier web ?

J'ai essayé de mettre un .htaccess pour différents dossiers dans l'arborescence du nas via ssh mais lorsque j'essaye d'atteindre https://ip.du.nas:5001/dossier, j'ai la page d'erreur de synology.

J'assaye de trouver une solution sur ce forum et google mais je n'arrive à rien.

Est ce qu'il y a un dossier dédié dans la configuration du serveur d'apache ?

Je suis un peu perdu qu'on puisse utiliser un chemin pour le dossier dans la barre d'adresse qui s'appelle juste web quand le chemin sur le nas est au moins volume1/web, et dans mon cas vu que l'ipkg est sur une clef usb c'est volumeUSB1/usbshare/@optware/web. Est ce que c'est toute cette adresse que je devrais utiliser ?

Kevin

Modifié par sank64
Posté(e)

Bo

Bonjour à tous,

Quand on a pas webstation (usbstation 2), on fait comment pour avoir un dossier web ?

J'ai essayé de mettre un .htaccess pour différents dossiers dans l'arborescence du nas via ssh mais lorsque j'essaye d'atteindre https://ip.du.nas:5001/dossier, j'ai la page d'erreur de synology.

J'assaye de trouver une solution sur ce forum et google mais je n'arrive à rien.

Est ce qu'il y a un dossier dédié dans la configuration du serveur d'apache ?

Je suis un peu perdu qu'on puisse utiliser un chemin pour le dossier dans la barre d'adresse qui s'appelle juste web quand le chemin sur le nas est au moins volume1/web, et dans mon cas vu que l'ipkg est sur une clef usb c'est volumeUSB1/usbshare/@optware/web. Est ce que c'est toute cette adresse que je devrais utiliser ?

Kevin

Bonjour

si tu n'as pas de serveur web, ce tuto n'est pas pour toi

pour l’accès aux dossiers, il suffit d'utiliser les fonctions d’accès a l'usb2 sans aucune modification

Patrick

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.