githubixx.peervpn
role-peervpn
Ce rôle Ansible est utilisé dans Kubernetes the not so hard way with Ansible (chez Scaleway) - Partie 3 - PeerVPN. Il sert à configurer PeerVPN pour Ubuntu 16.04/18.04 (mais devrait fonctionnner avec tous les systèmes Linux utilisant systemd). Avec PeerVPN, vous pouvez facilement établir un VPN entièrement maillé entre les centres de données et tous les nœuds que vous souhaitez. Vous avez seulement besoin d'au moins un hôte avec une interface accessible publiquement (le port par défaut est 7000
, protocole UDP
). Une configuration simple pourrait être d'utiliser cet hôte pour votre paramètre peervpn_conf_initpeers
. La découverte des autres hôtes sur votre VPN se fait automatiquement par PeerVPN.
PeerVPN installe sa propre interface TAP à cet effet. Le nom par défaut de cette interface TAP est tap0
. Pour changer le nom, spécifiez une valeur différente pour la variable peervpn_conf_interface
.
Pour générer un mot de passe secret fort pour votre clé prépartagée PeerVPN, vous pouvez utiliser :
openssl rand -base64 382 | tr -d '\n' && echo
Étant donné qu'il s'agit d'une clé prépartagée, cette clé DOIT être utilisée sur tous les hôtes où vous installez PeerVPN et où vous utilisez le même nom de réseau. Sinon, la connexion ne fonctionnera pas. La clé prépartagée par défaut est default
, que vous voudrez bien sûr changer ;-)
Versions
Je tague chaque version et essaie de respecter la version sémantique. Si vous souhaitez utiliser le rôle, je recommande de consulter le dernier tag. La branche master est essentiellement en développement tandis que les tags marquent des versions stables. Mais en général, j'essaie aussi de garder la branche master en bon état. Un tag 1.0.0+r044
signifie que c'est la version 1.0.0
de ce rôle et qu'il utilise PeerVPN r044
. Si le rôle change, X.Y.Z
augmentera. Si la version PeerVPN change, rXXX
augmentera également et le niveau de correctif du rôle augmentera (par exemple, 1.0.0
-> 1.0.1
). Cela permet de taguer les corrections de bugs et les nouvelles versions majeures du rôle tout en continuant le développement pour une version spécifique de PeerVPN.
Exigences
Autorisez le trafic sur le port 7000, protocole UDP (par défaut) si vous avez des règles de pare-feu installées. Vous devez également AJOUTER la variable peervpn_conf_initpeers
. Il n'y a pas de valeur par défaut pour cette variable ! IPv6 est ACTIVÉ par défaut. Si vous ne souhaitez pas l'utiliser, ajoutez la variable peervpn_conf_enableipv6: no
.
Variables du rôle
En gros, vous devez seulement changer très peu de variables (voir ci-dessous). Mais regardez templates/etc/peervpn/peervpn.conf.j2
pour des exemples et une description complète des variables.
Variables SANS valeurs par défaut :
peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot
Variables avec valeurs par défaut :
peervpn_version: "peervpn-0-044"
peervpn_install_directory: "/opt/{{peervpn_version}}"
peervpn_dest: "/usr/local/sbin"
peervpn_conf_networkname: "peervpn"
peervpn_conf_psk: "default"
peervpn_conf_enabletunneling: "yes"
peervpn_conf_interface: "tap0"
peervpn_conf_local: "0.0.0.0"
peervpn_conf_port: 7000
peervpn_conf_ifconfig4: "10.0.0.1/24"
peervpn_conf_sockmark: 0
peervpn_conf_enableipv4: "yes"
peervpn_conf_enablenat64clat: "no"
peervpn_conf_enablerelay: "no"
peervpn_conf_enableprivdrop: "yes"
peervpn_conf_user: "nobody"
peervpn_conf_group: "nogroup"
Vous DEVEZ spécifier une valeur pour peervpn_conf_initpeers
pour utiliser PeerVPN (soit par hôte dans le répertoire host_vars
d'Ansible soit par groupe d'hôtes dans le répertoire group_vars
). Par exemple, si vous spécifiez peervpn_conf_initpeers: "host.example.net 7000"
, PeerVPN essaie de se connecter à host.example.net
sur le port 7000
via UDP pour établir une connexion.
Vous devriez au moins changer les variables suivantes :
peervpn_conf_initpeers
: Le nom d'hôte et le port auxquels PeerVPN doit se connecter pour faire partie du VPN.
peervpn_conf_networkname
: Le nom de votre VPN.
peervpn_conf_psk
: Clé prépartagée. Comment générer un bon mot de passe pour la clé prépartagée, voir l'introduction ci-dessus.
peervpn_conf_ifconfig4
: L'adresse IP du nœud et le sous-réseau en notation CIDR. Cette variable doit bien sûr être spécifiée par hôte.
Exemple de Playbook
- hosts: webservers
roles:
- peervpn
Licence
LICENCE PUBLIQUE GÉNÉRALE GNU Version 3
Informations sur l'auteur
ansible-galaxy install githubixx.peervpn