Raspbian을 사용하여 Raspberry Pi 3에서 VPN 연결을 설정하려고 합니다. 하지만 나는 이것을 할 수 없습니다.
저는 VPNBook을 사용하고 있으며 OpenVPN을 사용하기 위해 .ovpn 파일을 다운로드했습니다.
.ovpn 파일의 내용은 다음과 같습니다.
client
dev tun3
proto tcp
remote 176.126.237.217 80
remote euro217.vpnbook.com 80
resolv-retry infinite
nobind
persist-key
persist-tun
auth-user-pass pass.txt
comp-lzo
verb 3
cipher AES-128-CBC
fast-io
pull
redirect-gateway
script-security 2
이것은 내가 얻는 결과입니다.
pi@raspberrypi:/etc/openvpn/vpnbook $ sudo openvpn --config vpnbook-euro1-tcp80.ovpn
Wed Feb 8 00:07:45 2017 OpenVPN 2.3.4 arm-unknown-linux-gnueabihf [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jan 23 2016
Wed Feb 8 00:07:45 2017 library versions: OpenSSL 1.0.1t 3 May 2016, LZO 2.08
Wed Feb 8 00:07:45 2017 WARNING: file 'pass.txt' is group or others accessible
Wed Feb 8 00:07:45 2017 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Wed Feb 8 00:07:45 2017 NOTE: --fast-io is disabled since we are not using UDP
Wed Feb 8 00:07:45 2017 Socket Buffers: R=[87380->131072] S=[16384->131072]
Wed Feb 8 00:07:45 2017 Attempting to establish TCP connection with [AF_INET]176.126.237.217:80 [nonblock]
Wed Feb 8 00:07:46 2017 TCP connection established with [AF_INET]176.126.237.217:80
Wed Feb 8 00:07:46 2017 TCPv4_CLIENT link local: [undef]
Wed Feb 8 00:07:46 2017 TCPv4_CLIENT link remote: [AF_INET]176.126.237.217:80
Wed Feb 8 00:07:46 2017 TLS: Initial packet from [AF_INET]176.126.237.217:80, sid=f8773375 a8e3c418
Wed Feb 8 00:07:46 2017 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Wed Feb 8 00:07:47 2017 VERIFY OK: depth=1, C=CH, ST=Zurich, L=Zurich, O=vpnbook.com, OU=IT, CN=vpnbook.com, name=vpnbook.com, [email protected]
Wed Feb 8 00:07:47 2017 VERIFY OK: depth=0, C=CH, ST=Zurich, L=Zurich, O=vpnbook.com, OU=IT, CN=vpnbook.com, name=vpnbook.com, [email protected]
Wed Feb 8 00:07:48 2017 Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Wed Feb 8 00:07:48 2017 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Feb 8 00:07:48 2017 Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Wed Feb 8 00:07:48 2017 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Wed Feb 8 00:07:48 2017 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Wed Feb 8 00:07:48 2017 [vpnbook.com] Peer Connection Initiated with [AF_INET]176.126.237.217:80
Wed Feb 8 00:07:50 2017 SENT CONTROL [vpnbook.com]: 'PUSH_REQUEST' (status=1)
Wed Feb 8 00:07:50 2017 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 89.233.43.71,dhcp-option DNS 91.239.100.100,route 10.12.0.1,topology net30,ping 5,ping-restart 30,ifconfig 10.12.0.6 10.12.0.5'
Wed Feb 8 00:07:50 2017 OPTIONS IMPORT: timers and/or timeouts modified
Wed Feb 8 00:07:50 2017 OPTIONS IMPORT: --ifconfig/up options modified
Wed Feb 8 00:07:50 2017 OPTIONS IMPORT: route options modified
Wed Feb 8 00:07:50 2017 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Wed Feb 8 00:07:50 2017 ROUTE_GATEWAY 192.168.0.1/255.255.255.0 IFACE=wlan0 HWADDR=b8:27:eb:e3:f8:56
Wed Feb 8 00:07:50 2017 TUN/TAP device tun3 opened
Wed Feb 8 00:07:50 2017 TUN/TAP TX queue length set to 100
Wed Feb 8 00:07:50 2017 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Wed Feb 8 00:07:50 2017 /sbin/ip link set dev tun3 up mtu 1500
Wed Feb 8 00:07:50 2017 /sbin/ip addr add dev tun3 local 10.12.0.6 peer 10.12.0.5
Wed Feb 8 00:07:50 2017 /sbin/ip route add 176.126.237.217/32 via 192.168.0.1
Wed Feb 8 00:07:50 2017 /sbin/ip route add 0.0.0.0/1 via 10.12.0.5
Wed Feb 8 00:07:50 2017 /sbin/ip route add 128.0.0.0/1 via 10.12.0.5
Wed Feb 8 00:07:50 2017 /sbin/ip route add 10.12.0.1/32 via 10.12.0.5
Wed Feb 8 00:07:50 2017 Initialization Sequence Completed
현재로서는 어떤 웹사이트에도 접속할 수 없습니다(이름이나 IP 주소를 입력하여). 그러나 일부 IP 주소(예: 216.58.212.99)는 ping할 수 있지만 호스트 이름(예: www.google.fr)은 ping할 수 없습니다.
DNS 문제인 줄 알고 검색을 시도한 후 .ovpn 파일을 다음 줄로 업데이트했습니다.
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
이것은 아무것도 바꾸지 않습니다.
[편집] 호스트 이름을 핑할 수 없기 때문에 여전히 DNS 문제가 있는 것 같습니다. 인터넷에서 본 다양한 포럼 자료를 시도했지만 아무 것도 작동하지 않았습니다. 내 DNS가 작동하지 않는 이유를 이해하기 위해 먼저 살펴봐야 할 사항이 있나요? 실제로 DNS 요청이 터널을 통과하여 VPN 서버에서 전송되지 않는 이유는 무엇입니까? [/편집하다]
다른 VPN(VPNGate)도 사용해 보았지만 동일한 문제가 발생했습니다.
openvpn이 시작되면 네트워크의 모든 것이 매우 느려집니다. 터널이 제대로 작동하는지조차 모르겠습니다.
[편집] 실제로 터널이 작동하는 것 같은데, 단일 웹사이트를 로드할 수 없는지 어떻게 확신할 수 있나요? 모든 것이 매우 느리고 왜 그런지 모르겠습니다. VPNBook을 사용하는 유일한 사람이 아니고 다른 VPN 공급자를 사용해도 동일한 결과가 나타났기 때문에 내 구성에서 비롯되었을 수 있습니다. [/편집하다]
[두 번째 편집]
여전히 이 문제가 계속 발생하고 있어 네트워크 작동 방식을 완전히 이해하기 위해 튜토리얼을 읽고 있습니다. 지금까지 말씀드릴 수 있는 것은 VPN이 활성화되면 구성에 2가지 이상한 점이 있다는 것입니다.
먼저, VPN 연결을 위해 생성된 "tun3" 인터페이스에서는 MAC 주소가 모두 0입니다. 다른 인터페이스와 동일하면 안 되나요?
tun3 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.12.0.170 P-t-P:10.12.0.169 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:126 errors:0 dropped:0 overruns:0 frame:0
TX packets:358 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:16864 (16.4 KiB) TX bytes:35559 (34.7 KiB)
wlan0 Link encap:Ethernet HWaddr b8:27:eb:e3:f8:56
inet addr:192.168.0.17 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::6dfb:5d45:2ae7:fe43/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:24791 errors:0 dropped:7790 overruns:0 frame:0
TX packets:19963 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4974169 (4.7 MiB) TX bytes:2843776 (2.7 MiB)
2. 라우팅 테이블(VPN이 켜져 있을 때 매우 느리게 표시됨):
VPN이 없는 경우:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.0.1 0.0.0.0 UG 303 0 0 wlan0
192.168.0.0 * 255.255.255.0 U 303 0 0 wlan0
VPN을 사용하세요:
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.12.0.169 128.0.0.0 UG 0 0 0 tun3
default 192.168.0.1 0.0.0.0 UG 303 0 0 wlan0
10.12.0.1 10.12.0.169 255.255.255.255 UGH 0 0 0 tun3
10.12.0.169 * 255.255.255.255 UH 0 0 0 tun3
128.0.0.0 10.12.0.169 128.0.0.0 UG 0 0 0 tun3
176.126.237.217 192.168.0.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.0.0 * 255.255.255.0 U 303 0 0 wlan0
핑조차 할 수 없는 게이트웨이가 1개 있습니다: 10.12.0.169. 사실 나는 내 새 IP 주소가 나머지 네트워크의 IP 주소와 완전히 다른 이유조차 이해하지 못합니다. "tun3"도 192.168.0.xxx와 같은 IP 주소를 가져야 하지 않나요? 이 IP 주소 10.12.0.170은 어디에서 왔습니까? 그리고 내 로컬 네트워크로 가는 경로를 제외한 모든 목적지의 게이트웨이는 192.168.0.1(내 인터넷 제공업체)이어야 하지 않나요?
지금은 이상하다고 생각되는 것들이지만 여전히 웹 튜토리얼을 읽고 있으며 답변이 있으면 답변을 가지고 돌아올 것입니다.
[/두 번째 편집]
답변1
resolvconf
패키지를 설치하고 업데이트 및 업그레이드하여 작동하게 만들었습니다. 이상한 점은 분실되었다는 메시지를 전혀 받지 못했다는 것입니다 resolvconf
. 를 설치할 때 resolvconf
필수라고 되어 있어서 uninstall openresolv
아마도 이것을 대신 사용하고 있을 것입니다 resolvconf
.
어쨌든 이것은 당시에는 작동했으며 재부팅 후에도 작동합니다. 그 후 장치를 종료했는데 이제 아무런 변경도 하지 않으면 호스트 이름을 확인할 수 없습니다. resolvconf
아무것도 하지 않는 것 같습니다 .
편집: "dnsmasq 패키지"도 제거하고 다음 파일에 다음 줄을 추가했는데 이제 작동합니다.
/etc/host.conf
order hosts,bind # was missing
multi off # was on
/etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
gshadow: files
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
networks: files dns # dns was missing
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
그러나 이제는 일부 이름을 확인할 수 있지만 전부는 확인할 수 없습니다. 나는 그것을 해결할 수 있지만 예를 들어 www.google.com
그렇지 않습니다 torrent.ubuntu.com
. 사용할 DNS를 지정하는 명령을 사용해도 VPN에 연결하면 확인할 수 없습니다 dig
. torrent.ubuntu.com
VPN에 연결되어 있지 않을 때 문제를 해결할 수도 있고, VPN 서버의 DNS를 사용하여 문제를 해결할 수도 있습니다.
답변2
이것은 잘 작동하는 것 같습니다.
이것은 내가 얻는 결과입니다.
pi@raspberrypi:/etc/openvpn/vpnbook $ sudo openvpn --config vpnbook-euro1-tcp80.ovpn
그런 다음 모든 것이 중지되고 더 이상 콘솔에 쓸 수 없습니다.
여기서 일어나는 일은 OpenVPN 클라이언트를 서비스가 아닌 터미널 세션에서 시작했다는 것입니다. (이것은 디버깅에 유용하지만 다른 상황에서는 그다지 유용하지 않습니다.) 해당 터미널 창(또는 콘솔)에 더 이상 쓸 수 없는 이유는 OpenVPN 프로그램이 아직 완료되지 않았기 때문입니다.
또는 ssh
원격 연결에서 시작하면 더 많은 입력을 방해하는 복잡한 문제가 발생합니다. (아래를 참조하세요.)
표시된 VPN 구성의 예상되는 부작용 중 하나는 네트워크 기본 경로가 VPNBook( redirect-gateway
구성 항목)을 통과하도록 변경된다는 것입니다. 이는 인바운드 네트워크 연결을 계속할 수 없음을 의미합니다. 이는 또한 ISP가 DNS 서버를 제공하는 경우 더 이상 ISP의 호스팅 네트워크에 있는 것처럼 보이지 않아 ISP가 이러한 요청을 허용하지 않기 때문에 이를 사용하여 주소를 확인할 수 없음을 의미합니다.
달성하려는 목표를 더 자세히 설명하기 위해 질문을 업데이트하려는 경우 몇 가지 제안 사항으로 이 질문을 업데이트할 수 있습니다.
답변3
귀하의 편집 내용 중 하나에서 귀하의 tun3 어댑터가 noARP로 설정되어 있음을 확인했습니다. (포인트에서 NOARP 멀티캐스트 실행) ARP가 실행되고 있지 않으면 도메인 이름이 IP 주소로 확인되지 않습니다. 구성 파일에 이 설정을 변경하는 옵션이 있는지 확인해 보세요.