Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SSH sur le port 80

50 réponses
Avatar
Etienne Marcel
Bonjour,

Afin de traverser sans soucis les routeurs les plus récalcitrants, j'ai
pensé sur les machines que je dois maintenir à distance à faire
tourner/écouter le serveur SSH sur le port 80 au lieu du classique port
22.

Est-ce que cela pose un problème particulier ?

En particulier, je ne sais pas comment fonctionnent les routeurs
existants... est-ce qu'ils transmettent effectivement tout ce qu'ils
reçoivent sur le port 80 ou bien ce port particulier est-il lui aussi
bloqué ?
J'ai une règle iptables de ce genre sur mon routeur qui n'accepte que
les demandes provenant d'une connexion initiée par moi...

Sinon j'ai configuré un des routeurs pour faire de la translation de
port sur le port 22 et je me suis posé la question : comme je me
connecte en utilisant l'adresse IP du routeur, quelle est la machine
qui me répond lorsque je fais un "ssh toto@adresse.ip.routeur" ?

Est-ce la première machine ou bien est-ce la première qui accepte la
connexion ?

Merci d'avance pour ces quelques éclaircissements...

10 réponses

1 2 3 4 5
Avatar
Etienne Marcel

Dès fois, le port 80 est aussi bloqué, et ils te forcent à passer
par un proxy. Dans ce cas, tu peux utiliser ajaxterm. C'est un
client ssh en javascript, couplé à des scripts cgi sur le serveur,
qui échange ses
paquets

en faisant des requêtes http à ces scripts cgi. C'est gore, mais ça
marche.


ouh la, non, pas de web 2.0 svp.
La solution propre est de monter un tunnel http et de faire passer ssh
dessus.
http://sebsauvage.net/punching/

Pour résumer :
http://www.neophob.com/files/httptunnel-3.3w32r2.zip
Sur le poste client sous windows, tu as htc.exe sur le port 80 à
lancer pour créer un tunnel http vers
chez toi et tu lances putty.exe sur ce tunnel.
Sur le poste client, rien à installer, juste 2 exe à lancer

Sur le poste serveur (chez toi) un linux avec ssh sur le port 22, tu
lances hts sur le port 80.
Le tour est joué.


Merci, oui je connaissais. Il y a aussi la solution à base de crokscrew
qui m'a l'air pas trop mal...
Reste à choisir... ;-)


Avatar
Etienne Marcel

Afin de traverser sans soucis les routeurs les plus
récalcitrants,




un routeur n'est pas recalcitrant. Un routeur route, c'est tout.
Maintenant, s'il s'agit d'un firewall, bah forcement il filtre.
S'il s'agit d'un dispositif réalisant du masquage, c'est encore
autre chose.


Oui pardon je n'ai pas été précis sur le vocabulaire. Par abus de
langage je voulais parler des modems-routeurs ADSL classiques que
donnent les FAI. Ils font bien plus que 'router' (c'est français ?) et
jouent aussi le rôle de firewall.

j'ai pensé sur les machines que je dois maintenir à distance à
faire tourner/écouter le serveur SSH sur le port 80 au lieu du
classique port 22.

Est-ce que cela pose un problème particulier ?



non. Mais est ce que cela a un interet?



Cela pourrait éviter d'ouvrir plusieurs ports...

En particulier, je ne sais pas comment fonctionnent les routeurs
existants... est-ce qu'ils transmettent effectivement tout ce
qu'ils reçoivent sur le port 80 ou bien ce port particulier
est-il lui aussi bloqué ?




un routeur ca route au niveau IP. Tu parles de port 80, qui
est au niveau au dessus.


Donc je parlais plutôt des modem-routeurs qui font aussi firewall...
Je ne connais pas bien tous les types d'équipement qu'ils donnent en ce
moment mais il me semble qu'ils font tous maintenant firewall et que
tous les ports sont bloqués par défaut (même le 80).

J'ai une règle iptables de ce genre sur mon routeur qui
n'accepte que les demandes provenant d'une connexion initiée
par moi...

Sinon j'ai configuré un des routeurs pour faire de la
translation de port sur le port 22 et je me suis posé la
question : comme je me connecte en utilisant l'adresse IP du
routeur, quelle est la machine qui me répond lorsque je fais un
"ssh " ?



tu fais de la translation d'adresse. Ca signifie quoi pour toi?

Si tu demandes a ton equipement reseau d'envoyer les paquets a
une autre machine, d'apres toi qui te reponds? L'autre
machine? L'equipement?


Le problème c'est que je ne m'y connais pas trop en translation
d'adresse et en routeur donc je ne maîtrise pas trop le vocabulaire,
donc désolé si je suis imprécis.

Sur le dernier test que j'ai effectué j'ai installé un serveur SSH
sur le port 22 sur une machine derrière un modem-routeur (wifi) sur
lequel j'ai activé la 'translation de port' pour le port 22.

Pour me connecter à distance depuis ma machine j'ai demandé à mon ami
d'aller sur www.adresseip.com pour avoir l'adresse IP et j'ai pu
ensuite accéder à sa machine en faisant un ssh

La question est donc : est que l'adresse IP est celle de l'équipement
(donc le modem-routeur) ou bien est-elle celle de la machine ?

Si mon ami a deux machines, est-ce que vu de l'extérieur, ces deux
machines ont la même adresse IP ? j'ai l'impression que si je demande
d'aller sur www.adresseip.com, les deux machines vont me renvoyer le
même résultat (mais je me trompe peut-être).

Je me demande donc comment le modem-routeur s'y retrouve quand une
demande de connexion SSH sur le port 22 lui arrive ? A qui envoie-t-il
la requête ? à la première machine ou bien la deuxième ?


Est-ce la première machine ou bien est-ce la première qui
accepte la connexion ?



La premiere machine _redirige_ des paquets, tu le dis toi meme.

Les paquets sont renvoyes a une autre machine qui peut enfin
repondre applicativement a cette requete.


Oups désolé, disons qu'il y a un équipement et deux machines derrières.
Ce sera plus clair...

Je le ferait plutot sur du 443 port HTTPS.

Le 80 peut etre filtré par un proxy qui ne sais lire que du HTML.


Ok mais je parle ici de routeurs de base


Non. Un routeur route, c'est tout. Si tu parles des equipements
appeles modem-routeur, ils font beaucoup plus que router
des paquets IP.


Oui je parle bien de ces fameux modem-routeurs (Freebox, Neufbox,
Livebox, etc...)

: c'est pour administrer les
machines de mes amis à qui j'ai installé linux (Debian). Donc je ne
pense pas que le port 80 soit filtré


filtre par qui?


Disons bloqué par le modem-routeur.

(à moins que je ne me trompe
complètement sur la puissance de ces petites bêtes...).

Le fait que tout ce qui est Web passe par le port 80 ne va pas
interférer avec la communication SSH ?


Differencie deja port source et port destination.

Comment est fait la distinction entre les paquets destinés à SSH et
les paquets contenant du Web ?

Question pertinente.

Un serveur ssh ecoute sur le port A (generalement 22). Un serveur web
ecoute sur le port B (generalement 80). Sur la meme machine,
il ne faut pas que A=B.
Si un paquet arrive avec en destination le port A, la pile IP
le renvoie vers le serveur ssh. S'il arrive avec en destination
le port B, il va vers le serveur web.


Ah c'est ce que je voulais savoir aussi : que se passe-t-il si A=B ?
L'enfer se déchaîne ? ;-)

Maintenant, imaginons que tu as un equipement reseau qui fasse de
la translation d'adresse.

Tu lui dis que les paquets a sa destination ayant le port 22 en
destination soient rediriges vers la debian du LAN port 22.
La debian a un serveur ssh qui ecoute sur le port 22.

Tu inities une connexion. L'equipement voit le paquet arriver.
La regle concorde, donc le paquet est renvoye vers la debian.
La debian traite et repond. Etc, et tu peux administrer la
debian a distance.


Oui cela j'avais compris.
Je vais essayer de m'exprimer plus clairement (pas facile quand on ne
maîtrise pas le vocabulaire...).

Lorsque je vais sur le Web via un navigateur classique, il me semblait
que les données transitaient sur le port 80 (j'ai peut-être tort...) ou
sur un autre port.
Que se passe-t-il donc si un serveur SSH se trouve aussi sur ce port ?

Après qu'il y ait un serveur Web sur le port 80 ou que l'on soit
derrière un modem-routeurs, c'est secondaire...

Merci beaucoup pour tous ces éclaircissements !




Avatar
Etienne Marcel
On Tue, 05 Jun 2007 08:19:04 +0200, Nina Popravka
wrote :
Ok mais je parle ici de routeurs de base : c'est pour administrer les
machines de mes amis à qui j'ai installé linux (Debian). Donc je ne
pense pas que le port 80 soit filtré (à moins que je ne me trompe
complètement sur la puissance de ces petites bêtes...).


Il s'agit de rentrer sur une machine située derrière le routeur, si
j'ai compris la question ?
Dans ce cas, le 80 n'est pas plus ouvert qu'autre chose, et ça n'est
pas plus difficile d'ouvrir autre chose que le 80.
Et on ouvre vers une machine interne explicitement désignée,
évidemment.
Les réponses données concernent le filtrage en sortie, qui n'existe en
général pas, par défaut, sur les routeurs SOHO.


Ok donc il faut que j'ouvre quand même le port 80.
Si je comprends bien une machine (même avec Windows !) située derrière
un de ces modems-routeurs (Freebox, Livebox, Neufbox, etc...) n'a
aucune chance de pouvoir être contactée (et par conséquent d'être
piratée) si le firewall est activé et la translation de ports
désactivée ?
C'est l'idéal pour protéger son système alors ? Les utilisateurs de
Windows peuvent être tranquille au moins pour les agressions
extérieures sans avoir à se soucier de désactiver tous les serveurs...

D'autre part chaque machine située derrière le modem-routeur biduleBox
a une adresse IP spécifique (je ne parle pas de l'adresse IP interne au
réseau du genre 192.168.x.x) donc peut-être contacté de l'extérieure
sans aucun problème ?

Merci pour ton aide,


Avatar
Fabien LE LEZ
On Tue, 5 Jun 2007 19:29:02 +0200, Etienne Marcel :

Si je comprends bien une machine (même avec Windows !) située derrière
un de ces modems-routeurs (Freebox, Livebox, Neufbox, etc...) n'a
aucune chance de pouvoir être contactée (et par conséquent d'être
piratée) si le firewall est activé et la translation de ports
désactivée ?


Attention, le "T" de "NAT" désigne le mot anglais "translation", qui
signifie "traduction".

Généralement, le modem est configuré en routeur (sauf pour la
Freebox -- il faut en faire la demande), et (par défaut) aucun port
n'est ouvert, ce qui indique effectivement qu'une attaque depuis
l'extérieur sera superbement ignorée.

Par contre, toutes les cochonneries style spywares, phishing, trous de
sécurité d'Internet Explorer et Firefox, etc., agissent dans le sens
inverse (intérieur -> extérieur), et le routeur les laisse passer.


Revenons à nos moutons : si tu veux mettre un sshd sur une machine qui
se trouve derrière un routeur, il va falloir dire au routeur de router
les connexions entrantes sur un port précis (22 par défaut) vers la
machine en question.
Le port peut être le port 22 (pour simplifier, vu que c'est le port
par défaut de SSH), ou bien un port choisi aléatoirement entre 4000 et
65535 (pour éviter le bruit de fond).
Il n'y a, dans ton cas, aucun intérêt à choisir le port 80.

Avatar
Fabien LE LEZ
On Tue, 5 Jun 2007 19:22:22 +0200, Etienne Marcel :

Ils font bien plus que 'router' (c'est français ?) et
jouent aussi le rôle de firewall.


Généralement, non. Certains routeurs ont un firewall intégré, mais il
est généralement désactivé.

Par contre, le NAT est un firewall de fait : quand une machine
distante demande à ouvrir une connexion sur un port non NATé, le
routeur ne sait pas qu'en faire, donc il refuse la connexion (ou
ignore simplement le paquet).

Avatar
Luc.Habert.00__arjf
Etienne Marcel :

D'autre part chaque machine située derrière le modem-routeur biduleBox
a une adresse IP spécifique (je ne parle pas de l'adresse IP interne au
réseau du genre 192.168.x.x) donc peut-être contacté de l'extérieure
sans aucun problème ?


Non. Les FAI ne te fournissent usuellement qu'une seule adresse IP, qui est
prise par le modem routeur. Lequel remplace l'adresse IP source des paquets
sortants (en 192.168) par son adresse IP publique. Il mémorise aussi les
connexions ainsi initiée, et quand il reçoit un paquet appartenant à l'une
de ces connexions (lequel paquet a comme IP cible l'adresse IP publique du
routeur, puisque la machine distante a reçu la demande de connexion avec
cette adresse comme source), il le retransmet à la machine intérieure qui a
initié la connexion, en modifiant son adresse IP cible.

Avatar
Nina Popravka
On Tue, 5 Jun 2007 19:29:02 +0200, Etienne Marcel
wrote:

C'est l'idéal pour protéger son système alors ? Les utilisateurs de
Windows peuvent être tranquille au moins pour les agressions
extérieures sans avoir à se soucier de désactiver tous les serveurs...
Oui, dans ces conditions la machine est sécurisée tant que l'interface

chaise clavier n'est pas sur la chaise. Dès qu'elle est sur la chaise,
elle s'occupe activement de faire tout ce qui faut pour se retrouver
vérolée :-)

D'autre part chaque machine située derrière le modem-routeur biduleBox
a une adresse IP spécifique (je ne parle pas de l'adresse IP interne au
réseau du genre 192.168.x.x) donc peut-être contacté de l'extérieure
sans aucun problème ?
Un port ne peut être redirigé que vers *une* machine. Donc si on veut

accéder à 10 bécanes du réseau interne via ssh, il faudra en faire
tourner un sur le port 22, un autre sur le 23, etc etc etc. Ou, plus
simplement, on monte un VPN.
--
Nina

Avatar
octane
On 5 juin, 19:22, Etienne Marcel wrote:
j'ai pensé sur les machines que je dois maintenir à distance à
faire tourner/écouter le serveur SSH sur le port 80 au lieu du
classique port 22.

Est-ce que cela pose un problème particulier ?




non. Mais est ce que cela a un interet?


Cela pourrait éviter d'ouvrir plusieurs ports...

"ouvrir un port" tend a devenir un abus de langage.

Un port ouvert, a l'origine, cela signifie qu'un programme a
ouvert ce port et ecoute les informations provenant dessus.

Puis les firewall sont arrives. Et ils ont propose de "fermer"
un port. En fait de fermeture, ils empechent les paquets de
remonter jusqu'au serveur.

Si tu veux reellement "fermer" un port, il faut couper le
programme serveur qui ecoute derriere.

En gros: un port = une application

Donc je parlais plutôt des modem-routeurs qui font aussi firewall...
Je ne connais pas bien tous les types d'équipement qu'ils donnent en ce
moment mais il me semble qu'ils font tous maintenant firewall et que
tous les ports sont bloqués par défaut (même le 80).

Les ports sont bloques pour qui?


Ce type de modem routeur est la machine connecte a l'internet.
Si aucun programme serveur n'ecoute sur aucun port, forcement
il est impossible de se connecter dessus.

Sur le dernier test que j'ai effectué j'ai installé un serveur SSH
sur le port 22 sur une machine derrière un modem-routeur (wifi) sur
lequel j'ai activé la 'translation de port' pour le port 22.

Pour me connecter à distance depuis ma machine j'ai demandé à mon a mi
d'aller surwww.adresseip.compour avoir l'adresse IP et j'ai pu
ensuite accéder à sa machine en faisant un ssh

La question est donc : est que l'adresse IP est celle de l'équipement
(donc le modem-routeur) ou bien est-elle celle de la machine ?

c'est l'adresse de l'equipement. Le paquet que tu envoies est a

destination du modem-routeur. Mais puisque tu a active la
translation de port, il est renvoye a la machine derriere.

Du point de vue de ta machine locale, tu es connecte au modem
routeur (un netstat te montrear une connexion active). Mais ce
n'est qu'une illusion! Le meme netstat sur la machine distante
te montrera la connexion entre la machine distante et la tienne.

Si mon ami a deux machines, est-ce que vu de l'extérieur, ces deux
machines ont la même adresse IP ?


non. Elles ont chacune leur adresse IP. Lorsqu'elle veulent
sortir sur internet, le modem routeur envoie les demandes
a leur place. Encore une fois tout est question de point de
vue.

j'ai l'impression que si je demande
d'aller surwww.adresseip.com, les deux machines vont me renvoyer le
même résultat (mais je me trompe peut-être).

tu ne te trompes pas. Du point de vue de l'internet, il n'y a

qu'une seule machine: ton modem routeur.

Je me demande donc comment le modem-routeur s'y retrouve quand une
demande de connexion SSH sur le port 22 lui arrive ? A qui envoie-t-il
la requête ? à la première machine ou bien la deuxième ?

ca depend de son parametrage, et de la maniere dont tu

peux le configurer.
Avec une regle iptables je peux rediriger le port 80 vers
la machine A, le port 22 vers la machine B, etc..

Les modems routeurs cherchant la simplicite, j'aurais tendance
a dire qu'ils masquent au maximum ce genre de finesse.

: c'est pour administrer les
machines de mes amis à qui j'ai installé linux (Debian). Donc je ne
pense pas que le port 80 soit filtré


filtre par qui?


Disons bloqué par le modem-routeur.

reprenons la base. Le paquet arrive sur le modem-routeur.

Il regarde le port destination. A t'il une regle de
redirection? Non. Alors il est pour lui. A t'il un serveur
qui ecoute derriere ce port 80? Si oui, il envoie le
paquet a l'application. Si non, le paquet se fait rejeter.

Un serveur ssh ecoute sur le port A (generalement 22). Un serveur web
ecoute sur le port B (generalement 80). Sur la meme machine,
il ne faut pas que A=B.
Si un paquet arrive avec en destination le port A, la pile IP
le renvoie vers le serveur ssh. S'il arrive avec en destination
le port B, il va vers le serveur web.


Ah c'est ce que je voulais savoir aussi : que se passe-t-il si A=B ?
L'enfer se déchaîne ? ;-)

le premier a demarrer peut prendre le port et ecouter.

Lorsque le deuxieme demarre, il se voit refuser l'acces
et s'arrete.

Lorsque je vais sur le Web via un navigateur classique, il me semblait
que les données transitaient sur le port 80 (j'ai peut-être tort...) ou
sur un autre port.


tu as du remarquer que certains sites web necessitent des URL:
http://www.blabla.fr:8000

le 8000 est le numero de port sur lequel le serveur web ecoute.
Tu peux essayer de faire www.google.fr:80, ca fonctionnera aussi.

Que se passe-t-il donc si un serveur SSH se trouve aussi sur ce port ?

Si tu lances un navigateur web en direction d'une IP sur le port 80,

sur laquelle ecoute non pas un serveur web mais un serveur ssh, la
connexion ne va pas durer longtemps. Le client va parler HTTP,
le serveur va parler SSH. Fin de la connexion.





Avatar
Etienne Marcel
On Tue, 05 Jun 2007 19:41:05 +0200, Fabien LE LEZ

Ils font bien plus que 'router' (c'est français ?) et
jouent aussi le rôle de firewall.


Généralement, non. Certains routeurs ont un firewall intégré, mais il
est généralement désactivé.

Par contre, le NAT est un firewall de fait : quand une machine
distante demande à ouvrir une connexion sur un port non NATé, le
routeur ne sait pas qu'en faire, donc il refuse la connexion (ou
ignore simplement le paquet).


Ok je confondais.
Merci pour l'éclaircissement !


Avatar
Etienne Marcel

[snip le reste que j'ai compris]

Je me demande donc comment le modem-routeur s'y retrouve quand une
demande de connexion SSH sur le port 22 lui arrive ? A qui
envoie-t-il la requête ? à la première machine ou bien la deuxième ?

ca depend de son parametrage, et de la maniere dont tu

peux le configurer.
Avec une regle iptables je peux rediriger le port 80 vers
la machine A, le port 22 vers la machine B, etc..

Les modems routeurs cherchant la simplicite, j'aurais tendance
a dire qu'ils masquent au maximum ce genre de finesse.


D'accord mais comment font-ils ?
La dernière fois je suis allé sur la configuration du routeur via
http://192.168.1.1 et j'ai juste eu à demander d'activer la translation
(ou traduction) de port pour le port 22 sans rien dire d'autre.
Donc j'imagine qu'il a du faire le lien d'une façon ou d'une autre avec
ma machine, par exemple avec l'adresse MAC ?
Mais comme l'adresse MAC est facilement falsifiable/modifiable cela
peut-être dangereux si on a un réseau ouvert ?

Et cela implique aussi qu'il n'est pas possible dans le cas de
plusieurs machines de mettre le serveur SSH sur le port 22 partout ?

Ouh là, c'est plus compliqué que prévu...

Lorsque je vais sur le Web via un navigateur classique, il me
semblait que les données transitaient sur le port 80 (j'ai
peut-être tort...) ou sur un autre port.


tu as du remarquer que certains sites web necessitent des URL:
http://www.blabla.fr:8000

le 8000 est le numero de port sur lequel le serveur web ecoute.
Tu peux essayer de faire www.google.fr:80, ca fonctionnera aussi.


Oui mais est-ce que c'est aussi le numéro du port sur lequel ma machine
écoute ?

Lorsque je fais un http://www.blabla.fr:8000, j'ai compris que je me
connecte au server Web sur le port 8000, mais est-ce que le port sur
lequel moi je reçois les informations est aussi le port 8000 ?
Et dans ce cas que se passe-t-il si un serveur SSH tourne dessus ?

Que se passe-t-il donc si un serveur SSH se trouve aussi sur ce
port ?

Si tu lances un navigateur web en direction d'une IP sur le port 80,

sur laquelle ecoute non pas un serveur web mais un serveur ssh, la
connexion ne va pas durer longtemps. Le client va parler HTTP,
le serveur va parler SSH. Fin de la connexion.


Cf. réponse précédente.

Plus que quelques détails et j'aurais tout compris, merci beaucoup !


1 2 3 4 5