WiFi를 통해 VPN 연결 공유

WiFi를 통해 VPN 연결 공유

동일한 라우터에 두 대의 컴퓨터가 연결되어 있습니다 10.9.8.1.

  • 컴퓨터 A는 10.9.8.2Windows 10 Insider Preview를 실행합니다. Insider Preview의 VPN이 손상되어 롤백할 수 없습니다. :(
  • 컴퓨터 B는 10.9.8.3Linux Mint를 실행하며 VPN을 통해 연결됩니다 openconnect.

다음은 ipconfigB(조각)에 대한 보고서입니다.

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.23.8.183  P-t-P:10.23.8.183  Mask:255.255.255.255
          inet6 addr: fe80::7fb2:5598:b02e:e541/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1410  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:7005 (7.0 KB)  TX bytes:3243 (3.2 KB)

wlp3s0    Link encap:Ethernet  HWaddr 60:67:20:36:6f:a4  
          inet addr:10.9.8.3  Bcast:10.9.8.255  Mask:255.255.255.0
          inet6 addr: fe80::8e96:7526:ff54:d1be/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22511502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16052631 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24451442281 (24.4 GB)  TX bytes:6038264731 (6.0 GB)

컴퓨터 A에서 VPN 뒤에 있는 리소스에 액세스해야 합니다.

다른 작업에는 라우터를 직접 사용하면서 B를 통해 VPN 리소스에 액세스할 수 있도록 A에서 라우팅을 구성하는 것을 고려 중입니다.

최악의 경우에는 두 대의 컴퓨터를 직접 연결할 수도 있지만 가능하면 그렇게 하지 않는 것이 좋습니다.

Windows에서는 모든 어댑터를 공유로 표시할 수 있습니다. 하지만 Linux에서 동일한 작업을 수행하면 어댑터 연결이 끊어집니다. 이 작업을 올바르게 수행하는 방법을 잘 모르겠습니다.

답변1

라우팅

호스트에서는 A대상 네트워크의 모든 트래픽을 호스트로 라우팅해야 합니다 B. 나는 그것이 다음과 같다고 가정합니다.192.168.0.0/24

Linux의 경우(호스트 시스템에서 A):

ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0

Windows의 경우(호스트 시스템에서 A):

route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3

앞으로

라우팅이 이루어지면 네트워크의 모든 패킷이 192.168.0.0/24호스트로 전송됩니다 B.

패킷이 호스트에서 호스트 wlp3s0로 전달되도록 허용하려면 IP 전달을 활성화해야 합니다.tun0B

모든 인터페이스에 대해 일시적으로 IP 전달을 활성화하려면:

sysctl net.ipv4.conf.all.forwarding=1

이 변경 사항을 영구적으로 활성화하려면 새 줄을 추가하십시오 /etc/sysctl.conf.

net.ipv4.conf.all.forwarding = 1

인터페이스 설정 외에도 iptables활성화될 수 있으며 패킷 전달을 허용해야 합니다.

활성 상태 인지 확인합니다 iptables(적어도 FORWARD체인의 경우).

iptables -L FORWARD -nv

체인에 규칙이 없고 정책에 명시되어 있으면 ACCEPT그대로 진행하면 됩니다. 그렇지 않은 경우에는 전달을 허용하도록 관련 규칙을 추가해야 합니다 192.168.0.0/24.

192.168.0.0/24모든 패킷이 다음 으로 전달되도록 허용 wlp3s0:

iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

RELATED,ESTABLISHED패키지 반품을 자동으로 허용합니다.


네트워크 주소 변환

이제 전달 설정이 완료되면 패킷이 터널로 전송됩니다. 그러나 VPN 뒤에 있는 원격 네트워크가 로컬 네트워크를 인식하지 못하는 한(일반적인 경우) NAT로컬 네트워크에서 오는 모든 패킷을 VPN에서 얻은 주소로 VPN으로 입력해야 합니다. 서버의 IP(예: tun0)

이렇게 하려면 MASQUERADE테이블에 규칙을 생성 해야 합니다 POSTROUTING.

iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE

tun0그러면 나가는 모든 패킷이 인터페이스의 IP에 바인딩됩니다 .

관련 정보