OpenVPN - Linux 클라이언트가 연결되었지만 인터넷에 액세스할 수 없음, 라우팅 문제

OpenVPN - Linux 클라이언트가 연결되었지만 인터넷에 액세스할 수 없음, 라우팅 문제

잠시 OpenVPN 서버를 설치하고 모든 인터넷 트래픽이 통과하는 게이트웨이 옵션을 사용했습니다.

Windows 및 Android 휴대폰과 같은 클라이언트 컴퓨터에서는 제대로 작동하지만 동일한 Open VPN 클라이언트 구성이 내 우분투 노트북에서는 작동하지 않는 것 같습니다. 클라이언트가 VPN 서버에 연결되지만 인터넷 트래픽이 라우팅되지 않는 것 같습니다.

연결이 활성화되면 VPN 서버에 대한 ping이 작동합니다: ping 10.8.0.1

그래서 무엇이 빠졌는지 잘 모르겠습니다. 지금까지 다음 옵션을 시도했습니다.

  • 클라이언트 라우팅 구성에 추가: 경로 10.8.0.0/24
  • 콘솔을 통해 경로 구성 추가를 시도했습니다. sudo Route add -net 10.8.0.0/24 gw 10.8.0.1 dev tun0 VPN이 실행 중이지만 네트워크에 액세스할 수 없다는 오류가 발생합니다.
  • 내 우분투 클라이언트에서 방화벽을 끄세요

도움이나 조언을 주시면 감사하겠습니다. 감사해요

서버 구성:

port 443
proto tcp
dev tun
ca ...
cert ...
key ...
dh ...
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypasss-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
status ...
log ...
verb 3

클라이언트 구성:

client
dev tun
proto tcp
remote www.serverdomain.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
remote-cert-tls server
# route 10.8.0.0/24 --> adding such a route made no difference

클라이언트 ifconfig:

tun0      
      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      inet addr:10.8.0.10  P-t-P:10.8.0.9  Mask:255.255.255.255
      inet6 addr: fe80::b393:268c:61db:72d4/64 Scope:Link
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
      RX packets:47 errors:0 dropped:0 overruns:0 frame:0
      TX packets:93 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:4394 (4.3 KB)  TX bytes:7012 (7.0 KB)

wlp1s0    
      Link encap:Ethernet  HWaddr a4:34:d9:5c:9d:06  
      inet addr:192.168.0.130  Bcast:192.168.0.255  Mask:255.255.255.0
      inet6 addr: fe80::5e97:3a8f:9596:8c30/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:24879 errors:0 dropped:0 overruns:0 frame:0
      TX packets:17473 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:14983497 (14.9 MB)  TX bytes:2721828 (2.7 MB)

클라이언트 로그 출력:

 Thu Nov  3 21:03:25 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb  2 2016
 Thu Nov  3 21:03:25 2016 library versions: OpenSSL 1.0.2g-fips  1 Mar 2016, LZO 2.08
 Thu Nov  3 21:03:25 2016 Socket Buffers: R=[87380->87380] S=[16384->16384]
 Thu Nov  3 21:03:25 2016 Attempting to establish TCP connection with [AF_INET]188.62.xx.xx:443 [nonblock]
 Thu Nov  3 21:03:26 2016 TCP connection established with [AF_INET]188.62.xx.xx:443
 Thu Nov  3 21:03:26 2016 TCPv4_CLIENT link local: [undef]
 Thu Nov  3 21:03:26 2016 TCPv4_CLIENT link remote: [AF_INET]188.62.xx.xx:443
 Thu Nov  3 21:03:26 2016 TLS: Initial packet from [AF_INET]188.62.xx.xx:443, sid=ff1258e5 f87eeaf5
 Thu Nov  3 21:03:26 2016 VERIFY OK: depth=1, C=CH, ST=ZH, L=Hinwil, O=xxx, OU=IT, CN=xxxx, name=xxxx, emailAddress=xxxx.ch
 Thu Nov  3 21:03:26 2016 Validating certificate key usage
 Thu Nov  3 21:03:26 2016 ++ Certificate has key usage  00a0, expects 00a0
 Thu Nov  3 21:03:26 2016 VERIFY KU OK
 Thu Nov  3 21:03:26 2016 Validating certificate extended key usage
 Thu Nov  3 21:03:26 2016 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
 Thu Nov  3 21:03:26 2016 VERIFY EKU OK
 Thu Nov  3 21:03:26 2016 VERIFY OK: depth=0, C=CH, ST=ZH, L=Hinwil, O=xxxx, OU=IT, CN=xxxx, name=xxxxx, emailAddress=xxxx.ch
 Thu Nov  3 21:03:26 2016 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Thu Nov  3 21:03:26 2016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Thu Nov  3 21:03:26 2016 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
 Thu Nov  3 21:03:26 2016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
 Thu Nov  3 21:03:26 2016 Control Channel: TLSv1.2, cipher     TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
 Thu Nov  3 21:03:26 2016 [xxxx] Peer Connection Initiated with [AF_INET]188.62.xx.xx:443
 Thu Nov  3 21:03:28 2016 SENT CONTROL [diabolo]: 'PUSH_REQUEST' (status=1)
 Thu Nov  3 21:03:29 2016 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route 10.8.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
 Thu Nov  3 21:03:29 2016 OPTIONS IMPORT: timers and/or timeouts modified
 Thu Nov  3 21:03:29 2016 OPTIONS IMPORT: --ifconfig/up options modified
 Thu Nov  3 21:03:29 2016 OPTIONS IMPORT: route options modified
 Thu Nov  3 21:03:29 2016 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
 Thu Nov  3 21:03:29 2016 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=wlp1s0 HWADDR=a4:34:d9:5c:9d:06
 Thu Nov  3 21:03:29 2016 TUN/TAP device tun0 opened
 Thu Nov  3 21:03:29 2016 TUN/TAP TX queue length set to 100
 Thu Nov  3 21:03:29 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
 Thu Nov  3 21:03:29 2016 /sbin/ip link set dev tun0 up mtu 1500
 Thu Nov  3 21:03:29 2016 /sbin/ip addr add dev tun0 local 10.8.0.6 peer 10.8.0.5
 Thu Nov  3 21:03:29 2016 /sbin/ip route add 188.62.79.43/32 via 192.168.0.1
 Thu Nov  3 21:03:29 2016 /sbin/ip route add 0.0.0.0/1 via 10.8.0.5
 Thu Nov  3 21:03:29 2016 /sbin/ip route add 128.0.0.0/1 via 10.8.0.5
 Thu Nov  3 21:03:29 2016 /sbin/ip route add 10.8.0.0/24 via 10.8.0.5
 Thu Nov  3 21:03:29 2016 Initialization Sequence Completed

클라이언트 netstat -rn

 Kernel IP routing table
 Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
 0.0.0.0         10.8.0.9        128.0.0.0       UG        0 0          0 tun0
 0.0.0.0         192.168.0.1     0.0.0.0         UG        0 0          0 wlp1s0
 10.8.0.0        10.8.0.9        255.255.255.0   UG        0 0          0 tun0
 10.8.0.9        0.0.0.0         255.255.255.255 UH        0 0          0 tun0
 128.0.0.0       10.8.0.9        128.0.0.0       UG        0 0          0 tun0
 169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 wlp1s0
 188.62.xx.xx    192.168.0.1     255.255.255.255 UGH       0 0          0 wlp1s0
 192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wlp1s0

답변1

이더넷/무선 카드의 "메트릭"을 낮춤으로써 이 문제를 해결할 수 있었습니다. "route" 명령이나 추가 기능 도구를 사용하여 "네트워크 카드 라우팅 항목의 메트릭(우선순위)을 줄일 수 있습니다"측정하는 경우" (sudo apt-get install ifmetric) 즉, ifmetric eth0 100 (0 = 최고 우선순위)

그런 다음 VPN 연결이 설정되었을 때 openvpn 서버의 DNS 항목이 아직 인계되지 않았다는 것을 깨달았습니다. 그래서 구글링해서 답을 찾았습니다. 우분투 클라이언트의 구성 파일에 다음 줄을 추가해야 합니다.

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

이는 서버 푸시 항목을 사용하여 VPN 연결이 설정될 때 "/etc/resolv.conf"의 DNS 항목을 업데이트합니다.

이제 그것은 매력으로 작동합니다.

답변2

노력하다:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

답변3

OpenVPN Linux 클라이언트를 설치하기 위한 권한일까요? 생성하지 않기 때문에큰 술통. 그래서내가 직접 만들었어(이것은 실제 질문입니다):

sudo ip tuntap add name tun0 mode tun
sudo ip link show

VPN 사용자 이름과 비밀번호를 요청한 후 연결되었으며 이제 마침내 인터넷에 연결되었습니다.

원천:https://www.naturalborncoder.com/virtualization/2014/10/17/understanding-tun-tap-interfaces

다른 해결책은 공식 openvpn3-linux 클라이언트 및 설치 프로그램을 사용해 이를 구성하는 것입니다.https://github.com/OpenVPN/openvpn3-linux

관련 정보