summaryrefslogtreecommitdiffstats
path: root/roles/wireguard_gateway/README.md
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-09-10 18:09:52 +0200
committerAhmed Abdelhalim <[email protected]>2025-09-10 18:09:52 +0200
commit6ddc1505a11c74ffb0c8c65498f5eef5086e62d1 (patch)
treed71d82698bd7025e7745e718ffdb527a8045d56e /roles/wireguard_gateway/README.md
parente9e609e89ad879e10e58f2c4fcfa572f60d6dfad (diff)
Remove wireguard_gateway
This implementation doesn't work properly after testing. The iptable configuration didn't allow for changing the VPN state without running into networking issues. Either have to change the VPN by running the role, which is inconvenient or reimplement the role differently to allow for control over network/interfaces
Diffstat (limited to 'roles/wireguard_gateway/README.md')
-rw-r--r--roles/wireguard_gateway/README.md98
1 files changed, 0 insertions, 98 deletions
diff --git a/roles/wireguard_gateway/README.md b/roles/wireguard_gateway/README.md
deleted file mode 100644
index 06c3ceb7..00000000
--- a/roles/wireguard_gateway/README.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# Ansible Role: wireguard_gateway
-
-This role configures a Linux host as a WireGuard VPN gateway,
-routing all traffic from local network clients through the VPN connection.
-
-## Role Variables
-
-- `wireguard_gateway_enabled`: Boolean flag to enable/disable gateway functionality (default: `false`)
-
-## What This Role Does
-
-When `wireguard_gateway_enabled` is `true`, the role:
-
-- Sets `net.ipv4.ip_forward=1` and `net.ipv6.conf.all.forwarding=1` in `/etc/sysctl.conf`
-- Creates custom routing table (100) to route traffic through VPN
-- Routes IPv4 and IPv6 traffic from local subnet through VPN interface
-- Allows traffic forwarding and established connections
-
-When `wireguard_gateway_enabled` is `false`, the role:
-
-- Removes all routing rules and iptables configurations
-- Disables IP forwarding in sysctl configuration
-- Cleans up custom routing tables
-
-## Example Configuration
-
-```yaml
-# In host_vars/gateway.yml
-wireguard_gateway_enabled: true
-wireguard_autostart_connection: "protonvpn-us-1"
-
-# WireGuard connection configuration
-wireguard_connections:
- protonvpn-us-1: |
- [Interface]
- PrivateKey = your_private_key_here
- Address = 10.2.0.2/32
- DNS = 10.2.0.1
-
- [Peer]
- PublicKey = server_public_key
- AllowedIPs = 0.0.0.0/0, ::/0
- Endpoint = vpn.example.com:51820
-```
-
-## Client Configuration
-
-For client machines to route through the VPN gateway:
-
-1. **IPv4**: Set gateway to VPN gateway host's IP
-2. **IPv6**: Set IPv6 gateway to VPN gateway host's IPv6 address
-3. **Manual network config**: Disable auto-configuration to use custom gateway
-
-Example client network configuration:
-
-```yaml
-network_ipv4_address: "192.168.1.100"
-network_ipv4_gateway: "192.168.1.254" # VPN gateway host
-network_ipv6_address: "2001:db8::100/64"
-network_ipv6_gateway: "2001:db8::254" # VPN gateway host
-```
-
-## Technical Details
-
-### Routing Rules Created
-
-```bash
-# Policy routing rules (priority 200)
-ip rule add iif eth0 table 100 priority 200
-ip -6 rule add iif eth0 table 100 priority 200
-
-# Custom routing table (table 100)
-ip route add default dev wg-connection table 100
-ip -6 route add default dev wg-connection table 100
-```
-
-### iptables Rules Created
-
-```bash
-# IPv4 NAT masquerading
-iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wg-connection -j MASQUERADE
-
-# IPv4 FORWARD rules
-iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
-iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-
-# IPv6 equivalent rules
-ip6tables -t nat -A POSTROUTING -s 2001:db8::/64 -o wg-connection -j MASQUERADE
-ip6tables -A FORWARD -s 2001:db8::/64 -j ACCEPT
-ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-```
-
-## Troubleshooting
-
-- **Check VPN connection**: `sudo wg show` should show active connection
-- **Verify routing**: `ip rule show` and `ip route show table 100`
-- **Test connectivity**: `curl ip.me` should show VPN IP from client machines
-- **Check iptables**: `sudo iptables -t nat -L -n -v` should show masquerading rules