githubixx.peervpn
rol-peervpn
Este rol de Ansible se usa en Kubernetes the not so hard way with Ansible (en Scaleway) - Parte 3 - PeerVPN. Se utiliza para configurar PeerVPN para Ubuntu 16.04/18.04 (pero debería funcionar básicamente con cualquier sistema operativo Linux que use systemd). Con PeerVPN puedes establecer fácilmente una VPN totalmente mallada entre centros de datos y todos los nodos que desees. Solo necesitas al menos un host con una interfaz pública accesible (el puerto por defecto es 7000
protocolo UDP
). Una configuración simple podría ser usar este host accesible públicamente para tu ajuste peervpn_conf_initpeers
. Encontrar los otros hosts en tu VPN se hará automáticamente con PeerVPN.
PeerVPN instala su propia interfaz TAP para su propósito. El nombre por defecto de esta interfaz TAP es tap0
. Para cambiar el nombre, especifica un valor diferente para la variable peervpn_conf_interface
.
Para generar una contraseña secreta fuerte para tu clave precompartida de PeerVPN puedes usar:
openssl rand -base64 382 | tr -d '\n' && echo
Dado que es una clave precompartida, esta clave DEBE ser utilizada en todos los hosts donde instales PeerVPN y uses el mismo nombre de red. De lo contrario, la conexión no funcionará. La clave precompartida por defecto es default
, la cual, por supuesto, deseas cambiar ;-)
Versiones
Etiquetaré cada lanzamiento y trataré de seguir versionado semántico. Si deseas usar el rol, te recomiendo que revises la última etiqueta. La rama principal es básicamente desarrollo, mientras que las etiquetas marcan lanzamientos estables. Generalmente, trato de mantener la rama principal en buen estado también. Una etiqueta 1.0.0+r044
significa que este es el lanzamiento 1.0.0
de este rol y usa PeerVPN r044
. Si el rol en sí cambia X.Y.Z
incrementará. Si la versión de PeerVPN cambia, rXXX
también incrementará y el nivel de versión del rol aumentará (por ejemplo, 1.0.0
-> 1.0.1
). Esto permite etiquetar correcciones de errores y nuevas versiones principales del rol mientras se sigue desarrollando para un lanzamiento específico de PeerVPN.
Requisitos
Permitir tráfico en el puerto 7000 protocolo UDP (por defecto) si tienes reglas de firewall instaladas. También NECESITAS agregar la variable peervpn_conf_initpeers
. ¡No hay un valor por defecto para esta variable! IPv6 está HABILITADO por defecto. Si no deseas usarlo, agrega una variable peervpn_conf_enableipv6: no
.
Variables del rol
Básicamente solo necesitas cambiar muy pocas variables (mira abajo). Pero echa un vistazo a templates/etc/peervpn/peervpn.conf.j2
para ejemplos y una descripción completa de las variables.
Variables SIN valores predeterminados:
peervpn_conf_initpeers
peervpn_conf_engine
peervpn_conf_ifconfig6
peervpn_conf_upcmd
peervpn_conf_chroot
Variables con valores predeterminados:
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"
DEBES especificar un valor para peervpn_conf_initpeers
para hacer uso de PeerVPN (ya sea por host en el directorio host_vars
de Ansible o por grupo de hosts en el directorio group_vars
). Por ejemplo, si especificas peervpn_conf_initpeers: "host.example.net 7000"
, PeerVPN intentará conectarse a host.example.net
en el puerto 7000
a través de UDP para establecer una conexión.
Deberías cambiar al menos las siguientes variables:
peervpn_conf_initpeers
: El nombre del host y puerto al que PeerVPN debe conectarse para formar parte de la VPN.
peervpn_conf_networkname
: El nombre de tu VPN.
peervpn_conf_psk
: Clave precompartida. Cómo generar una buena contraseña para una clave precompartida, consulta la introducción anterior.
peervpn_conf_ifconfig4
: La dirección IP del nodo y la subred en notación CIDR. Esta variable necesita ser especificada por host, por supuesto.
Ejemplo de Playbook
- hosts: webservers
roles:
- peervpn
Licencia
LICENCIA PÚBLICA GENERAL DE GNU Versión 3
Información del autor
ansible-galaxy install githubixx.peervpn