如何仅允许来自 WireGuard 和一个 IP 的 SSH

如何仅允许来自 WireGuard 和一个 IP 的 SSH

这是生产服务器,我需要非常小心地添加规则,我不确定什么是正确的规则。
目前我的 UFW 规则允许从任何 IP 和 WireGuard 进行 SSH 连接,我自己的 IP (YYY.YYY.YYY.YYY) 也允许我连接到任何端口。目前任何其他 IP 都可以通过 VPN 直接连接。

 # sudo ufw status numbered
 Status: active
 To                         Action      From
 --                         ------      ----
 [ 1] XXXXX/udp                  ALLOW IN    Anywhere
 [ 2] OpenSSH                    ALLOW IN    Anywhere
 [ 3] Anywhere                   ALLOW IN    YYY.YYY.YYY.YYY
 [ 4] Anywhere on eth0           ALLOW FWD   Anywhere on wg0
 [ 5] XXXXX/udp (v6)             ALLOW IN    Anywhere (v6)
 [ 6] OpenSSH (v6)               ALLOW IN    Anywhere (v6)
 [ 7] Anywhere (v6) on eth0      ALLOW FWD   Anywhere (v6) on wg0

这是我的服务器上的 WireGuard 配置

 #cat /etc/wireguard/wg0.conf
 [Interface]
 PrivateKey = .............................=
 Address = 10.8.0.1/24, fd..:....:....::1/64
 ListenPort = XXXXX
 SaveConfig = true
 PostUp = ufw route allow in on wg0 out on eth0
 PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
 PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
 PreDown = ufw route delete allow in on wg0 out on eth0
 PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
 PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

我需要禁止其他IP的直接连接,除我的IP之外的任何IP只能通过VPN连接。

例如,我打开了很多 JAVA 端口和一个 SMB 端口,这是我的应用程序需要的:

#sudo netstat -tulpn | grep LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      557/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      641/sshd: /usr/sbin
tcp6       0      0 :::37111                :::*                    LISTEN      1005/java
tcp6       0      0 :::36069                :::*                    LISTEN      630/java
tcp6       0      0 :::2181                 :::*                    LISTEN      1005/java
tcp6       0      0 :::9092                 :::*                    LISTEN      630/java

我需要为我的 IP YYY.YYY.YYY.YYY 保存 JAVA 开放端口和 SSH 端口,但需要关闭 VPN 之外的其他 IP 的这些端口。不幸的是,SMB 端口需要向任何 IP 开放,这需要向该服务器开放。

我需要添加哪些 UFW 规则(或者更改 Wareguard 配置)以便只允许一个 IP(YYY.YYY.YYY.YYY)直接连接,而任何其他 IP 只能从 VPN 连接,并且只能使用 WireGuard 连接到任何服务器端口。

相关内容