# Cohabitation client OVPN et serveur web

**URL:** <https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067>\
**Category:** Support Debian\
**Tags:** hotspot, serveur, raspberry, raspbian, vpn\
**Created:** [Août 5, 2021, 7:05 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067 "2021-08-05T07:05:18Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![naib60](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/c89c15/32.png) [@naib60](https://www.debian-fr.org/u/naib60)\
**Post date:** [Août 5, 2021, 7:05 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/1 "2021-08-05T07:05:18Z")

</div>

Bonjour à tous.

Voilà plusieurs jours que je penche sur le sujet et impossible de trouver la solution.

Je dispose d’un Raspberry Pi qui fait à la fois office de hotspot wifi et de serveur web.  
Le serveur web doit être accessible de l’extérieur et en local.

Openvpn est installé sur le raspberry. Il a pour vocation d’anonymiser le trafic des machines connectées en wifi au raspberry à travers wlan0 → tun0.  
Dans le but recherché, le fait qu’eth0 soit anonymisé par le vpn ou non n’a pas d’importance.

Lorsque ovpn est lancé.  
Les clients machines connectées au raspberry sont bien anonymisée (wlan0 → tun0).  
Les clients machines connectées au raspberry arrive bien à se connecter en local au serveur web (ip du raspberry sur wlan0).  
Par contre, dès que ovpn est lancé, le serveur web n’est plus joignable de l’extérieur; pas de ping possible non plus.

Mes recherches sur le forum et sur le web se sont révélées infructueuses.  
Par avance merci.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Août 5, 2021, 7:49 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/2 "2021-08-05T07:49:00Z")

</div>

Peux-tu donner plus d’informations réseau concernant le montage et le fonctionnement de ton VPN, règles iptables, routes, etc …

---

<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:** [Août 5, 2021, 7:49 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/3 "2021-08-05T07:49:27Z")

</div>

Et pourtant, il y a eu une discussion à ce sujet assez récemment.  
Routage avancé.

---

<div class="post-metadata">

**Author:** ![naib60](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/c89c15/32.png) [@naib60](https://www.debian-fr.org/u/naib60)\
**Post date:** [Août 5, 2021, 9:50 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/4 "2021-08-05T09:50:49Z")

</div>

Un grand merci pour votre réactivité déjà

Pour iptables, voilà ce qui est fait au lancement du script:

```
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

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

```

Le fichier de config .ovpn est de cette forme:

```
client
dev tun0
reneg-sec 0
persist-tun
persist-key
ping 5
ping-exit 30
nobind
comp-lzo no
remote-random
remote-cert-tls server
auth-nocache
route-metric 1
cipher AES-256-CBC
auth sha512

```

Un route donne (où x.x.x.x est la passerelle):

```
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
default x.x.x.x 0.0.0.0 UG 202 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
10.200.0.1 10.200.0.37 255.255.255.255 UGH 1 0 0 tun0
10.200.0.37 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
92.0.0.0 0.0.0.0 255.0.0.0 U 202 0 0 eth0
128.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
ns3076844.ip-14 x.x.x.x 255.255.255.255 UGH 0 0 0 eth0

```

Enfin ifconfig donne (où y.y.y.y est l’IP eth0)

```
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet y.y.y.y netmask 255.0.0.0 broadcast 92.255.255.255

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
        inet 127.0.0.1 netmask 255.0.0.0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
        inet 10.200.0.38 netmask 255.255.255.255 destination 10.200.0.37

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 10.0.0.1 netmask 255.255.255.0 broadcast 10.0.0.255

```

Je regarde également ce que PascalHambourg m’a indiqué mais jusque là sans succès.

---

<div class="post-metadata">

**Author:** ![anon20048229](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/7ab992/32.png) [@anon20048229](https://www.debian-fr.org/u/anon20048229)\
**Post date:** [Août 5, 2021, 11:01 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/5 "2021-08-05T11:01:48Z")

</div>

Est ce que tu a regardé si un port ne se ferme pas avec la commande

`netstat -paunt `

après je n’y connais pas grand chose

---

<div class="post-metadata">

**Author:** ![naib60](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/c89c15/32.png) [@naib60](https://www.debian-fr.org/u/naib60)\
**Post date:** [Août 5, 2021, 11:26 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/6 "2021-08-05T11:26:30Z")

</div>

En fait, tout le trafic entrant semble redirigé vers tun0.  
Le ping, le ssh, le serveur web par exemple deviennent inaccessible de l’extérieur dès le lancement d’openvpn

---

<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:** [Août 5, 2021, 12:05 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/7 "2021-08-05T12:05:52Z")

</div>

> [@Accès distant et vpn](https://www.debian-fr.org/t/acces-distant-et-vpn/84934):
>
> Bonjour. Je ne parviens pas à me connecter sur mon serveur raspbian depuis l’exterieur. J’ai une livebox et une adresse dyndns et redirigé les ports sur ma livebox. Sur raspbian j’ai installé kodi et un vpn ‹&nbsp;cyberghodt&nbsp;›. Mon vpn ne pourrait-il pas bloquer l’acces distant a mon serveur debian ?? En local aucun problème J’ai contacté le ‹&nbsp;chat&nbsp;› de cyberghost qui me dit que effectivement le vpn bloque l’acces distant. Mais selon eux la seule chose à faire est de désactiver le vpn ! Ne peut…

---

<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:** [Août 6, 2021, 8:31 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/8 "2021-08-06T20:31:18Z")

</div>

> [@naib60](#):
>
> Openvpn est installé sur le raspberry. Il a pour vocation d’anonymiser le trafic des machines

Un VPN n’anonymise rien du tout, ce n’est pas sa fonction

---

<div class="post-metadata">

**Author:** ![naib60](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/c89c15/32.png) [@naib60](https://www.debian-fr.org/u/naib60)\
**Post date:** [Août 6, 2021, 8:51 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/9 "2021-08-06T20:51:21Z")

</div>

Merci pour la précision, je tentais de simplifier pour que l’on comprenne mieux mais ce n’était peut être pas opportun.  
En tout cas, ce commentaire ne fais pas avancer le sujet 🙂

---

<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:** [Août 6, 2021, 9:10 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/10 "2021-08-06T21:10:55Z")

</div>

> [@naib60](#):
>
> ```auto
> Destination Passerelle Genmask Indic Metric Ref Use Iface
> 0.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
> default x.x.x.x 0.0.0.0 UG 202 0 0 eth0
> 10.0.0.0 0.0.0.0 255.255.255.0 U 303 0 0 wlan0
> 
> ```

ta passerelle devrait etre une adresse interne, vu tes X.X.X.X on peut pas savoir  
si c’est une IP publique dans ce cas ce n’est aps bon

---

<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:** [Août 7, 2021, 8:53 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/11 "2021-08-07T08:53:47Z")

</div>

> [@naib60](#):
>
> je tentais de simplifier pour que l’on comprenne mieux

Tu pouvais simplement dire que le VPN sert d’accès internet pour les machines en wifi.

> [@naib60](#):
>
> En tout cas, ce commentaire ne fais pas avancer le sujet

@Zargos n’a pas besoin de faire avancer le sujet. J’ai proposé une piste, maintenant la balle est dans ton camp.

> [@Zargos](#):
>
> ta passerelle devrait etre une adresse interne

Qu’appelles-tu une «&nbsp;adresse interne&nbsp;» ?

> [@Zargos](#):
>
> si c’est une IP publique dans ce cas ce n’est aps bon

Pourquoi ? Et quel rapport entre «&nbsp;publique&nbsp;» et «&nbsp;interne&nbsp;» ?

> [@Zargos](#):
>
> vu tes X.X.X.X on peut pas savoir

Mais si, on peut savoir: on voit 92.\* plusieurs fois, il s’agit donc d’une adresse IP publique. Par contre le masque 255.0.0.0 associé me semble erroné, le bloc alloué au FAI par le RIPE étant 92.0.0.0 - 92.15.255.255.

---

<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:** [Août 7, 2021, 10:50 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/12 "2021-08-07T10:50:15Z")

</div>

> [@PascalHambourg](#):
>
> Qu’appelles-tu une « adresse interne » ?

> [@PascalHambourg](#):
>
> Pourquoi ? Et quel rapport entre « publique » et « interne » ?

> [@PascalHambourg](#):
>
> Mais si, on peut savoir: on voit 92.\* plusieurs fois, il s’agit donc d’une adresse IP publique. Par contre le masque 255.0.0.0 associé me semble erroné, le bloc alloué au FAI par le RIPE étant 92.0.0.0 - 92.15.255.255.

une passerelle, c’est une IP par laquelle les machines vont envoyer leur traffic si elles ne savent pas où se trouve un réseau qui ne leur est pas connu (donc, i.e. tous les réseaux en dehors de celui dans lequel elles sont définie).

Une adresse IP interne, c’est une IP du réseau local. Une adresse externe c’est une IP externe au réseau local.

Ton, adresse externe 92… est effectivement avec un mauvais masque comme celà a été dit.

Donc la passerelle d’un réseau local est une machine obligatoirement dans le même réseau.

La machine qui reçoit le VPN renvoie vers le routeur qui lui envoie vers l’extérieur. et ce même routeur lui recoit les requetes externe sur son IP publique et les envoie vers le serveur Web.

Donc:  
1- eth0 est donc l’interface publique celle qui est raccordée à internet.  
2- wlan0 est donc l’interface interne celle qui est sur ton réseau local.

3- C’est donc wlan0 qui «&nbsp;porte&nbsp;» les passerelles nécessaires à te réseaux locaux (VPN ou autres).  
4- c’est eth0 qui reçoit les requêtes externe (d’internet).  
5- l’ip de serveur web est en local  
6- il y a donc un forward de l’externe vers l’interne, via un nat  
7- la passerelle du réseau VPN est l’adresse IP du réseau VPN vers le réseau local (porté par tun0 vers wlan0, à priori)

tun0 a pour destination 10.200.0.37. Qui porte cette IP?  
D’où sort le réseau 128.0.0.0 qui n’est porté par aucun réseau?  
Ta table de routage a des adresses réseau qui ne sont portés par aucune interface.  
8- la passerelle du réseau local est l’adresse IP locale de wlan0  
9 dans le routage il y a conflit entre les deux lignes:

> [@naib60](#):
>
> ```auto
> 0.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
> default x.x.x.x 0.0.0.0 UG 202 0 0 eth0
> 
> ```

---

<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:** [Août 7, 2021, 2:33 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/13 "2021-08-07T14:33:11Z")

</div>

Je m’arme de courage avant de répondre à tout ça…

> [@Zargos](#):
>
> une passerelle, c’est une IP par laquelle les machines vont envoyer leur traffic si elles ne savent pas où se trouve un réseau qui ne leur est pas connu (donc, i.e. tous les réseaux en dehors de celui dans lequel elles sont définie).

Avant tout, le terme «&nbsp;passerelle&nbsp;» («&nbsp;gateway&nbsp;») est jugé trop vague et son usage dans ce contexte est déconseillé. Je ne sais plus quel RFC recommande d’utiliser le terme «&nbsp;routeur&nbsp;» à la place. Je vais donc appliquer cette recommandation.  
Ensuite un routeur est une machine, pas une adresse IP. Une machine envoie du trafic à travers un routeur, pas à un routeur. La nuance est importante : l’adresse IP de destination des paquets n’est pas l’adresse du routeur. Techniquement, un routeur n’a même pas besoin d’avoir une adresse IP pour router.  
Pour finir, les machines peuvent parfaitement savoir où se trouve le réseau de destination et qu’elles doivent passer par tel routeur pour l’atteindre.  
Un routeur sert à joindre d’autres réseaux, c’est tout. Pas besoin de rajouter des hyptohèses.

> [@Zargos](#):
>
> Une adresse IP interne, c’est une IP du réseau local. Une adresse externe c’est une IP externe au réseau local.

Bien. Il te reste à définir ce qu’est le réseau local. Je suis sérieux.  
Par exemple, est-ce que le segment ethernet qui relie mon routeur d’accès internet à mon modem ADSL (qui est un simple pont, pas un routeur) fait partie du réseau local ?

> [@Zargos](#):
>
> Ton, adresse externe 92

Ce n’est pas «&nbsp;mon&nbsp;» adresse. Quant à dire si elle est externe, cela va dépendre de ta définition du réseau local.

> [@Zargos](#):
>
> Donc la passerelle d’un réseau local est une machine obligatoirement dans le même réseau.

C’est une évidence. Où veux-tu en venir, quel rapport avec l’adresse IP publique en 92.\* ? J’ai l’impression qu’on s’égare.

> [@Zargos](#):
>
> La machine qui reçoit le VPN renvoie vers le routeur qui lui envoie vers l’extérieur. et ce même routeur lui recoit les requetes externe sur son IP publique et les envoie vers le serveur Web.

La formulation de cette phrase est ambiguë. De quelle machine parles-tu et qu’entends-tu par «&nbsp;reçoit le VPN&nbsp;» ? Ce sujet concerne une machine qui est client VPN.  
Elle renvoie quoi vers le routeur ? Quel routeur ?  
Ce routeur lui renvoie ce qu’elle lui a envoyé vers l’extérieur ? Ça ne veut rien dire !

> [@Zargos](#):
>
> 3- C’est donc wlan0 qui « porte » les passerelles nécessaires à te réseaux locaux (VPN ou autres).

Cette phrase ne veut rien dire.

> [@Zargos](#):
>
> 5- l’ip de serveur web est en local

Je ne comprends pas cette phrase.

> [@Zargos](#):
>
> 6- il y a donc un forward de l’externe vers l’interne, via un nat

D’où sors-tu cela ? Le serveur web est sur la machine qui a l’adresse IP publique, il n’y a aucun besoin de forward ni de NAT.

> [@Zargos](#):
>
> 7- la passerelle du réseau VPN est l’adresse IP du réseau VPN vers le réseau local (porté par tun0 vers wlan0, à priori)

Cette phrase ne veut strictement rien dire.

> [@Zargos](#):
>
> tun0 a pour destination 10.200.0.37. Qui porte cette IP?

Probablement l’interface tun du serveur openvpn à l’autre bout du VPN. Aucune importance de toute façon, c’est un tunnel routé, on peut mettre ce qu’on veut (voire rien) comme adresse. La seule chose qui compte, ce sont les routes.

> [@Zargos](#):
>
> D’où sort le réseau 128.0.0.0 qui n’est porté par aucun réseau?

D’openvpn. Je te donne un indice :

```
Destination Passerelle Genmask Indic Metric Ref Use Iface
0.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
128.0.0.0 10.200.0.37 128.0.0.0 UG 0 0 0 tun0
default x.x.x.x 0.0.0.0 UG 202 0 0 eth0

```

Si on concatène les deux routes /1, qu’est-ce qu’on obtient ? Et quelle est la différence avec une route 0/0 unique ?

> [@Zargos](#):
>
> Ta table de routage a des adresses réseau qui ne sont portés par aucune interface

Evidemment puisque par définition cette table de routage contient des destinations extérieures à la machine.

> [@Zargos](#):
>
> 9 dans le routage il y a conflit entre les deux lignes:

Non, elles n’ont pas le même masque. Et même si elles avaient le même masque, elles n’ont pas la même métrique.

---

<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:** [Août 7, 2021, 3:40 UTC](https://www.debian-fr.org/t/cohabitation-client-ovpn-et-serveur-web/85067/14 "2021-08-07T15:40:16Z")

</div>

> [@PascalHambourg](#):
>
> Je ne comprends pas cette phrase.

oui il est vrai que tu te comprends bien mais tu as du mal avec les autres. Question d’effort peut etre.
