1 votes

Configuration du réseau avec serveur 18.04

J'ai eu des problèmes avec ma configuration réseau depuis que j'ai effectué une mise à niveau récemment. Ça fonctionnait avant mais maintenant le trafic IP ne passe plus comme avant, tout le reste semble fonctionner correctement. J'ai posé une question à ce sujet auparavant mais maintenant je vais demander comment configurer mon réseau depuis le début. Mon réseau ressemble à ceci :-

 Ordinateurs clients |--------|
  Windows-----|        |                |----------------|
   Linux(1)---| Switch |-------------(2)| Serveur (18.04) |(3)-------Internet
  Imprimante-----|        |                |----------------|
 Autres ordinateurs----|        |
              |--------|

(1) sortie ifconfig depuis l'ordinateur Linux sur le réseau privé :-

eth0  Link encap:Ethernet  HWaddr 00:19:66:82:61:f7  
      inet adr:192.168.1.126  Bcast:192.168.1.255  Masque:255.255.255.0
      UP diffusion fonctionn...  MTU:1500  Métrique:1
      Paquets reçus:37 erreurs:0 pertes:0 dépassements:0 cadre:0
      Paquets transmis:82 erreurs:0 pertes:0 dépassements:0 porteur:0
      collisions:0 longueur d...:1000 
      Octets reçus:4829 (4.8 Ko)  Octets transmis:8871 (8.8 Ko)
      Interruption:23 Adresse de base:0xa800 

lo    Link encap:Boucle locale  
      inet adr:127.0.0.1  Masque:255.0.0.0
      UP BOUCLAGE fonctionnel  MTU:16436  Métrique:1
      Paquets reçus:142 erreurs:0 pertes:0 dépassements:0 cadre:0
      Paquets transmis:142 erreurs:0 pertes:0 dépassements:0 porteur:0
      collisions:0 longueur ...:0 
      Octets reçus:10976 (10.9 Ko)  Octets transmis:10976 (10.9 Ko)

(2) ID Ethernet: enp5s0

(3) ID Ethernet: enp0s31f6

Et le fichier netplan yaml sur le serveur est :-

réseau:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp5s0:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.1.2/24]
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
    enp0s31f6:
      dhcp4: no
      dhcp6: no
      addresses: [192.168.0.5/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]

Le serveur exécute également dnsmasq qui fournit les services DHCP et DNS qui semblent fonctionner correctement, lorsqu'on fait un ping d'un site par son nom (par exemple, "ping stackoverflow.com") sur un ordinateur client, on obtient une adresse IP mais le ping lui-même échoue.

De plus, "/proc/sys/net/ipv4/ip_forward" est réglé sur "1".

Est-ce que j'ai manqué quelque chose de vraiment évident ?

Si vous avez besoin de plus d'informations, laissez un commentaire et je mettrai à jour la question avec les informations.

1voto

Joe the Person Points 5090

Ce qui manque ici, ce sont règles NAT pour que le système sache comment router le trafic de l'intérieur du réseau vers l'extérieur. Cependant, nous avons un problème ici : Vous nous avez fourni deux interfaces réseau, toutes deux ayant des adresses IPv4 privées. Cela rend un peu plus compliquée la gestion des règles NAT.

Cependant, étant donné qu'une seule interface possède une passerelle (enp0s31f6), je vais partir du principe que cette interface est celle connectée à Internet.

NAT signifie Network Address Translation. Si vous voulez en savoir plus sur le fonctionnement du NAT, il existe un guide du NAT assez décent produit par le site How Stuff Works (.com) si vous souhaitez en apprendre un peu plus sur le fonctionnement du NAT.

La vraie description du comportement du NAT n'est pas aussi pertinente pour répondre à cette question, mais en gros, il prend les paquets allant vers Internet depuis l'espace IP privé (avec par exemple une adresse source de 192.168.0.10), et traduit le paquet avant de le rediffuser vers Internet (typiquement) de sorte que l'adresse 'Source' ressemble à l'adresse IP publique du routeur. Cette 'session' NAT est conservée jusqu'à ce que les connexions pour cette session soient terminées, ce qui signifie que le routeur peut également effectuer des règles NAT inverses pour que les paquets provenant d'Internet arrivent correctement à l'adresse IP interne. (Le guide How Stuff Works est mieux pour expliquer le NAT ; ceci est juste une description rapide et grossière)


Maintenant, pour que votre 'routeur' fonctionne.

Vous devez ajouter des règles NAT pour que le sous-réseau privé (sur enp5s0) soit autorisé à sortir vers Internet en se faisant passer pour le serveur. Ceci est appelé un MASQUERADE dans la terminologie iptables. C'est ainsi que fonctionnent les routeurs standard prêts à l'emploi, et ils utilisent tous le NAT pour traduire les adresses IPv4 privées en adresses publiques afin que la communication avec Internet se fasse de manière transparente.

Voici la commande avec laquelle vous devriez commencer :

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 ! -d 192.168.1.0/24 -j MASQUERADE

Laissez-moi vous expliquer en détail ce que cette règle fait exactement.

  • sudo iptables - Exécutez la commande iptables en tant que superutilisateur.
  • -t nat - Ajustez les règles NAT du système au lieu des listes de contrôle/filtrage d'accès Firewall.
  • -A POSTROUTING - Ajoutez à la table post-routing NAT.
  • -s 192.168.1.0/24 - Correspond au trafic provenant du sous-réseau IP privé...
  • ! -d 192.168.1.0/24 - ... où l'adresse IP de destination n'est pas l'espace IP privé du sous-réseau...
  • -j MASQUERADE - ... et retransmet ce paquet sur l'interface réseau principale (dans ce cas, enp0s31f6), traduisant l'adresse IP du paquet de sorte qu'il semble provenir du 'routeur' / serveur pour tout ce qui voit le paquet en dehors de l'espace IP privé.

Ainsi, un paquet provenant de 192.168.1.10 à destination d'un serveur avec une adresse IP en dehors de 192.168.1.0-255 semblera, pour cet autre serveur, provenir de 192.168.0.5 (votre serveur) au lieu de l'origine 192.168.1.10. Le système se souviendra cependant de cette traduction, pour pouvoir prendre les paquets de réponse destinés à 192.168.0.5 et s'assurer qu'ils sont correctement adressés pour retourner à votre adresse 192.168.1.10.


Cependant, il y a un problème : cela ne sera pas sauvegardé après un redémarrage.

Vous devriez donc installer le paquet iptables-persistent pour que cette règle NAT soit rechargée à chaque démarrage.**

sudo apt install iptables-persistent

Lorsqu'il vous demande de sauvegarder les règles IPv4 et IPv6 actuelles, vous devriez sélectionner "Oui".


Aussi, cette 'défaut' de ne pas avoir de règles pare-feu, bien que bon en théorie, rend votre système vulnérable aux attaques de l'Internet en général, et vous devriez vraiment vous référer à l'un des guides de base sur iptables pour savoir comment sécuriser correctement le serveur/routeur afin que l'extérieur ne puisse pas attaquer directement le serveur. Cependant, ceci est en dehors du cadre de votre question d'origine, et si vous souhaitez de l'aide pour mieux sécuriser le réseau privé de l'extérieur ("Internet"), vous devriez envisager de poser cette question comme une question distincte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X