pfsense 配置Wireguard VPN (实现Site to Pop点出口分流)(主要介绍路由模式)

pfsense+wireguard 实现Site To Pop的流量转发(路由模式)

file

A、pfsense端操作部分

A1、pfsense创建wg隧道

file

A2、为wg隧道创建pfsense接口,并分配接口ip 192.168.25

file
file

A3、为wg隧道创建vps的peer,并放行所需流量

file

A4、pfsense放行策略(WAN口放行udp 51821、wg隧道接口放行所有流量)

file

B、vps server操作部分(vps系统的debian的)

B1、vps安装wireguard,并初始化私钥和公钥

# 先给服务器配置内核转发+关闭linux内核源路径验证 (这是非常重要的)
    #echo "net.ipv4.conf.default.rp_filter = 0" >> /etc/sysctl.conf
    #echo "net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf
    echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
    sysctl -p

# 安装wireguard,并初始化私钥+公钥
    apt install wireguard -y
    wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

B2、创建一个对接用的wireguard配置文件

# 重点展示1、(路由)
    PostUp之后会添加一条路由:ip route add 192.168.60.0/24 via 192.168.252.1
# 重点展示2、(nat转换-将来自pfsense这端的 192.168.60.0/24的数据,源换成vps的出口ip)
    PostUp之后会添加两条转换:iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 重点提示3、(关闭隧道要删除对应的路由和nat规则)
    PostDown之后添加两条命令:iptables -t nat -D POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

B3、核对配置文件并启动验证

# 如下是编写的配置文件
root@ttk-vps:~# cat /etc/wireguard/cq_to_ttk01.conf
[Interface]
ListenPort = 51821
PrivateKey = cDzs/Kf2WO7/cczEXygMD7TxH1V6yg1O9aCLxxxxxxx=
PostUp = /sbin/ip addr add dev %i 192.168.252.2/32 peer 192.168.252.1/32; ip route add 192.168.60.0/24 via 192.168.252.1 ; iptables -t nat -A POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -s 192.168.60.0/24 -o eth0 -j SNAT --to-source 193.53.126.222 ; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Table = off

[Peer]
PublicKey = YucmL5Emn8GdjoMcDTh93R4us5URqB4J9dZx0xxxxxxx
AllowedIPs = 0.0.0.0/0,::/0
Endpoint = cu.wsfnk.com:51821
PersistentKeepalive = 60

# 启动隧道,并设置为开机启动
    wg-quick up cq_to_ttk
    systemctl enable wg-quick@.service
    systemctl enable wg-quick@cq_to_ttk.service

# 验证路由和iptables nat规则是否添加成功
    root@ttk-vps:~# ip r
    default via 193.53.126.1 dev eth0 onlink 
    192.168.60.0/24 via 192.168.252.1 dev cq_to_ttk 
    192.168.252.1 dev cq_to_ttk proto kernel scope link src 192.168.252.2 
    193.53.126.0/23 dev eth0 proto kernel scope link src 193.53.126.222 

    root@ttk-vps:~# iptables -t nat -nL
    Chain PREROUTING (policy ACCEPT)
    target     prot opt source               destination         

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         

    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         

    Chain POSTROUTING (policy ACCEPT)
    target     prot opt source               destination         
    SNAT       all  --  192.168.60.0/24     0.0.0.0/0            to:193.53.126.222
    MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

C、验证隧道联通性,并为pfsense设置wg远程网关

联通性自己ping测下就好。如下给一个pfsense的peer状态图
file

C1、进入路由管理》添加网关,并填写网关监视ip

注意:请先将pfsense的默认网关改成WAN口(避免出问题)
file

C2、剩下的就是按需 添加静态路由,或者在 LAN口下添加指定网关的策略路由

注意:当隧道失效时,静态路由不会自动切换,此时可以使用网关组。

附D、采用NAT模式,需要特殊处理的地方

D1、vps不需要添加到192.168.60.0/24的路由

D2、vps上iptables的源转换配置如下(源是pfsense的wg隧道接口ip)

iptables -t nat -A POSTROUTING -s 192.168.252.1/30 -o eth0 -j SNAT --to-source 193.53.126.222; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

D3、pfsense需要添加出口的NAT规则,并将pfsense的出向NAT模式设置为自动+指定

file

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1344.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2024/3/24作者: 辣条①号

目标:网络规划设计师、系统工程师、ceph存储工程师、云计算工程师。 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录