summaryrefslogtreecommitdiff
path: root/roles/install_wireguard_vpn
diff options
context:
space:
mode:
Diffstat (limited to 'roles/install_wireguard_vpn')
-rw-r--r--roles/install_wireguard_vpn/tasks/main.yml24
-rw-r--r--roles/install_wireguard_vpn/templates/down.sh.j26
-rw-r--r--roles/install_wireguard_vpn/templates/up.sh.j29
-rw-r--r--roles/install_wireguard_vpn/templates/wg.conf.j27
4 files changed, 46 insertions, 0 deletions
diff --git a/roles/install_wireguard_vpn/tasks/main.yml b/roles/install_wireguard_vpn/tasks/main.yml
new file mode 100644
index 0000000..3ca9dcc
--- /dev/null
+++ b/roles/install_wireguard_vpn/tasks/main.yml
@@ -0,0 +1,24 @@
+---
+- name: create wireguard config for wgmyk
+ template:
+ src: wg.conf.j2
+ dest: /etc/wireguard/wgmyk.conf
+ mode: 0400
+
+- name: create wireguard up scripts for wgmyk
+ template:
+ src: up.sh.j2
+ dest: /etc/wireguard/upmyk.sh
+ mode: 0744
+
+- name: create wireguard down scripts for wgmyk
+ template:
+ src: down.sh.j2
+ dest: /etc/wireguard/downmyk.sh
+ mode: 0744
+
+- name: start and enable wireguard mesh
+ systemd:
+ name: wg-quick@wgmyk.service
+ enabled: yes
+ state: started
diff --git a/roles/install_wireguard_vpn/templates/down.sh.j2 b/roles/install_wireguard_vpn/templates/down.sh.j2
new file mode 100644
index 0000000..d33011f
--- /dev/null
+++ b/roles/install_wireguard_vpn/templates/down.sh.j2
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+ip -6 route del {{ wireguard_vpn_client_range }} table ffmyk dev wgmyk
+
+ip -6 rule del iif wgmyk
+ip -6 rule del from {{ wireguard_vpn_client_range }}
diff --git a/roles/install_wireguard_vpn/templates/up.sh.j2 b/roles/install_wireguard_vpn/templates/up.sh.j2
new file mode 100644
index 0000000..c57d16f
--- /dev/null
+++ b/roles/install_wireguard_vpn/templates/up.sh.j2
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+ip -6 rule add iif wgmyk table ffmyk priority 10
+ip -6 rule add from {{ wireguard_vpn_client_range }} table ffmyk priority 10
+
+ip -6 rule add from all iif wgmyk type unreachable priority 200
+
+ip -6 route add {{ wireguard_vpn_client_range }} table ffmyk dev wgmyk
+systemctl restart named.service
diff --git a/roles/install_wireguard_vpn/templates/wg.conf.j2 b/roles/install_wireguard_vpn/templates/wg.conf.j2
new file mode 100644
index 0000000..3e25549
--- /dev/null
+++ b/roles/install_wireguard_vpn/templates/wg.conf.j2
@@ -0,0 +1,7 @@
+[Interface]
+ListenPort = {{ wireguard_vpn_port }}
+PrivateKey = {{ wireguard_vpn_priv_key }}
+Address = {{ wireguard_vpn_address }}/128
+MTU = 1400
+PostUp = /etc/wireguard/upmyk.sh
+PreDown = /etc/wireguard/downmyk.sh