Forum Linux.debian/ubuntu Faire passer le réseau de ma machine par un vps ?

Posté par  . Licence CC By‑SA.
Étiquettes :
0
8
juil.
2019

Bonjour, voici ma situation, j'ai une machine sous Ubuntu 16.04 chez moi et j'aimerai faire en sorte que le réseau passe par un VPS OVH pour bénéficier d'une ip ovh, et de l'antiddos.

Petit schema représentatif: Utilisateur <-----> VPS <-----> Machine

Mon problème est le suivant, j'ai essayé via openvpn, malheureusement je n'ai pas accès aux ports ouvert sur ma machine depuis l'ip du vps

Je ne m'y connais pas tellement dans ce domaine là, en espérant que quelqu'un puisse m'aider dans ma situation, bonne journée !

  • # resumons

    Posté par  . Évalué à 3.

    tu veux que le public se connecte sur des services via l'IP du VPS,
    mais finalement les services tournent sur une machine chez toi ?

    SIMPLE :
    - rediriger les ports de ta box pour que les services internes soient accessibles de l'exterieur
    - installer un reverse proxy sur le VPS, qui va accueillir chat.chezmoi.example.tld et le renvoyer vers ip_publique:port de ta box

    PLUS complexe, quoique
    - installer un serveur openvpn SUR le VPS
    - connecter la machine de la maison en client openvpn du VPS
    - configurer, comme dans le cas SIMPLE, un reverse proxy pour recevoir les clients et les renvoyer sur l'IP openvpn du client.

    exemple de reverse proxy qui peut faire ca bien, haproxy
    (notons qu'il y en a surement d'autres, mais je ne les maitrises pas autant que haproxy)

    • [^] # Re: resumons

      Posté par  . Évalué à 1. Dernière modification le 08 juillet 2019 à 23:36.

      Merci de la réponse ! Malheureusement, il s'agit d'environ 50 serveurs de jeux, et un reverse proxy ne marcherait pas je pense. Il n'y a pas d'autres solutions ?

      • [^] # Re: resumons

        Posté par  . Évalué à 2.

        Pas besoin de reverse proxy.
        Suffit de poser les bonnes règles de NAT avec iptables.
        En admettant que:
        1/ Ton VPN soit en 192.168.10.0/24
        2/ l'IP VPN de ta machine soit 192.168.10.100
        3/ L'ip publique de ton serveur est 1.2.3.4 et cette IP est sur eth0

        Si tu veux rediriger le port 8000 vers le port 10000 de ta machine (tout en root):

        iptables -t nat -A PREROUTING -i eth0 -d 1.2.3.4 -p tcp --dport 8000 -j DNAT --to 192.168.10.100:10000

        Tu auras probablement quelques ajustements à faire sur la table FORWARD également.

        Pour finir il faut également:
        1/ activer le forwarding niveau noyau (voir sysctl).

        2/ activer le masquerading pour éviter que les paquets réponses sortent avec l'IP du VPN: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

        Attention cependant, contrairement à la solution à base de reverse proxy, ta machine va voir ses services directement exposés sur le net ce qui représente un potentiel risque de sécurité..

        Note: j'ai écrit tout ça de tête, des erreurs peuvent s'être glissées…

        • [^] # Re: resumons

          Posté par  . Évalué à 1.

          Super, je vais tester tout ça merci.

          Le vps sert de vpn, et la machine sont sur deux réseaux séparés ^

          Il n'y a rien a faire sur la machine ?
          Et que veux tu dire par "Tu auras probablement quelques ajustements à faire sur la table FORWARD également." ?

          Bonne journée et merci de votre aide !

          • [^] # Re: resumons

            Posté par  . Évalué à 2.

            Là, je t'ai donné des pistes pour présenter sur internet des services hébergés par la machine qui fera tourner le client VPN.
            L'unique chose à faire dans ce contexte est de t'assurer que les services que tu souhaites exposer soient également en écoute sur l'interface montée par OpenVPN (généralement, ça marche tout seul quand le service est configuré pour écouter sur INADDR_ANY/0.0.0.0.

            Si, outre ces services, tu dois exposer d'autres services sur d'autres machines de ton LAN domestique, il y a probablement un peu de boulot supplémentaire.

            Pour revenir sur la chaine FORWARD, iptables est composée de plusieurs tables elles même consistant en plusieurs chaines.

            La table la plus connue, celle utilisée par défaut si on omet le -t <table> est la table filter qui te permet de dire "ce port la je le ferme, celui la je l'ouvre que pour tel IP source", etc…
            Cette table contient, par défaut, les chaines INPUT (paquets entrants à destination de la machine), OUTPUT (paquets sortants de ta machine) et FORWARD (paquets pour lesquels ta machine n'est qu'un intermédiaire, ex: une GW internet).

            La table nat, qui régie les altérations de paquets (donc les redirections/translations) contient quant à elle les chaines PREROUTING (décision préalable au routage des paquets), POSTROUTING (décision après que le routage des paquets aie été actés) et égalementINPUT et ̀ OUTPUT(même contexte que pour la tablefilter`).

            Là, je t'ai donné des commandes permettant d'ajouter des règles dans la table nat.
            Cependant, ce n'est pas parce qu'une règle de translation existe dans la table nat qu'elle est automatiquement autorisé côté filter.
            C'est dans la chaine forward de la table filter que tu vas ensuite devoir autoriser les flux en question.

            J'ai cependant dit que y toucher était hypothétique car, sur une config "stock", la policy (décision par défaut) de la table FORWARD est bien souvent ACCEPT.
            Si toutefois, sur ta machine, elle est en policy DROP il te faudra autoriser explicitement les flux que tu auras configuré dans ta table nat.

            Je t'invite à lire une introduction à iptables qui te permettra d'avoir les idées plus claires à ce sujet.

      • [^] # Re: resumons

        Posté par  . Évalué à 2.

        Malheureusement, il s'agit d'environ 50 serveurs de jeux

        ben justement

        serveur1.domaine.tld => reverse proxy => ta machine privée:port10000
        serveur1.domaine.tld:port36363 => reverse proxy => ta machine privée:port10001
        serveur2.domaine.tld => reverse proxy => ta machine privée:port20000

        le reverse proxy est fait pour ca
        haproxy faisant aussi bien reverse proxy niveau 7 (https) que niveau 4 (TCP/IP pour le ftp, les emails, etc)

        maintenant oui, tu peux jouer du firewall sur le VPS pour :
        - renvoyer le port 10000 du vps vers le port disons 10000 de ta machine privée (les regles de PREROUTING)
        - cacher ce qui ressort de la machine privée vers l'utilisateur via le VPN (les regles de SNAT ou de MASQUERADE)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.