내 Asus 라우터가 MerlinWRT로 플래시되었습니다. 이 구성은 예전에는 작동했지만 이제 연결하면 다음과 같은 결과가 나타납니다.
$ sudo openvpn ./client1.ovpn
OpenVPN 2.3.2 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [eurephia] [MH] [IPv6] built on Apr 13 2015
UDPv4 link local: [undef]
UDPv4 link remote: [AF_INET]75.108.194.127:1194
TLS_ERROR: BIO read tls_read_plaintext error: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
어떻게 해결할 수 있나요?"SSL3_CHECK_CERT_AND_ALGORITHM: dh 키가 너무 작습니다."MerlinWRT를 사용하세요.
답변1
이 오류를 자세히 설명하는 스레드는 여기에서 찾을 수 있습니다.. 이에 대해 RMerlin(저자)이 직접 설명하는 것을 볼 수 있습니다.
RMerlin은 이 문제에 대한 해결책을 제공합니다.
그동안 제가 말했듯이 새 DH를 생성하고 이를 라우터의 DH 필드에 붙여넣어 교체하세요. 사용하는 OpenSSL 버전은 중요하지 않습니다. 이 작업을 수행하기 위해 최신 버전이 필요하지 않습니다.
그리고 키를 생성하는 코드..
openssl dhparam -out dh.pem 1024
cat dh.pem
RMerlin에 따르면 이 문제는 해결될 예정입니다.
378.55가 출시된 후 현재 ASUS GPL 코드에 문제가 많기 때문에 출시되기까지 최소 몇 주가 걸릴 것입니다.
일부 배경에서 이 버그는 MerlinWRT의 코드가 아니라클라이언트 OpenSSL 라이브러리,
보안 개선을 위해 이 업데이트는 OpenSSL 동작을 수정하여 768비트 미만의 DH 키 크기를 거부함으로써 가능한 다운그레이드 공격을 방지합니다.
흥미롭게도"TLS용 Diffie-Hellman 배포 가이드"2048비트 이상을 고려해 볼 수도 있습니다.
답변2
약간의 이야기입니다. 나는 이것이 Linux 사이트라는 것을 알고 있지만, Windows
내가 생성한 키가 이었음에도 불구하고 그것을 사용하는 동안 이 문제에 직면했습니다 2048bit
. 동일한지는 확실하지 않지만 openvpn-install-2.3.7-I601-x86_64
오류가 발생하는 대신 openvpn-install-2.3.7-I602-x86_64
동일합니다. 이전 버전이 유효합니다. 새 것을 제거하고 이전 것을 설치하고 다시 실행했습니다. 어쩌면 회귀로 인해 발생했을 수도 있나요?
오류 메시지는 OP가 말한 것과 정확히 같습니다. 귀하의 개인 시스템에서 이전 버전의 클라이언트를 사용해 보시는 것을 제안해도 될까요?
서버에서 펌웨어를 Asus RT-AC87u
실행 중입니다 .Asuswrt-Merlin
378.51