Demander à Apache de lister les répertoires sur les NAS Synology

Par défaut, la configuration Apache des NAS Synology ne permet pas d’afficher automatiquement le contenu des répertoires WEB (pour la fonctionnalité Web Station). Du coup, quand un visiteur veut voir le contenu d’un répertoire qui ne possède pas de fichier index, il est redirigé vers une page d’erreur :

Page d'erreur 403 Synology

Page d'erreur 403 Synology

Voici comment modifier ce comportement pour afficher la liste des éléments du répertoire :

  1. Pour commencer, il faut activer le service telnet ou SSH dans la partie management du NAS (Services réseau \ Terminal). Sur mac, j’ai directement accès au SSH via le terminal. Sur XP, ce n’est pas le cas et il faudra utiliser telnet.
  2. Téléchargez sur Internet un jeux d’icônes pour Apache à décompresser et sauver sur le répertoire public du NAS.
  3. Connectez-vous au NAS en telnet ou ssh via un terminal. Utilisateur root et le mot de passe de l’admin.
  4. On copie les icônes Apache :
  5. cp -r /volume1/public/icons/ /usr/syno/apache/
  6. On rapatrie le fichier de configuration d’Apache pour pouvoir le modifier facilement via un éditeur de texte :
  7. cp /usr/syno/apache/conf/httpd.conf-user /volume1/public/
  8. On modifie le fichier httpd.conf-user disponible dans le répertoire public comme ceci :
  9. <Directory "/var/services/web">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes MultiViews
     
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
     
    #
    # Controls who can get stuff from this server.
    #
    #Order allow,deny
    #Allow from all
    
    </Directory>
  10. Après avoir cette modification, on replace le fichier de config à sa place :
  11. cp /volume1/public/httpd.conf-user /usr/syno/apache/conf/
  12. On redémarre le NAS pour prendre en compte les modifications. Et ça marche :
Après modification, Apache nous donne la liste du contenu des répertoires !

Après modification, Apache nous donne la liste du contenu des répertoires !

Au final, on y arrive. Cependant, je trouve dommage que Synology n’ait pas activé cette fonction par défaut. C’est sûr que d’un point de vue sécurité, il est plus prudent de cacher le contenu des répertoires. Pourtant la norme aujourd’hui chez les hébergeurs est plutôt à l’accès au listing du répertoire. L’utilisateur peut toujours (très facilement) créer un fichier index ou bien créer un fichier .htaccess pour limiter les visiteurs curieux. Cette manipulation reste incomparablement plus facile que la modification du httpd.conf que nous venons de faire.

Ou alors, il faudrait que monsieur Synology ajoute une petite case à cocher dans son IHM de gestion pour donner à l’admin la fonction de listing en un clin d’oeil.

 

Comments: 4

Leave a reply »

 
 
 

Bonjour.

Pas grand chose à dire hormis de vous remercier pour votre « astuce » vraiment trés bien expliquée et surtout sans erreur !

Mes félicitations et encore merci ;)

Cependant j’en profite pour vous poser une question : Connaîtriez* vous la démarche à suivre afin de permettre la gestion des erreurs 404 et compagnie par un htaccess personnel.

J’ai cru comprendre en fouillant à droite et à gauche que c’est une histoire de Allow Override dans un des httpd-xxxx à modifier mais je n’ai rien trouvé qui semble réelement correct.

Un lien à me conseiller peut être ?

Encore merci pour votre article.

Franck A.

* = Oui, c’est bien francais :p

 
 

Bonsoir Franck,

Pour répondre à ton message, j’ai essayé sur mon DS109 à partir du fichier httpd.conf-user modifié comme expliqué dans mon article et ça fonctionne apparemment très bien. A la base, j’ai regardé les recommandation de cette page mais toutes les conditions étaient déjà ok. Je n’ai rien modifié.

Voila la ligne que j’ai mise dans le fichier .htaccess :
ErrorDocument 404 /test404/toto.htm

et les requêtes de pages inexistantes sont bien redirigées vers la page toto.htm

++, Romain

 
 

Bonsoir et merci,

Je garde cette page en favori et j’y reviens à chaque fois que je fais une mise à jour du DSM de mon Syno. Il est effectivement dommage que Synology n’ai pas prévu une case à cocher c’est fastidieux de tout remodifier à chaque fois.

Cette astuce fonctionne très bien pour le site web « principal », celui qui est dans le répertoire « web ». Avez-vous une astuce comparable pour les sites web des utilisateurs, ceux qui sont hébergés dans les répertoires « homes/User_Id/www » ?

Merci,
Julien

 
 

merci, ton tuto m’a beaucoup aidé

 
 
Leave a Reply
 
  (will not be published)