이더넷이 아닌 Wi-Fi를 사용할 때만 OpenVPN에 자동으로 연결

이더넷이 아닌 Wi-Fi를 사용할 때만 OpenVPN에 자동으로 연결

TUN이 아닌 TAP 장치를 사용하여 홈 네트워크에 OpenVPN 서버를 설정했습니다. 그러면 원격으로 네트워크에 연결하는 클라이언트가 유선 홈 네트워크와 동일한 서브넷에 브리지됩니다.

그러나 나는 이더넷을 사용하여 집에 도킹하고 다른 곳에서는 WiFi를 사용하는 노트북을 가지고 있습니다. (나는 집에서 WiFi를 사용하지 않으려고 노력합니다. 혼잡한 맨해튼 아파트 건물에서는 재앙입니다.) 또한 네트워크의 모든 장치에 대해 고정 IP 주소를 갖는 것을 좋아하므로 이더넷 어댑터의 IP 구성을 수정하고 VPN에 연결할 때 TAP 장치에도 동일한 IP를 사용합니다(클라이언트 구성 디렉터리서버 측에서).

이더넷 연결이 활성화되지 않은 경우에만 OpenVPN에 연결하도록 내 노트북의 OpenVPN 서비스를 구성하는 좋은 방법이 있습니까? OpenVPN 서비스를 백그라운드에서 자동으로 실행하는 것은 매우 편리하며 이더넷에 연결할 때마다 수동으로 종료하고 싶지 않지만 이미 물리적으로 연결되어 있는 동일한 네트워크에 연결하려고 합니다. 이미 사용하고 있는 동일한 IP 주소를 사용하는 VPN은 분명히 좋은 생각이 아닙니다.

init 스크립트를 사용하여 무언가를 해킹할 수 있다고 확신하지만 공식 Ubuntu 구성과의 차이를 최대한 최소화하고 싶습니다. 누구든지 좀 더 "적절한" 접근 방식을 생각할 수 있다면 정말 감사하겠습니다.

답변1

나는 내 구성에 맞는 솔루션을 찾았습니다. 완전히 일반적인 솔루션은 아니므로 누군가가 와서 좀 더 강력한 솔루션을 제공할 수 있기를 바랍니다.

이더넷을 사용할 때 랩톱에서 OpenVPN을 비활성화하는 대신 네트워크의 OpenVPN 서버에서 ufw(Uncomplicated Firewall)를 구성하여 로컬 서브넷의 연결을 거부했습니다. 하지만 sudo ufw allow ...and 를 사용하여 규칙을 만드는 것보다 조금 더 복잡합니다 sudo ufw deny ....

  • 첫째, VPN을 로컬 네트워크에 연결하는 시스템에서 ufw를 실행하는 경우(제가 수행하고 있는 작업입니다) 기본적으로 트래픽 전달을 삭제하므로 트래픽 전달을 허용하도록 ufw를 구성해야 합니다. 이는 in DEFAULT_FORWARD_POLICY="DROP"으로 변경됨을 의미합니다 .DEFAULT_FORWARD_POLICY="ACCEPT"/etc/default/ufw

  • 둘째, 올바른 순서로 규칙을 추가해야 합니다. ufw는 규칙을 하나씩 처리하고 서브넷 내에서 OpenVPN(포트 1149)에 대한 연결을 거부한 규칙을 사용하고, 순서대로 생성한 경우에만 외부에서 연결을 허용합니다. 제 경우에는 sudo ufw delete deny from 192.168.16.0/20 to any port 1194실행하기 전에 실행(아니요, 오타가 아닙니다. 실제로 로컬에서 /20 서브넷을 사용합니다 :D)을 의미합니다 sudo ufw allow 1194.

  • 마지막으로, 로컬 네트워크의 연결이 실제로하다로컬 네트워크에서 온 것처럼 보이므로 ufw 규칙이 호출됩니다.

마지막 부분이 중요합니다. 왜냐하면 처음에 처음 두 단계를 시도했을 때는 그렇지 않았기 때문입니다. 내 노트북 ​​OpenVPN은 에서 내 VPN에 연결을 시도하도록 자동으로 설정됩니다 mydomainname.com. 이는 내 홈 라우터에 동적으로 할당되며, 포트 1194를 에서 내 VPN을 실행하는 컴퓨터로 전달합니다 192.168.16.1. 모든 라우터에 해당되는 것은 아니지만 적어도 내 라우터의 경우 mydomainname.com로컬 서브넷 내에서 연결하면 랩톱의 IP 주소가 아닌 라우터의 IP 주소가 있는 것처럼 보이는 OpenVPN 서버에 대한 연결이 생성됩니다. (이야기가 길지만 실제로는 다른 서브넷의 라우터에 연결된 다른 장치에서 VPN 액세스를 허용하고 싶습니다. 홈 설정이 꽤 복잡합니다 :D).

mydomainname.com내 경우의 해결책은 에서 까지 의 정적 할당으로 내 라우터의 DNS 서버를 구성하는 것이었습니다 192.168.16.1. 그렇지 않으면 내 라우터의 외부 IP로 mydomainname.com직접 확인됩니다 . 192.168.16.1이것은 나에게 효과적이지만 귀하의 마일리지는 다를 수 있습니다.

관련 정보