VPN 뒤의 SSH - VPN을 보호하는 방법?

VPN 뒤의 SSH - VPN을 보호하는 방법?

나는 SSH 무차별 대입 공격을 아주 잘 알고 있습니다. 가능한 모든 것을 설정했습니다. Fail2ban, 루트 로그인 없음, WAN에서만 공개 인증. 하지만 내 로그는 여전히 스팸으로 가득 차 있고, Fail2ban IP 수가 계속 증가하여 CPU, RAM 및 대역폭을 소모합니다. 이것이 여전히 큰 문제는 아니지만 최후의 수단을 사용하기로 결정했습니다. 즉, WAN에서 SSH를 끄고 LAN에서만 허용하는 것입니다. 이를 위해 LAN에 대한 액세스를 제공하는 데만 사용되는 OpenVPN을 구현하여 어디에서나 장치에 액세스할 수 있도록 했습니다.

물론 방화벽이 외부 패킷을 삭제하므로 더 이상 SSH 무차별 대입이 없으며 VPN에 대한 공격도 본 적이 없지만 VPN을 어떻게 보호할 수 있는지 궁금합니다. 그게 필요 할까? 어떻게 해야 할까요? TLS-crypt를 활성화했습니다. OpenVPN 매뉴얼에는 tls-auth 및 tls-crypt가 언급되어 있습니다.

DoS 공격과 TLS 스택에 대한 공격을 완화하기 위해 TLS 제어 채널 위에 추가 HMAC 인증 계층을 추가합니다. 즉, --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는 40억이 아니라 10^38)보다 훨씬 높기 때문에 SSH에 연결을 시도하지 않을 것입니다. 따라서 적절한 보호를 통해 로그에 스팸이 들어가는 것을 방지할 수 있습니다.

관련 정보