gratifiant > linux.debian.user.french

benoitlst (09/10/2019, 12h40)
Bonjour à tou·t·e·s,

La commande :
$ php -S localhost:8000

Lance un serveur local de test en tant que simple utilisateur dans la
home.
Cf.


Je ne me sens pas assez compétant pour m?assurer que mon ordi n?expose
pas le port 8000 et donc que les pages et le contenu du répertoire soit
visible avec son ip publique ou son ip locale quand je suis le réseau
wifi d?un lieu publique par exemple.

Le fait de remplacer localhost par l'ip locale ou publique ne sert pas
la page, ce qui semble rassurant, mais j'aimerais en savoir plus sur ce
point.

Merci d?avance.
?
Benoit
Alexandre Goethals (09/10/2019, 13h30)
Bonjour,

la commande ss (qui est incluse dans Debian à la place de netstat depuis
Stretch) permet de visualiser les ports d'écoute de la machine.

ss -ltn => afficher les sockets TCP (-t) à l'état LISTEN (-l)avec le
numéro de port associé (-n). Il faut regarder alors quelle est l'adresse
(Local Address) associée au port 8000. Si c'est 127.0.0.1, le socketest
en écoute uniquement sur l'interface locale (loopback).

Le 09/10/2019 à 12:30, benoitlst a écrit :
[..]
Eric Degenetais (09/10/2019, 13h30)
Bonjour,
localhost désigne une carte réseau virtuelle qui n'est

Éric Dégenètais

Le mer. 9 oct. 2019 12:31, <benoitlst> a écrit :
[..]
Eric Degenetais (09/10/2019, 13h30)
Le mer. 9 oct. 2019 12:31, <benoitlst> a écrit :

> Bonjour à tou·t·e·s, bonjour,


> La commande :
> $ php -S localhost:8000
> Lance un serveur local de test en tant que simple utilisateur dans la
> home.
> Cf.
>
> Je ne me sens pas assez compétant pour m?assurer que mon ordi n?expose
> pas le port 8000 et donc que les pages et le contenu du répertoire soit
> visible avec son ip publique ou son ip locale quand je suis le réseau

localhost est une carte réseau virtuelle qui n'est visible que de
l'ordinateur lui-même. Il n'y a donc pas de soucis : le serveur n'écoute
pas le port 8000 sur les adresses visibles de l'extérieur (carte WiFi,
carte ethernet).

> wifi d?un lieu publique par exemple.
> Le fait de remplacer localhost par l'ip locale ou publique ne sert pas
> la page, ce qui semble rassurant, mais j'aimerais en savoir plus sur ce
> point.

Qu'appelez vous l'ip publique ? En ipv4, la configuration la plus courante
est que votre machine reçoit une adresse ip locale délivrée par un routeur
et contrôleur de domaine local (rôle tenu par la box en filaire ou en WiFi
dans les configurations grand public) qui joue le rôle d'intermédiaire avec
l'adresse ip publique, laquelle est généralement partagée. En ipv6 il y a
plus d'adresses possibles, l'ordinateur peut recevoir de son contrôleur de
domaine directement son ip publique.
Dans les deux cas c'est distinct de localhost, et les serveurs qui écoutent
sur localhost ne sont pas visibles de l'ip locale, encore moins de la
publique.
benoitlst (09/10/2019, 20h10)
Le 2019-10-09 13:26, Eric Degenetais a écrit :
> Le mer. 9 oct. 2019 12:31, <benoitlst> a écrit :


Bonsoir,

> localhost est une carte réseau virtuelle qui n'est visible que de
> l'ordinateur lui-même. Il n'y a donc pas de soucis : le serveur
> n'écoute pas le port 8000 sur les adresses visibles de l'extérieur
> (carte WiFi, carte ethernet).


Merci pour l?info, me voilà rassuré sur ce point !

> Qu'appelez vous l'ip publique ?


Ce que j?ai appelé ip publique, c?est celle qui m?est attribuée par un
fournisseur d?accès à internet, qu?on peut connaître avec par ex :
whatsmyip.org.

Celle que j?aurais dû appeler ip locale est celle attribuée par le
routeur ou la box, affichée par ifconfig.

> En ipv4, la configuration la plus
> courante est que votre machine reçoit une adresse ip locale
> délivrée par un routeur et contrôleur de domaine local (rôle tenu
> par la box en filaire ou en WiFi dans les configurations grand public)
> qui joue le rôle d'intermédiaire avec l'adresse ip publique,
> laquelle est généralement partagée. En ipv6 il y a plus d'adresses
> possibles, l'ordinateur peut recevoir de son contrôleur de domaine
> directement son ip publique.


> Dans les deux cas c'est distinct de localhost, et les serveurs qui
> écoutent sur localhost ne sont pas visibles de l'ip locale, encore
> moins de la publique.


Parfait ! ;)

Encore merci, bonne soirée.
Pascal Hambourg (12/10/2019, 09h40)
Le 09/10/2019 à 13:22, Alexandre Goethals a écrit :
> la commande ss (qui est incluse dans Debian à la place de netstat depuis
> Stretch) permet de visualiser les ports d'écoute de la machine.


ss ne remplace pas netstat, c'est une alternative à netstat (pas au sens
de dpkg). netstat est toujours disponible dans le paquet net-tools. La
différence est qu'il n'est plus forcément installé par défaut (ça dépend
de l'environnement de bureau).

> Il faut regarder alors quelle est l'adresse
> (Local Address) associée au port 8000. Si c'est 127.0.0.1, le socket est
> en écoute uniquement sur l'interface locale (loopback).


C'est inexact. La socket écoute sur une adresse, pas une interface. Le
"weak host model" appliqué par le noyau Linux ne restreint pas l'usage
d'une adresse locale à l'interface à laquelle elle est affectée.

Il est néanmoins vrai que la plage 127.0.0.0/8 est traitée de façon
particulière pour se conformer au standard d'internet qui impose que ces
adresses ne devraient jamais être vues sur un réseau en dehors d'un
hôte. Mais d'une part cette restriction est appliquée par le noyau au
niveau du routage des paquets (en empêchant l'envoi ou la réception de
paquets ayant une adresse source ou destination dans cette plage sur une
interface non loopback) et non des sockets, et d'autre part le noyau a
un paramètre net.ipv4.conf.<interface>.route_localnet qui permet de la
désactiver sur une interface donnée.
Pascal Hambourg (12/10/2019, 09h50)
Le 09/10/2019 à 13:26, Eric Degenetais a écrit :
> localhost est une carte réseau virtuelle qui n'est visible que de
> l'ordinateur lui-même.


Non, "localhost" n'est pas une interface mais une adresse IP : 127.0.0.1
en IPv4 et ::1 en IPv6. Cf. /etc/hosts.

> Il n'y a donc pas de soucis : le serveur n'écoute
> pas le port 8000 sur les adresses visibles de l'extérieur (carte WiFi,
> carte ethernet).


L'explication est fausse, mais la conclusion est juste dans le cas par
défaut. Cf. mon autre réponse dans ce fil.

> Qu'appelez vous l'ip publique ? En ipv4, la configuration la plus courante
> est que votre machine reçoit une adresse ip locale délivrée par un routeur
> et contrôleur de domaine local (rôle tenu par la box en filaire ou en WiFi


Depuis quand les box internet jouent-elles le rôle de contrôleur de
domaine ? Tu ne confondrais pas avec serveur DHCP ?

> En ipv6 il y a
> plus d'adresses possibles, l'ordinateur peut recevoir de son contrôleur de
> domaine directement son ip publique.


En IPv6 généralement les hôtes en configuration automatique ne reçoivent
pas une adresse mais un préfixe /64 diffusé par le routeur, et se
choisissent une ou plusieurs adresses à l'intérieur de ce préfixe.
Discussions similaires