Configuration de reverse proxy

ownCloud fonctionner derrière un reverse proxy, qui peut mettre en cache les éléments statiques comme les images et les fichiers JS ou CSS, déporter la charge du traitement HTTPS sur un serveur différent ou faire de l’équilibrage de sur plusieurs serveurs.

Définition de proxy de confiance

Pour des raisons de sécurité, vous devez définir explicitement les serveurs proxy auxquels ownCloud peut faire confiance. Les connexions aux serveurs proxy de confiance seront traitées de façon spéciale pour obtenir l’information réelle du client, utilisée pour le contrôle d’accès et la journalisation. Les paramètres sont configurés dans le fichier config/config.php.

Définissez le paramètre trusted_proxies comme un tableau d’adresses IP pour définir les serveurs proxy auxquels le serveur ownCloud peut faire confiance. Ce paramètre fournit une protection contre le spoofing client, et vous devez sécuriser ce serveurs comme vous le faites pour le serveur ownCloud.

Un reverse proxy peut définir des en-têtes HTTP avec l’adresse IP originale du client, et ownCloud peut utiliser ces en-têtes pour récupérer l’adresse IP. ownCloud utilise le standard de facto d’en-tête « X-Forwarded-For » par défaut, mais cela peut être configuré avec le paramètre forwarded_for_headers. Ce paramètre est un tableau de chaînes de recherches PHP, par exemple « X-Forwarded-For » devient « HTTP_X_FORWARDED_FOR ». Si ce paramètre est mal défini, il peut permettre à des clients de spoofer leur adresse IP telle qu’elle est vue par ownCloud, même s’ils passent par des proxy de confiance ! La valeur correcte pour ce paramètre dépend de votre logiciel de proxy.

Paramètres d’écrasement

La détection automatique du nom d’hôte, du protocole ou de la racine Web d’ownCloud peut échouer dans certaines situations. Cette configuration permet de passer outre la détection automatique pour être écrasée manuellement.

Si ownCloud échoue à détecter automatiquement le nom d’hôte, le protocole ou la racine Web, vous pouvez utiliser les paramètres overwrite du fichier config/config.php. Le paramètre overwritehost est utilisé pour définir le nom d’hôte du proxy. Vous pouvez également spécifier un port. Le paramètre overwriteprotocol est utilisé pour définir le protocole du proxy. Vous avez le choix entre deux options : http et https. Le paramètre overwritewebroot est utilisé pour définir le chemin absolu de la racine Web du proxy au dossier d’ownCloud. Si vous voulez conserver la détection automatique de l’un de ces trois paramètres,vous pouvez laisser la valeur vide. Le paramètre overwritecondaddr est utilisé pour écraser les valeurs dépendant de l’adresse distante. La valeur La valeur doit être une expression régulière des adresses IP du proxy. C’est utile quand vous utilisez un reverse proxy SSL uniquement pour les accès https et que vous voulez utiliser la détection automatique pour les accès http.

Exemple

Reverse proxy SSL multi-domaine

Si vous voulez accéder à votre installation ownCloud http://domaine.tld/owncloud par l’intermédiaire de reverse proxy SSL multi-domaine https://ssl-proxy.tld/domaine.tld/owncloud avec l’adresse IP 10.0.0.1 vous pouvez définir les paramètres suivants dans le fichier config/config.php.

<?php
$CONFIG = array (
  "trusted_proxies"   => ['10.0.0.1'],
  "overwritehost"     => "ssl-proxy.tld",
  "overwriteprotocol" => "https",
  "overwritewebroot"  => "/domaine.tld/owncloud",
  "overwritecondaddr" => "^10\.0\.0\.1$",
);

Note

Si vous voulez utiliser le proxy SSL pendant l’installation, vous devez créer auparavant le fichier config/config.php, sans quoi, vous devrez étendre le tableau $CONFIG existant.

Toute la documentation est sous licence Creative Commons Attribution 3.0 Unported license — Traduction : Cédric Corazza.