LINUX:Installation et configuration du LAN 192.168.2.0/24

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au Routage


But

Pour les besoins du projet, on ajoute une machine Linux sur le LAN n°2.

Nous donnons l'exemple d'une machine Linux ayant une adresse IP fixe.


Installation

Dans le projet, second schéma, nous utilisons un serveur WEB Linux. Son adresse IP est 192.168.2.2/24.

Nous aborderons les couches réseau et firewall.


Configuration de l'interface réseau

En utilisant l'utilitaire GUI "nmtui", sous le menu "Modifier une connexion", on voit la seule interface présente, la carte réseau de la carte mère, nommée "enp0s25".


LINUX:Nmtui.lister.2.png


On accède à l'écran suivant via le bouton "Modifier".


LINUX:Nmtui.enp0s25.2.png


On adapte les paramètres comme décrit dans cet écran. On spécifie:

  • l'adresse IP de la machine; ici "192.168.2.2" avec le masque de sous-réseau "24", c'est à dire "255.255.255.0".
  • l'adresse IP de la passerelle par défaut la plus proche; c'est à dire celle du routeur que nous venons de créer sur la LAN n°2.: "192.168.2.1"
  • l'adresse IP d'un serveur DNS, ici celui de Proximus: "195.238.2.21"
  • le nom de domaine correspond à celui de votre machine
  • on désactive l'IPV6

On vérifie que l'interface est active. Attention, si vous la désactivez vous perdez la connexion réseau si vous êtes connecté via une console SSH. Il vous restera à aller la réactiver via une console directement connectée à la machine.


LINUX:Nmtui.activer.2.png


On peut vérifier la configuration avec les commandes suivante.

Pour l'adressage:

ifconfig

qui donne:

enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:1c:c0:30:2a:38  txqueuelen 1000  (Ethernet)
        RX packets 113339  bytes 160301720 (152.8 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 59268  bytes 5115242 (4.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 20  memory 0x93200000-93220000
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Boucle locale)
        RX packets 222  bytes 29780 (29.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 222  bytes 29780 (29.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Pour la route:

route -n

qui donne:

 Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    100    0        0 enp0s25
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s25

Pour le DNS, faire une recherche:

nslookup www.google.be

qui donne:

Server:         127.0.0.53
Address:        127.0.0.53#53
Non-authoritative answer:
Name:   www.google.be
Address: 172.217.168.195
Name:   www.google.be
Address: 2a00:1450:4007:81a::2003


Firewall

Nous utilisons Iptables. Comme nous ne sommes pas dans le contexte d'un routeur, la table NAT n'est pas utilisée et dans la table FILTER, la chaîne FORWARD ne l'est pas non plus. Seules les chaînes INPUT et OUTPUT de la table FILTER sont utilisées en dehors des conseils donnés pour le mur de feu du routeur.

Pour les contraintes, nous avons:

  • le serveur WEB (port 80) est accessible de tous (INPUT)
  • l'accès SSH n'est accessible que par la machine du LAN n°1 ayant l'adresse IP 192.168.1.2 (INPUT)
  • la machine peut faire ses mises à jour des logficiels et de l'heure, et les résolutions DNS vers Internet (OUTPUT)

La configuration se fait dans le fichier "/etc/sysconfig/iptables".

La structure de base se présente comme suit:


*filter
:OUTPUT ACCEPT [0:0]
:INPUT ACCEPT [0:0]
# Commentaires
#
# Bloc des règles personnelles
#
COMMIT

On accepte au préalable tout trafic venant d'un interface sur lui-même; c'est spécialement le cas de l'interface "lo".


-A INPUT  -p ALL -i lo       -j ACCEPT
-A OUTPUT -p ALL       -o lo -j ACCEPT

En début de chaîne, il faut toujours traiter les réponses données aux requêtes par analyse du statut.


-A INPUT  -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
-A INPUT  -p tcp -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT  -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A OUTPUT -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT

On peut compléter cette première étape par un refus de ce qui n'a pas été établi par le passé:


-A INPUT  -m conntrack --ctstate INVALID -j REJECT
-A OUTPUT -m conntrack --ctstate INVALID -j REJECT

Ensuite vient le traitement de filtrage proprement dit des nouvelles requêtes.


# OUTPUT
# Accès vers Internet
# DNS: résolution de noms de machines
-A OUTPUT -p tcp -m tcp --dport 53  -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53  -m conntrack --ctstate NEW -j ACCEPT
# NTP: mise à l'heure
-A OUTPUT -p tcp -m tcp --dport 123 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p udp -m udp --dport 123 -m conntrack --ctstate NEW -j ACCEPT
# DNF: mises à jour des logiciels
-A OUTPUT -p tcp -m tcp --dport 80  -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 21  -m conntrack --ctstate NEW -j ACCEPT
# le reste du trafic est bloqué
-A OUTPUT -j LOG --log-level debug --log-prefix "OUTPUT-REFUS"
#-A OUTPUT -j REJECT --reject-with icmp-host-prohibited
#-A OUTPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -j DROP
# INPUT
# HTTP (serveur WEB)
-A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
# SSH : seule une machine du LAN n°1 peut accéder au routeur via SSH
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -s 192.168.1.2 -j ACCEPT 
# le reste du trafic interne est bloqué
-A INPUT -j LOG --log-level debug --log-prefix "INPUT-REFUS"
#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A INPUT -j DROP

Pour des explications plus détaillées, reportez-vous à l'article du firewall du routeur. Nous n'avons pas besoin de spécifier l'interface réseau car il n'y en a qu'un.




retour au Routage