Comment accĂ©der Ă vos machines derriĂšre votre Freebox alors que vous n'ĂȘtes pas chez vous. Ou comment accĂ©der Ă votre rĂ©seau local depuis internet.
Ce billet peut également répondre aux questions:
- Comment utiliser votre connexion internet de votre domicile pour naviguer sur internet alors que vous nâĂȘtes pas chez vous ?
- Comment prendre la main sur des machines de votre rĂ©seau (ou celui dâun tiers ayant votre confiance) Ă distance ?
Dans ce billet, nous allons regarder comment faire cela pour des personnes ayant une Freebox et une machine sous Linux.
Ce billet implique que votre Freebox voit votre rĂ©seau interne, et ce nâest certainement pas une solution acceptable pour toute personne considĂ©rant que son rĂ©seau internet doit ĂȘtre protĂ©gĂ© par un Firewall physique (une machine dĂ©diĂ©e).
Cette configuration doit ĂȘtre faite avant dâen avoir besoin, derriĂšre votre Freebox.
Configuration de la « Freebox »
La premiĂšre Ă©tape consiste Ă configurer et activer le service VPN de votre Freebox.
Depuis votre navigateur, ouvrez lâinterface dâadministration de votre Freebox: http://maFreebox.freebox.fr
- Lancer lâapplication « ParamĂštres de la Freebox » et passez en « Mode avancé » si ce nâest pas dĂ©jĂ le cas.
- Lancer lâapplication « VPN Serveur ».
- Initialement tous les services VPN sont désactivés.
- Dans « utilisateurs », cliquer sur ajouter un « utilisateur ».
- Créer un utilisateur avec un « Login » et un « mot de passe » puis « sauvegarder ».
- Sélection « OpenVPN routé » qui est probablement désactivé.
- Activer le service « OpenVPN routé » et « sauvegarder » la configuration pour lâutilisateur concernĂ©,
- Cela téléchargera un fichier nommé
config_openvpn_routed_USERNAME.ovpn
.
- Dans « Ătat », vĂ©rifier que le service soit actif.
Configuration de votre Linux
En premier lieu vous aurez besoin de plusieurs paquets, que vous pouvez installer comme suit :
sudo apt install openvpn bridge-utils network-manager-openvpn network-manager-openvpn-gnome
Il se peut que certains de ces paquets soit dĂ©jĂ prĂ©sent, lâinstallation les ignorera. Sur une machine « headless » (un serveur sans interface graphique) vous prendrez garde Ă ne pas installer le paquet « gnome ».
Ensuite vous devez démarrer le service :
sudo systemctl start openvpn
Puis lâactiver pour se lance au prochain redĂ©marrage de votre machine :
sudo systemctl enable openvpn
Vérifier son état est une bonne idée :
sudo systemctl status openvpn
Alors que vous nâavez pas encore configurĂ© le VPN, constater les interfaces rĂ©seaux disponibles sur votre machine :
ip --json link
Ou pour un affichage plus clair :
ip --json link |
jq -c '.[] | select( .flags | index( "UP" ) ) | { ifindex, ifname }'
{"ifindex":1,"ifname":"lo"}
{"ifindex":2,"ifname":"enp3s0"}
{"ifindex":4,"ifname":"docker0"}
Rappelons-nous que la configuration dâOpenVPN se trouve dans le fichier config_openvpn_routed_USERNAME.ovpn
tĂ©lĂ©chargĂ© depuis la Freebox Ă partir de lĂ deux options sâoffre Ă vous :
- DĂ©marrer OpenVNP depuis la ligne de commande : Câest plus contraignant, mais jâobtiens un rĂ©seau plus stable avec cette solution,
- DĂ©marrer OpenVNP depuis le bureau, câest un peu plus compliquĂ© Ă configurer, mais plus simple Ă lâusage.
Configuration du VPN sur Linux depuis la ligne de commande
Pour dĂ©marrer le VPN depuis la ligne de commande câest plutĂŽt simple mais, les droits administrateurs sont requis, car on ajoute une interface rĂ©seau au niveau du systĂšme.
sudo openvpn --config /chemin/fichier/config_openvpn_routed_USERNAME.ovpn
Par exemple :
sudo openvpn --config ~/Downloads/config_openvpn_routed_cclaude.ovpn
Vous devrez donner le mot de passe correspondant Ă votre compte local pour la commande sudo, ensuite le nom dâutilisateur dĂ©fini pour le rĂ©seau VPN ainsi que le mot de passe correspondant.
2022-11-28 13:05:25 DEPRECATED OPTION: --cipher set to 'AES-128-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-128-CBC' to --data-ciphers or change --cipher 'AES-128-CBC' to --data-ciphers-fallback 'AES-128-CBC' to silence this warning.
2022-11-28 13:05:25 OpenVPN 2.5.5 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Jul 14 2022
2022-11-28 13:05:25 library versions: OpenSSL 3.0.2 15 Mar 2022, LZO 2.10
Enter Auth Username: cclaude
đ Enter Auth Password: ******************************
2022-11-28 13:05:43 TCP/UDP: Preserving recently used remote address: [AF_INET]123.456.78.90:14814
2022-11-28 13:05:43 UDP link local: (not bound)
2022-11-28 13:05:43 UDP link remote: [AF_INET]123.456.78.90:14814
2022-11-28 13:05:43 [Freebox OpenVPN server deadf00ddeadf00d432bb2b3deadf00d] Peer Connection Initiated with [AF_INET]82.123.456.78:14814
2022-11-28 13:05:44 TUN/TAP device tun0 opened
2022-11-28 13:05:44 net_iface_mtu_set: mtu 1500 for tun0
2022-11-28 13:05:44 net_iface_up: set tun0 up
2022-11-28 13:05:44 net_addr_ptp_v4_add: 192.168.27.66 peer 12.34.56.78 dev tun0
2022-11-28 13:05:44 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
2022-11-28 13:05:44 Initialization Sequence Completed
ip --json link |
jq -c '.[] | select( .flags | index( "UP" ) ) | { ifindex, ifname }'
{"ifindex":1,"ifname":"lo"}
{"ifindex":2,"ifname":"enp3s0"}
{"ifindex":4,"ifname":"docker0"}
{"ifindex":10,"ifname":"tun0"}
De maniÚre générale pour récupérer les informations de la connexion VPN si elle est active, vous pouvez utiliser :
Concernant le périphérique réseau :
ip --json link | jq -c '.[] | select( (.flags | index( "POINTOPOINT")) and (.flags | index ("UP")) )'
Si câest la couche IP, vous pouvez utiliser :
ip --json address | jq -c '.[] | select( (.flags | index( "POINTOPOINT")) and (.flags | index ("UP")) )'
Configuration du VPN sur Linux depuis le bureau
Cette partie fera lâobjet dâun autre billet.
Considération autour de la sécurité
- Utilisez votre propre serveur VPN, pas celui de votre opérateur réseau.
- Nâactiver le serveur VPN quâĂ la demande
- Mettez vos machines derniĂšres un Firewall physique, qui sur lequel sera votre serveur VPN.
Liens
- Utiliser le VPN de la Freebox sous Ubuntu
- Script de reformatage du fichier de la configuarion
- Install OpenVPN on Linux Mint 20
኿