VPN 背后的 SSH - 如何保护 VPN?

VPN 背后的 SSH - 如何保护 VPN?

我非常了解 SSH 暴力攻击。我设置了我能做的一切:fail2ban、无 root 登录、仅在 WAN 上进行公共身份验证。然而,我的日志中仍然充斥着垃圾邮件,并且fail2ban 的 IP 数量不断增加,这会消耗我的 CPU、RAM 和带宽。虽然这仍然不是一个大问题,但我选择使用最后的电源:关闭 WAN 上的 SSH,只允许在 LAN 上使用。为此,我实施了 OpenVPN,它仅用于提供对 LAN 的访问,因此我们仍然可以在任何地方访问设备。

当然,由于防火墙正在丢弃外部数据包,我不再有 SSH 暴力破解,也没有发现对我的 VPN 的任何攻击,但我想知道,如何保护我的 VPN?有必要吗 ?以及如何做呢?我启用了 tls-crypt。 OpenVPN手册中提到了tls-auth和tls-crypt:

在 TLS 控制通道之上添加额外的 HMAC 身份验证层,以减轻 DoS 攻击和 TLS 堆栈上的攻击。简而言之,--tls-auth 在 OpenVPN 的 TCP/UDP 端口上启用一种“HMAC 防火墙”,其中带有不正确 HMAC 签名的 TLS 控制通道数据包可能会立即被丢弃而不会得到响应。

这够了吗?或者我应该使用其他东西?这是我的配置(仅使用我从自己的 CA 创建的证书):

port 3084
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
#push "dhcp-option DNS 8.8.8.8"
#push "dhcp-option DNS 8.8.4.4"
#push "redirect-gateway def1 bypass-dhcp"
#route-nopull
push "route 192.168.0.0 255.255.0.0"
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key
#crl-verify crl.pem
ca fullchain.crt
cert cert-server.pem
key server-key.pem
auth SHA256
cipher AES-256-GCM
ncp-ciphers AES-256-GCM
tls-server
tls-version-min 1.2
#tls-cipher TLS_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
client-config-dir /etc/openvpn/ccd
status /var/log/openvpn/status.log
log-append /var/log/openvpn/openvpn.log
verb 3

注意:我已经找到了解决方案。我已经阻止了 ipv4 上的端口,只允许 ipv6。由于我有一个域和一个 AAAA 块,我可以使用 DNS 进行连接,但由于 ipv6 远远超出了实际机器的扫描性能(ipv4 为 10^38,而不是 40 亿),因此绝对不会尝试连接到 SSH。因此,有了适当的保护,它将避免您在日志中收到垃圾邮件。

相关内容