devildant Posté(e) le 24 décembre 2013 Posté(e) le 24 décembre 2013 (modifié) Bonjour à toutes et à tous, Tout d'abord bonne fête ^^. Aujourd'hui je vous propose un petit tuto qui permet au toké comme moi de bénéficier pleinement de photostation et ds photo en reverse proxy. ce tuto va permettre entre autres de : A ) bénéficier du blocage des IP avec ds photo en reverse proxy B ) de la connexion automatique a photostation via DSM quand il est utilisé avec reverse proxy. C ) de bénéficier de pixlr avec un reverse proxy et en https forcé (http fonctionne également) prérequis : 1) un accès ssh sur votre syno 2) avoir putty 3) avoir photostation ^^ Étape 1: conf Pour DSM 4.3 et inférieur : création d'un fichier .htaccess 1) connectez-vous avec putty en ssh à votre syno en root 2) entrez la commande suivante : cd /volume1/@appstore/PhotoStation/ 3) créer un fichier htaccess vi .htaccess Appuyer sur la touche i, puis copier le contenu ci-dessous et faite un click droit dans vôtre fenêtre putty pour coller le texte copier php_value auto_prepend_file "/volume1/@appstore/PhotoStation/checkerProxy.php" Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer. Pour DSM 5+ : 1) connectez-vous avec putty en ssh à votre syno en root 2) entrez la commande suivante : cd /etc/php/conf.d/ 3) Édité le fichier user_settings.ini avec la commande suivante : vi user-settings.ini 4) ajouté la ligne suivante en début de fichier : user_ini.filename = .user.ini Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer. 5) Créer le fichier user.ini : vi .user.ini 6) Ajouter la ligne suivante dans le fichier : auto_prepend_file = "/volume1/web/remote/checkerProxy.php" Fermer le ficher en appuyant sur échap puis tapez :wq et valider avec la touche entrer. 7) redémarrage d'apache : /usr/syno/sbin/synoservicecfg --restart httpd-user Etape 2 : 1) créer le fichier checkerProxy.php vi checkerProxy.php Appuyer sur la touche i, puis copier le contenu ci-dessous et faite un click droit dans vôtre fenêtre putty pour coller le text copier if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { $ip = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); $_SERVER['REMOTE_ADDR'] = $ip[0]; } } if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { if ($_SERVER['SERVER_PORT']=='80') $_SERVER['SERVER_PORT']='443'; $_SERVER['HTTPS']='on'; } Jusqu'ici ces modification permettre de patch les points A et B, le point C est partielement patché Étape 3: Correction de pixlr Executer la commande ci-dessous (elle permet d'éditer le fichier js defaillant) vi /volume1/@appstore/PhotoStation/photo/javascripts/synophoto_one_admin.js ensuite faite echap puis tapper (la commande ci-dessous permet de rechercher le terme dans le document) /pixlr.com Appuyer sur la touche n jusqu'a avoir trouvez la partie ci-dessous var a=String.format("{0}//pixlr.com/{1}/?method=get","http:",c.type); Pour corriger le problème, il suffit de remplacer "http:" par location.protocol Pour effectuer la modification, placer le curseur sur la " de "http:" appuyer ensuite 7 fois sur la touche x pour supprimer "http:", une fois cela enlevé appuyer sur la touche i et entrer le text ci-dessous location.protocol vous devrez au final avoir ceci : var a=String.format("{0}//pixlr.com/{1}/?method=get",location.protocol,c.type); Pour finir, ecrivez vos modification et quitter le fichier, pour cela faites échap puis entrer :wq ATTENTION a se que vous faites, si jamais vous voulez quitter l'edition du fichier sans sauvegardez faite échap puis :q! Pour information j'ai deja transmit mes modifications a synology, j'espere qu'il en prendront compte Note modif : suite au commentaire de pomeh j'ai modifié le script php, merci a lui pour ça remarque Modifié le 19 août 2014 par devildant 0 Citer
devildant Posté(e) le 26 décembre 2013 Auteur Posté(e) le 26 décembre 2013 bon mon petit tuto ne semble pas vous convenir 0 Citer
pomeh Posté(e) le 26 décembre 2013 Posté(e) le 26 décembre 2013 Je n'ai pas encode de NAS donc je pourrais pas dire si le patch fonctionne bien ou pas. En revanche je fais du développement PHP et je me permet une petite remarque sur cette ligne: $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];En cas d'utilisation de plusieurs reverse proxy, la valeur de "$_SERVER['HTTP_X_FORWARDED_FOR']" contient une liste d'IP séparées par des virgules, et la première valeur étant celle du client d'origine (cf. https://en.wikipedia.org/wiki/X-Forwarded-For#Format). Il faut pouvoir gérer ces cas car la valeur de "$_SERVER['REMOTE_ADDR']" doit forcément être une IP simple, et non une liste d'IP. 0 Citer
devildant Posté(e) le 26 décembre 2013 Auteur Posté(e) le 26 décembre 2013 (modifié) Je n'ai pas encode de NAS donc je pourrais pas dire si le patch fonctionne bien ou pas. En revanche je fais du développement PHP et je me permet une petite remarque sur cette ligne: $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']; En cas d'utilisation de plusieurs reverse proxy, la valeur de "$_SERVER['HTTP_X_FORWARDED_FOR']" contient une liste d'IP séparées par des virgules, et la première valeur étant celle du client d'origine (cf. https://en.wikipedia.org/wiki/X-Forwarded-For#Format). Il faut pouvoir gérer ces cas car la valeur de "$_SERVER['REMOTE_ADDR']" doit forcément être une IP simple, et non une liste d'IP. Bonsoir, on en apprend tous les jours je ne connaissais pas cette subtilité, je vais appliquer une correction dans ce cas. bon après il faut avouer que a part sur mon syno je n'utilise que très rarement les reverse proxy, et cela même au boulot, sauf dans le cas de loadbalancing (front/middle) simple ^^ après je suis conscient que la solution que j'apporte est "sale" mais c'est la plus simple et la plus rapide a mettre en place. j'ai communiquer a synology les endroits précis du code de photostation responsable des bugs. ps : il fonction vue que je l'utilise Modifié le 26 décembre 2013 par devildant 0 Citer
pews Posté(e) le 27 décembre 2013 Posté(e) le 27 décembre 2013 Hello Devildant, Ton tuto m'intèresse mais j'ai plusieurs interrogations : - Ou peut-on trouver le package HAProxy ? Impossible de le récupérer, même sur http://www.synocommunity.com/packages - J'ai installé un Reverse Proxy avec cette méthode : Ca marche très bien sauf qu'à chaque mise à jour de la DSM, je suis obligé de rajouter une ligne de code à la main. Pas très pratique et puis je suis confronté aussi aux problèmes que tu évoques A,B et C. Donc si je comprends bien, le package HAProxy est plus convivial avec une interface grapique et évite de rajouter une ligne à la mano lors des MAJ ? - Tes modifs sont à refaire à chaque mise à jour de la DSM? 0 Citer
Thierry94 Posté(e) le 27 décembre 2013 Posté(e) le 27 décembre 2013 Bonjour, Il faut ajouter "http://packages.synocommunity.com" dans les sources de paquets et vous pourrez installer Haproxy Thierry 0 Citer
devildant Posté(e) le 27 décembre 2013 Auteur Posté(e) le 27 décembre 2013 (modifié) Hello Devildant, Ton tuto m'intèresse mais j'ai plusieurs interrogations : - Ou peut-on trouver le package HAProxy ? Impossible de le récupérer, même sur http://www.synocommunity.com/packages - J'ai installé un Reverse Proxy avec cette méthode : Ca marche très bien sauf qu'à chaque mise à jour de la DSM, je suis obligé de rajouter une ligne de code à la main. Pas très pratique et puis je suis confronté aussi aux problèmes que tu évoques A,B et C. Donc si je comprends bien, le package HAProxy est plus convivial avec une interface grapique et évite de rajouter une ligne à la mano lors des MAJ ? - Tes modifs sont à refaire à chaque mise à jour de la DSM? Bonjour, oui haproxy vous permet d'éviter de reconfigurer le reverse proxy apres les maj dsm. concernant mes modifs, il faudra les refaire a chaque maj de photostation mais une fois qu'on a pris le coup de main sa se fait tres vite, c'est pour cela que j'ai transmit mes modif a synology, normalement d'apres ma conversation avec eu le "A) bénéficier du blocage des IP avec ds photo en reverse proxy devrait etre corrigé" apres concernant le B ) et le C) j'y travail ^^. j'ai mis ce tuto pour ceux qui veulent patché le plus rapidement possible photstation Modifié le 27 décembre 2013 par devildant 0 Citer
NOTHiNG_Fr Posté(e) le 28 janvier 2014 Posté(e) le 28 janvier 2014 (modifié) Bon, si ça intéresse quelqu'un, après de longues heures de bataille avec HAProxy et la documentation... j'ai réussi a mettre PhotoStation derriere HAProxy avec un sous-domaine : pics.MONDOMAINE.FR 2 Petites précisions : Le apache de mon syno tourne sur le 10080 et non plus sur le . HAproxy tourne sur le / 443 J'ai configurer HAproxy comme cela : Frontends : Nom : HTTPS Binds : :443 ssl crt /usr/local/haproxy/var/crt/default.pem Backend par défaut : web Options : option http-server-close,option forwardfor,rspirep ^Location: http://(.*)$ Location: https://1, acl photo_path path_beg /photo/, redirect prefix https://pics.MONDOMAINE.FR/photo code 301 if { hdr(Host) -i pics.MONDOMAINE.FR } !photo_path Nom : HTTP Binds : : Backend par défaut : web Options : redirect scheme https unless { hdr(Host) -i www.MONDOMAINE.FR } Backends : Nom : photostation Serveurs : photostation localhost:10080 check Options: Associations : Frontend: HTTPS Backend: Photostation Condition: if { hdr(Host) -i pics.MONDOMAINE.FR } Voila, j'espère que ça interressera quelqu'un après m'etre cassé la tete pour finalement pas grand chose Modifié le 28 janvier 2014 par NOTHiNG_Fr 0 Citer
via78 Posté(e) le 30 janvier 2014 Posté(e) le 30 janvier 2014 (modifié) wowo !!!! la tu m'intéresse !! j'ai pas tous compris au niveau de ce code, de haproxy. je regarde sur mon nas ce que j'ai et je reviens avec surement des questions. mais ca ne me semble pas être le lieu. ( je ne veux pas pourri ce poste) je peux t'écrire en PM dans ce cas ??? Via edit : j'ai posté mes questions sur ce lien si tu veux bien y repondre , je t'en remerci d'avance Modifié le 30 janvier 2014 par via78 0 Citer
Moonface Posté(e) le 18 août 2014 Posté(e) le 18 août 2014 (modifié) Bonjour à tous, Cela ne fonctionne pas chez moi, j'ai "Désolé, la page que vous recherchez est introuvable.". Un problème avec le script php ? Je précisie que j'utilise la dernière version de DSM 5.0 : DSM 5.0-4493 Update 3 Merci à vous Fabien Modifié le 18 août 2014 par Moonface 0 Citer
devildant Posté(e) le 19 août 2014 Auteur Posté(e) le 19 août 2014 j'ai mise a jour le tuto pour DSM 5 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.