동일한 포트(TCP 443)에서 HTTPS와 OpenVPN 트래픽을 모두 수신하는 Linux 서버가 있고 두 서버 포트 중 하나를 변경할 수 없는 경우 OpenVPN 트래픽을 다른 서버로 리디렉션하려면 어떻게 해야 합니까?
내가 아는 한, 프로토콜 수준에서 HTTPS와 OpenSSL은 다르며 SPI는 차이점을 식별할 수 있습니다. 리눅스에서 이 작업을 수행하는 방법은 무엇입니까?
답변1
OpenVPN 매뉴얼 페이지( )를 읽으면 man openvpn
다음과 같은 작업을 수행하는 방법이 나와 있습니다.
매뉴얼 페이지에서 직접 인용:
--port-share host port [dir]
TCP 서버 모드에서 실행할 때 OpenVPN 포트는 다른 애플리케이션(예: HTTPS 서버)과 공유됩니다. OpenVPN이 비OpenVPN 프로토콜을 사용하여 포트 연결을 감지하면 호스트:포트에서 서버에 대한 연결을 프록시합니다.
웹 서버가 다른 포트(예를 들어)에서 수신하도록 localhost:40443
하고 해당 대상에 대한 인바운드 연결을 프록시하도록 OpenVPN을 구성합니다.
저는 수신 시 인바운드 트래픽을 분리하는 방법을 모릅니다. OpenVPN을 실행하는 서버에서 이 작업을 수행해야 합니다.
답변2
보세요SSLH, 이 목적을 위해 설계된 도구:
SSLH란 무엇인가요?
SSLH는 프로토콜 멀티플렉서입니다. HTTP, HTTPS, SSH, OpenVPN, Tinc, XMPP 또는 정규식을 사용하여 테스트할 수 있는 기타 프로토콜에 대해 동일한 포트에서 연결을 허용합니다. 이렇게 하면 해당 포트에서 HTTPS를 계속 제공하면서 포트 443에서 이러한 서버에 연결할 수 있습니다.