vrolland Posté(e) le 3 mars 2013 Posté(e) le 3 mars 2013 (modifié) Bonjour à tous, J'ai lu qu'il était possible, via haproxy, de faire fonctionner ssl et ssh sur le même port un peu comme on peut le faire avec sslh. L'intérêt, dans mon cas, est de pouvoir accéder à mon syno en ssh depuis le port 443 qui est le seul port ouvert depuis le boulot. Voici la conf que j'ai mise en place et que j'ai mise dans le fichier de conf haproxy ( /usr/local/haproxy/var/haproxy.cfg) defaults timeout connect 5s timeout client 50s timeout server 20s listen ssl :444 tcp-request inspect-delay 2s acl is_ssl req_ssl_ver 2:3.1 tcp-request content accept if is_ssl use_backend ssh if !is_ssl server www-ssl :443 timeout client 2h backend ssh mode tcp server ssh :22 timeout server 2h L'idée est d'écouter le traffic sur le port 444 du syno (redirection du port 443 de la freebox sur le port 444 du syno) et en fonction de ce que haproxy voit il oriente soit sur son port 443 (ssh) soit sur son port 22 (ssh). C'est la conf que l'on trouve partout sur le net pour cette config (pour la version 1.4 je crois) quand je lance haproxy j'ai une erreur /var/packages/haproxy/scripts/start-stop-status start Starting HAProxy ... [WARNING] 061/150555 (10478) : [/usr/local/haproxy/sbin/haproxy.main()] Cannot raise FD limit to 4011. [ALERT] 061/150555 (10478) : Starting proxy ssl: cannot bind socket [0.0.0.0:444] J'ai essayé de changer de port de mettre les adresses IP, j'ai ouvert le port 444 dans le firewall....ça ne change rien J'ai beau chercher je ne trouve pas de réponse à ce problème. Je ne sais pas si cela vient d'un pb de la conf ou d'une limitation du syno Quand je passe la commande "netstat -lpn" le port 444 n'est pas pris par un autre processus. Si une âme charitable et surtout plus douée que moi peut m'aider, merci d'avance. Vincent Modifié le 3 mars 2013 par vrolland 0 Citer
vrolland Posté(e) le 8 mars 2013 Auteur Posté(e) le 8 mars 2013 Bon, ça intéresse personne on dirait Pourtant il y a plein d'avantage a faire tourne ssh sur le port 443 il y a beaucoup moins d'attaque par exemple et puis du boulot on peut monter un tunnel ssh et encapsuler le traffic http dedans pour naviguer sur tous les sites sans filtrage de l'entreprise et sans laisser de trace.... 0 Citer
nasp Posté(e) le 11 mars 2013 Posté(e) le 11 mars 2013 essaie avec un port > 1024 au lieu de 444 0 Citer
vrolland Posté(e) le 11 mars 2013 Auteur Posté(e) le 11 mars 2013 Salut, Au tout début j'avais fait ça en mettant 4443 et c'est la même chose...merci quand même en tout cas ! A+ 0 Citer
jee27 Posté(e) le 17 mars 2013 Posté(e) le 17 mars 2013 Nounours44 m'as envoyé ca config pour faire cela : listen https_in bind : 80443 mode tcp option tcplog log 127.0.0.1 user info tcp-request inspect-delay 8s acl is_ssl req_ssl_ver 2:3.1 use_backend ssh if !is_ssl tcp-request content accept if is_ssl tcp-request content accept if { req_ssl_hello_type 1 } <autres backends> backend ssh mode tcp server ssh : 443 timeout connect 5s timeout server 1h 0 Citer
vrolland Posté(e) le 17 mars 2013 Auteur Posté(e) le 17 mars 2013 (modifié) Salut, merci beaucoup pour ta réponse. As tu testé cette conf de ton côté ? Voila ce que ça donne chez moi. Il semble qu'il n'aime pas trop le port 80443 (bind : 80443) au lancement j'ai cette erreur : [ALERT] 075/092926 (23420) : parsing [/usr/local/haproxy/var/haproxy.cfg:8] : 'bind' : invalid port '80443' specified for address '*:80443'. J'ai donc changé le port (1002 ici mais j'en ai essayé d'autres) et au lancement la même erreur qu'avant Starting HAProxy ... [WARNING] 075/093224 (2416) : [/usr/local/haproxy/sbin/haproxy.main()] Cannot raise FD limit to 4011. [ALERT] 075/093224 (2416) : Starting proxy https_in: cannot bind socket [0.0.0.0:1002] Modifié le 17 mars 2013 par vrolland 0 Citer
Youp3 Posté(e) le 17 mars 2013 Posté(e) le 17 mars 2013 Bonjour, les numéros de ports ne peuvent dépasser 65535, l'erreur pour le port 80443 est donc normale. Pour le reste, je ne sais pas. 0 Citer
Nounours44 Posté(e) le 18 mars 2013 Posté(e) le 18 mars 2013 dans le spk haproxy, le frontend https écoute sur le port 5443. 0 Citer
vrolland Posté(e) le 18 mars 2013 Auteur Posté(e) le 18 mars 2013 Oui mais c'est définie dans le fichier de conf ça ou c'est en dure ? Voici la première ligne de mon fichier de conf original frontend https bind :5443 ssl crt /usr/local/haproxy/var/crt/default.pem C'est ce qui me fait penser que l'on peut changer cette valeur, cependant je vais essayer avec le port 5443 0 Citer
vrolland Posté(e) le 18 mars 2013 Auteur Posté(e) le 18 mars 2013 (modifié) Je suis reparti de la conf sur mon premier post, en mettant le port 50443 dans la partie 'listen ssl'. Je n'ai plus d'erreur sur le port mais d'autres...ce sont des WARNING mais haproxy ne se lance pas pour autant. [WARNING] 076/232737 (17439) : [/usr/local/haproxy/sbin/haproxy.main()] Cannot raise FD limit to 4011. [WARNING] 076/232737 (17439) : [/usr/local/haproxy/sbin/haproxy.main()] FD limit (1024) too low for maxconn=2000/maxsock=4011. Please raise 'ulimit-n' to 4011 or more to avoid any trouble. Je tourne un peu en rond, c'est dommage car un package sslh a été abandonné car Haproxy devait faire la même chose... Edit : Le package est bien lancé...mais les connexions ssl/ssh sur le port 50443 sont refusées... 28562 root 2976 S /bin/sh /var/packages/haproxy/scripts/start-stop-status start 28567 haproxy 2976 S -sh -c PATH=/usr/local/haproxy/bin:/usr/local/haproxy/env/bin:/usr/loc 28569 haproxy 4912 S /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/var/haproxy.cfg Modifié le 18 mars 2013 par vrolland 0 Citer
Nounours44 Posté(e) le 19 mars 2013 Posté(e) le 19 mars 2013 la mise au point du paramétrage haproxy pour ce type de besoin est assez délicate. Le mieux est de partir d'un fichier minimal auquel tu ajoutes progressivement d'autres backends. Pour cela, n'utilise pas l'outil de paramétrage fourni avec le spk, mais édite directement le fichier /usr/local/haproxy/var/haproxy.cfg. Ensuite tu fais un "/var/packages/haproxy/scripts/start-stop-status restart" pour prendre en compte tes modifications. Il existe quelques pages sur internet qui décrivent ces paramétrages, et il y a également la documentation officielle : http://haproxy.1wt.eu/download/1.5/doc/configuration.txt 0 Citer
Diaoul Posté(e) le 19 mars 2013 Posté(e) le 19 mars 2013 Tu peux aussi utiliser l'interface, il faut juste renseigner la partie Options avec les lignes que tu souhaites rajouter à ton frontend ou backend séparées par des points-virgules. C'est écrit dans la doc du SPK. 0 Citer
nonodu69 Posté(e) le 2 avril 2013 Posté(e) le 2 avril 2013 Bonjour, As-tu réussi à faire fonctionner SSH et HTTPS sur le même port ? 0 Citer
vrolland Posté(e) le 2 avril 2013 Auteur Posté(e) le 2 avril 2013 Salut, Non j'ai abandonné cette idée...a priori personne ne l'a fait, Je n'ai pas eu plus d'aide sur le forum anglais. Pour terminé j'ai acheté un raspberry que je fais tourner sous archlinux avec sslh et apache qui fait reverse proxy. Avantage de cette solution : quand je fais une mise a jour du NAS je n'ai plus rien à reconfigurer... A+ 0 Citer
zagg Posté(e) le 12 avril 2013 Posté(e) le 12 avril 2013 Si tu veux j'ai un package sslh qui fonctionne avec mon syno 211+ sous 4.2. Fait moi signe et je te le file. 0 Citer
Diaoul Posté(e) le 12 avril 2013 Posté(e) le 12 avril 2013 Je vais essayer de vous trouver la bonne config de HAProxy, il y a certainement quelque chose à faire avec ssl_fc. 0 Citer
Petit_bill Posté(e) le 18 avril 2013 Posté(e) le 18 avril 2013 moi je serai tres interesser par cette config 0 Citer
friedrich Posté(e) le 7 mai 2013 Posté(e) le 7 mai 2013 Salut, Quelqu'un a-t-il trouvé une solution à cette problématique? Cordialement, Frdrch 0 Citer
lagaffe Posté(e) le 8 juin 2013 Posté(e) le 8 juin 2013 Bon je fais un peu de déterrage de post, pour savoir si finalement quelqu'un a la solution ? Merci d'avance. 0 Citer
juju.manue Posté(e) le 9 juin 2013 Posté(e) le 9 juin 2013 +1 J'ai cherché a paramétrer ssh sur Haproxy pour pouvoir me connecter sur le port ou 443 sans succès. meme avec une modification du fichier .cfg si quelqu'un a réussi.....je suis preneur ju. 0 Citer
Moonface Posté(e) le 29 octobre 2013 Posté(e) le 29 octobre 2013 Hello, J'ai réussi à faire fonctionner ssl et ssh sur le même port avec la config suivante : global daemon maxconn 256 log localhost user info spread-checks 10 defaults # mode http stats enable default-server inter 30s fastinter 5s log global # option httplog timeout connect 5s timeout client 50s timeout server 50s timeout tunnel 1h listen stats :8280 stats uri / stats show-legends stats refresh 10s stats realm Haproxy Statistics stats auth admin:admin listen ssl :5443 tcp-request inspect-delay 2s acl is_ssl req_ssl_ver 2:3.1 tcp-request content accept if is_ssl use_backend ssh if !is_ssl server www-ssl 127.0.0.1:443 timeout client 2h option forwardfor option httpclose frontend http bind :5080 option http-server-close option forwardfor default_backend web backend ssh mode tcp server ssh :22 timeout server 2h backend web server web localhost: check J'ai également redirigé les ports 443 vers 5443 et vers 5080. Fabien 0 Citer
friedrich Posté(e) le 1 novembre 2013 Posté(e) le 1 novembre 2013 Bonsoir, Déjà merci Moonface pour ta conf. Cependant, il reste un petit truc que j'aimerai faire. Lorsque je ne fais pas du ssh, j'aimerai pouvoir rediriger vers mon frontend https afin que haproxy en fonction de l'url me renvoie vers tel ou tel backend paramétré. Mon intuition me fait dire que haproxy voit en entré une url du type 127.0.0.1 et ne permet donc pas de matcher vers le bon backend. Quelqu'un a-t-il une idée? Merci Fried. 0 Citer
Moonface Posté(e) le 2 novembre 2013 Posté(e) le 2 novembre 2013 Hello, Voici la config que j'ai finalement terminé. Je sais pas si elle répondra complètement à tes besoins : global daemon maxconn 256 log localhost user info spread-checks 10 defaults # mode http stats enable default-server inter 30s fastinter 5s log global # option httplog timeout connect 5s timeout client 50s timeout server 50s timeout tunnel 1h listen stats :8280 mode http stats uri / stats show-legends stats refresh 10s stats realm Haproxy Statistics stats auth admin:password listen ssl :5443 tcp-request inspect-delay 2s acl is_ssl req_ssl_ver 2:3.1 tcp-request content accept if is_ssl use_backend ssh if !is_ssl server www-ssl 127.0.0.1:5444 timeout client 2h option forwardfor option httpclose frontend http bind :5080 mode http option http-server-close use_backend proxy if { hdr_beg(Host) -i proxy. } http-request redirect scheme https if { hdr_beg(Host) -i audio. file. dl. free. cam. } default_backend web frontend https bind :5444 ssl crt /usr/local/haproxy/var/crt/default.pem mode http option http-server-close option forwardfor use_backend audio if { hdr_beg(Host) -i audio. } use_backend file if { hdr_beg(Host) -i file. } use_backend dl if { hdr_beg(Host) -i dl. } use_backend free if { hdr_beg(Host) -i free. } use_backend cam if { hdr_beg(Host) -i cam. } default_backend web backend web mode http server web localhost: check backend audio mode http server audio localhost:8800 check backend proxy mode http server proxy localhost:8280 check backend file mode http server file localhost:7000 check backend dl mode http server dl localhost:8000 check backend cam mode http server cam localhost:9900 check backend free mode http server free mafreebox.free.fr: check backend ssh mode tcp server ssh :22 timeout server 2h Fabien 0 Citer
friedrich Posté(e) le 3 novembre 2013 Posté(e) le 3 novembre 2013 Nickel, j'avais quasi la même conf mais j'avais oublié une instruction "mode http" sur les frontend. En tout cas, tout fonctionne maintenant. Merci beaucoup. 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.