mawalu.wireguard_private_networking

使用 Ansible 和 WireGuard 的私有服务器网络

Ansible 角色

此角色允许您在多个服务器之间部署一个快速、安全且提供商无关的私有网络。这对于那些不提供私有网络的服务商或需要连接多个区域和服务商的服务器很有用。

如何操作

该角色在 Debian 或 Ubuntu 上安装 WireGuard,通过将所有服务器添加为对等节点来创建它们之间的网状网络,并配置 wg-quick 系统服务。

安装

可以通过 ansible galaxy 安装:

$ ansible-galaxy install mawalu.wireguard_private_networking

设置

安装此角色,为每个需要加入网络的主机分配一个 vpn_ip 变量并运行该角色。请确保在防火墙中允许 VPN 端口(默认是 5888)。以下是一个简单的配置示例:

可选地,您可以在每个主机上设置 public_addr。该地址将用于连接 WireGuard 的对等节点,而不是清单中的地址。如果您通过与 WireGuard 使用的网络不同的网络进行配置,这将非常有用,例如,Ansible 通过 LAN 连接到您的对等节点。

# 清单主机文件

wireguard:
  hosts:
    1.1.1.1:
      vpn_ip: 10.1.0.1/32
      public_addr: "example.com" # 可选
    2.2.2.2:
      vpn_ip: 10.1.0.2/32
# playbook

- name: 配置 WireGuard 网状网络
  hosts: wireguard
  remote_user: root
  roles:
    - mawalu.wireguard_private_networking
# playbook(带客户端配置)
- name: 配置 WireGuard 网状网络
  hosts: wireguard
  remote_user: root
  vars:
    client_vpn_ip: 10.1.0.100
    client_wireguard_path: "~/my-client-config.conf"
  roles:
    - mawalu.wireguard_private_networking

其他配置

有少量角色变量可以被重写。

wireguard_port: "5888" # 用于服务器间连接的端口
wireguard_path: "/etc/wireguard" # 所有 WireGuard 配置的位置

wireguard_network_name: "private" # 用于配置文件和 wg-quick 的名称

wireguard_mtu: 1500 # 可选的 MTU 设置,默认为未设置。也可以在每个主机上设置

debian_enable_backports: true # 是否在 Debian 主机上添加 Debian 后备库

# Raspberry Pi Zero 支持
# 需要内核头文件和手动编译 WireGuard,通过标志选择,安装 `community.general` 集合
# 注意:可能导致重启。
allow_build_from_source: true

wireguard_sources_path: "/var/cache" # 手动构建时克隆 WireGuard 源代码的位置

client_vpn_ip: "" # 如果设置,将在本地主机的指定路径生成额外的 WireGuard 配置文件
client_wireguard_path: "~/wg.conf" # 本地主机写入客户端配置的路径,如果设置了 client_vpn_ip

# 将添加到每台服务器的其他对等节点列表
wireguard_additional_peers:
  - comment: martin
    ip: 10.2.3.4
    key: your_wireguard_public_key
  - comment: other_network
    ip: 10.32.0.0/16
    key: their_wireguard_public_key
    keepalive: 20 
    endpoint: some.endpoint:2230 

wireguard_post_up: "iptables ..." # PostUp 钩子命令
wireguard_post_down: "iptables"   # PostDown 钩子命令

测试

该角色有一个小型测试设置,可以使用 molecule 创建。要运行测试,请按照 molecule 安装指南 的说明操作,确保您的机器上运行了 Docker 守护进程,并执行 molecule test

贡献

如果您发现问题或有改进的想法,请随时提出问题或合并请求。我特别欢迎添加对其他操作系统支持和更多测试的合并请求。

关于项目

Build your own multi server private network using wireguard and ansible

安装
ansible-galaxy install mawalu.wireguard_private_networking
许可证
mit
下载
12.7k
拥有者
Webdev, DevOps & Security. Btw I use Arch and Nix