1 port-forwarding firewalld wireguard
我之前问过如何在运行wireguard服务的VPS上转发端口,以ufw和iptables作为管理。
我必须这样做:
(56000是我选择的随机端口)(10.66.66.2是wireguard的内部ip)
ufw route allow proto tcp to 10.66.66.2 port 56000
Run Code Online (Sandbox Code Playgroud)
然后我会这样做来实际使用 iptables 转发端口:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2
Run Code Online (Sandbox Code Playgroud)
我有办法实现这一firewalld目标吗?这样我就不必将转发分成两个地方?
这里是否使用伪装/是否需要?因为我不知道它有什么作用,也不知道它有什么用。
VPSwireguardwg0conf供参考:
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = ***
[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Run Code Online (Sandbox Code Playgroud)
小智 5
从您之前的 UFW 问题来看,听起来您使用 WireGuard 有两个目的?:1)将流量从 VPS 的 WireGuard 客户端转发到 Internet,2)将一些公共端口从 VPS 转发回 WireGuard 客户端。对于 1),您需要伪装(又名 SNAT);对于 2),您需要端口转发(又名 DNAT)。
使用firewalld进行设置的最简单方法是将您的VPS的公共以太网接口(eth0在您的情况下)绑定到firewalld的预定义external区域,并将您的VPS的WireGuard接口(wg0在您的情况下)绑定到firewalld的预定义internal区域。该external区域已预先配置为启用伪装;这两个区域也都预先配置为接受 SSH 和一些其他服务。
首先在区域上打开 VPS 的 WireGuard 监听端口(49503在您的情况下)external:
$ sudo firewall-cmd --zone=external --add-port=49503/udp
Run Code Online (Sandbox Code Playgroud)
并将区域56000上的端口 TCP 转发external到 上的同一端口10.66.66.2:
$ sudo firewall-cmd --zone=external --add-forward-port='port=56000:proto=tcp:toaddr=10.66.66.2'
Run Code Online (Sandbox Code Playgroud)
然后绑定eth0到external区域(这会将防火墙的external区域配置应用于所有eth0连接):
$ sudo firewall-cmd --zone=external --add-interface=eth0
Run Code Online (Sandbox Code Playgroud)
并绑定wg0到internal区域:
$ sudo firewall-cmd --zone=internal --add-interface=wg0
Run Code Online (Sandbox Code Playgroud)
检查您的活动区域:
$ sudo firewall-cmd --get-active-zones
external
interfaces: eth0
internal
interfaces: wg0
Run Code Online (Sandbox Code Playgroud)
并检查您的区域的配置external:
$ sudo firewall-cmd --info-zone=external
external (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh
ports: 49503/udp
protocols:
masquerade: yes
forward-ports: port=56000:proto=tcp:toaddr=10.66.66.2
source-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud)
如果一切正常,请保存当前的防火墙设置:
$ sudo firewall-cmd --runtime-to-permanent
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5011 次 |
| 最近记录: |