클라이언트 쪽에서 각 IP 패킷에 일부 메타 데이터 (예 : ID 또는 이름)가 할당되고 다른 쪽에서 할당 된 메타 데이터에 따라 다르게 처리되도록 클라이언트-서버 OpenVPN 구성을 만들어야합니다. 와. 메타 데이터를 보내기 위해 두 가지 방법을 생각할 수 있습니다.
- 작지만 ToS 필드를 사용합니다.
- 페이로드에 추가하여 길이 / 체크섬 /을 변경하는 중 ...
각 패킷을 표시하는 더 좋은 방법이 있습니까? OpenVPN 자체가이 요구 사항에 대한 솔루션을 제공합니까?
서버 측 (즉, OpenVPN 서버 측)에서 기존 메커니즘을 활용하여 각 패킷의 종류의 MITM을 활용할 수있는 방법이 있습니까? 더 정확하게 말하자면, 각 메타 데이터 (각 IP 패킷과 함께 제공되는)를 읽고 일부 분류 통계 나 방화벽을 기록해야합니다.
OpenVPN이이를위한 깨끗한 솔루션을 제공합니까? 그렇지 않으면 OpenVPN 서버 측 코드를 만져서 직접 작성해야합니까?
+------+ + ----+ +--------+ +--------+ +-----+ +----------+
| apps |---| tun |---| socket | ========= | socket |---| tun | ---| Internet |
+------+ +-----+ +--------+ +--------+ +-----+ +----------+
^ ^
| |
here packets are marked by my custom OpenVPN client |
|
here I'd need to firewall packets based on the "metadata"
tun
인터페이스 사이에 앉아 패킷을 가로 챌 수있는 방법이 있습니까? 내말은. "메타 데이터"를 기준으로 일부 패킷을 필터링하고 어떤 패킷을 보내야하고 어떤 패킷을 보내지 않아야하는지 결정해야합니다 tun
.
iptables
을위한 것입니다. Google은 자습서를 제공하거나 정확하게하고 싶은 특정 정보 (어떤 소스 / 조건에서 추가 할 '메타 데이터', '메타 데이터'에 대한 결정)를 추가합니다.
iptables
사용해야 할 상황. 그러나 내 상황은 조금 다릅니다. iptables
알려진 TCP / IP 또는 어떤 특성을 기반으로 결정할 수 있으며, IP 패킷의 어딘가에 내 사용자 지정 "메타 데이터"가 포함되어 있지 않습니다. 해당 메타 데이터는 본인이 해석해야하며 iptables
처리 할 수 없습니다. 따라서 OpenVPN 수신 UDP 포트와 관련 포트 사이에 방화벽 통합을 배치해야합니다 tun
. 문제를 해결하기 위해 해당 "메타 데이터"를 OpenVPN 클라이언트가 제공하고 IP 패킷에 포함시키는 PID로 생각할 수 있습니다.
iptables
하거나tc
조작하여 통계를 작성합니다. VPN이나 OpenVPN과는 아무런 관련이 없습니다. 또한 "메타 데이터"를 추가하는 더 쉬운 방법은 다른 IP 소스 주소를 사용하는 것입니다 (쉽게 수행 할 수 있음).