동일한 라우터에 두 대의 컴퓨터가 연결되어 있습니다 10.9.8.1
.
- 컴퓨터 A는
10.9.8.2
Windows 10 Insider Preview를 실행합니다. Insider Preview의 VPN이 손상되어 롤백할 수 없습니다. :( - 컴퓨터 B는
10.9.8.3
Linux Mint를 실행하며 VPN을 통해 연결됩니다openconnect
.
다음은 ipconfig
B(조각)에 대한 보고서입니다.
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 전달을 활성화해야 합니다.tun0
B
모든 인터페이스에 대해 일시적으로 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에 바인딩됩니다 .