Bonjour,
Je ne suis pas complètement sûr que ce soit la bonne partie du forum, les modérateurs pourront déplacer mon message si besoin.
J'ai un mini serveur sur lequel j'ai installé Debian, et je souhaite m'en servir comme routeur, DHCP et DNS pour le cas où je change d'opérateur internet : ainsi j'aurai mon réseau qui reste le même. En effet, j'ai un point d'accès Wifi, bien mieux placé que ma box et qui délivre une meilleure qualité de connexion, ainsi que quelques ports RJ45 disposés ça et là chez moi. Aussi, ça me permettra de faire des choses, du bidouillage, auto héberger un site web, je ne sais pas encore quoi d'autre, mais cela viendra !
Physiquement, voici comment j'ai procédé :
Sur ma box, j'ai branché sur un des ports RJ45 mon mini serveur, auquel j'ai attribué un bail fixe avec l'IP suivante : 192.168.0.29
Sur le deuxième port, j'ai branché un câble RJ45 qui arrive sur un switch : sur le switch, j'ai un RJ45 pour brancher mon PC dessus et faire des tests de connectivité, et sur l'autre j'ai le point d'accès wifi.
Ensuite, pour configurer le serveur comme un routeur, je branche mon client en windows 10 sur un des ports de la box et je me connecte en ssh sur le serveur.
Sans donner toutes commandes exactes, j'ai fait ceci :
enp2s0 : interface connectée à la box, pas de changement.
enp3s0 : interface connectée au réseau interne dont voici la configuration :
#internal network card
auto enp3s0
iface enp3s0 inet static
address 192.168.0.254
netmask 255.255.255.0
J'ai modifié le fichier /etc/sysctl.conf : j'ai décommenté la ligne net.ipv4.ip_forward=1 puis rechargé sysctl
J'ai installé et configuré le pare-feu avec nftables, j'ai tenté de rendre la règle persistante avec la commande nft list ruleset >> /etc/nftables.conf, mais j'ai obtenu le message suivant (j'ai tenté la commande en sudo et en root)
# Warning: table ip nat is managed by iptables-nft, do not touch!
# Warning: table ip filter is managed by iptables-nft, do not touch!
Sur le client j'ai modifié les paramètres internet de la carte réseau (centre réseau et partage). J'ai mis en passerelle 192.168.0.254 et 192.168.0.29, pareil pour le DNS.
Quand j'essaie de me connecter en ssh sur le port de sortie du mini serveur, voici le message d'erreur : ssh: connect to host 192.168.0.29 port 22: Connection timed out
Si j'essaie de le pinger (j'ai aussi essayé avec l'IP 192.168.0.254), ça ne fonctionne pas, voici l'affichage :
Envoi d’une requête 'Ping' 192.168.0.29 avec 32 octets de données :
Réponse de 192.168.0.36 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.0.36 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.0.36 : Impossible de joindre l’hôte de destination.
Réponse de 192.168.0.36 : Impossible de joindre l’hôte de destination.
Statistiques Ping pour 192.168.0.29:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Voici le résultat de la commande ip a :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:e0:4c:68:01:86 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.29/24 brd 192.168.0.255 scope global dynamic enp2s0
valid_lft 27003sec preferred_lft 27003sec
inet6 2a01:e0a:aad:6980:2e0:4cff:fe68:186/64 scope global dynamic mngtmpaddr
valid_lft 86254sec preferred_lft 86254sec
inet6 fe80::2e0:4cff:fe68:186/64 scope link
valid_lft forever preferred_lft forever
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:e0:4c:68:01:87 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.254/24 brd 192.168.0.255 scope global enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe68:187/64 scope link
valid_lft forever preferred_lft forever
Avez-vous des idées pour que cela fonctionne ?
# Cela ne peut pas fonctionner (correctement) en l'état
Posté par Cyril Brulebois (site web personnel) . Évalué à 10.
Je mets de côté l'éventuelle configuration pare-feu.
Ta machine a deux interfaces différentes avec le même réseau :
192.168.0.0/24
.Si un paquet arrive sur une des IP 192.168.0.29 ou 192.168.0.254, la réponse à destination de l'IP 192.168.0.X va être envoyée… via l'une ou l'autre des interfaces (voir la notion de métrique, visible dans la sortie d'
ip route
).Le plus simple est d'utiliser deux réseaux différents. Et seule une des deux IP (celle côté réseau local — enp3s0 — et pas celle du réseau FAI — enp2s0) est à renseigner dans la configuration de tes postes (hors routeur).
Le premier réflexe quand des paquets n'arrivent pas au bon endroit, c'est utiliser
tcpdump
ou équivalent. Dans le cas présent, tu devrais voir arriver des paquets sur le routeur, les éventuelles réponses et leur destination.Debian Consultant @ DEBAMAX
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Si je comprends bien, il faut que change l'adresse IP du serveur Debian pour que l'interface enp3s0 soit une adresse IP sur un réseau autre que 192.168.0.0/24.
Est-ce que 192.168.200.0/24 est un réseau différent de 192.168.0.0/24 ?
J'ai de grosses lacunes en réseau, je n'ai pas encore beaucoup travaillé cette notion.
Voici la nouvelle config
Sur le poste client, j'ai entré donné l'IP 192.168.200.100/24, passerelle 192.168.200.254, DNS 192.168.200.254.
Lorsque depuis le client je ping 192.168.200.100 voici le résultat :
Cela signifierait-il qu'il se passe quelque chose ?
J'ai donc voulu en savoir plus sur tcpdump, j'ai voulu l'installer, mais sans succès, voici ce que j'obtiens :
J'ai donc essayé la commande apt-get update mais cela renvoie ces lignes :
Je ne comprends pas pourquoi, cela devrait fonctionner, je suis sûr que lors de l'installation de debian j'avais exécuté apt-get update et cela avait fonctionné.
J'ai l'impression que j'ai davantage de problèmes que ce que je pensais.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par legranblon (site web personnel) . Évalué à 2.
Ton routeur a deux interfaces vers deux réseaux non routés vers internet, il faut lui dire vers où passer par défaut je pense.
Un utilitaire appelé "route" pourrait t'aider sur ce coup là.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Quel est cet utilitaire "route" ? Cela semble déprécié, je n'ai pas trouvé d'information intéressante à ce sujet.
Depuis le serveur (toujours connecté en ssh depuis le client), j'ai tenté la commande ping 192.168.0.254 pour vérifier que j'atteignais correctement ma box FAI. Ca fonctionne sans perte de paquets.
Lorsque je tente ping 8.8.8.8, tous les paquets ne sont pas transmis.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par legranblon (site web personnel) . Évalué à 2.
Tu trouveras des choses plus fraîches que moi ici : https://duckduckgo.com/?q=route+debian
:-)
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Merci !
J'ai donc tenté de l'installer (car il n'est pas dans Debian), mais j'obtiens de message d'erreur :
J'ai donc essayé les instructions ce tuto (https://memo-linux.com/debianubuntu-could-not-get-lock-varlibdpkglock-open-11-resource-temporarily-unavailable/) mais la première commande ne renvoie rien :
sudo lsof /var/lib/dpkg/lock
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par legranblon (site web personnel) . Évalué à 2.
Essaye plutôt
sudo lsof /var/lib/dpkg/lock-frontend
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Lorsque je rentre cette commande ça ne renvoie rien de particulier :
Est-ce normal ? Si je lis la suite du tuto (https://memo-linux.com/debianubuntu-could-not-get-lock-varlibdpkglock-open-11-resource-temporarily-unavailable/)Cela devrait normalement m'afficher un PID à kill
Cela signifierait donc que rien ne bloque.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par legranblon (site web personnel) . Évalué à 2.
S'il n'y a pas de retour, il n'y a pas d'appli qui verrouille la base des paquets. Es-tu sur d'avoir les droits pour installer un paquet avec apt ? (sudo pour lancer apt-get ?)
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Comment puis-je être sûr d'avoir les droits pour installer un paquet avec apt ?
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par legranblon (site web personnel) . Évalué à 2.
Être root, ou obtenir les droits via sudo, s'il est configuré correctement.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Désolé je ne comprends pas ta réponse. Je sais comment faire pour être root (su - root), mais comment obtenir les droits via sudo ? Comment savoir s'il est configuré correctement.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par BAud (site web personnel) . Évalué à 3. Dernière modification le 17 septembre 2023 à 16:40.
euh bin, tu tapes
sudo -i
, ça te passe en root avec ton password utilisateur, tout commesu -
avec le password de root[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Je ne connaissais pas cette commande sudo -i, merci !
sudo est déjà installé. Que dois-je faire ? Je ne comprends toujours pas quelles commandes sont à taper.
[^] # Re: Cela ne peut pas fonctionner (correctement) en l'état
Posté par browniecool . Évalué à 1.
Sans que je comprenne pourquoi (j'aurais bien aimé), j'ai pu installer tcpdump
J'ai donc allumé un deuxième ordinateur pour le brancher sur le switch qui est directement relié au serveur. J'ai donné à ce client l'IP 192.168.200.2, passerelle 192.168.200.254, DNS 192.168.200.254
Je ne sais pas comment analyser les retours de tcpdump.
Sur mon premier client, je suis toujours connecté en ssh via le wifi de la box.
Voici le résultat de la commande tcpdump -i enp3s0 lorsque je branche le client n°2 sans faire de requête ICMP :
Puis la même commande sudo tcpdump -i enp3s0 alors que je tente un ping depuis le client n°2 :
Cela donne-t-il davantage d'informations ?
# Mise en forme
Posté par gUI (Mastodon) . Évalué à 8.
Bonjour et bienvenue sur LinuxFR.org !
En tant que modérateur je me suis permis un reformatage de ton message ainsi que la suppression du 'ps:' en tête. Pour ton information, quand tu copies-colles ainsi des passage de la console, tu peux utiliser la balise "ne pas formater" :
```
# texte contenant des trucs zarbis
```
Ainsi tu auras le rendu suivant :
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
# faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3. Dernière modification le 16 septembre 2023 à 11:15.
tu as presque tout ce qu'il te faut
1°) avoir 2 reseaux differents :
- coté box internet (WAN), à laisser en DHCP comme ca tu peux changer de box quand tu veux
- coté chez toi (LAN), mettre un reseau different
actuellement les box en france sont en 192.168.0.x/24 ou 192.168.1.x/24 (/24 indique que les 3 premiers chiffres identifient le reseau, /16 les 2 premiers, /8 le premier)
2°) activé le forward pour que ce qui arrive du LAN soit autorisé à aller sur le WAN, et inversement
3°) faire une regle sur le routeur pour "MASQuer" le reseau LAN quand il va sur le WAN, sinon ta box ne sait pas à qui repondre
iptables -t nat -A POSTROUTING -i interfaceLAN -o interfaceWAN -j MASQUERADE
4°) configurer et activer le serveur DNS du routeur
sinon toutes tes demandes de resolution echoue et tu ne peux pas faire autre chose que de l'IP (ping 8.8.8.8 plutot que ping google.fr)
4b°) ou configurer le DHCP du routeur pour donner un DNS public à tes machines LAN
sinon, utiliser des distributions faite pour çà, meme si c'est pas un linux (opensense, openwrt, zeroshell… )
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par browniecool . Évalué à 1.
1°) pour moi c'est bon. Mon réseau Box est 192.168.0.x/24
2°) le forward est activé, quand je fais cat /proc/sys/net/ipv4/ip_forward j'obtiens 1 en console.
3°) j'utilise nftables car iptables est déprécié depuis Debian 10. Je pense que c'est bon, voici les commandes que j'ai rentrées :
puis j'ai décommenté la ligne net.ipv4.ip_forward=1
J'ai rechargé sysctl à l'aide de :
Ensuite j'ai configuré le pare-feu afin d’autoriser le transfert des paquets vers la carte WAN en NAT.
d'abord j'ai installé le paquet nftables
Puis :
Et lorsque je veux rendre la règle persistante :
J'obtiens :
Ce qui ne me semble pas normal.
4°) Je n'ai pas encore configuré le DNS et le DHCP, je n'en ai pas encore besoin.
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3.
meme si iptables est deprecié, il convient de faire fonctionner deja l'existant avant de passer sur de nouveau systeme.
tu doutes de ta syntaxe nftables, supprimes cette config et fait un iptables basic comme indiqué
pour sauvegarder
iptables-save >/etc/iptables.up
pour restaurer
iptables-restore </etc/iptables.up
pas de service à gerer, juste activer le iptables en post-up de ton interface reseau
4°) à voir, mais sans ces services :
- le DHCP, sans tu vas devoir mettre tes machines en IP fixes sur le LAN et sur le WIFI,
avec comme passerelle l'IP LAN de ton routeur linux
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par browniecool . Évalué à 1. Dernière modification le 16 septembre 2023 à 23:14.
D'accord, essayons ainsi.
J'ai donc voulu supprimer la config de nftables.
Est-ce que je peux supprimer l'intégralité du contenu du fichier /etc/nftables.conf ? Voire le fichier directement ?
En attendant de savoir si cela est possible, j'ai essayé de le aire proprement
J'ai trouvé ce tuto (https://www.it-connect.fr/chapitres/gestion-des-chaines-dans-nftables/) pour supprimer des configurations, mais par exemple, si je prends cet extrait du début de mon fichier nftables.conf :
(j'ai installé et supprimé docker, pour voir comment ça fonctionnait [ça fera l'objet d'un autre sujet :)])
Et que je veux supprimer la chain DOCKER de la table ip nat je rentre :
Et j'obtiens cette réponse :
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3.
avantage, tu ne le desintalles pas, juste tu l'arrete et l'empeche de demarrer au prochain reboot
te permettant ensuite de jouer simplement avec des outils simples pour demarrer
tu peux faire facile le MASQUERADE avec iptables
par defaut iptables laisse tout sortir du parefeu
comme deja dit, apres ton sysctl pour activer le forward,
un simple
iptables -t nat -A POSTROUTING -i enpsduLAN -o enpsduWAN -j MASQUERADE
une fois que tu as çà,
si ca ne fonctionne toujours pas, c'est que tu as un probleme ailleurs,
il te faut alors deja resoudre les autres soucis avant de vouloir faire plus compliqué avec le firewall
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par browniecool . Évalué à 1.
Attends, je viens de penser à quelque chose.
J'ai un premier problème à résoudre : quand je branche mon client sur le port RJ45 enp3s0 de mon serveur (ou sur le switch qui est relié au port, peu importe), et que depuis le client je tente un ping vers 192.168.200.254, ça ne donne rien (cf mon dernier message).
Je reprécise que sur mon client je mets l'IP 192.168.200.1 avec passerelle et DNS 192.168.200.254
En quoi toucher à nftables/iptables va améliorer la situation ?
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3.
ne rien faire sous nftables et desactiver simplement le service
iptables n'est pas charger par defaut
suivant les distribs, y a firewalld (les redhat like), ufw qui gere le parefeu
tu peux regarder en faisant
iptables-save
pour savoir si y a des regles autres que "ALLOW" sur les interfaces[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par browniecool . Évalué à 1.
J'ai désactivé le service nftables.
J'ai redémarré le serveur.
J'ai installé iptables.
J'ai rentré la commande suivante avec ce résultat :
J'ai rentré aussi cette commande avec ce résultat (rien) :
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3.
my bad, en postrouting on ne met pas le
-i enp0s3
car il s'en fiched'ailleurs il te le dit aussi
reessaye la meme sans le -i carteLAN
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par browniecool . Évalué à 1.
Alors bonne nouvelle, à présent, lorsque je coupe le réseau wifi (box) et que je me connecte sur le port enp3s0 du serveur, j'arrive à me connecter en ssh !
Du coup je suis tout content, mais que puis-je faire maintenant ? J'utilise une méthode dépréciée, il faut que je retourne sur nftables à court terme.
Comment dois-je procéder ?
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par NeoX . Évalué à 3. Dernière modification le 20 septembre 2023 à 14:32.
ahah, tu as donc deux cartes reseaux wifi et filaire, sur le meme reseau, ca pouvait expliquer pourquoi ca ne repondait pas
du coup ton PC coté LAN est maintenant en filaire vers le routeur sur le reseau 192.168.200.x
et accedes à internet via ce routeur qui convertit avec le MASQUERADE vers le reseau 192.168.0.x de ta box
c'est un bon debut
si ca marche, tu connais la base avec iptables.
reste à apprendre nftables pour lui faire faire la meme chose
=> read the manual
soit il y a des commandes, soit il y a des fichiers à remplir pour lui dire quelle carte est WAN, laquelle est LAN, et que faire des flux qui passent
note que iptables n'est peut-etre pas tant deprecié que cela, puisque la commande citée t'avais sorti un nf_tables dans le message d'erreur
si ca se trouve, sur les systemes modernes, tu fais tu iptables par "habitude" mais le systeme le traduit en NFtables.
un peu comme ifconfig vs ip…
[^] # Re: faire un routeur avec une box linux facile et rapide
Posté par Cyril Brulebois (site web personnel) . Évalué à 3.
Suggérer d'utiliser un système déprécié, sans donner d'indications précises, ça me semble être une mauvaise idée.
Surtout quand il y a une alternative entre la version historique et la version nft, et que pour effectivement passer de l'une à l'autre il faut redémarrer le système…
Debian Consultant @ DEBAMAX
# nouveaux essais
Posté par browniecool . Évalué à 1.
MAJ :
J'ai modifié la configuration réseau, la voici :
Je viens de faire un test : Wifi coupé (donc pas le réseau de la box), quand je débranche puis rebranche le câble RJ45 de mon client, et que je lance sur l'invite de commande, voici le résultat :
Il semble se passer quelque chose de positif ! Sauf que lorsque je retente la commande, je n'ai plus de réponse.
Je ne pense pas qu'il y ait un problème de câblage, car si je débranche le câble j'ai un message Défaillance générale. ou PING : échec de la transmission. Défaillance générale.
Avez-vous des idées ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.