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

OpenVPN подключен, но нет Интернета или локальной сети

Добрый вечер,

У меня проблема с установкой OpenVPN. Я занимаюсь этим уже 3 дня, но до сих пор не могу понять, что не так с моей жизнью ...

В основном проблема в том, что я могу подключиться к своему серверу (выделенный ящик ubuntu 14.04) с моего клиента (ПК с win 7), но, хотя я подключен, я НЕ могу получить доступ к Интернету и локальной сети (не могу проверить связь с сервером на 10.0 .0.1).

Я настроил переадресацию ip на сервере и добавил правила iptable, насколько мне известно, а также установил переадресацию портов на маршрутизаторе; но до сих пор не удается привести его в рабочее состояние.

Любая помощь будет принята с благодарностью, так как я еще новичок в openvpn. Заранее всем спасибо за ваше драгоценное время.

Ниже приведены копии моих правил server.conf, client.conf и iptable.

Server.conf

dev tun
proto udp
port 1194
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
client-to-client
push "route 192.168.0.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
log-append /var/log/openvpn
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
client-cert-not-required
username-as-common-name
management localhost 7505

Таблицы IP

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:openvpn

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.0.0/24       anywhere             ctstate NEW
ACCEPT     all  --  10.8.0.0/24          anywhere             ctstate NEW
ACCEPT     all  --  10.8.0.0/24          192.168.0.0/24       ctstate NEW

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Client.conf

client
dev tun
proto udp
remote 196.xxx.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
auth-user-pass
comp-lzo
verb 3

Резюме:

  • Удаленная локальная сеть - 192.168.0.0/24.

  • Сеть OpenVPN - 10.8.0.0/24.

  • Ваш клиент OpenVPN получает IP в 10.8.0.0/24. Предположим, это 10.8.0.42.

Пытаюсь поговорить с удаленной LAN:

  • Когда ваш клиент OpenVPN отправляет пакет на IP-адрес в удаленной локальной сети (скажем, 192.168.0.56), он отправляется с исходным адресом 10.8.0.42 и достигает сервера OpenVPN.

  • Сервер OpenVPN отключает его, если вы не включили переадресацию IP. sysctl -w net.ipv4.ip_forward=1).

  • Если IP-переадресация включена, 192.168.0.56 получает пакет и пытается ответить, отправляя пакеты на 10.8.0.42, но у него нет маршрута для этого. Вместо этого он использует шлюз по умолчанию. Если сервер OpenVPN не является шлюзом по умолчанию, пакет будет потерян. Вы можете проверить маршрут на удаленном компьютере с помощью ip route get 10.8.0.42.

Возможные решения:

  • добавить маршрут к 10.8.0.0/24 для каждого узла в локальной сети (ip route add 10.8.0.0/24 via $ip_of_vpn_server);

  • добавить маршрут к 10.8.0.0/24 на шлюз по умолчанию

    • пакеты будут делать бесполезный переход к маршрутизатору вместо того, чтобы напрямую достигать сервера OpenVPN;

    • но ты send_redirects включен на маршрутизаторе и accept_redirects включен на узлах LAN, маршрутизатор отправит перенаправление ICMP, чтобы указать лучший маршрут, и узлы LAN должны использовать этот маршрут впоследствии;

  • настроить NAT на сервере OpenVPN, чтобы скрыть адреса 10.8.0.0/24.

Та же проблема возникает при попытке получить общедоступный IP-адрес от вашего клиента OpenVPN:

  • если вы использовали первое или второе решение, вы должны убедиться, что 10.8.0.0/24 правильно настроен через NAT маршрутизатором удаленной локальной сети;

  • если вы использовали NAT на сервере OpenVPN, вам не нужно больше ничего делать.

Я бы предложил использовать второе решение. Чем меньше у вас NAT, тем лучше.

Наличие VPN не обязательно означает, что вы можете подключиться сразу. Вам все равно нужно «сказать» своему клиенту, что ему нужно направлять трафик через эту VPN. Если вы попытаетесь подключиться к 10.0.0.1, а ваш клиент находится в другой сети, он попытается связаться со своим шлюзом по умолчанию. Вместо этого вы должны сказать ему, чтобы он разговаривал с VPN-соединением.

В CMD администратора:

route add <remote network> <VPN IP>

ЕСЛИ вы можете подключиться к своему VPN-серверу, то, скорее всего, вы правильно настроили сервер / клиент для разговора. Тогда проблема сводится к IP и маршрутизации. Я обычно использую pfsense для моего сервера openvpn, а не использую файл conf, но эффект должен быть таким же.

Каждый раз, когда я использовал openvpn, у меня никогда не было соединения на x.x.x.2, и я не мог пропинговать x.x.x.1. Это может быть я, но я видел, что он всегда начинается с 0,6 и маршрутизатор с 0,5

  1. Когда вы подключаетесь к vpn, проверьте свой IP-адрес. ipconfig

  2. Проверьте свою таблицу маршрутизации при подключении route print

  3. посмотрите, можете ли вы пропинговать свой IP-адрес vpn и шлюз на vpn. это может быть в вашем случае 10.8.0.5

Если вы можете опубликовать свои маршруты IPv4, это может помочь. и мы можем сузить круг вопросов.