# Router le traffic d'un PC du LAN par VPN

**URL:** <https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585>\
**Category:** Support Debian\
**Created:** [Décembre 21, 2020, 9:50 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585 "2020-12-21T09:50:34Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 9:50 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/1 "2020-12-21T09:50:34Z")

</div>

Bonjour,

Sur un réseau de 3 PCs : PC1, PC2 et PC3, je souhaite faire router le traffic de PC3 par le vpn qui est installé sur PC2.

```
Voici la table de routage du PC1 
0.0.0.0 IP statique.254 0.0.0.0 UG 0 0 0 eth0 (IP statique)
IP statique.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1 (192.168.1.10)
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp3s0 (192.168.2.10)

La table de routage du PC2 (avant la connexion au vpn). 
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.10	0.0.0.0 UG 0 0 0 eth0 (192.168.1.2)
192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0
 
Table de routage de PC3 
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 192.168.2.10 0.0.0.0 UG 0 0 0 wlp3s0
192.168.2.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0 (192.168.2.3)

```

Juste avec ces infos, c’est possible de me communiquer les règles firewall qu’il faudra rajouter sur PC1, svp ?

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 12:23 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/2 "2020-12-21T12:23:25Z")

</div>

> [@Franck\_FR](#):
>
> je souhaite faire router le traffic de PC3 par le vpn qui est installé sur PC2.

Router le trafic de PC3 destiné à quoi ?

> [@Franck\_FR](#):
>
> `La table de routage du PC2 (avant la connexion au vpn).`

Ça aurait été plus utile de montrer la table de routage avec la connexion au VPN.

> [@Franck\_FR](#):
>
> c’est possible de me communiquer les règles firewall qu’il faudra rajouter sur PC1, svp ?

Ce n’est pas avec des règles de firewall qu’on fait du routage, mais avec des routes et si nécessaire des règles de routage avancé. Les règles de firewall interviennent seulement le cas échéant pour manipuler les clés utilisées par les règles de routage (adresse source ou destination, marque de firewall…).

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 12:40 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/3 "2020-12-21T12:40:57Z")

</div>

Je voudrai faire passer les requettes http, https et dns de PC3 par PC2. c’est possible ?

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 12:42 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/4 "2020-12-21T12:42:39Z")

</div>

Ça ne me dit toujours pas vers quelles destinations.

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 12:46 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/5 "2020-12-21T12:46:06Z")

</div>

Je ne suis pas sur de comprendre ta question.

Il y a une appli sur PC3 qui a besoin de se connecter sur internet, mais ses requettes doivent passer par le VPN.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 1:11 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/6 "2020-12-21T13:11:31Z")

</div>

Voilà, sur internet, c’est tout ce que je voulais savoir. Donc toutes les destinations hors du réseau local.

Choisir un numéro de table de routage avancé libre X. Les numéros des tables réservées (local, main, default) sont dans le fichier /etc/iproute2/rt\_tables.

Sur PC1, créer deux routes dans cette table :

- une route par défaut via PC2

- une route directe pour le préfixe du réseau de PC2, identique à celle de la table main pour ne pas envoyer vers PC2 les paquets destinés à d’autres machines de ce réseau.

- Si tu veux router tout le trafic de PC3 par le VPN, il suffit d’ajouter une règle de routage avancé basée sur l’adresse source :

- Si tu veux router seulement les connexions HTTP(S) et DNS, il faut plutôt marquer les paquets avec iptables (à ajuster si nftables) et créer une règle de routage basée sur la marque de firewall :

Attention à l’éventuel réglage de rp\_filter sur PC1 pour ne pas bloquer les paquets dans le sens retour provenant d’internet de PC2 vers PC3.

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 2:04 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/7 "2020-12-21T14:04:07Z")

</div>

Mourci pour cette réponse détaillée. J’essayerai cela tout à l’heure et te dis quoi

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Décembre 21, 2020, 4:01 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/8 "2020-12-21T16:01:57Z")

</div>

En gros, il faut que la passerelle par defaut de PC3 soit l’ip de l’interface PC2 à laquelle il est connecté (directement, via, switch, hub…).  
Ensuite PC2 doit forwarder les paquets vers sa passerelle. Il faut donc activer l’ip\_forward.

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 4:17 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/9 "2020-12-21T16:17:04Z")

</div>

Zargos : PC3 est en wifi sur le réseau **2.0**. PC1 et PC2 sont connectés par cable Eth à un switch sur le réseau 192.168. **1.0**

PascalHambourg : j’ai essayé les manips mais cela n’a pas fonctionné. Je refais proprement et récupérerai les logs. Je redemarre PC1 qui tourne depuis au moins 2 mois.

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 5:19 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/10 "2020-12-21T17:19:19Z")

</div>

(sur PC1)ip rule show  
0: from all lookup local  
32765: from 192.168.2.3 lookup 100  
32766: from all lookup main  
32767: from all lookup default  
…  
Le firewall (donc PC1) rejette les packets en provenance de PC3. Il ne faut pas un dnat ?

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 6:14 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/11 "2020-12-21T18:14:50Z")

</div>

> [@Zargos](#):
>
> il faut que la passerelle par defaut de PC3 soit l’ip de l’interface PC2 à laquelle il est connecté (directement

Souci : PC2 et PC3 ne sont pas connectés directement. Ils sont séparés par PC1.  
A moins de monter un tunnel entre PC2 et PC3, il faut faire du routage avancé sur PC1.

> [@Franck\_FR](#):
>
> cela n’a pas fonctionné

Cette phrase ne contient aucune information utile.

> [@Franck\_FR](#):
>
> (sur PC1)ip rule show

Et le contenu de la table de routage 100 ?

```
ip route ls table 100

```

> [@Franck\_FR](#):
>
> Le firewall (donc PC1) rejette les packets en provenance de PC3. Il ne faut pas un dnat ?

Non. Faut arrêter de mettre du NAT partout à tort et à travers. Par contre s’il y a du filtrage il faut peut-être ajuster les règles pour accepter le trafic concerné.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Décembre 21, 2020, 6:30 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/12 "2020-12-21T18:30:13Z")

</div>

> [@PascalHambourg](#):
>
> Souci : PC2 et PC3 ne sont pas connectés directement. Ils sont séparés par PC1.  
> A moins de monter un tunnel entre PC2 et PC3, il faut faire du routage avancé sur PC1

Donc si je comprend bien, PC1 est la passerelle par defaut de PC3 et PC2 est la passerelle par defaut de PC1.  
Avec ip\_forward sur PC1 et PC2

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 6:39 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/13 "2020-12-21T18:39:05Z")

</div>

ip route ls table 100  
default via 192.168.1.2 dev eth1  
192.168.1.0/24 dev eth1 scope link .

Les packets sont rejetés par le firewall  
Shorewall:wifi2loc:REJECT:IN=wlp3s0 OUT=eth1 MAC=… SRC=192.168.2.3 DST=x.x.x.x LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=20815 DF PROTO=TCP SPT=36932 DPT=443 WINDOW=64240 RES=0x00 SYN URGP=0.  
ici DST=x.x.x.x concerne une adresse public chez le fournisseur d’accès VPN.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 6:58 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/14 "2020-12-21T18:58:19Z")

</div>

> [@Zargos](#):
>
> Donc si je comprend bien, PC1 est la passerelle par defaut de PC3 et PC2 est la passerelle par defaut de PC1.

Non, d’après les tables de routage postés dans le message initial, PC1 est le routeur par défaut de PC2 et PC3, chacun sur une interface différente.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 7:02 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/15 "2020-12-21T19:02:59Z")

</div>

> [@Franck\_FR](#):
>
> Les packets sont rejetés par le firewall  
> Shorewall:wifi2loc

Ah, shorewall. Je ne pratique pas, j’utilise directement iptables. Tu dois lui dire d’accepter le trafic depuis PC1 par l’interface wifi vers eth1 et vice versa. Si tu veux tester vite fait, tu ajoutes ceci :

```
iptables -I FORWARD -i wlp3s0 -o eth1 -s 192.168.2.3 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -o wlp3s0 -i eth1 -d 192.168.2.3 -m state --state ESTABLISHED,RELATED -j ACCEPT

```

A moins ça indique que le routage avancé fonctionne puisqu’il envoie le paquet par la bonne interface.

Et comme l’a mentionné @Zargos à juste titre, ip\_forward doit être activé sur PC2 (il l’est déjà sur PC1 puisqu’il fait office de routeur).

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 7:41 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/16 "2020-12-21T19:41:27Z")

</div>

iptables -I FORWARD -i wlp3s0 -o eth1 -s 192.168.2.3 -m state --state NEW,ETABLISHED,RELATED -j ACCEPT  
iptables v1.8.2 (nf\_tables): Bad state «&nbsp;ETABLISHED,RELATED&nbsp;»

J’ai lancé cette même commande en supprimant «&nbsp;ETABLISHED,RELATED&nbsp;» , syslog ne log plus les REJECT, mais l’appli ou le navigateur ne parviennent pas à se connecter à un site inernet (Unable to connect)

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Décembre 21, 2020, 7:43 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/17 "2020-12-21T19:43:15Z")

</div>

dans le fichier policy faut mettre zone(wifi) zone(loc) ACCEPT

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 7:47 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/18 "2020-12-21T19:47:09Z")

</div>

faute de frappe de ma part, c’est ESTABLISHED.  
Avec seulement l’état NEW, tu ne risques pas de recevoir des réponses.

Question : est-ce que l’équipement/réseau à l’autre bout du VPN sait router correctement l’adresse IP de PC3 ? Sinon il faut faire du SNAT ou MASQUERADE sur l’interface VPN de PC2.

---

<div class="post-metadata">

**Author:** ![Franck\_FR](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/e47774/32.png) [@Franck\_FR](https://www.debian-fr.org/u/Franck_FR)\
**Post date:** [Décembre 21, 2020, 8:10 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/19 "2020-12-21T20:10:01Z")

</div>

Je n’ai pas vu qu’il manquait le S. Les commandes se sont bien excécutées mais cela n’a pas résolu le problème.  
Je ne sais pas si l’équipement/réseau à l’autre bout du VPN sait router correctement l’adresse IP de PC3. Comment faire du source nat sur l’interface VPN du PC2 (tun0)?

Faut-il vérifier avec tcpdump si les paquets arrivent sur certaines interfaces ?

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Décembre 21, 2020, 8:13 UTC](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585/20 "2020-12-21T20:13:37Z")

</div>

Le plus simple dans un premier temps, c’est de faire du masquerading (NAT source automatique) :

```
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

```

Oui, tcpdump peut être utile pour voir si les paquets arrivent et ressortent par les bonne interfaces.

[Page suivante](https://www.debian-fr.org/t/router-le-traffic-dun-pc-du-lan-par-vpn/83585.md?page=2)
