Création
This commit is contained in:
parent
bd8566435b
commit
87bb52e3ad
87
HowtoPiVPN.md
Normal file
87
HowtoPiVPN.md
Normal file
|
@ -0,0 +1,87 @@
|
|||
---
|
||||
title: Howto PiVPN
|
||||
categories: sysadmin network vpn
|
||||
...
|
||||
|
||||
[PiVPN](https://www.pivpn.io/) est un wrapper autour des VPN [OpenVPN](/HowtoOpenVPN) et [WireGuard](/HowtoWireGuard). Nous l'utilisons pour la gestion de WireGuard.
|
||||
Il a été conçu pour les Raspberry Pi mais fonctionne parfaitement sur une machine classique.
|
||||
|
||||
## Installation
|
||||
|
||||
Créer un utilisateur Unix @pivpn@ :
|
||||
|
||||
~~~
|
||||
# adduser pivpn
|
||||
~~~
|
||||
|
||||
Cloner le dépôt et exécuter le script d'install :
|
||||
|
||||
~~~
|
||||
# git clone https://github.com/pivpn/pivpn.git
|
||||
# bash pivpn/auto_install/install.sh
|
||||
~~~
|
||||
|
||||
Quand le script demande dans quel utilisateur il souhaite stocker les fichiers de configuration générés, choisir l'utilisateur pivpn.
|
||||
|
||||
Il est possible de modifier certaines valeurs par défaut dans `/etc/pivpn/wireguard/setupVars.conf`. Utile par exemple pour modifier les serveurs DNS ou le paramètre `AllowedIPs` par défaut pour les clients.
|
||||
|
||||
### Droits sudo
|
||||
|
||||
Facultatif : on peut configurer sudo pour le groupe `pivpn`, avec `visudo -f /etc/sudoers.d/pivpn` :
|
||||
|
||||
~~~
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn add
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn list
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn remove
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn clients
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn qrcode
|
||||
%pivpn ALL = (ALL:ALL) /usr/local/bin/pivpn backup
|
||||
~~~
|
||||
|
||||
Puis de rajouter les utilisateurs ayant le droit d'utiliser pivpn dans le groupe `pivpn` : `adduser <user> pivpn`.
|
||||
|
||||
Il faut enfin ajuster les droits pour les utilisateurs du groupe `pivpn` puissent accéder en lecture aux fichiers de configuration générés :
|
||||
|
||||
~~~
|
||||
# chmod g+x /home/pivpn /home/pivpn/configs
|
||||
~~~
|
||||
|
||||
## Utilisation
|
||||
|
||||
L'utilisation est très simple, et l'aide suffisamment renseignée :
|
||||
|
||||
~~~
|
||||
# pivpn
|
||||
::: Control all PiVPN specific functions!
|
||||
:::
|
||||
::: Usage: pivpn <command> [option]
|
||||
:::
|
||||
::: Commands:
|
||||
::: -a, add Create a client conf profile
|
||||
::: -c, clients List any connected clients to the server
|
||||
::: -d, debug Start a debugging session if having trouble
|
||||
::: -l, list List all clients
|
||||
::: -qr, qrcode Show the qrcode of a client for use with the mobile app
|
||||
::: -r, remove Remove a client
|
||||
::: -off, off Disable a client
|
||||
::: -on, on Enable a client
|
||||
::: -h, help Show this help dialog
|
||||
::: -u, uninstall Uninstall pivpn from your system!
|
||||
::: -up, update Updates PiVPN Scripts
|
||||
::: -bk, backup Backup VPN configs and user profiles
|
||||
~~~
|
||||
|
||||
### Création d'une configuration client
|
||||
|
||||
À la création d'une configuration pour un client, un nom est demandé. Il n'est utilisé que localement pour que l'utilisateur sache à quoi correspond la configuration, mais ce nom n'a aucune incidence sur la configuration elle-même.
|
||||
|
||||
Tous les fichiers nécessaires sont générés ou modifiés :
|
||||
|
||||
* `/etc/wireguard/configs/clients.txt` : liste les clients pour lesquels une configuration existe
|
||||
* `/etc/wireguard/wg0.conf` : configuration pour le serveur, une section "[Peer]" est créée avec le nouveau client
|
||||
* `/etc/wireguard/configs/<user>.conf` et /home/pivpn/configs/<user>.conf` : configuration générée et à transmettre au client
|
||||
* `/etc/wireguard/keys/<user>_priv` : clé privée du client
|
||||
* `/etc/wireguard/keys/<user>_psk` : clé pré-partagée entre le client et le serveur
|
||||
* `/etc/wireguard/keys/<user>_pub` : clé publique du client
|
||||
|
||||
Seul le fichier de configuration `/etc/wireguard/wg0.conf` est utile au bon fonctionnement de WireGuard. Le reste est utile à la gestion par PiVPN.
|
Loading…
Reference in a new issue