VPN 수신/발신 분할

VPN 수신/발신 분할

내 상황은 내 전부를 원해나가는내 Debian 서버에 대한 연결은 내가 구독하는 상용 VPN 서비스를 통해 이루어지지만, VPN을 통하지 않고 이 서버에서 공개적으로 액세스 가능한 서비스를 실행하고 싶습니다.

즉, 이 서버에서 BIND9(권한 있음), SMTP, Apache, SSH 등이 실행되고 있으며들어오는Connection을 사용하면 VPN을 사용하지 않고도 이러한 서비스에 액세스할 수 있습니다.

명확히 하자면, VPN을 사용하여 내 정보를 숨기고 싶습니다.나가는연결되었지만 여전히 내 요청에 응답할 수 있습니다진짜이런 식으로 나타나는 모든 것에 대한 지적 재산권.

상황을 더 복잡하게 만들기 위해 BIND를 내 도메인(공용 인터넷)에 대한 권한 있는 서버로 사용하고 있으며 이를 내 로컬 네트워크(개인 IP 범위) 파서로 사용할 수 있도록 재귀도 켰습니다. BIND에서 나가는 DNS 연결을 VPN으로 연결하면서도 들어오는 요청이 신뢰할 수 있는 비트에 도달하도록 허용하는 것이 가능합니까?

나는 이것이 관련이 있다고 생각 iproute2하지만 올바른 구성을 알 수 없습니다.

저는 데비안 6.0.7을 사용하고 있습니다. VPN은 OpenVPN입니다.

답변1

이를 달성하려면 정책 라우팅을 사용해야 합니다. 규칙은 그리 복잡하지 않을 것입니다.

(기본) 기본 경로는 VPN 인터페이스를 가리켜야 합니다. OpenVPN의 --redirect-gateway def1옵션을 사용하여 VPN이 시작될 때 자동으로 VPN을 관리할 수 있습니다. 이를 통해 OpenVPN은 /1동일한 효과를 갖는 여러 경로로 시스템 기본 경로를 재정의할 수 있으며 OpenVPN 자체가 명백한 라우팅 루프 없이 일반적인 방법으로 원격 피어에 계속 연결할 수 있도록 보장합니다.

이 기본 경로는 로컬에서 시작된 트래픽이 VPN을 통해 나가도록 하며 VPN을 통해 들어오고 VPN에서 나가는 트래픽에도 응답합니다.

이제 VPN이 아닌 인터페이스에서 들어오는 연결과 관련된 패킷에 대한 정책 규칙으로 이 규칙을 재정의하려고 합니다. 이러한 패킷이 VPN이 아닌 인터페이스를 통해 반환되기를 원합니다.

다음은 (1) VPN이 아닌 공용 IP 주소를 소스 주소로 사용하여 패킷을 일치시키고 해당 패킷이 다른 라우팅 테이블을 통해 라우팅되도록 요구하고, (2) 해당 라우팅 테이블에서 모든 것을 원본(비 VPN)으로 전송함으로써 작동합니다. ) 기본 경로.

ip route add table 42 default via X.Y.Z.W
ip rule add from A.B.C.D/32 table 42

A.B.C.D공개(비VPN) IP 주소여야 하며 X.Y.Z.W원래 시스템 기본 경로(VPN이 아닌 ISP를 통해)여야 합니다.

IPv6 트래픽에 대한 유사한 구성은 연습용으로 남겨두었습니다. :-)

관련 정보