đ§ Nebula Defined Networking
Nebula est un outil de réseau superposé évolutif axé sur les performances, la simplicité et la sécurité. Il vous permet de connecter de maniÚre transparente des ordinateurs partout dans le monde. Nebula est portable et fonctionne sous Linux, OSX, Windows, iOS et Android. Nebula intÚgre un certain nombre de concepts existants tels que le chiffrement, les groupes de sécurité, les certificats, et le tunnel.
Connexion sur le site https://admin.defined.net (login + totp)
Choisir un CIDR pour votre réseau de nébuleuses gérées
Pour commencer avec Managed Neubla, vous devrez choisir une plage rĂ©seau. Lors de lâajout dâhĂŽtes au rĂ©seau, une adresse IP se verra attribuer une adresse IP dans cette plage. Il y a quelques exigences et facteurs importants Ă prendre en compte avant de faire votre choix, car la plage ne peut pas ĂȘtre modifiĂ©e une fois quâelle est choisie (des rĂ©seaux supplĂ©mentaires avec diffĂ©rentes gammes peuvent ĂȘtre créés, mais les appareils ne peuvent pas communiquer entre les rĂ©seaux).
ConsidĂ©rations â
La plage que vous choisissez doit faire partie de lâespace dâadresses privĂ©s RFC 1918 ou de lâespace dâadresses partagĂ©s RFC 6598. Cela signifie quâil doit exister dans lâune des plages suivantes:
- 192.168.0.0/16
- 172.16.0.0/12
- 10.0.0.0/8
- 100.64.0.0/10
Comme ci-dessus, lâutilisation de la notation CIDR est utilisĂ©e pour spĂ©cifier la plage pour votre rĂ©seau de nĂ©buleuses gĂ©rĂ©es.
CIDR: 10.139.100.0/24
GĂ©rer son propre phare (lighthouse)â
Le phare gĂ©rĂ© est le bon choix pour la plupart des rĂ©seaux. Vous voudrez peut-ĂȘtre gĂ©rer votre propre phare Ă la place (ou en plus) si vous avez besoin:
- ContrĂŽle total sur lâinfrastructure qui gĂšre la dĂ©couverte par les pairs
- Un phare Ă lâintĂ©rieur dâun rĂ©seau, dâune rĂ©gion ou dâun centre de donnĂ©es spĂ©cifique
- Pour conserver toute lâinfrastructure de coordination sur le matĂ©riel que vous exploitez
Vous pouvez auto-hĂ©berger un ou plusieurs phares Ă cĂŽtĂ© du phare gĂ©rĂ©. Voir Inscription dâun phare pour la configuration auto-hĂ©bergĂ©e Ă©tape par Ă©tape.
info: Un rĂ©seau peut utiliser le phare gĂ©rĂ©, les phares auto-hĂ©bergĂ©s, ou les deux en mĂȘme temps. Lâajout de votre propre phare ne supprime pas celui gĂ©rĂ©.
Installation DNClient Server
Sur les distributions Debian-, RPM- et Arch, installez dnclientdâun paquet. Le paquet met le binaire Ă /usr/bin/dnclient, enregistre un service systĂšme, et vous permet de prendre de nouvelles versions grĂące Ă vos mises Ă jour systĂšme normales. Sur dâautres distributions, utilisez le binaire autonome.
Installer Ă partir du dĂ©pĂŽt de paquets â
APT
Pour Debian, Ubuntu, Linux Mint, Pop! _OS, et autres distributions basées sur APT.
- Ajoutez la clé de signature de réseau défini. Le
installLa commande crĂ©e le rĂ©pertoire de keyring si votre distribution nâen a pas dĂ©jĂ .
1
2
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://dl.defined.net/gpg.asc -o /etc/apt/keyrings/defined-net.asc
- Ajouter le dépÎt:
1
2
eecho "deb [signed-by=/etc/apt/keyrings/defined-net.asc] https://dl.defined.net/stable/apt stable main" \
| sudo tee /etc/apt/sources.list.d/defined-net.list > /dev/null
- Installer
dnclientet activer le service pour quâil dĂ©marre sur le dĂ©marrage:
1
2
3
sudo apt-get update
sudo apt-get install dnclient
sudo systemctl enable --now dnclient
Avec le service en cours dâexĂ©cution, inscrivez lâhĂŽte, en remplaçant <ENROLL_CODE>avec le code dâinscription que vous recevez du panneau dâadministration aprĂšs avoir créé ou rĂ©inscrutĂ© lâhĂŽte.
1
sudo dnclient enroll -code <ENROLL_CODE>
Confirmez que le service est en cours dâexĂ©cution et lâhĂŽte a un certificat:
1
2
systemctl status dnclient
sudo dnclient info
Arch (AUR)
Pour Arch Linux, Manjaro, EndeavourOS et dâautres distributions basĂ©es sur Arch, Defined Networking maintient le dnclientpackage dans le RĂ©fĂ©rentiel dâutilisateurs Arch.
- Installez le package avec votre aide AUR, ou construisez-le manuellement avec
makepkg:
1
2
3
4
5
6
7
# with an AUR helper
yay -S dnclient
# or manually
git clone https://aur.archlinux.org/dnclient.git
cd dnclient
makepkg -si
- Activez le service pour quâil dĂ©marre sur le dĂ©marrage:
1
sudo systemctl enable --now dnclient
Avec le service en cours dâexĂ©cution, inscrivez lâhĂŽte, en remplaçant <ENROLL_CODE>avec le code dâinscription que vous recevez du panneau dâadministration aprĂšs avoir créé ou rĂ©inscrutĂ© lâhĂŽte.
1
sudo dnclient enroll -code <ENROLL_CODE>
Confirmez que le service est en cours dâexĂ©cution et lâhĂŽte a un certificat:
1
2
systemctl status dnclient
sudo dnclient info
Final
Votre ordinateur est en marche dnclientet sera en mesure de communiquer avec dâautres machines sur votre rĂ©seau de nĂ©buleuses gĂ©rĂ©es.
Note: Le paquet expĂ©die sa propre unitĂ© systĂ©mique, de sorte que la construction emballĂ©e nâa pas
install,uninstall,start, oustopsous-commandes. GĂ©rer le service avecsystemctlĂ la place. Pour connecter lâhĂŽte Ă plus dâun rĂ©seau, utilisez lednclient@.serviceune unitĂ© de modĂšle, par exemplesudo systemctl enable --now dnclient@production.
Configuration du service â
Le service packagĂ© prend ses paramĂštres Ă partir de variables dâenvironnement, quâil lit Ă partir dâun fichier dont lâemplacement dĂ©pend de la distribution:
| Distribution | Dossier dâenvironnement |
|---|---|
| Debian, Ubuntu et autres APT-based | /etc/default/dnclient |
| RHEL, Fedora et autres RPM-based | /etc/sysconfig/dnclient |
| Arch-basé | /etc/conf.d/dnclient |
Le paquet envoie ce fichier Ă chaque paramĂštre commentĂ©, de sorte que les valeurs dĂ©faillantes ci-dessous sâappliquent jusquâĂ ce que vous le modifiiez. Une instance nommĂ©e lit son propre fichier avec le nom de lâinstance ajoutĂ©, tel que /etc/default/dnclient.productionpour dnclient@production.service. Ce fichier est facultatif et le paquet ne le crĂ©e pas.
| Variable | Par défaut | Description |
|---|---|---|
DNCLIENT_STATE_DIR |
/var/lib/defined |
Annuaire tenant lâĂ©tat dâinscription. Une instance nommĂ©e stocke son Ă©tat dans un sous-rĂ©pertoire, tel que /var/lib/defined/production/. |
DNCLIENT_LOG |
Unset | Fichier sur lequel Ă©crire des journaux. Lorsquâils ne sont pas rĂ©glĂ©s, les journaux vont Ă stdout, oĂč journald les capture. |
DNCLIENT_SERVER |
https://api.defined.net |
Serveur API utilisĂ© pour lâinscription, la rotation des certificats et les mises Ă jour de configuration. |
DNCLIENT_NAME |
Unset | Nom de lâinstance. LâunitĂ© de modĂšle dĂ©finit cela par instance, alors activez dnclient@<name>.serviceplutĂŽt que de le mettre ici. |
Redémarrez le service pour appliquer un changement:
1
sudo systemctl restart dnclient
Seul le service lit ce fichier.
dnclientLes commandes que vous exĂ©cutez vous-mĂȘme utilisent les valeurs par dĂ©faut, sauf si vous dĂ©finissez la variable dans votre propre shell ou passez le drapeau correspondant (-config,-log,-server,-name).
Installer le binaire autonome â
Utilisez cette mĂ©thode sur les distributions, le dĂ©pĂŽt de paquets ne couvre pas, ou oĂč vous ne voulez pas un paquet systĂšme. Vous devrez rĂ©pĂ©ter ces Ă©tapes Ă la main pour chaque mise Ă niveau.
- Obtenir lâURL pour la derniĂšre version de la
dnclientbinaire pour votre architecture Ă partir de https://admin.defined.net/downloads. - Ă partir dâun rĂ©pertoire oĂč vous souhaitez tĂ©lĂ©charger
dnclient, courir ce qui suitcurlcommande, remplacement<DL_URL>avec le lien que vous avez obtenu à partir de la page de téléchargements.
1
curl -O <DL_URL>
- Faire
dnclientexécutable:
1
sudo chmod +x dnclient
- Installer
dnclientcomme un service. Cela utilisera lednclientbinaire dans son rĂ©pertoire actuel, alors dĂ©placez-le dâabord si vous le souhaitez ailleurs.
1
sudo ./dnclient install
- Début
dnclient. En tant que service, il sera démarré automatiquement sur les futurs redémarrages.
1
sudo ./dnclient start
- Inscrire lâhĂŽte, en remplaçant
<ENROLL_CODE>avec le code dâinscription que vous recevez du panneau dâadministration de la nĂ©buleuse gĂ©rĂ©e aprĂšs avoir créé ou rĂ©inscrit lâhĂŽte.
1
sudo ./dnclient enroll -code <ENROLL_CODE>
Votre ordinateur est en marche dnclientet sera en mesure de communiquer avec dâautres machines sur votre rĂ©seau de nĂ©buleuses gĂ©rĂ©es.
CrĂ©er des pare-feu Ă lâaide de rĂŽles et de balises
MĂȘme au sein dâun rĂ©seau privĂ© comme Managed Nebula, câest une bonne idĂ©e de restreindre les types de communication qui peuvent se produire entre diffĂ©rents types dâappareils. Par exemple, les machines de serveur Web peuvent avoir besoin de communiquer avec les machines de base de donnĂ©es sur certains ports, mais elles ne devraient pas pouvoir se lancer dans les ordinateurs portables utilisateurs. Dans la nĂ©buleuse gĂ©rĂ©e, ces rĂšgles dâaccĂšs sont configurĂ©es via des rĂšgles de pare-feu sur les rĂŽles et les balises. Ce guide expliquera quels sont les rĂŽles et comment ils sont utilisĂ©s pour gĂ©rer Ă la fois lâidentitĂ© et lâaccĂšs au sein dâun rĂ©seau de nĂ©buleuses gĂ©rĂ©es.
Dans la nĂ©buleuse gĂ©rĂ©e, un rĂŽle reprĂ©sente lâobjectif principal et lâidentitĂ© de groupe dâun hĂŽte. Par exemple, vous pouvez crĂ©er des rĂŽles tels que user device, webserver, database, etc. Chaque machine que vous crĂ©ez doit ĂȘtre assignĂ©e Ă un rĂŽle lorsquâelle est créée. Les rĂšgles de pare-feu sont configurĂ©es pour le trafic entrant au niveau du rĂŽle. Les rĂŽles nouvellement créés ne permettent que le trafic ICMP de sorte que pingLes demandes peuvent ĂȘtre utilisĂ©es pour le dĂ©pannage. Tout autre trafic entrant est refusĂ© par dĂ©faut, et les rĂšgles peuvent ĂȘtre configurĂ©es pour permettre dâautres types de trafic Ă partir de machines appartenant Ă dâautres rĂŽles spĂ©cifiques et/ou ayant des balises spĂ©cifiĂ©es.
ScĂ©nario â
- serveur NFS CWWK , ouvrir port 2049
- Tous les hosts ont accĂšs au NFS
CrĂ©er des rĂŽles â
Pour crĂ©er un rĂŽle, visitez la page RĂŽles de votre panneau dâadministration de rĂ©seau dĂ©fini. CrĂ©ons un nouveau webserver-internalrĂŽle Ă utiliser pour les serveurs Web dâun site interne. Commencez par cliquer sur le Addbouton en haut Ă droite de la page et en remplissant le nom du rĂŽle (obligatoire) et une description (facultatif). Nous reviendrons sur ce rĂŽle et ajouterons des rĂšgles de pare-feu plus tard, mais pour lâinstant, nous pouvons cliquer sur âAjouter un rĂŽleâ pour le crĂ©er.
Nous allons créer un autre rÎle pour user-nfsaussi, et nous pouvons voir les deux nouveaux rÎles dans la page de liste de rÎles:
Notez quâen raison de la façon dont lâidentitĂ© est gĂ©rĂ©e de maniĂšre sĂ©curisĂ©e, les noms de rĂŽle ne peuvent pas ĂȘtre modifiĂ©s aprĂšs leur crĂ©ation, mais les hĂŽtes peuvent ĂȘtre modifiĂ©s pour changer de rĂŽle. Les rĂšgles de pare-feu des rĂŽles peuvent ĂȘtre modifiĂ©es Ă tout moment, et les mises Ă jour seront automatiquement envoyĂ©es Ă toutes les machines concernĂ©es. Les rĂŽles peuvent ĂȘtre supprimĂ©s tant quâil nây a pas dâhĂŽtes, de phares ou de relais utilisant le rĂŽle.
Ajout de rĂšgles de pare-feu â
Par dĂ©faut, les rĂŽles nâont quâune seule rĂšgle de pare-feu, pour autoriser les requĂȘtes ping entre eux.
Ajout rĂšgle parefeu , ouverture port 2049
Cliquez sur le bouton âAjouter une rĂšgleâ pour appliquer la modification, mais notez que les modifications apportĂ©es aux rĂŽles ne sont pas enregistrĂ©es jusquâĂ ce que le bouton âEnregistrer le rĂŽleâ soit cliquĂ©, afin de minimiser le nombre de mises Ă jour envoyĂ©es aux hĂŽtes sur le rĂ©seau.
Appliquer des rĂŽles aux hĂŽtes â
Commençons par ajouter un hĂ©bergeur de serveur nfs. Visitez la page HĂŽtes, puis cliquez sur le bouton « Ajouter ». Choisissez un nom et cliquez sur le menu dĂ©roulant RĂŽle. Les hĂŽtes (ainsi que les phares et les relais) ne sont autorisĂ©s Ă avoir quâun seul rĂŽle.
Mise à jour ou création sur cwwk qui contient NFS
1
sudo dnclient enroll -code q_KalMjkPO2cCJMYHAvUSRbQr1pB3FRHK_GkVEyltkQ
Réseau Privé
Réseau nebula CIDR 10.139.100.0/24 créé via defined network web ui
Lighthouses (FACULTATIF)
Chaque réseau comprend déjà un phare géré, donc cette étape est optionnelle. Suivez ce guide si vous préférez gérer votre propre phare pour plus de contrÎle sur votre infrastructure réseau.
Dans un rĂ©seau de nĂ©buleuses gĂ©rĂ©es, les hĂŽtes se dĂ©couvrent via des phares. Pour crĂ©er un phare, vous aurez besoin dâun serveur lĂ©ger sur une adresse IPv4 publique persistante. De plus, vous voudrez utiliser une machine qui est toujours allumĂ©e plutĂŽt quâune plate-forme sans serveur, car le phare est un processus dâĂ©tat.
Pour commencer Ă inscrire un phare, visitez la page phares du panneau dâadministration et cliquez sur le bouton âajouterâ.
Le formulaire « Ajouter un phare » dans le panneau dâadministration. NĂ©cessite un nom, une adresse IP publique, un port et un rĂŽle sĂ©lectionnĂ©s dans une liste dĂ©roulante.
- Name: sxb
- Pubic IP: 164.132.198.38
- Role lighthouse
- Assigner les adresses IPV4 et IPV6 10.139.100.254, fdef:c0:c0:f38:3a0f:d5f9:79a8:254
- Port: 54254
- Role: ajouter role nommĂ© âlighthouseâ
Donnez un nom au phare et entrez lâadresse IPv4 publique de la machine et le port que vous avez ouvert pour autoriser les entrĂ©es UDP (par dĂ©faut 4242). Vous pouvez Ă©galement attribuer au phare un rĂŽle, qui contrĂŽle le trafic entrant quâil accepte des autres hĂŽtes - choisissez un rĂŽle existant ou crĂ©ez-en un nouveau directement Ă partir de la liste dĂ©roulante. Les rĂŽles nouvellement créés nâacceptent que pingdemandes dâautres hĂŽtes, ce qui est pratique pour vĂ©rifier la connectivitĂ©. Vous pourrez modifier les rĂšgles du pare-feu du rĂŽle plus tard si vous le souhaitez.
info: Vous devrez ouvrir le pare-feu de la machine pour le port UDP
4242(ou un autre port configurĂ©) afin que nâimporte quel hĂŽte puisse interroger le phare, sur les ports IPv4 et IPv6 pour permettre aux hĂŽtes sur tous les types de rĂ©seaux de communiquer.
Maintenant que vous avez créé votre phare, choisissez le systĂšme dâexploitation et la version de votre hĂŽte, puis suivez les instructions dans le panneau dâadministration pour installer DNClient, dĂ©marrez-le en tant que service de dĂ©marrage et inscrivez la machine dans le rĂ©seau de nĂ©buleuse gĂ©rĂ©e.
- OS Linux
- APT repository
Linux Debian
1
2
3
4
5
sudo curl -fsSL https://dl.defined.net/gpg.asc -o /etc/apt/keyrings/defined-net.asc
echo "deb [signed-by=/etc/apt/keyrings/defined-net.asc] https://dl.defined.net/stable/apt stable main" | sudo tee /etc/apt/sources.list.d/defined-net.list > /dev/null
sudo apt-get update
sudo apt-get install dnclient
sudo systemctl enable --now dnclient
Puis enroler
1
sudo dnclient enroll -code Z8RD2vhw_Qi6twnNAp_3Utguo773su57RKkwkfs2saU
Roles
ping
pingpour ping entre hosts
user-nfs (parefeu)
user-nfsva servir à paramétrer le parefeu pour ouverture du port 2049 (NFS V4) sur le serveur cwwk
Hosts
Host cwwk
Sur lâun des hosts (cwwk debian 13) est installĂ© un serveur NFS V4 pour partager le dossier /sharenfs /etc/exports
1
/sharenfs 10.139.100.0/24(rw,no_root_squash,no_subtree_check)
Le port 2049 (NFV4) est ouvert : 2049/tcp ALLOW IN 10.139.100.0/24
Je souhaite que tous les autres hosts puissent accĂšder au partager
Comment configurer le host qui détient le serveur NFS ainsi que les autres host
ParamĂ©trage sur âdefined network web uiâ host, role (parefeu) ,tag, etcâŠ
Créer le host cwwk
- Name: cwwk
- Role:
user-nfspour ouverture du port 2049 - IPV4/IPV6 statique â 10.139.100.1, fdef:c0:c0:f38:3a0f:d5f9:79a8:1
AprĂšs toute mofification du host, cliquer sur les
...à droite sur la ligne du host en question puis surEnroll. Copier la ligne de commandesudo ./dnclient enroll -code <ENROLL_CODE>et exécuter sur le host concerné
Autres Hosts
Création
Toutes les autres hosts sont créés de façon identique, adresses IPV4/IPV6 auto assignées
- Name: nom_host
- Role: ping
- Cliquer sur Save
- Select OS (Linux, Mobile , âŠ)
- APT Repository (Debian) ou AUR âarchlinux)
- Install dnclient
- Enroll host
Si lâopĂ©ration sâest terminĂ©e correctement, on revient sur la page hosts et le host derniĂšrement créé apparaĂźt dans la liste
Tester le partage NFS
Sur les hosts nouvellement créés, on peut tester le partage NFS
1
2
3
4
5
6
7
8
9
10
# Installer nfs-common
sudo apt install nfs-common -y
# Créer le point de montage
sudo mkdir -p /mnt/sharenfs
# Monter le partage
sudo mount -t nfs4 10.139.100.1:/sharenfs /mnt/sharenfs
# Vérifier
ls /mnt/sharenfs
# Démontage
sudo umount /mnt/sharenfs
Pour un montage permanent
Modifier le fstab
1
sudo nano /etc/fstab
Ajouter la ligne suivante
1
2
# Le montage NFS cwwk réseau privé nebula
10.139.100.1:/sharenfs /mnt/sharenfs nfs4 nofail,x-systemd.automount,x-systemd.device-timeout=10s 0 0
Recharger
1
2
sudo systemctl daemon-reload
sudo mount -a
Vérifier
1
ls /mnt/sharenfs









