Назад | Перейти на главную страницу

Устранение неполадок доступа к Интернету OpenVPN Compute Engine на Google Cloud Platform

У меня Ubuntu 18.04 работает на Compute Engine на облачной платформе Google. Я настраиваю VPN на 1194 / UDP с помощью Nyr's классный сценарий (Еще пробовал на 443 / TCP). VPN подключается, но я не могу получить доступ к Интернету при подключении.

greg@vpn:~$ sudo iptables -L -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.8.0.0/24         !10.8.0.0/24          to:104.154.-.- #removed

traceroute в VPN

greg@vpn:~$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  209.85.241.122 (209.85.241.122)  10.729 ms 216.239.63.174 (216.239.63.174)  9.965 ms 209.85.241.122 (209.85.241.122)  10.771 ms
 2  108.170.243.187 (108.170.243.187)  10.086 ms 108.170.243.196 (108.170.243.196)  10.330 ms  10.285 ms
 3  141.101.73.2 (141.101.73.2)  10.867 ms  10.860 ms  11.104 ms
 4  one.one.one.one (1.1.1.1)  10.753 ms  9.886 ms  9.930 ms

локальная трассировка при подключении к VPN

 greg ~ $traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
...

Есть выпуск по репо Ныр что предполагает, что это проблема с сетевой конфигурацией. У меня вопрос, как мне решить эту проблему? И может ли это быть проблемой конфигурации брандмауэра / GCP, если у VPN-сервера есть доступ в Интернет?

/etc/openvpn/server.conf

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem

Я убедился, что iptables верны

greg@vpn:~$ iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o ens4 -j SNAT --to 104.154.x.x

Вот мой IP-маршрут

greg@vpn:~$ ip route show
default via 10.128.0.1 dev ens4 proto dhcp metric 100 
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1 
10.128.0.1 dev ens4 proto dhcp scope link metric 100

Подсети

greg@vpn:~$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         _gateway        0.0.0.0         UG        0 0          0 ens4
10.8.0.0        0.0.0.0         255.255.255.0   U         0 0          0 tun0
_gateway        0.0.0.0         255.255.255.255 UH        0 0          0 ens4

Я также включил net.ipv4.tcp_syncookies=1 в /etc/sysctl.conf

Моя трассировка с локального компьютера при подключении к VPN

greg ~ $sudo mtr 1.1.1.1
                                                 My traceroute  [vUNKNOWN]
Gregs-MacBook-Pro.local (10.8.0.2)                                                                2019-03-14T13:57:40-0400
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                                  Packets               Pings
 Host                                                                           Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 10.8.0.1                                                                     0.0%    24   35.3  36.5  34.3  48.2   3.8
 2. ???

Моя трассировка прямо с VPN-сервера

greg@vpn:~$ mtr 1.1.1.1
                                                     My traceroute  [v0.92]
vpn (10.128.0.28)                                                                                  2019-03-14T18:11:28+0000
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                  Packets               Pings
Host                                                                            Loss%   Snt   Last   Avg  Best  Wrst StDev
1. 216.239.40.188                                                                0.0%   177   10.1  11.3  10.0  33.7   3.8
2. 108.170.243.196                                                               0.0%   177   10.5  10.6  10.4  13.9   0.5
3. 141.101.73.2                                                                  0.0%   177   10.8  14.2  10.7  52.4   7.1
4. one.one.one.one                                                               0.0%   176   11.1  11.1  10.9  12.6   0.2

Вы включили переадресацию IP?

Вы можете сделать это на странице сведений об экземпляре в GCP или прямо в sysctl.conf: net.ipv4.ip_forward=1

Также я использовал этот отличный руководство один раз настроить OpenVPN на Ubuntu 16, и он работал безупречно, я уверен, что это будет большим подспорьем.

Для устранения неполадок с доступом в Интернет было бы хорошо опубликовать свою таблицу маршрутизации GCP и правила брандмауэра.

Я бы предложил попробовать следующее:

1) Использование протокола TCP вместо UDP; это можно сделать, изменив 'proto udp' на 'proto tcp' в файлах конфигурации клиента и сервера.

порт 443

proto tcp

; proto udp

2) Использование устройства Tap вместо tun, изменив «dev tun» на «dev tap» в файлах конфигурации клиента и сервера. Устройство TAP - это виртуальный адаптер Ethernet, а устройство TUN - это виртуальный IP-канал точка-точка.. Вам придется использовать одно или другое нельзя смешивать.