logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 30-01-2019 18:43:05

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

[Résolu] Accès réseau entre 2 interfaces non souhaité

Bonjour à tous,

J'aimerai être aidé car c'est un problème un peu particulier et j'ai du mal à trouver une solution sur Google..

Je m'explique, j'ai deux interfaces :

cat /etc/network/interfaces



auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.10.55
    netmask 255.255.255.0
    gateway 192.168.10.253

iface usb0 inet static
    address 192.168.7.2
    netmask 255.255.255.252
    network 192.168.7.0
    gateway 192.168.7.1
 



Lorsque je me connecte en usb, les drivers fonctionnent bien et je peux atteindre le réseau 192.168.7.2 !
Lorsque je me connecte par ethernet, je peux me connecter à l'interface 192.168.10.55 !
Mais si sur mon ordinateur de connexion je mets un sous-réseau de 255.255.0.0 donc juste le 192.168.X.X , je peux me connecter à l'adresse IP 192.168.7.2 depuis l'interface réseau et non usb !

La preuve avec cette commande :

tcpdump -i eth0


listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
18:11:23.734229 IP 192.168.7.2.ssh > 192.168.10.37.1829: Flags [P.], seq 590130862:590130990, ack 1648361325, win 571, length 128
...



Le problème c'est que je ne veux pas que ceux qui accède à l'adresse ip usb (192.168.7.2) puissent y accéder depuis l'interface ethernet (eth0).

Je pensais que ça venait de l'ip forwarding mais il est bien désactivé :

sysctl net.ipv4.ip_forward


net.ipv4.ip_forward = 0



Du coup je ne vois pas comment faire pour empêcher de passer par l'eth0 pour communiquer avec usb0 ...
J'ai cherché avec de l'iptables pour bloquer une interface mais je doute qu'on peut bloquer une interface vers une autre et surtout, je me demande s'il n'y a pas plus simple scratchhead.gif
Si quelqu'un peut m'aider , j'en serai vraiment très reconnaissant !

Rémi.

Dernière modification par ReRRemi (01-02-2019 11:50:37)

Hors ligne

#2 30-01-2019 20:31:58

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

Si tu mets un masque en /16 sur ton interface ethernet, l'adresse ip de ton interface usb se retrouve dans le même réseau que ton interface ethernet.

Hors ligne

#3 30-01-2019 22:33:21

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

ReRRemi a écrit :

je peux me connecter à l'adresse IP 192.168.7.2 depuis l'interface réseau et non usb !


C'est normal. Linux applique le "weak host model" qui permet d'utiliser n'importe quelle adresse IP locale sur n'importe quelle interface. Cela n'a rien à voir avec le forwarding ("fonction routeur") puisque cela n'implique pas de retransmettre des paquets reçus vers une autre machine.

ReRRemi a écrit :

Le problème c'est que je ne veux pas que ceux qui accède à l'adresse ip usb (192.168.7.2) puissent y accéder depuis l'interface ethernet (eth0).


Pourquoi ?

Les paramètres net.ipv4.conf.eth0.arp_* (je dirais arp_ignore=1) permettent de limiter les réponses aux requêtes ARP, mais cela n'empêche pas le trafic IP. La seule solution fiable est le filtrage de paquets avec iptables ou nftables.

Note : si les deux interfaces sont actives en même temps, le fichier interface ne devrait contenir qu'une seule option "gateway".

Dernière modification par raleur (30-01-2019 22:40:21)


Il vaut mieux montrer que raconter.

Hors ligne

#4 31-01-2019 00:34:32

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

Merci pour vos réponses.

Beta-Pictoris a écrit :

Si tu mets un masque en /16 sur ton interface ethernet, l'adresse ip de ton interface usb se retrouve dans le même réseau que ton interface ethernet.



Alors oui et non, je m'explique mieux :

Un petit schéma pour mieux comprendre :
[PC 1]--eth0-------------(box adsl)---------------eth0--[Serveur debian]--usb0----------------------usb0--[PC 2]
192.168.10.37/16                                 192.168.10.55/24                 192.168.7.2/24               192.168.7.1/24

Le [PC 1] a une IP en sous-réseau 24 mais comme c'est des clients qui peuvent changer leurs IP et leur sous réseau je ne peux rien faire de ce côté...
Ben s'ils changent de sous réseau en 16 ils peuvent accéder à l'ip de l'interface usb0  du [Serveur debian]...
Et je ne veux pas qu'ils puissent passer par cette IP car cette ip est uniquement disponible pour le [PC 2], un PC à part pour configurer le serveur qui n'est pas connecté à internet. Si le [PC 1] doit configurer le [Serveur debian], il doit passer par l'adresse IP côté eth0 , c'est à dire par 192.168.10.55


raleur a écrit :


C'est normal. Linux applique le "weak host model" qui permet d'utiliser n'importe quelle adresse IP locale sur n'importe quelle interface. Cela n'a rien à voir avec le forwarding ("fonction routeur") puisque cela n'implique pas de retransmettre des paquets reçus vers une autre machine.



Ok merci je ne connaissais pas le  terme "weak host model", je vais rechercher sur internet du coup sinon oui avec des filtres iptables mais je ne vois pas trop comment faire dans ce cas là.

Pour l'histoire de la gateway oui c'est une erreur, il n'y en aura qu'une !

Dernière modification par ReRRemi (31-01-2019 00:58:45)

Hors ligne

#5 31-01-2019 09:39:24

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

ReRRemi a écrit :

c'est des clients qui peuvent changer leurs IP et leur sous réseau je ne peux rien faire de ce côté... Ben s'ils changent de sous réseau en 16 ils peuvent accéder à l'ip de l'interface usb0  du [Serveur debian]...


net.ipv4.conf.eth0.arp_ignore=1 devrait éviter cela en empêchant le serveur de répondre aux requêtes ARP pour 192.168.7.2 reçues sur eth0. Mais ce sera sans effet si le client crée une entrée ARP statique pour 192.168.7.2 avec l'adresse MAC de eth0 ou, au lieu de modifier le masque, ajoute une route vers 192.168.7.2 via 192.168.10.55, car dans les deux cas le client ne fera pas de requête ARP pour 192.168.7.2.

ReRRemi a écrit :

oui avec des filtres iptables mais je ne vois pas trop comment faire dans ce cas là.


Ce n'est vraiment pas compliqué.

iptables -A INPUT  -i eth0 -d 192.168.7.2 -j DROP
iptables -A OUTPUT -o eth0 -s 192.168.7.2 -j DROP


Mais tu n'as pas vraiment répondu, pourquoi veux-tu empêcher cela ? Les services ne peuvent pas utiliser d'ACL basées sur l'adresse source de la connexion ?

Dernière modification par raleur (31-01-2019 09:43:21)


Il vaut mieux montrer que raconter.

Hors ligne

#6 31-01-2019 10:51:58

smolski
quasi...modo
Lieu : AIN
Distrib. : backports (buster) 10
Noyau : Linux 4.19.0-8-amd64
(G)UI : gnome
Inscription : 21-10-2008

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité


saque eud dun (patois chtimi : fonce dedans)

Hors ligne

#7 31-01-2019 11:11:19

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

Smolski, je parlais des ACL dans les services réseau, pas sur les fichiers.

Il vaut mieux montrer que raconter.

Hors ligne

#8 31-01-2019 12:34:10

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

raleur a écrit :

Mais tu n'as pas vraiment répondu, pourquoi veux-tu empêcher cela ? Les services ne peuvent pas utiliser d'ACL basées sur l'adresse source de la connexion ?


Oui car la réponse est longue mais je vais tenter de t’expliquer.

J'ai X étudiants qui ont chacun un ordinateur et un mini serveur où ils peuvent communiquer en usb dessus en ssh.
Le serveur est relié sur le même réseau ethernet que les étudiants pour pouvoir se mettre à jours !
situation1.png

Donc chaque étudiant a son serveur et peut le modifier.
Le soucis c'est que quand un cable USB est mal branché ou que le serveur de l'étudiant est éteint, ben la requête de l'ip 192.168.7.2 va passer par l'ethernet du PC de l'étudiant, puis envoyé au switch de la box et à tous les hôtes connectés au switch !
Et là, c'est un serveur d'un autre étudiant qui répond ! Du coup il peut configurer sans le vouloir un serveur d'un autre étudiant ...
situation2.png

Le problème est que le serveur debian étudiant 2 dans notre exemple va répondre à la requête de l'étudiant 3 !
Le serveur debian étudiant 2 passe de l'interface eth0 à usb0 sans soucis.

Alors je peux demander au début de changer le mot de passe de connexion au serveur pour chaque étudiant mais si la mauvaise connexion usb se fait au début , ben il risque de changer le mot de passe d’un autre serveur que ton serveur à lui.

Voilà dans quel cas j’ai besoin de bloquer la communication d’une interface si elle communique avec l’ip d’une autre interface ! Merci pour les commandes raleur, je vais essayer cela cette semaine :-)

Hors ligne

#9 31-01-2019 12:39:00

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

Puis la commande filtre ARP me va très bien ! S’ils doivent modifier la table pour que ça communique sur un autre serveur , ça sera intentionnel donc là je pourrai le voir.
Ce que je ne veux pas, c’est qu’ils puissent modifier un autre serveur sans le faire exprès.

Hors ligne

#10 31-01-2019 14:06:26

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

ReRRemi a écrit :

J'ai X étudiants qui ont chacun un ordinateur et un mini serveur où ils peuvent communiquer en usb dessus en ssh.


Pourquoi ces connexions USB ? Et pourquoi avoir configuré la même adresse IP sur tous les serveurs ?

ReRRemi a écrit :

quand un cable USB est mal branché ou que le serveur de l'étudiant est éteint, ben la requête de l'ip 192.168.7.2 va passer par l'ethernet


Seulement si le masque de réseau du poste client est mal configuré.

ReRRemi a écrit :

Et là, c'est un serveur d'un autre étudiant qui répond


En fait tous les serveurs respondent à la requête ARP, et le client utilise l'adresse MAC d'une des réponses pour communiquer avec l'adresse IP cible.


Il vaut mieux montrer que raconter.

Hors ligne

#11 31-01-2019 14:15:28

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

raleur a écrit :

Pourquoi ces connexions USB ? Et pourquoi avoir configuré la même adresse IP sur tous les serveurs ?


Les serveurs sont des raspberry avec la même carte SD donc : même ip côté usb, ip dhcp côté ethernet. (J’ai besoin de raspberry pour travailler sur les gpio et ils peuvent l’emmener chez eux pour continuer à bosser sur leur projet, sinon j’aurai juste fait de la virtualisation). Du coup ils ont tous la même image ! Ils n’ont pas d’ecran , ni de clavier à brancher sur le raspberry. Pour reconnaître leur serveur , les étudiants utilise du coup la connexion par usb et se connecte avec l’ip côté usb0 (7.2).

raleur a écrit :

Seulement si le masque de réseau du poste client est mal configuré.


En es-tu sûr ? Car j’ai déjà eu le problème avec un masque de sous réseau classique.
Si le 7.2 n’est pas dans son sous-réseau il va demander à la passerelle qui elle va demander au réseau interne qui est le 7.2 et pas le biais du routeur , ils peuvent communiquer entre eux ? Ou j’ai oublié un détail mais en tout cas j’ai déjà eu l’en cas en 24 !

raleur a écrit :

En fait tous les serveurs respondent à la requête ARP, et le client utilise l'adresse MAC d'une des réponses pour communiquer avec l'adresse IP cible.



Yes ! J’ai pris le serveur 2 en exemple mais tous répondent en effet

Dernière modification par ReRRemi (31-01-2019 14:35:11)

Hors ligne

#12 31-01-2019 14:34:55

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

ReRRemi a écrit :

Si le 7.2 n’est pas dans son sous-réseau il va demander à la passerelle qui elle va demander au réseau interne qui est le 7.2


La box n'a aucune raison de faire une requête ARP pour 192.168.7.2 sur le réseau local si son masque est correctement configuré en /24. Normalement, elle va soit jeter le paquet qui n'est pas routable pour elle, soit l'envoyer vers l'extérieur en suivant sa propre route par défaut.

Dernière modification par raleur (31-01-2019 14:35:57)


Il vaut mieux montrer que raconter.

Hors ligne

#13 31-01-2019 21:11:03

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

ReRRemi, si tu configures tes PC étudiants pour leur interdire les connexions ssh sortantes de leur interface en 192.168.1.0/24, est-ce que ça pourrait aller ?

Dernière modification par Beta-Pictoris (31-01-2019 21:14:21)

Hors ligne

#14 01-02-2019 11:49:51

ReRRemi
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian GNU/Linux 9.6 (stretch)
Noyau : Linux 4.9.78-ti-r94
(G)UI : Aucun (mode console)
Inscription : 30-01-2019
Site Web

Re : [Résolu] Accès réseau entre 2 interfaces non souhaité

Beta-Pictoris a écrit :

ReRRemi, si tu configures tes PC étudiants pour leur interdire les connexions ssh sortantes de leur interface en 192.168.1.0/24, est-ce que ça pourrait aller ?


Non car les PC étudiants sont leurs PC portable perso, je n'ai pas la main dessus.

raleur a écrit :

net.ipv4.conf.eth0.arp_ignore=1 devrait éviter cela en empêchant le serveur de répondre aux requêtes ARP



J'ai testé et ça fonctionne à merveille !! C'est vraiment ce qu'il me fallait merci beaucoup raleur ! Sujet résolu merci.gif

Hors ligne

Pied de page des forums