必须准备的:
混合云
项目 | 网段/IP | 属性 | 备注 |
---|---|---|---|
VPC A | 10.10.0.0/16 | 华为云 VPC A | |
VPC A 中的服务器 | 10.10.xxx.xxx | 绑定了弹性公网 IP 的服务器 | OpenVPN 服务端、Wireguard 服务端 |
VPC B | 192.168.0.0/16 | 华为云 VPC B | |
LDAP 服务器(AD) | 这台在哪里关联不大,只要 VPC A 中安装 OpenVPN 的服务器可以访问通即可 | 一台绑定了弹性公网 IP 的服务器 | 作用是提供 LDAP 认证服务,就是管理用户账号的;这里其实是一台 windows server 2019,安装了 AD 域; |
VPC C | 172.16.0.0/16 | 腾讯云 VPC |
systemctl stop firewalld
systemctl disable firewalld
firewall-cmd --state
## 如果关不上就杀掉:
pkill -f firewalld
## 开启转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
## 应用修改
sysctl -p
我们这里是云服务器,在 web 管理端的服务器的安全组:
测试
可以找一台能联网的 centos7 测试一下这个端口,如果没有 nc 工具可以yum install nc
安装下。:
nc -vuz 【公网IP】 51820
摘自 米开朗基杨[1] 大佬的博客 WireGuard 教程:WireGuard 的搭建使用与配置详解[2]
注意:此处关于非标准内核安装 wireguard 的有些难度,容易浪费时间,最好在网络畅通的情况下进行 Ping 的通百度再继续 不解决系统的问题!
## 标准内核
yum install epel-release https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
yum install yum-plugin-elrepo
yum install kmod-wireguard wireguard-tools
## 非标准内核,需要安装 DKMS 包
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install wireguard-dkms wireguard-tools
到 wireguard 目录生成服务器私钥和公钥 privatekey、publickey;
公钥私钥成对出现,如果丢了,可以重新用此命令生成
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
编写服务端配置文件vim /etc/wireguard/wg0.conf
写入如下内容:
[Interface]
PrivateKey = 【服务端私钥privatekey】
Address = 10.12.0.1/16
PreUp = iptables -t nat -A POSTROUTING -s 10.11.0.0/16 -o wg0 -j MASQUERADE
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
DNS = 114.114.114.114
MTU = 1420
## VPC B
[Peer]
PublicKey = 【中继器B私钥】
AllowedIPs = 10.12.0.2/32,192.168.0.0/16
## VPC C
[Peer]
PublicKey = 【中继器C私钥】
AllowedIPs = 10.12.0.3/32,172.16.0.0/16
详细解释(若有不详细和错误请指正):
## 运行
wg-quick up wg0
## 查看连接状态
wg
## 设置开机自启
systemctl enable wg-quick@wg0.service
## 重载 每次加完VPC中继器后运行下 实际上根据经验还是有点问题,新加入的VPC可能连不上,还是需要先down然后up服务端(会引起所有VPC的短暂失联)
systemctl reload wg-quick@wg0
## 停止
wg-quick down wg0
如果在/etc/wireguard/
目录下,运行就好了`` 停止服务是wg-quick down wg0
输入命令wg
即可看到服务运行情况
输入ip a
可以看到多了一个 wg0 虚拟网卡
说明:客户端指的是 VPC B 的一台服务器,其实是 wireguard 的中继服务器(子网服务器在 nat 后面,这台服务器并没有绑定弹性公网 IP)。安装方式和服务端一样
## 开启转发
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
## 应用修改
sysctl -p
## 非标准内核,需要安装 DKMS 包
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
yum install wireguard-dkms wireguard-tools
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
[Interface]
PrivateKey = 【客户端私钥】
Address = 10.12.0.2/16
DNS = 114.114.114.114
MTU = 1420
PreUp = iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o wg0 -j MASQUERADE
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = 【服务端公钥】
Endpoint = 【服务端IP:51820】
AllowedIPs = 10.12.0.0/16,10.10.0.0/24
PersistentKeepalive = 25
详细解释:
## 运行
wg-quick up wg0
## 查看连接状态
wg
## 设置开机自启
systemctl enable wg-quick@wg0.service
## 停止
wg-quick down wg0
yum install -y lz4-devel lzo-devel pam-devel openssl-devel systemd-devel sqlite-devel
yum -y install autoconf
yum install -y automake
yum install -y libtool libtool-ltdl
## 请将源码tar包下载到/etc目录下并解压编译安装
cd /etc
## 下载源码 版本选择最新的发行版即可 【稍微等几分钟 可以直接复制网址下载包】
wget https://github.com/OpenVPN/openvpn/archive/v2.5.1.tar.gz
## 修改名称
mv v2.5.1.tar.gz openvpn-2.5.1.tar.gz
## 解压
tar -zxf openvpn-2.5.1.tar.gz
## 重命名解压后的文件夹并进入文件夹
mv openvpn-2.5.1 openvpn
cd openvpn
## autoreconf命令
autoreconf -i -v -f
## 检测你的安装平台的目标特征
./configure --prefix=/usr/local/openvpn --enable-lzo --enable-lz4 --enable-plugins --enable-port-share --enable-iproute2 --enable-pf --enable-plugin-auth-pam --enable-pam-dlopen --enable-systemd
## 编译 安装
make && make install
## 创建软连接 如果上面解压后的openvpn文件夹不在/etc/目录下,请自行挪进去
ln -s /usr/local/openvpn/sbin/openvpn /usr/local/sbin/openvpn
## 修改配置文件 【客户端配置下面这几部有不同】
vim /usr/local/openvpn/lib/systemd/system/openvpn-server\@.service
## 下面这行请完整替换为
ExecStart=/usr/local/openvpn/sbin/openvpn --config server.conf
## 这一步有了 才能用systemctl管理服务
cp -a /usr/local/openvpn/lib/systemd/system/openvpn-server@.service /usr/lib/systemd/system/openvpn.service
## 每次修改这个service文件就要执行下这句
systemctl daemon-reload
## 设置开机自启动
systemctl enable openvpn.service
## 将证书配置文件拷贝到/etc/openvpn/server中
。。。。。
## 下面启动步骤可以在证书都准备ok的情况下运行
systemctl start openvpn.service
遇到的问题:怎么安装 openvpn-auth-ldap 后保持 openvpn 的最新版呢
## 安装openvpn-auth-ldap
这一步骤完成后,会安装2.4.10的openvpn依赖
yum install openvpn-auth-ldap -y
## 进入openvpn服务器认证配置文件夹
cd /etc/openvpn/auth/
然后我们可以重新将我们前面的软连接挂到/usr/sbin/openvpn 上,通常会遇到说文件已经存在,先删掉,然后再挂一遍;然后再看版本就可以了
[root@xxx openvpn]## ln -s /usr/local/openvpn/sbin/openvpn /usr/sbin/openvpn
ln: failed to create symbolic link ‘/usr/sbin/openvpn’: File exists
[root@xxx openvpn]## rm -rf /usr/sbin/openvpn
[root@xxx openvpn]## ln -s /usr/local/openvpn/sbin/openvpn /usr/sbin/openvpn
[root@xxx openvpn]## openvpn --version
OpenVPN 2.5.1 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Mar 9 2021
library versions: OpenSSL 1.0.2k-fips 26 Jan 2017, LZO 2.06
Originally developed by James Yonan
Copyright (C) 2002-2018 OpenVPN Inc <sales@openvpn.net>
Compile time defines: enable_async_push=no enable_comp_stub=no enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_iproute2=yes enable_libtool_lock=yes enable_lz4=yes enable_lzo=yes enable_management=yes enable_multihome=yes enable_pam_dlopen=yes enable_pedantic=no enable_pf=yes enable_pkcs11=no enable_plugin_auth_pam=yes enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=yes enable_werror=no enable_win32_dll=yesenable_x509_alt_username=no with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_sysroot=no
然后将ldap.conf复制到/etc/openvpn/auth中就好了
## 可以在/opt文件夹完成以上操作
cd /opt
## 下载easy-rsa源码 也可以直接打开https://github.com/OpenVPN/easy-rsa/ 到页面上下载包
wget https://github.com/OpenVPN/easy-rsa/archive/v3.0.8.tar.gz
tar -zxf v3.0.8.tar.gz
mv EasyRSA-3.0.8/ easyrsa
cd easyrsa/
## 根据/opt/easyrsa-3.0.8/easyrsa/vars.example文件生成全局配置文件vars
cp -a vars.example vars
vim vars
修改vars解开一下部分的注释并修改为:
## 国家
set_var EASYRSA_REQ_COUNTRY "CN"
## 省份
set_var EASYRSA_REQ_PROVINCE "SH"
## 城市
set_var EASYRSA_REQ_CITY "Shanghai"
## 组织
set_var EASYRSA_REQ_ORG "组织名称"
## 邮件
set_var EASYRSA_REQ_EMAIL "邮箱"
## 拥有者
set_var EASYRSA_REQ_OU "拥有者名称"
## 长度
set_var EASYRSA_KEY_SIZE 2048
## 算法
set_var EASYRSA_ALGO rsa
## CA证书过期时间,单位天
set_var EASYRSA_CA_EXPIRE 36500
## 签发证书的有效期是多少天,单位天
set_var EASYRSA_CERT_EXPIRE 36500
## 初始化 会在当前目录创建PKI目录,用于存储一些中间变量及最终生成的证书
cd /opt/easyrsa
./easyrsa init-pki
## 这里 输入三次,都输入了 testsre
需要输入PEM密码 PEM pass phrase,输入两次,此密码必须记住,不然以后不能为证书签名。
还需要输入common name 通用名,如:testsre,这个你自己随便设置个独一无二的。
./easyrsa build-ca
## 生成服务端证书 为服务端生成证书对并在本地签名。nopass参数生成一个无密码的证书;在此过程中会让你确认ca密码
./easyrsa build-server-full server nopass
## 创建Diffie-Hellman,确保key穿越不安全网络的命令,时间会有点长,耐心等待
./easyrsa gen-dh
## 生成客户端证书
为客户端生成证书对并在本地签名。nopass参数生成一个无密码的证书;在此过程中都会让你确认ca密码
#./easyrsa build-client-full client nopass ## 无密码,实际应用中不推荐,客户端有密码可提高安全性
#./easyrsa build-client-full admin ## 让你输入密码,后续VPN连接时会使用
## 为了提高安全性生成ta.key
openvpn --genkey secret ta.key
加强认证方式,防攻击。如果配置文件中启用此项(默认是启用的),就需要执行上述命令,并把ta.key放到/etc/openvpn/server目录。
配置文件中服务端第二个参数为0,同时客户端也要有此文件,且client.conf中此指令的第二个参数需要为1。【服务端有该配置,那么客户端也必须要有】
## 整理服务端证书
mkdir -p /etc/openvpn/server/
cp -a /opt/easyrsa/pki/ca.crt /etc/openvpn/server/
cp -a /opt/easyrsa/pki/private/server.key /etc/openvpn/server/
cp -a /opt/easyrsa/pki/issued/server.crt /etc/openvpn/server/
cp -a /opt/easyrsa/pki/dh.pem /etc/openvpn/server/
cp -a /opt/easyrsa/ta.key /etc/openvpn/server/
强调:需要在安全组开放 1194 端口,允许用户客户端通过 弹性公网 IP:1194 与服务端建立连接
<LDAP>
URL ldap://xxx:389
BindDN CN=Administrator,CN=Users,DC=【域名】,DC=com
Password 【密码】
Timeout 15
TLSEnable no
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "OU=XXX,DC=【域名】,DC=com"
SearchFilter "(sAMAccountName=%u)"
RequireGroup false
</Authorization>
服务端配置/etc/openvpn/server/server.conf
dev tun
proto udp
port 1194
local 【服务端本地IP 这里要填写下】
## 证书
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
tls-auth /etc/openvpn/server/ta.key 0
## 拓扑模式为subnet 除了ovpn服务器占用了10.11.0.1 其他10.11.0.0/16都供用户使用
## 而默认的net30会浪费ip作连接用
topology subnet
## 用户虚拟IP池10.11.0.0/16 此处支持256^2-4==65532个IP
server 10.11.0.0 255.255.0.0
## 推送给客户端的路由 到10.10.0.0/16网段的流量都走openvpn网卡; 服务端配置文件只配置这一条
push "route 10.10.0.0 255.255.0.0"
## 固定用户虚拟IP的路径 此处我们将初始化为大家生成UUAP账号同名文件夹
client-config-dir /etc/openvpn/ccd
keepalive 10 120
cipher AES-256-CBC
compress lz4-v2
push "compress lz4-v2"
## 最大客户端人数
max-clients 5000
persist-key
persist-tun
## 日志
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3
## ldap插件
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf sAMAccountName=%u"
## 客户端证书 无
verify-client-cert none
username-as-common-name
## 当服务器重新启动时 通知客户端以便其可以自动重新连接 仅在UDP协议时可用
explicit-exit-notify 1
因为考虑到客户端有些用户还有的 2.4 的,因此关于 OpenVPN 待弃用的参数警告就不管了;但是仍然会推荐新用户使用 2.5 的客户端,旧用户也可以覆盖安装,并清除其他配置文件
2021-02-24 10:45:51 Z02XXXX/58.40.70.86:52335 Data Channel: using negotiated cipher 'AES-256-GCM'
2021-02-24 10:45:51 Z02XXXX/58.40.70.86:52335 Outgoing Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2021-02-24 10:45:51 Z02XXXX/58.40.70.86:52335 Incoming Data Channel: Cipher 'AES-256-GCM' initialized with 256 bit key
2021-02-24 11:05:35 event_wait : Interrupted system call (code=4)
2021-02-24 11:05:37 Closing TUN/TAP interface
2021-02-24 11:05:37 /usr/sbin/ip addr del dev tun0 10.12.0.3/16
2021-02-24 11:05:37 SIGTERM[hard,] received, process exiting
2021-02-24 11:05:37 DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM). Future OpenVPN version will ignore --cipher for cipher negotiations. Add 'AES-256-CBC' to --data-ciphers or change --cipher 'AES-256-CBC' to --data-ciphers-fallback 'AES-256-CBC' to silence this warning.
2021-02-24 11:05:37 WARNING: POTENTIALLY DANGEROUS OPTION --verify-client-cert none|optional may accept clients which do not present a certificate
2021-02-24 11:05:37 Could not determine IPv4/IPv6 protocol. Using AF_INET
客户端的 OpenVPN 安装基本上和服务端一致,但是遇到 server 的地方需要改成 client:
## 客户端的service需要把路径改下
vim /usr/lib/systemd/system/openvpn.service
WorkingDirectory=/etc/openvpn/client
ExecStart=/usr/local/openvpn/sbin/openvpn --config client.conf
注意client下面客户端配置文件修改名字为client.conf
安装成功后,客户端不需要特别配置,只要将服务器上生成的证书和客户端配置文件拷贝到客户端配置目录中。在/etc/openvpn
目录下创建客户端文件夹client
,然后将客户端配置文件放进去。
客户端配置文件(通用)
client
dev tun
proto udp
remote 【服务端公网IP】 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
compress lz4-v2
verb 3
auth-user-pass
## 内联文件支持 为tls-auth参数内置到配置文件提供支持
key-direction 1
<ca>
-----BEGIN CERTIFICATE-----
HGDJjCCAg6gAwIBAgIJANykxpDuwJKZMA0GCSqGSIb3DQEBCwUAMBExDzANBgNV
BAMMBnNyZXZwbjAgFw0yMTAxMjIwODA1NDlaGA8yMTIwMTIyOTA4MDU0OVowETEP
MA0GA1UEAwwGc3JldnBuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
xekYy9xIm89tpzJc+xxxxxxxxxxxxxxxxxxxxxxxxxUERHIPiXGLRLladkl5jkLi/3Q+8An7
xRanKa3ColZXePTVq7s7091/NnTosrnbKCyNnh9lolTim4jtC4G6KHtP9ork3dHg
bRWgj8ETy7PuMbmWJVd5vzhHZxO9adqkVDRrSEDATvhcrOn2NU8EY3QeUIhrOMXr
39neAznKHvqIEElaWjH31inpJLw33YLDOI7we3oEzyine5zCrZth2YhgKdm+8k5H
bpL9VUfU/rOxKOfZ06iexxxxxxxxxxxxxxxxxx3NdEJM1x/FpUEWfGkFdTk4lCTPxXAc
sAld/BYinq15Hpp81vTC9xxxxxxxxxxxxxxxxxx3wfTAdBgNVHQ4EFgQUF/iBE6/GM3dNMb70
JS/jCXzNuWkwQQYDVxxxxxxxxxxxxxxxxxxxx3dNMb70JS/jCXzNuWmhFaQTMBEx
DzANBgNVBAMMBnNyxxxxxxxxxxxxxxxxxx3wJKZMAwGA1UdEwQFMAMBAf8wCwYDVR0P
BAQDAgEGMA0GCSqGxxxxxxxxxxxxxxxxxx3QCxVV+rn3MISiAYKQx7GQAL6I4qsdFS
qcBi99jAy4p7Uhk8IlEQF+xxxxxxxxxxxxxxxxxx3hvRLkOkrW8CHhrHRJxNVyOLc18D
zNBpBF2Yd44wINiv5FcX6xxxxxxxxxxxxxxxxxx3ECTeYeJ3up1cYhfb84LhwhW5us/TN
vUmWTjD4YLZczXc9ZsfGYxH3lEud93pRB0Jw8BcLW1AFlKTeqAhBo3px3ZdhxywG
KRNWUDCqOXWGft+DCKomLlgUqVmER4IOp/hD6tOVgYktcf8yjvFjoAkvMzE77/vo
Sq+tFQXOWpWsDTuGbC8/jNOu/BHdFUyUa6h+LnL3rLZ2zQ6KHYhJFJyv
-----END CERTIFICATE-----
</ca>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
1ad48bb3c09f26ce5351a7017672f502
aef648396e345345444ad816e26d18f
0271dff4ae5ecb7745a4f418e9b4671f
45edc40ec9b6666666666684c6043f4c6
06415fabb8c666666666666fc81d2cb3e
2cd71cc177c666666666666666f0b8899
cf310ebb1b19666666666666fc45162
17e34f7e5d97666666666666fd946d9
9be734894666666666666f135780fae21
dc350ccf3c807666666666f6ae3285917f
6941ce1f7a1d666666666666f307f0cc69c9e
933276f78f576681c82e97fc802c8b95
1e0b83957df504b328c37ef7e75afc6a
ecbb0fa9ec10f535906b95857dc43e12
e2a0ec2b1d89c68d9c81d2b604df9605
14bf4f35e5f8962469f41aac5aa988dc
-----END OpenVPN Static key V1-----
</tls-auth>
难点:
从用户角度,登录 openvpn 连接到混合云网络,然后访问另一个 VPC 的子网某一台机器,观察 wireguard 服务端客户端流量:
旧的,从 win10 客户端到一个 VPC wireguard 结点和子网的实验
目前影响用户访问混合云网络的原因就更为复杂了,有 OpenVPN 用户本身有没有权限、服务器本身有没有相关安全组规则、VPC 的 ACL 规则等
## 测试服务端的51820/udp端口是否畅通
nc -vuz 公网IP 51820
## 查服务器的出口IP/公网IP
curl icanhazip.com
## 查看 input 表
iptables -L INPUT --line-numbers
## 删除 INPUT 表第3条规则
iptables -D INPUT 3
## 查看 FORWARD 表
iptables -L FORWARD --line-numbers
## 删除 FORWARD 表第8条规则
iptables -D FORWARD 8
tcpdump -n -i eth0 icmp
tcpdump -i tun0
tcpdump -i wg0
#查询规则表找到10.12.0.3的规则
## 最后多个空格
iptables -t nat -nL --line-number | grep '10.12.0.3 '
[#] ip link add wg0 type wireguard
RTNETLINK answers: Operation not supported
Unable to access interface: Protocol not supported
[#] ip link delete dev wg0
Cannot find device "wg0"
你 wg-quick down wg0 然后再 up 下服务端,一分钟之内所有 VPC 就都恢复了;
这时候就好了。
[root@vpn-server ccd]## ping 10.252.0.3
PING 10.252.0.3 (10.252.0.3) 56(84) bytes of data.
From 10.252.0.1 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available
From 10.252.0.1 icmp_seq=2 Destination Host Unreachable
ping: sendmsg: Required key not available
以前的测试示例:
解决:
因为私有网段多了一层 NAT,所以需要 masquerade;客户端配置也加上 PostUp 和 PostDown 参数;
后面将 wireguard 服务端和客户端都应用上了 masquerade 命令
## 允许 tun0 网卡进行 FORWARD
iptables -I FORWARD -i tun0 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -L -n
## 如果openvpn服务端重启,要保留并恢复用户的大量临时iptables规则
iptables-save > /etc/iptables-rules #保存配置
vim /etc/iptables-rules #编辑保存的配置文件,不要的删掉
iptables-restore < /etc/iptables-rules #恢复配置文件
## 把来自10.11.0.1/16网段的请求 全部通过openvpn服务器的eth0网卡转发出去 也就是我们平时所说的IPtables的NAT规则
iptables -t nat -A POSTROUTING -s 10.11.0.0/16 -o eth0 -j MASQUERADE
## openvpn服务端要先配置这句规则 这样把openvpn客户端用户的流量转发给wireguard网卡,然后wg0网卡就知道转发给wg结点了!! 卡了我一周【7】
iptables -t nat -A POSTROUTING -s 10.11.0.0/16 -o wg0 -j MASQUERADE
## 然后再把这个固定的规则保存到iptables-rules里面
## 【要反复重启服务端测试下会变化的配置】
[1]
米开朗基杨: https://fuckcloudnative.io/about/
[2]
WireGuard 教程:WireGuard 的搭建使用与配置详解: https://fuckcloudnative.io/posts/wireguard-docs-practice/
[3]
OpenVPN内联文件——将客户端证书内置到配置文件: https://my.oschina.net/randolphcyg/blog/4930996
[4]
WireGuard 教程:WireGuard 的工作原理: https://fuckcloudnative.io/posts/wireguard-docs-theory/
[5]
Wireguard 全互联模式(full mesh)配置指南: https://fuckcloudnative.io/posts/wireguard-full-mesh/
[6]
个人办公用 wireguard 组网笔记: https://zhangguanzhang.github.io/2020/08/05/wireguard-for-personal/#udp%E8%A2%AB-qos-%E4%B8%8B%E9%85%8D%E5%90%88-udp2raw-%E4%BD%BF%E7%94%A8
[7]
使用OpenVPN连通管理多个阿里云VPC网络: https://www.bbsmax.com/A/E35pGYBgJv/
[8]
https://openvpn.net/community-resources/how-to/#expanding-the-scope-of-the-vpn-to-include-additional-machines-on-either-the-client-or-server-subnet: https://openvpn.net/community-resources/how-to/#expanding-the-scope-of-the-vpn-to-include-additional-machines-on-either-the-client-or-server-subnet
[9]
https://community.openvpn.net/openvpn/wiki/RoutedLans: https://community.openvpn.net/openvpn/wiki/RoutedLans
[10]
https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=96195: https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=96195
[11]
云网融合的多云网络: https://www.sdnlab.com/21293.html
[12]
如何解决混合云组网难题?: https://zhuanlan.zhihu.com/p/40198634
你可能还喜欢
点击下方图片即可阅读
记一次 Kubernetes 中严重的安全问题