Plus d'accès au serveur web après activation openvpn

Tags: #<Tag:0x00007fc9f21d8490> #<Tag:0x00007fc9f21e1360> #<Tag:0x00007fc9f21ebc98>

Bonjour,
Je vous explique mon problème.
Actuellement, je suis en train de faire un serveur web est debian 11, en interne, j’ai bien accès à tout en externe aussi. (ftp, https (temps que le vpn n’est pas activé) pour info le openvpn sert a ce connecté a un vpn distant (connexion constante pour faire notamment des sauvegardes sur serveur distant

Une fois activé impossible d’accéder à la machine en extérieur à croire que les requêtes rentre bien, mais semble ressortir par le vpn puisque je finis en timeout

Dès que je désactive vpn tout refonctionne preuve qu’il semble que ma requête tombe dans le vpn au lieu de ressortir par ens18 Par là ou elle, est rentré.

Y t’il une solution une commande qui ferais en sorte que par exemple sur le port 443 le trafique entrant et sortant est l’obligation de passé par mon interface ens18 (Interface physique et non par l’interface virtuelle du vpn (tun0)

merci d’avance
Cordialement,

Une fois activé les flux du serveur passe par le vpn.

Il te faut mettre en place une route par défaut et faire en sorte de n’envoyer sur le vpn que ce que tu veux qu’il y aille avec une route possédant un métrique adequat.

hello effectivement je pense que se dois être cela
en gros je voudrais que par exemple les port 443 80 20543 14600-1650 53 (pour lets encrypt)
si un trafique entrant arrive il faut qu’il reparte par la même interface

sauf que je sais pas du tout faire …

j’ai fais des recherche mais bon sa aide pas trop
j’ai même chercher avec chatgpt aussi bon je vois vite faismais sa semble mega compliqué

Il devrait suffire de configurer openvpn pour ne pas modifier la route par défaut mais pousser seulement la ou les routes pour les adresses qui sont joignables à l’autre bout. Pas bien compliqué…

Je veux bien que touw le traffic passe par le vpn

Sauf si c’est des equêtes entrantes Sur les ports
80
443
14600:14650
20521
53 pour lest encrypt
Dans ce cas sa dois repartir par ou c’est Venu
Mais je sais pas comment faire j’ai fais pas mal de recherche mais c’est compliqué

Merci pour l’aide futur
Cordialement

Pourquoi ? Quel intérêt ? N’est-il pas suffisant d’y envoyer seulement le trafic destiné au serveur qui est à l’autre bout ?

L’intérêt est et le suivant

Le serveur distant sert pour les sauvegardes
Mais a un débit moindre

Le but étant que tout le traffic passe par le vpn
Sauf les port indiqué pour que le serveur web et ssh aussi fonctionne Correctement

Qu’est-ce qui a un débit moindre ? Ton serveur ou le serveur distant ?
Si c’est le serveur distant, quel intérêt de lui envoyer du trafic qui ne lui est pas destiné ?

Bonjour

Je vais ré expliquer le problème.
Je voudrais que tout le trafic passe par le vpn (tun0)

Sauf les requêtes vers le serveur web et ftp qui sont respectivement le port 443 80 20590 14600:14650

En gros, je voudrais que si la requête les entre par ens18 (interface physique) sa ressorte par ens18
Car sinon bah la requête finie en timeout puisque ressort par la mauvaise interface sauf que je n’ai pas réussi, ça fait plusieurs jours que je recherche…

Il est beaucoup plus simple de faire sortir le trafic normalement sur l’interface ens et de mettre une route vers l’ip de ton serveur distant faisant passer le trafic au travers du vpn.
Dans la configuration de Openvpn, il y a moyen d’ajouter les routes adéquat.

Je suis pas sûr qu’il sera simple de gérer par type de trafic plutôt que par destination dans ton cas.

C’est ce qui me semblais j’ai même demander de l’aide à notre nouvelle amis chat gpt eu Même ce qui m’a sorti n’a rien donné de fonctionnel

Donc bon je pense que je vais voir pour faire passer tout le traffique en vpn et pour le serveur web je mettrai l’IP du vpn logiquement sa devrais être plus simples mais sa veux dire que je dois crée une règle qui rédige tout ce qui entre dans le serveur vpn dois aller vers l’interface du vpn maintenant donc la ces l’opération inverse

En gros pour schématisé

Requête externe entrente → serveur vpn → serveur web derrière vpn

Retour de la requête Serveur web → serveur vpn → renvoie la réponse à la requête externe

On n’a pas eu de réponses aux questions de @PascalHambourg

Je suis du même avis que lui poussé une route vers l’ip de ton serveur distant pour seulement le nécessaire est bien plus simple à mettre en place (si la sauvegarde cherche à atteindre une ip fixe, il suffit de pousser une route avec un métrique adéquat pour emprunter le VPN) le restant continuant à fonctionner comme d’habitude.

En gros tu veux remplacer une solution bancale par une « solution » encore plus bancale ?
En quoi la solution simple et efficace proposée par @Clochette et moi ne convient-elle pas ?

Hmmmm
Bha je pense ne pas avoir compris
Tout compris malheureusement

Pour résumer vous me conseiller au lieu de faire ce que je veux faire

Ces plutôt d’indiqué quel route dois prendre la route du vpn c’est ça

On essaie de proposer la meilleure solution qui convient au besoin. Mais c’est difficile d’évaluer ton besoin réel car tu changes d’idée et ne réponds pas aux questions.

Quand on configure un VPN, on définit les destinations qui sont joignables via ce VPN. Cela peut être une adresse unique (pour accéder à une machine distante), un préfixe (pour accéder à un réseau distant), toutes les adresses (pour accéder à internet via le VPN). Cela va créer la ou les routes correspondantes dans la table de routage lorsque le VPN sera monté.

Tu sembles avoir configuré le VPN pour le troisième cas, qui ajoute une route par défaut via le VPN pour toutes les destinations non locales. Initialement, tu as écrit que le serveur distant ne servait qu’à faire des sauvegardes. Il nous semblait donc plus logique de définir l’adresse de l’interface tun de ce serveur comme seule destination joignable via le VPN, d’autant plus si le serveur distant a moins de bande passante (si j’ai bien compris).

Mais tu as ensuite souhaité que tout le trafic sortant sauf les réponses aux connexions entrantes soit routé via le VPN (pourquoi ?) puis que tout le trafic sortant soit routé via le VPN et que les connexions entrantes soient reçues par le serveur distant et redirigées vers le serveur local (pourquoi ?).

Ce que je voudrais j’espère que sa aidera mieux

C’est quand on contacte 443 ou 80 sur ens18 (Interface physique que ça fonctionne

Je m’explique.

La actuellement le problème, c’est que dès que j’active le vpn et que j’essaye de contacter le serveur web sur le réseau local ça fonctionne, mais dès que c’est depuis l’extérieur ça ne.
Fonctionne pas donc j’ai l’impression que dès qu’une requête extérieure vient ca sort par tun0 alors que si je désactive le VPN j’arrive à ravoir le serveur web depuis l’extérieur

Comme si la requête passée par ens18
sauf que la réponse à la requête semble partir vers tun0 donc forcément ça ne fonctionne pas

Ce n’est pas comme SI, c’est le cas … tu as une route par défaut indiquant au trafic de passer au travers du VPN qui supplante la route par défaut utilisant ton interface ethernet.

Ce que l’on t’explique c’est qu’il faudrait sans doute mieux reconfigurer ton VPN pour n’être utiliser QUE pour accéder au ressources disponible au bout du tunnel :wink:

En fait ça pourrait fonctionner, selon de ce qu’il y a à l’autre bout du tunnel. Le routage sur internet n’est pas forcément symétrique. Mais ce ne serait pas optimal.

Si tu ne sais pas comment configurer openvpn, tu peux commencer par poster les configurations d’openvpn et la sortie des commandes

ip addr
ip -4 route
ip -6 route

côté client et côté serveur lorsque le VPN est monté. (tu peux maquiller les adresses IP publiques mais que ça reste lisible)

Bon a ce que je comprends tu as dans l’idée de faire passer du trafic dans le vpn mais ce ne sera pas de la sauvegarde :sweat_smile: ok … soit, du coup le routage est plus complexe car tu va reçevoir des communications depuis le VPN (que tu ne gère pas) et tu souhaite que ce tyrafic reparte vers cette interface si j’ai bien compris (sans rentrer dans le détail ^^ ).

Pour commencer peux-tu à minima nous fournir les informations demandé par @PascalHambourg , sans ça on n’ira pas bien loin …

hello

Désolé, pour le temps de réponse, j’avais temporairement mis en pause tout ça, je commençais à saturer un peu.
Pour info, j’ai disable l’ipv6

Voici les informations demandées
pour info l’adresse ip local coté vpn est changeante et parfois j’ai tun0 ou tun1 qui apparais

retour de la commande : ip addr

    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
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 86:7d:ba:3d:c2:0f brd ff:ff:ff:ff:ff:ff
    altname enp0s18
    inet 192.168.42.21/24 brd 192.168.42.255 scope global ens18
       valid_lft forever preferred_lft forever
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 500
    link/none
    inet 10.8.3.12/24 scope global tun0
       valid_lft forever preferred_lft forever

retour de la commande : ip -4 route

0.0.0.0/1 via 10.8.3.1 dev tun0
default via 192.168.42.1 dev ens18 onlink
10.8.3.0/24 dev tun0 proto kernel scope link src 10.8.3.12
128.0.0.0/1 via 10.8.3.1 dev tun0
192.168.42.0/24 dev ens18 proto kernel scope link src 192.168.42.21
213.232.87.63 via 192.168.42.1 dev ens18

la commande
ip -6 route ne remonte rien vue que j’ai disable ipv6