本⽂档实现Wireguard组件部署,该组件⽤于多数据中⼼时,实现⼀套PAM对多个内部⽹络不通 的数据中⼼进⾏统⼀纳管。
2.相关文件kmod-wireguard-1.0.20210606-1.el7_9.elrepo.x 86_64.rpm
wireguard-tools-1.0.20210914-1.el7.x86_64.rpm
yum-plugin-elrepo-7.5.3-1.el7.elrepo.noarch.rpm
3.基础条件a.Centos7.5及以上版本操作系统
b.内核版本要求 3.10.0-1160.42.2.el7.x86_64或更新版本(查看内核版本命令:uname -r)
c.服务端有固定IP,且多个数据中⼼IP不冲突
4.部署rpm -ivh yum-plugin-elrepo-7.5.3-1.el7.elrepo.noarch.rpm
rpm -ivh kmod-wireguard-1.0.20210606-1.el7_9.elrepo.x86_64.rpm
rpm -ivh wireguard-tools-1.0.20210914-1.el7.x86_64.rpm
# 注意
服务器需要重启
reboot
5.华为云机器开启防火墙 (udp-50001端口用于华为云主机与部署主机通信)添加防火墙入站端口规则:
firewall-cmd --permanent --add-port=50001/udp
firewall-cmd --reload
6.生成密钥对该动作可以在服务端或客⼾端任意服务器上执⾏
# 如果⽬录不存在请⼿动创建:mkdir /etc/wireguard cd /etc/wireguard
# 开始⽣成 密匙对(公匙+私匙)。 # ⽣成服务端密钥对 wg genkey | tee privatekey-server | wg pubkey > publickey-server
# 可⽣成多个客⼾端密钥对 wg genkey | tee privatekey-client | wg pubkey > publickey-client
华为云主机:10.149.1.114
privatekey-server:sE+xfHci0Rvd7/W/u19GMnKTILxRzm7MS7tynGOTaGQ= (私钥服务端)
publickey-client:Gc8abfO7yo6Sig5EeuIkn7sIsSz2QOdmWrrJ939bgGc= (公钥客户端)
代理机:172.19.36.149
publickey-server:ObSN6q8KINOI9qCEBfa14Ou70xk9++H67xlw5k+YeGE= (公钥服务端)
privatekey-client:qDmTtGJr0jBQIzGdtHo2Ah4gsN3xBC5Vx8gldAvbRXM= (私钥客户端)
华为云主机(server端:配置10.149.2.1IP-->配置私钥服务端、公钥客户端)
7.服务端配置(开启防火墙)a.Wireguard对应虚拟网卡配置
创建虚拟网卡配置文件:wg0.conf
vi /etc/wireguacd/wg0.conf
b.虚拟网卡配置文件,创建一个网卡配置文件(此配置等价于移动客户端的Interface配置)
vi /etc/sysconfig/network-scripts/ifcfg-wg0
允许本机的 NAT 转换,并允许系统进⾏ IPV4 转发
firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --reload
sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
c.启动和停止服务
wg-quick up wg0 #启动服务端
wg-quick down wg0 #停⽌服务端
wg show #查看节点列表
8.客户端配置(关闭防火墙)
a. Wireguard对应虚拟⽹卡配置 创建虚拟⽹卡配置⽂件:wg0.conf
代理机149: vi wg0.conf
b. 虚拟⽹卡配置⽂件 创建⼀个⽹卡配置⽂件(此配置等价于移动客⼾端的 Interface 配置)
vi /etc/sysconfig/network-scripts/ifcfg-wg0
允许本机的 NAT 转换,并允许系统进行 IPV4 转发
firewall-cmd --add-masquerade --zone=public --permanent
firewall-cmd --reload
sed -i '/net.ipv4.ip_forward/d' /etc/sysctl.conf
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
c.启动和停止服务
wg-quick up wg0 #启动服务端
wg-quick down wg0 #停⽌服务端
wg show #查看节点列表
9.网络验证
ping 10.149.2.1 跟10.149.1.84
10.注意事项⽹络验证失败可能存在以下问题:
a. 防⽕墙导致端⼝未开放
b. 云端策略未开放相应端⼝
c. 配置错误,⼦⽹掩码需与⽬标⽹络⼀致
d.配置错误,密钥信息需匹配,服务端配置服务端私钥和客⼾端公钥,客⼾端配置客⼾端私钥和 服务端公钥
e. NAT转换配置遗漏