SSH sur le port 80 : routage très spécial (besoin de vos ruses svp !)

SSH sur le port 80 : routage très spécial (besoin de vos ruses svp !) - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 04-02-2010 à 02:15:44    

Salut ! ;)
 
Je suis actuellement au Canada chez le fournisseur d'acces Bell internet.
 
Je me suis récemment rendu compte que ces enf***** (enfants de coeur) limitent le débit en fonction des horaires et des ports !
Les limites vont jusqu'à 32Ko/s en dl et 24 en up pendant de longues heures de pointes !
Aussi invraisemblable que cela puisse paraitre, c'est bien la réalité.
Le port distant 80 est bien entendu le moins limité, le 443 l'est un peu plus, et les autres c'est un désastre.
 
Pour ceux qui tomberaient par hasard sur ce topic, voila exactement le tableau des limites en fonction des heures de la journée pour tout ce qui n'est pas 80 ou 443 :
(mots clés: bell.ca, limitation de débit, restriction de débit, problème de bande passante bell, bandwidth limit, restriction)

Code :
  1. (dl / up en Ko/s)
  2. 2.00AM -> ?.??PM = 500/80 (pas de limite)
  3. 4.30PM -> 6.00PM = 48/64
  4. 6.00PM -> ?.??PM = 32/32
  5. ?.??PM -> 1.00AM = 32/24 !!!
  6. 1.00AM -> 2.00AM = 64/48
  7. NB: je vais continuer mes tests pour déterminer les heures des "?.??"


J'ai appelé plusieurs fois le service clients de bell, et après m'avoir pris pour un crétin pendant près d'une heure, je leur ai expliqué que j'ai signé pour un contrat "haut débit", et qu'aucune close de celui-ci ne faisait référence à de telles restrictions de débit.
Ils ont donc fini par comprendre que l'affaire pouvait tout à fait prendre une tournure juridique et m'ont avoué les faits:
 
La CRTC (Conseil de la Radiodiffusion et des Télécommunications Canadiennes) "leur demande" de faire cela pour gérer leur débit.
En réalité, nuance: la CRTC les y autorise, en informant le client 30 jours à l'avance (ce qu'ils n'ont pas fait)
http://www.radio-canada.ca/nouvell [...] rnet.shtml
http://techno.branchez-vous.com/ac [...] a_sex.html
 
Il y aurait donc sans doute matière à faire devant un juge, muni d'un bon avocat...
Mais je n'ai ni le temps ni l'argent à dépenser pour de telles complications... (pour le moment du moins car je suis assez tendu par ce scandale)
 
Pourtant voila mon problème :
 
Le net est l'un de mes jobs.
J'ai besoin régulièrement d'administrer mes serveurs et copier des sauvegardes (dans un sens ou l'autre)
Ceci s'effectue bien sur en ssh. Et la, bell m'oblige donc à ne travailler qu'après 2h du matin ! ...
 
J'ai donc commencé à ruser en mettant le ssh sur le port 443 (https) celui-ci étant moins limité que les autres (mais plus que le 80)
Je me pose ainsi la question du port 80 pour le ssh !
Mais là, problème: celui-ci est bien évidement déja pris pour mes sites.
 
NB: je souhaite utiliser mon ssh, non seulement pour administrer mon serveur, mais aussi pour SOCKS
 
Alors j'ai pensé à une idée mais je vois mal comment la mettre en pratique techniquement, sachant que je n'ai vraiment pas le droit à l'erreur car si ma config foire, que mon ssh est down, je perds le total controle de mon serveur !
 
L'idée serait :
- je me log dans la zone admin de l'un de mes sites, donc sur le port 80.
- j'active une fonction dans l'interface web qui effectue un routage spécial de mon ip (dynamique ! :( ) pour que tout ce qui arrive sur le port 80 aille quelque part ailleurs direction sshd...
- je perds ainsi l'accès à mon site puisque le port 80 devient pour moi le port ssh.
- je me connecte en ssh sur ce port 80
- j'utilise SOCK pour visiter mes propres sites (en local du coup)
 
Alors la question c'est: comment installer tout ca au niveau du routage interne ?
(sshd et appels iptables par mon cgi d'admin)
 
Sachant que je n'ai vraiment pas le droit à l'erreur... ultra risqué si je foire tout !
Bien entendu, tout ceci n'est qu'UNE idée, si vous en avez de meilleures je suis preneur !
 
Je vous remercie BEAUCOUP par avance pour vos idées !


Message édité par MisterBark le 04-02-2010 à 02:22:24

---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 04-02-2010 à 02:15:44   

Reply

Marsh Posté le 04-02-2010 à 02:35:44    

Je n'ai pas d'idee (meme si certains routeur offrent des routages de ce genre dans une interface toute faite ^^) mais je prend note : je vis a Montreal, mais chez moi c'est Videotron  :D  
Cela me conforte dans mon choix, je n'ai pas observe de telles restricitions (ah si, interdiction d'un serveur web - port 80 bloque. Mais 443 Ok.)


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 04-02-2010 à 02:39:31    

merci pour ta réponse et ton expérience, c'est intéressant ! :)
Tu parles donc de port local, non distant. Mais vu que je ne compte pas héberger à la maison ca va ;)
 
L'idée pour ce routage serait à mon avis une histoire avec iptables qui forwarderait vers 127.0.0.1 ou écoute le sshd... mais c'est un peu bricolage pour moi et si je me lance la dedans, je ne vais maitriser qu'à moitié ce que je fais... ce qui est dangereux !


---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 04-02-2010 à 16:33:46    

Openvpn? Mais il te faudra un point de "chute" pour ton VPN

Reply

Marsh Posté le 04-02-2010 à 16:59:02    

Soit il te faut une deuxième adresse IP, soit il faut que tu changes de port. Il y en a peut-être d'autre de bons (FTP ? Mail ? telnet ?).
 
Tu peux essayer de les baiser
 
Sinon y aurait peut-être des solutions à la con, si l'IP cliente est fixe.
Genre un NAT spécifique qui en fonction de la source, redirige vers un autre port.
 
Également, tu as les solutions de proxy, les astuces habituelles pour faire du SSH quand on est derrière un proxy. Y a plein de littérature sur le net à ce propos. En gros il faut prendre ce genre de solution et l'amélioration: sur le port 80 tu as un petit soft qui tourne, sur une nouvelle connexion, il lit une ligne. Si c'est du HTTP, il netcat/pipe vers ton serveur web qui écoute sur un autre port, si c'est l'entête SSH, il redirige vers SSH. Mais ça rend bien tordu le truc.
 
La meilleure des solutions, c'est d'avoir une autre IP (v6 ?).

Reply

Marsh Posté le 04-02-2010 à 17:00:05    

Mc Kagan a écrit :

Openvpn? Mais il te faudra un point de "chute" pour ton VPN


Ca dépend de comment ils font.
 
Si tu prends un VPN qui fait du TCP/UDP, tu retombes sur le même problèmes.
Si tu prends un VPN qui fait de l'AH/ESP et que ton FAI n'a pas pensé faire de règles pour ça, ça fait un bon contournement.

Reply

Marsh Posté le 04-02-2010 à 17:45:01    

Taz a écrit :

Soit il te faut une deuxième adresse IP, soit il faut que tu changes de port. Il y en a peut-être d'autre de bons (FTP ? Mail ? telnet ?).


 
Le FTP c'est la meme chose, j'ai pas essayé les ports mail mais j'en doute... car meme le https est assez limité aussi, or tout le monde l'utilise pour ses mails par ex ! (gmail et autres)
La solution c'est vraiment le 80 !
J'AI plusieurs adresses ip ! mais ce soit des failover sur une meme interface eth0 (avec eth0:0, eth0:1, etc.) et je n'ai pas l'impression qu'on puisse gérer ca avec sshd ou meme iptables
PS: ah si, peut etre avec iptables en spécifiant l'ip de destination ? mais qu'en fait-on ?
 

Taz a écrit :


Tu peux essayer de les baiser


 
Non, erreur ! je Veux ;)
 

Taz a écrit :


Sinon y aurait peut-être des solutions à la con, si l'IP cliente est fixe.
Genre un NAT spécifique qui en fonction de la source, redirige vers un autre port.


 
L'ip est dynamique.
Mais c'est exactement ce que je voudrais faire !
Sauf que le routage iptables serait appelé par mon script cgi.
Mais je ne sais pas comment m'y prendre pour faire un tel routage !
(en fait je pourrais y arriver mais en faisant plusieurs essais, sauf que j'ai en réalité pas le droit à l'erreur... sinon plus de serveur ! )
 
Pour l'IPv6, je ne sais meme pas si j'ai mis ca dans le kernel... :-\


Message édité par MisterBark le 04-02-2010 à 17:46:50

---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 04-02-2010 à 18:33:22    

une solution assez simple mais pas gratuite:

 

tu prend un vps avec une bande passante non limitee mais avec peu de ram et peu de cpu, et tu mets un serveur un ssh en mode vpn ou openvpn dessus a tourner sur le port 80.

 

edit: comme ca tu t'en sers pour tout en permanence et tu evite de trafiquer sur des serveurs.
et oui ce sont vraiment enfants de coeur :D


Message édité par ducon3d le 04-02-2010 à 18:38:19
Reply

Marsh Posté le 04-02-2010 à 18:34:59    

T'as pensé aux service de dns dynamique ? et de faire tes regles iptables en fonction de ce dns ?

Reply

Marsh Posté le 05-02-2010 à 16:01:43    

Ben si tu as plusieurs IP, c'est ultra simple: tu binds sur l'une sshd et sur l'autre ton serveur web. Y a 0 iptables à faire, ça se gère juste avec de la configuration genre Listen machin.
 
RTFM.

Reply

Marsh Posté le 05-02-2010 à 16:01:43   

Reply

Marsh Posté le 05-02-2010 à 17:24:44    

Taz a écrit :

Ben si tu as plusieurs IP, c'est ultra simple: tu binds sur l'une sshd et sur l'autre ton serveur web. Y a 0 iptables à faire, ça se gère juste avec de la configuration genre Listen machin.
 
RTFM.


 
oui mais vu que l'interface est la même, il peut y avoir plusieurs sockets en écoute sur le meme port ? ...
Dans ce cas il suffirait que je ne déclare pas le NameVirtualHost de l'ip ssh, puis dans sshd_config j'utilise ListenAddress ?
 
Autre chose: admettons que ca fonctionne, je me vois mal offrir ce beau cadeau à mon sshd ... (toutes les requetes perdues sur le port 80 à longueur de journées... ca en fait un paquet !)
Donc je verrais bien du iptables, commandé par mon cgi afin de n'ouvrir que pour moi...
 
Et le mieux encore, c'est de garder cette ip ssh pour apache comme ca je ne perds pas une ip d'hébergement qui m'est bien utile.
Dans ce cas: comment rediriger une requete sur le port 80 vers sshd quelque part ailleurs ?
Il faudrait qu'il n'écoute que sur 127.0.0.1 ? :-\ et je forward pour moi...
ca pourrait marcher ?


---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 06-02-2010 à 20:13:43    

Topic intéressant (des problèmes similaires de limitation de débit existe aussi ici en France)
 
Ceci dit, aucune réponse précise ou solution clef en main à te donner, je ne suis pas aussi expert que ceux qui t'ont déjà répondu.
 
Toutefois, pour :

MisterBark a écrit :


...
Donc je verrais bien du iptables, commandé par mon cgi afin de n'ouvrir que pour moi...
...


connais tu le "port knocking" : http://www.portknocking.org/ ?

Reply

Marsh Posté le 06-02-2010 à 20:39:33    

oui je connais le port knocking ;) mais c'est plutot sous bsd non ?
 
Mais je ne pense pas en avoir besoin car j'ai déja fait toute une interface admin perso sur laquelle je me log safe et peux ouvrir des ports juste pour moi... donc de ce coté la j'ai pas trop de problèmes.
Le problème c'est plutot comment je vais organiser les serveurs entre eux et le routage iptables...


Message édité par MisterBark le 06-02-2010 à 20:42:04

---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 07-02-2010 à 08:19:39    

Qu'est-ce que le port knocking vient faire ici ? Il me semble pas que ça s'applique à son problème Oo


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 09-02-2010 à 02:23:05    

Tu as essayé de tester en tcp sur le port 8080 s'il y avait cette même limitation de débit?
Car souvent les FAI appliquent les mêmes règles au port 8080 qu'au port 80 car tous les deux servent au HTTP.
Donc, par chance, cela pourrait de donner un port possible sur lequel ton serveur ssh pourrait écouter, plutôt que de faire ça sur le 80.
 
Note: je me sers du port 8080 en tcp pour accéder à mon serveur OpenVPN @home depuis les hotspots NeufWifi ultra-bridés et qui ne me permettent pas de travailler (voir les quelques ports ouverts: http://www.n9ws.com/wiki/index.php [...] du_hotspot )


---------------
mon feedback H/V
Reply

Marsh Posté le 09-02-2010 à 04:39:44    

Hum tiens j'ai pensé au 443 mais pas 8080... je vais essayer ca la prochaine fois pour voir !
Mais c'est surtout connu pour les proxies ca... alors ca m'étonnerais qu'ils ne limitent pas ce port... (sachant en plus qu'il est > 1023) enfin on va voir !
 


Message édité par MisterBark le 09-02-2010 à 05:42:08

---------------
La vie c'est comme une boite de chocolats, on ne sait jamais sur quoi on va tomber. (Forrest Gump)
Reply

Marsh Posté le 09-02-2010 à 10:50:21    

MisterBark a écrit :


 
oui mais vu que l'interface est la même, il peut y avoir plusieurs sockets en écoute sur le meme port ? ...
Dans ce cas il suffirait que je ne déclare pas le NameVirtualHost de l'ip ssh, puis dans sshd_config j'utilise ListenAddress ?


 
Tu te binds sur une IP et pas une interface. Si t'as deux IP, qu'elles soient sur la même interface physique ou non, ça ne change rien. Tu mets SSH sur l'une et httpd sur l'autre.

Reply

Marsh Posté le 18-03-2010 à 21:29:54    

Reply

Marsh Posté le 17-04-2010 à 17:32:59    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed