OpenVPN을 사용할 때 ACL 또는 PAC를 어떻게 사용합니까?

OpenVPN을 사용할 때 ACL 또는 PAC를 어떻게 사용합니까?

sudo route add현재 저는 OpenVPN을 사용할 때 트래픽을 분할하기 위해 IP 테이블을 사용하고 있으며, 직접 연결을 선호하는 IP 목록에 대해 스크립트를 실행하여 이를 수행합니다.

이것은 질문을 게시했습니다. URL을 요청하면 여전히 OpenVPN의 DNS를 통해 실행되며 직접 연결하면 작동하지 않을 수 있는 IP를 반환합니다(저는 중국에 있고 GFW는 Facebook, Google 및 많은 외국 IP/도메인을 차단합니다. 그래서 로컬 DNS도 사용할 수 없습니다).

이상적으로는 로컬 DN을 먼저 수행한 다음 어떤 DNS(로컬 또는 국제)를 사용하고 연결할지 파악하는 ACL 또는 PAC가 있습니다. Linux나 Unix에서는 이 작업이 어떻게 수행됩니까?

답변1

iptables첫째, 라우팅할 때 어떤 이유로든 복잡한 작업을 수행하려는 경우가 아니면 일반적으로 두 가지를 모두 사용할 필요가 없습니다 .

전체 주소 목록을 기준으로 트래픽을 분할하는지, 아니면 접두사별로 트래픽을 분할하는지 등을 밝히지 않았습니다. 따라서 질문을 편집하고 이 정보를 제공하십시오.

전체 주소를 기준으로 분할하는 경우 가장 간단한 해결 방법은 해당 주소의 이름을 에 추가하는 것입니다 /etc/hosts. 에서 달리 구성하지 않는 한 이 파일의 조회가 DNS 조회보다 우선합니다 nssswitch.conf. 물론 변경되면 이 파일과 라우팅 파일의 IP 주소를 업데이트해야 합니다.

/etc/resolv.conf또 다른 옵션은 .from을 사용하는 것입니다 man 5 resovler.

nameserver Name server IP address

확인자가 쿼리해야 하는 이름 서버의 인터넷 주소는 [...] 최대 MAXNS(현재 3개 참조) 이름 서버를 각 키워드에 대해 하나씩 나열할 수 있습니다. 여러 서버가 있는 경우 파서 라이브러리는 나열된 순서대로 쿼리합니다.

그러나 이 파일은 일반적으로 시스템의 다른 여러 부분에서 자동으로 생성되며 세부 사항은 Linux 배포판에 따라 다릅니다. 따라서 DHCP 클라이언트 및/또는 OpenVPN이 수신한 이름 서버 정보로 이 파일을 업데이트하기 위해 어떤 스크립트를 실행하는지 알아낸 다음 두 항목이 올바른 순서로 nameserver끝나도록 해당 스크립트를 수정해야 합니다.resolv.conf

이 형식에서는 중국 DNS 서버가 차단된 도메인의 IP 주소를 반환할 수 없는 경우에만 작동합니다. 예를 들어, 반환된 IP가 차단되었는지 확인하기 위해 테스트해야 하거나 다른 종류의 테스트가 필요한 경우와 같이 중국 DNS 서버가 다르게 동작한다면 훨씬 더 어려울 것입니다. 일종의 구현을 사용해야 합니다. 로컬 DNS 프록시를 테스트하고 기존 프록시 소프트웨어의 코드를 수정할 수 있습니다.

VPN을 사용해 본 중국의 다른 사람들도 이미 같은 문제를 겪었을 것으로 생각합니다. 따라서 해결 방법이 있을 수 있지만 국제 사회에서는 이에 대해 알지 못할 수도 있습니다.

관련 정보