OpenVPN은 클라이언트 구성을 무시합니다.

OpenVPN은 클라이언트 구성을 무시합니다.

트래픽을 특정 사이트로 리디렉션하기 위해 클라이언트에 openvpn 인증서를 발급하는 설정이 있습니다. 각 클라이언트가 리디렉션되는 사이트를 제한하는 것이 중요합니다.

각 클라이언트에는 client-configs/config-dir/에 있는 서버에서 다음과 같이 라우팅되어야 하는 IP가 있습니다. 푸시 경로 123.123.123.123 255.255.255.255.

클라이언트에는 터미널에 설정할 키와 구성이 포함된 ovpn 파일이 제공됩니다. 문제는 새 경로가 서버 측 구성에 없더라도 클라이언트가 잠재적으로 ovpn 파일을 편집하고 VPN을 통해 더 많은 트래픽을 라우팅할 수 있다는 것입니다. 이렇게 하면 액세스해서는 안 되는 사이트에 액세스할 수 있게 됩니다.

이 동작을 제한하는 솔루션이 있나요? 아니면 사용할 수 있는 다른 도구가 있나요?

노트:

  • OpenVPN 서버에는 공용 IP가 하나만 연결되어 있으며 트래픽을 전달합니다.
  • 이는 BYOD 시나리오이므로 권한을 잠그는 것은 옵션이 아닙니다.
  • openvpn 서버의 아웃바운드 방화벽 제한도 옵션이 아닙니다. 각 클라이언트가 서로 다른 IP 세트로 라우팅되기 때문입니다.

답변1

당신이 올바른지. 클라이언트는 로컬 ovpn 파일을 편집하고 푸시된 경로를 무시하도록 지시한 다음 모든 트래픽을 게이트웨이로 라우팅하도록 구성할 수 있습니다. 테스트를 위해 이 작업을 몇 번 직접 수행해야 했습니다. OpenVPN에는 이를 제한할 방법이 없습니다.

두 가지 옵션이 있습니다:

  1. 편집할 수 없도록 클라이언트의 OVPN 파일에 대한 권한을 잠급니다.
  2. 특정 서브넷을 제외한 아웃바운드 트래픽을 차단하는 방화벽 규칙을 OpenVPN 서버에 구현합니다.

기업 환경에 있다면 사용자 컴퓨터에 대한 권한을 제어하는 ​​메커니즘이 이미 있을 것입니다. 첫 번째 옵션은 꽤 쉬울 수 있습니다.

파일에 대한 사용자 권한을 제어할 수 없는 경우 방화벽 규칙을 사용하는 것이 가장 좋습니다. 매스커레이딩을 전달하기 위한 규칙을 이미 설정해야 했습니다(예:https://askubuntu.com/a/578550/283173). 특정 서브넷만 허용하도록 추가 iptables 규칙을 삽입할 수 있습니다.

업데이트:수정된 메모에 따르면 유일한 옵션은 서버 측 방화벽이라는 것이 더욱 분명해졌습니다. 아웃바운드 필터에 대해 신중하게 생각해야 합니다. 결국 해야 할 일은 지능적으로 방화벽 규칙을 생성하는 자신만의 프로그램을 만드는 것입니다. 각 클라이언트가 특정 IP로 라우팅된다는 것을 알고 있으면 클라이언트가 연결할 때 방화벽에서 경로를 동적으로 열 수 있습니다. 클라이언트가 서버 구성의 지시문을 사용하여 연결할 때 OpenVPN 시스템에 연결하여 learn-address클라이언트 연결에 대한 세부 정보를 사용자 정의 프로그램으로 보낼 수 있습니다.

관련 정보