Как разрешить SSH только с WireGuard и одного IP
Это производственный сервер, и мне нужно очень осторожно добавлять правила. Я не уверен, какое правило является правильным.
В настоящее время мои правила UFW разрешают SSH-подключение с любого IP-адреса и с WireGuard, а также мой собственный 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
Мне нужно сохранить открытые порты JAVA и порты SSH для моего IP YYY.YYY.YYY.YYY, но нужно закрыть эти порты для других IP-адресов за пределами VPN. И, к сожалению, порт SMB должен быть открыт для любого IP, это необходимо для этого сервера.
Какие правила UFW мне нужно добавить (или, возможно, изменить конфигурацию Wareguard), чтобы разрешить прямое подключение только одному IP-адресу (YYY.YYY.YYY.YYY), а любые другие IP-адреса могут подключаться только через VPN и могут подключаться только к любым портам сервера с помощью WireGuard.