Installation d'un VPN sur TrueNAS Core

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Bonjour, voici mon problème. Je suis débutant sur TrueNAS, je viens de monter mon premier serveur (Mobo AsRock J5005 Mini ITX, 16go, 3x6TO en Raid-Z, SSD 500go, 2xUSB 32go pour l'OS). Maintenant j'ai installé Nextcloud et Plex et je souhaite aussi créer mon site internet. Cependant, j'aimerais avoir accès à mon Nextcloud, à Plex et à mon site internet depuis un nom de domaine qui m'appartient. Du style : "cloud.monnomdedomaine.com" pour Nextcloud. Vous me direz, tu as juste à ouvrir tes ports de ta boxe et c'est fait ! Oui mais mon père utilise déjà les ports 443 et 80. Et j'aimerais avoir un serveur Plug&Play en passant par un VPN avec une IP Fixe (fournisseur : Griffon). Comme ça, même si je me déplace, j'ai juste à brancher mon serveur à internet et pas besoin de toucher à la boxe sur laquelle je suis branché. En plus de ça, le VPN permet un peu plus de sécurité.

Ainsi, étant complètement débutant et n'ayant que très peu de notion en réseau, j'ai grandement besoin d'aide... Comment mettre ça en place ? Avec OpenVPN non ? Si oui, comment ?
Comme vous le comprendrez je suis un peu perdu et ne trouve pas de solution depuis plusieurs semaines.
Merci à vous
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Bonjour,

Ainsi, étant complètement débutant et n'ayant que très peu de notion en réseau, j'ai grandement besoin d'aide...

Pour mettre tout cela en place, c'est un peu de boulot quand même malheureusement. :smile:
La courbe d'apprentissage va être raide mais pourquoi pas.
Mon conseil c'est de progresser doucement et faire bien attention à ne pas exposer un serveur ou des données non désiré directement à internet!
Et pour cela en effet le plus sûr c'est de mettre en place un VPN.

Voici en gros les étapes:
  • Mettre en place un serveur VPN sur le réseau local
    • Soit utiliser TrueNAS qui a un service de serveur VPN (avec openVPN)
    • Soit mettre en place un serveur VPN dédié sur le réseau local
    • Une autre option parfois: il se peut que la box internet offre cette possibilité
  • Si l'adresse IP publique n'est pas fixe, alors la configuration d'un dynDNS est quand même plus pratique
    • Là aussi plusieurs solutions et fournisseurs existent, payant et gratuit, le choix est vaste
    • TrueNAS propose aussi un service de dynDNS
    • Note: Pour pouvoir accéder aux serveurs en utilisant un nom de domaine genre cloud.nomdedomaine.com pour NextCloud ou media.nomdedomaine.com pour Plex, il faut configurer un serveur DNS. Cela peut relativement facilement se faire au niveau du réseau local par exemple sans nécessiter d'avoir acheté un nom de domaine public.
  • Configurer le client pour qu'il utilise la connexion VPN lorsqu'il n'est pas connecté sur le réseau local
    • Le serveur VPN peut alors parfois faciliter cette configuration en proposant de la générer automatiquement
Note: la connexion VPN permettra au client qui se connecte d'avoir l'impression d'être connecté directement sur le réseau local, donc pas besoin d'avoir un nom de domaine public nécessairement (le nom de domaine public n'est pas la même chose que le dynDNS. Le dynDNS permet juste d'associer l'adresse IP publique du serveur VPN à un nom de domaine qui lui ne changera pas. Le service de dynDNS va proposer un nom de domaine, dans ce cas on peut l'utiliser directement ou, si on a un nom de domaine, on peut le rediriger vers son nom de domaine.).

Pour commencer doucement, je débuterai avec la mise en place dynDNS (en fait, dynDNS en premier car il sera ensuite utile pour la configuration du serveur VPN) puis du serveur VPN et tester la connexion avec le smartphone tout simplement.


Sinon quelque remarques sur la configuration:
  • En effet, exposer NextCloud ou Plex directement sur internet, c'est fortement déconseillé! Ou alors faut vraiment savoir ce qu'on fait et être sûr de la sécurité en place...
  • 3x 6To en RAIDz: pour info, faire un volume en RAIDz avec des disques >2To est fortement déconseillé...
  • Un détail mais 16Go de RAM: c'est bien mais je suis surpris car les spec de la carte mère indiquent 8Go max (ce qui semble peu et surprenant)?
Bon courage...
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Merci pour ta réponse super détaillé !

Bonjour,



Pour mettre tout cela en place, c'est un peu de boulot quand même malheureusement. :smile:
La courbe d'apprentissage va être raide mais pourquoi pas.
Mon conseil c'est de progresser doucement et faire bien attention à ne pas exposer un serveur ou des données non désiré directement à internet!
Et pour cela en effet le plus sûr c'est de mettre en place un VPN.

Voici en gros les étapes:
  • Mettre en place un serveur VPN sur le réseau local
    • Soit utiliser TrueNAS qui a un service de serveur VPN (avec openVPN)
    • Soit mettre en place un serveur VPN dédié sur le réseau local
    • Une autre option parfois: il se peut que la box internet offre cette possibilité

Alors si j’ai bien compris, c’est la première étape ça ? Ducoup je pensais partir sur openVPN directement sur TrueNAS pour simplifier les choses. Mais je n’arrive pas à comprendre le fonctionnement des VPN sur un serveur. En gros, imaginons j’active le service OpenVPN sur TrueNAS et j’imagine que je dois le relier avec mon hébergeur VPN (Grifon dans mon cas). En maintenant mon serveur TrueNAS sera plus sûr mon ip public de ma boxe mais sur une ip public du VPN, c’est bien ça ? Mais du coup il faut faire quelques choses depuis le fournisseur VPN ? Du genre redirection de ports ou je sais pas quoi (je vois les VPN comme une boxe enfaite ).
Si il faut juste faire ça, j’ai juste à relier sur mon compte Cloudflare, ma zone DNS vers cette nouvelle IP public fournie par le VPN non ? Et tout ça va dans un reverse proxy qui redirige vers les instances concernés (nextcloud, plex, …), non ? D’ailleurs existe-t-il des reverses proxy comme Nginx Proxy Manager (docker) sur TrueNAS ?

Pour la deuxième partie concernant l’ip fixe. Mon fournisseur VPN donne une ip fixe à priori donc je peux passer cette étape ?

Je n’ai pas du tout compris la dernière étape avec le VPN Client, qu’est ce que c’est concrètement ? Ça va être utile dans mon cas ?

Enfin, pour tes remarques :
  • C’est vraiment si risqué que ça ? C’est suffisamment connu Nextcloud et Plex pour que ce soit bien sécurisé non ? En plus avec le VPN…
  • Ah je ne savais pas que c’était déconseillé. J’ai acheté 3 disques WD Gold 6TO pour 100€ Pièce encore emballé, c’était une super affaire j’ai pas réfléchis. En quoi c’est déconseillé ? Par ce que si un meurt, ça fait cher la réparation ?
  • En effet ma carte indique 8go max, mais ils ont testés 16go voir même 32go. J’ai une seule barrette de 16go qui est approuvée sur le site officiel asrock pour cette carte mère. En tout cas, les 16go sont détectés dans le buis et dans TrueNAS. On verra plus tard si 32go sont utiles pour mon utilisation

Merci beaucoup, ça fait beaucoup de questions. Je remercie par avance les personnes prenant le temps de m’aider, j’espère un jour pouvoir vous rendre la pareille
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Ok alors si tu as une IP fixe, tu dois pouvoir te passer de l'étape dynDNS. Dans la configuration du client faudra rentrer ton IP fixe à la place du nom de domaine.


Pour un VPN, il faut un serveur et un client car un VPN va créer un tunnel entre justement le client et le serveur et cela indépendamment d'où se trouve le client. Il peut y avoir plusieurs clients pour un même serveur.
Donc en soit, tu n'as pas à le "relier" à ton fournisseur d'accès (Petite précision de vocabulaire: ce n'est pas un hébergeur mais un fournisseur d'accès, on est d'accord? Hébergeur c'est pour l'hébergement d'un site web, fournisseur d'accès c'est celui qui te donne accès à internet).
Par contre, il faut que selon le port choisi pour ton serveur VPN, ce dernier ne soit pas bloqué par ton FAI et il faut même faire en sorte que ce port soit envoyé à ton serveur VPN.

Il n'y a pas de distinction entre IP publique de la box internet ou IP publique du serveur VPN (si celui-ci se trouve sur ton réseau local) car le seul point d'entrée (depuis internet) c'est bien l'IP publique de ta box.

J'ai fait un petit schéma pour illustrer:
1628153961190.png


Le serveur VPN créé un tunnel entre le réseau local et l'ordinateur distant (qui est le client) en passant par un port défini (il faut donc que ce port soit redirigé depuis la box (du serveur VPN) vers le serveur VPN).

Après si tu veux intégrer tout ça avec un serveur web qui est hébergé à l'extérieur (c'est à dire chez un hébergeur sur internet), ça risque d'être plus compliqué, là je sais pas...
Par contre, depuis ton poste client distant, avec la connexion VPN, tu as accès au réseau local où se trouve le serveur TrueNAS (et donc à Plex et NextCloud).

En pratique, le serveur VPN peut très bien tourner sur le serveur TrueNAS, sur le schéma je les ai juste séparer pour que ce soit plus clair.

A quoi te sert ton compte cloudflare? C'est pour un nom de domaine?
La partie reverse proxy, je ne maitrise pas bien car je n'utilise pas...


Concernant mes remarques:
  • Ce n'est pas qu'une question de la sécurité de l'application (donc Nextcloud ou Plex) mais également de l'OS qui tourne derrière. Il faut être sûr que toute la chaîne soit maintenue à jour et sans faille. Après on peut mettre en place quelques protections (dont le reverse proxy je crois).
  • Oui c'est très risqué car lors de la reconstruction d'un volume, le risque de défaillance n'est plus négligeable (puisque en simplifiant un peu, les disques on un taux d'erreur à 10^12 octets (ou 10^14 par là) et qu'avec les capacité des disques aujourd'hui on y arrive.
  • Super pour la RAM! :smile:
    16Go ça me semble raisonnable surtout sur tu as des jails/plugin qui tournent (comme NextCloud et Plex). 8Go j'aurai trouvé ça un peu limite dans ce cas par exemple.
    Détail encore mais il est recommandé d'utiliser de la RAM ECC (que la carte mère ne prend pas en charge semble-t-il). Bon il faut juste être conscient des risques encourus quoi... C'est selon les données et selon la sensibilité de chacun.
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Ok alors si tu as une IP fixe, tu dois pouvoir te passer de l'étape dynDNS. Dans la configuration du client faudra rentrer ton IP fixe à la place du nom de domaine.


Pour un VPN, il faut un serveur et un client car un VPN va créer un tunnel entre justement le client et le serveur et cela indépendamment d'où se trouve le client. Il peut y avoir plusieurs clients pour un même serveur.
Donc en soit, tu n'as pas à le "relier" à ton fournisseur d'accès (Petite précision de vocabulaire: ce n'est pas un hébergeur mais un fournisseur d'accès, on est d'accord? Hébergeur c'est pour l'hébergement d'un site web, fournisseur d'accès c'est celui qui te donne accès à internet).
Par contre, il faut que selon le port choisi pour ton serveur VPN, ce dernier ne soit pas bloqué par ton FAI et il faut même faire en sorte que ce port soit envoyé à ton serveur VPN.

Il n'y a pas de distinction entre IP publique de la box internet ou IP publique du serveur VPN (si celui-ci se trouve sur ton réseau local) car le seul point d'entrée (depuis internet) c'est bien l'IP publique de ta box.

J'ai fait un petit schéma pour illustrer:
View attachment 48636

Le serveur VPN créé un tunnel entre le réseau local et l'ordinateur distant (qui est le client) en passant par un port défini (il faut donc que ce port soit redirigé depuis la box (du serveur VPN) vers le serveur VPN).

Après si tu veux intégrer tout ça avec un serveur web qui est hébergé à l'extérieur (c'est à dire chez un hébergeur sur internet), ça risque d'être plus compliqué, là je sais pas...
Par contre, depuis ton poste client distant, avec la connexion VPN, tu as accès au réseau local où se trouve le serveur TrueNAS (et donc à Plex et NextCloud).

En pratique, le serveur VPN peut très bien tourner sur le serveur TrueNAS, sur le schéma je les ai juste séparer pour que ce soit plus clair.

A quoi te sert ton compte cloudflare? C'est pour un nom de domaine?
La partie reverse proxy, je ne maitrise pas bien car je n'utilise pas...


Concernant mes remarques:
  • Ce n'est pas qu'une question de la sécurité de l'application (donc Nextcloud ou Plex) mais également de l'OS qui tourne derrière. Il faut être sûr que toute la chaîne soit maintenue à jour et sans faille. Après on peut mettre en place quelques protections (dont le reverse proxy je crois).
  • Oui c'est très risqué car lors de la reconstruction d'un volume, le risque de défaillance n'est plus négligeable (puisque en simplifiant un peu, les disques on un taux d'erreur à 10^12 octets (ou 10^14 par là) et qu'avec les capacité des disques aujourd'hui on y arrive.
  • Super pour la RAM! :smile:
    16Go ça me semble raisonnable surtout sur tu as des jails/plugin qui tournent (comme NextCloud et Plex). 8Go j'aurai trouvé ça un peu limite dans ce cas par exemple.
    Détail encore mais il est recommandé d'utiliser de la RAM ECC (que la carte mère ne prend pas en charge semble-t-il). Bon il faut juste être conscient des risques encourus quoi... C'est selon les données et selon la sensibilité de chacun.

Encore une fois merci pour ton aide ! Du coup, moi ce que je cherche a faire ce n'est pas d'accéder à mon réseau local du serveur a distance mais bien de donner une autre ip public à mon serveur via le VPN. Un peu comme si sur un ordinateur on avait NordVPN ou Cyberghost qui nous donne une nouvelle IP public. Moi c'est ce que je cherche à faire pour justement héberger mon nextcloud avec mon nom de domaine comme ceci :
cloud.mondomaine.com ou encore mon site web etc. Mon fournisseur VPN m'a donné un fichier de configuration OpenVPN mais je ne sais pas comment le mettre sur TrueNAS. J'ai aussi une clé pré-partagée, je ne sais pas à quoi ça sert (pour éviter les attaques par force brute, disent-ils)...

A chaque fois que je cherche sur internet je tombe sur ce que tu m'as expliqué, c'est à dire rentrer dans le réseau local. Hors moi je veux changer l'ip du serveur avec mon VPN pour y héberger des sites. Je trouve très peu d'info pour ça

Merci pour l'aide !
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Enfaite j'ai juste a configurer OpenVPN Client sur TrueNAS et voila ? Je vais essayer ca
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Bon, je n’arrive pas à faire les certificates et à configurer openvpn client…
 

Pitfrr

Wizard
Joined
Feb 10, 2014
Messages
1,523
Ok d'accord...
Donc en gros, tu as déjà un serveur VPN dispo et il faut juste que tu réussisses à accorder la configuration pour pouvoir te connecter à ce VPN.
J'ai aussi vu ton autre post mais là je ne sais pas trop quoi conseiller car je n'ai pas rencontré ce cas là. :-O
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
Bonjour,

Voici comment j'ai fait ici :
--Mon routeur est un pare-feu riche en fonctionalités : pfSense
--Même si mon IP est dynamique, aucun problème : j'ai configuré DDNS. Si mon IP change, pfSense fera la mise-à-jour DNS automatiquement. Ainsi, le nom reste toujours bon.
--Pour offrir plusieurs services sur le port 443, j'utilise HAProxy et c'est lui qui écoute le 443.
--Dans HAProxy, il y a des règles et si la ressource demandée porte un premier nom, la requête est envoyée vers une première IP
--Si la requête porte un deuxième nom, elle est routée vers une deuxième IP.
--En fait, j'ai plus de 20 services différents tous offerts sur le même port 443.
--Pour sécuriser le tout, pfSense renouvelle aussi tout seul mon certificat chez Lets Encrypt

Mon pfSense m'offre aussi un accès VPN à distance vers mes propres ressources mais ce n'est pas du tout requis pour le niveau de service recherché ici.
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Bonjour,

Voici comment j'ai fait ici :
--Mon routeur est un pare-feu riche en fonctionalités : pfSense
--Même si mon IP est dynamique, aucun problème : j'ai configuré DDNS. Si mon IP change, pfSense fera la mise-à-jour DNS automatiquement. Ainsi, le nom reste toujours bon.
--Pour offrir plusieurs services sur le port 443, j'utilise HAProxy et c'est lui qui écoute le 443.
--Dans HAProxy, il y a des règles et si la ressource demandée porte un premier nom, la requête est envoyée vers une première IP
--Si la requête porte un deuxième nom, elle est routée vers une deuxième IP.
--En fait, j'ai plus de 20 services différents tous offerts sur le même port 443.
--Pour sécuriser le tout, pfSense renouvelle aussi tout seul mon certificat chez Lets Encrypt

Mon pfSense m'offre aussi un accès VPN à distance vers mes propres ressources mais ce n'est pas du tout requis pour le niveau de service recherché ici.
Salut ! Alors après une grosse journée de taff, tout est configuré ! Ce que j’ai fais, crée une jail avec OpenVPN qui se connecte à mon VPN. Une fois faites, j’ai configuré nginx (reverse proxy) sur cette même jail pour qu’elle fasse la redirection vers les jails approprié. Exemple : cloud.mon domaine.com renvoi vers l’IP 192.168.1.5 qui est mon Nextcloud. Et ainsi de suite pour toutes les jails. Ça fonctionne à merveille !
 

Heracles

Wizard
Joined
Feb 2, 2018
Messages
1,401
crée une jail avec OpenVPN qui se connecte à mon VPN

Précision : qui se connecte au VPN de ton fournisseur. Ainsi, ce fournisseur a maintenant plein accès vers chez toi. Si tu veux --TON-- VPN, il te faut installer OpenVPN en version serveur plutôt que client. Pour le rejoindre malgré une IP dynamique chez toi, il te faudrait toi aussi utiliser DDNS pour détecter les changements et mettre à jour ton nom DNS.

À toi de gérer comme tu l'entends et si ça te convient, tant mieux.
 

loupqhc

Dabbler
Joined
Jul 22, 2021
Messages
13
Précision : qui se connecte au VPN de ton fournisseur. Ainsi, ce fournisseur a maintenant plein accès vers chez toi. Si tu veux --TON-- VPN, il te faut installer OpenVPN en version serveur plutôt que client. Pour le rejoindre malgré une IP dynamique chez toi, il te faudrait toi aussi utiliser DDNS pour détecter les changements et mettre à jour ton nom DNS.

À toi de gérer comme tu l'entends et si ça te convient, tant mieux.
Oui exactement, qui se connecte au VPN de mon fournisseur. Je ne veux pas mon VPN justement pour avoir une autre IP public pour mon serveur. EN plus, ce VPN possède une ip fixe, ,gros avantage pour héberger des sites
 
Top