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 NeoX . É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 itsmrval . É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 LaBienPensanceMaTuer . É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 itsmrval . É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 LaBienPensanceMaTuer . É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 tablefilter
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) etFORWARD
(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 chainesPREROUTING
(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 table
filter`).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 tablefilter
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 tablenat
.Je t'invite à lire une introduction à iptables qui te permettra d'avoir les idées plus claires à ce sujet.
[^] # Re: resumons
Posté par NeoX . Évalué à 2.
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.