OpenVPN подключается к серверу успешно, но доступ в интернет отсутствует.

Вопрос или проблема

Я хочу настроить сервер OpenVPN, и после недели попыток день и ночь (без знаний Linux) мне удалось успешно подключиться к серверу с помощью OpenVPN GUI, но теперь, когда я могу подключиться, нет пинга к 8.8.8.8, и веб-страницы не открываются.

Сервер работает: CentOS 7 X64

Клиент работает: Windows 10 Pro Build 10586.17 X64 с Kaspersky Internet Security

Вот моя конфигурация сервера

#измените на свой порт
port 1337
#Вы можете использовать udp или tcp
proto udp
# "dev tun" создаст маршрутизируемый IP-туннель.
dev tun
#Конфигурация сертификата
#ca сертификат
ca ca.crt
#Сертификат сервера
cert server.crt
#Ключ сервера, храните его в секрете
key server.key
#Смотрите размер dh ключа в /etc/openvpn/keys/
dh dh2048.pem
#Внутренний IP будет получен при подключении
server 192.168.200.0 255.255.255.0
#эта строка перенаправит весь трафик через наш OpenVPN
push "redirect-gateway def1"
#Предоставить DNS-серверы клиенту, вы можете использовать DNS Google
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
#Разрешить подключение нескольких клиентов с тем же ключом
duplicate-cn
keepalive 20 60
comp-lzo
persist-key
persist-tun
daemon
#включить лог
log-append /var/log/myvpn/openvpn.log
#Уровень журнала
verb 3

Вот моя конфигурация клиента

client
dev tun
proto udp
remote MY_SERVER_IP_ADDRESS 1337

resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
comp-lzo
verb 3

<ca>
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
</ca>

<cert>
-----BEGIN CERTIFICATE-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END CERTIFICATE-----
</cert>

<key>
-----BEGIN PRIVATE KEY-----
XXXXXXXXXXXXXXXXXXXXXXXXX
-----END PRIVATE KEY-----
</key>

ИЗМЕНЕНИЕ: Я также добавил следующие команды.

yum install iptables-services -y
systemctl mask firewalld
systemctl enable iptables
systemctl stop firewalld
systemctl start iptables
iptables --flush
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables-save > /etc/sysconfig/iptables
nano /etc/sysctl.conf
ДОБАВИЛ ЭТО В sysctl.conf -> net.ipv4.ip_forward = 1
systemctl restart network.service
systemctl -f enable [email protected]
systemctl start [email protected]

Но я все еще могу подключиться, но у меня нет пинга и я не могу открыть ни один веб-сайт.

Ниже приведен мой route print после установления соединения с моим сервером.

Сетевое назначение       Маска сети        Шлюз         Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.11     10
          0.0.0.0        128.0.0.0    192.168.200.5    192.168.200.6     20
        127.0.0.0        255.0.0.0         На линк         127.0.0.1    306
        127.0.0.1  255.255.255.255         На линк         127.0.0.1    306
  127.255.255.255  255.255.255.255         На линк         127.0.0.1    306
        128.0.0.0        128.0.0.0    192.168.200.5    192.168.200.6     20
     MY_SERVER_IP  255.255.255.255      192.168.1.1     192.168.1.11     10
      169.254.0.0      255.255.0.0         На линк     169.254.61.91    276
    169.254.61.91  255.255.255.255         На линк     169.254.61.91    276
  169.254.255.255  255.255.255.255         На линк     169.254.61.91    276
      192.168.1.0    255.255.255.0         На линк      192.168.1.11    266
     192.168.1.11  255.255.255.255         На линк      192.168.1.11    266
    192.168.1.255  255.255.255.255         На линк      192.168.1.11    266
    192.168.183.0    255.255.255.0         На линк     192.168.183.1    276
    192.168.183.1  255.255.255.255         На линк     192.168.183.1    276
  192.168.183.255  255.255.255.255         На линк     192.168.183.1    276
    192.168.200.1  255.255.255.255    192.168.200.5    192.168.200.6     20
    192.168.200.4  255.255.255.252         На линк     192.168.200.6    276
    192.168.200.6  255.255.255.255         На линк     192.168.200.6    276
    192.168.200.7  255.255.255.255         На линк     192.168.200.6    276
    192.168.230.0    255.255.255.0         На линк     192.168.230.1    276
    192.168.230.1  255.255.255.255         На линк     192.168.230.1    276
  192.168.230.255  255.255.255.255         На линк     192.168.230.1    276
        224.0.0.0        240.0.0.0         На линк         127.0.0.1    306
        224.0.0.0        240.0.0.0         На линк      192.168.1.11    266
        224.0.0.0        240.0.0.0         На линк     169.254.61.91    276
        224.0.0.0        240.0.0.0         На линк     192.168.200.6    276
        224.0.0.0        240.0.0.0         На линк     192.168.230.1    276
        224.0.0.0        240.0.0.0         На линк     192.168.183.1    276
  255.255.255.255  255.255.255.255         На линк         127.0.0.1    306
  255.255.255.255  255.255.255.255         На линк      192.168.1.11    266
  255.255.255.255  255.255.255.255         На линк     169.254.61.91    276
  255.255.255.255  255.255.255.255         На линк     192.168.200.6    276
  255.255.255.255  255.255.255.255         На линк     192.168.230.1    276
  255.255.255.255  255.255.255.255         На линк     192.168.183.1    276

Вы не упомянули, какую ОС использует клиентский компьютер. Это может быть проблема брандмауэра или проблема с правильным NAT или пересылкой IP.

Прежде всего, после подключения проверьте конфигурацию IP и маршрутизацию на клиентском компьютере. Убедитесь, что таблица маршрутизации правильная и маршрут по умолчанию установлен на VPN-сервер. Вы также должны иметь возможность пинговать его. Если все в порядке, то нужно проверить правила NAT и брандмауэра вашего VPN-сервера.

Для Windows 7 или более поздних версий Windows вам также нужно запускать клиент openvpn от имени администратора, в противном случае клиент не сможет установить правильную маршрутизацию.

Моя конфигурация клиента openvpn.ovpn включает

up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

update-resolv-conf – это, по сути,

#!/bin/sh
IFACE=`route -n show | grep -m 1 default | awk '{ print $NF }'`
dhclient -r $IFACE

case "$script_type" in
  up)
        echo "prepend domain-name-servers $route_vpn_gateway;" > /etc/dhclient.conf
  ;;
  down)
        echo " " > /etc/dhclient.conf
  ;;
esac

dhclient $IFACE

Парсит переменные окружения из openvpn, чтобы установить DHCP от вашего VPN-сервера, чтобы перенастроить конфигурацию вашего устройства, используя dhclient. Это работает для OpenBSD или различных дистрибутивов Linux. Также можно использовать resolvconf от Debian аналогично для того же эффекта.

Ответ или решение

Почему OpenVPN Подключается к Серверу, Но Нет Доступа в Интернет: Подробный Анализ и Решения

На первый взгляд, успешное соединение с OpenVPN сервером – это хороший признак. Однако отсутствие доступа в интернет вызывает беспокойство. Давайте разберемся в возможных причинах и способах их устранения, учитывая вашу конфигурацию сервера и клиента.

1. Проверка Конфигурации Сервера

Файл конфигурации сервера:
Ваш конфигурационный файл сервера выглядит в целом корректно. Однако обратите внимание на несколько ключевых моментов:

  • push "redirect-gateway def1": Эта команда должна перенаправлять весь интернет-трафик через OpenVPN сервер. Однако работает она только при правильной настройке маршрутизации и NAT.
  • DNS-серверы: Вы указали Google DNS, что хорошо, но может потребоваться проверка доступности этих серверов из вашей VPN-сети.

2. Настройка NAT и IP Forwarding

Вы уже добавили необходимые команды для разрешения IP-проброса и настройки NAT:

# Включение IP-проброса
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# Настройка iptables для NAT
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth0 -j MASQUERADE

Проблемы с iptables: Убедитесь, что iptables активен и правильно настроен. Проверьте правила командой:

iptables -L -v -n
iptables -t nat -L -v -n

Если вам нужно разрешить трафик на сервере, добавьте правило для ACCEPT:

iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A FORWARD -o tun0 -j ACCEPT

Не забудьте сохранить изменения в iptables и перезапустить сервис:

iptables-save > /etc/sysconfig/iptables
systemctl restart iptables

3. Конфигурация Клиента

Файл конфигурации клиента: Убедитесь, что OpenVPN клиент на Windows запускается с правами администратора. Это может влиять на возможность установки маршрутов.

4. Проверка Маршрутизации на Клиенте

После подключения к серверу, выполните команду route print на клиенте. Проверьте, что у вас есть маршрут по умолчанию, который указывает на VPN-интерфейс.

Обратите внимание на строку с 0.0.0.0 и убедитесь, что в качестве шлюза используется IP вашего VPN сервера. В вашем случае, это должно выглядеть так:

0.0.0.0        128.0.0.0    192.168.200.5    192.168.200.6

Если это не так, значит, проблема может быть в настройке push "redirect-gateway def1" на сервере.

5. Проверка Настроек Брандмауэра

Убедитесь, что Kaspersky Internet Security на клиенте не блокирует OpenVPN. Попробуйте временно отключить его или добавить в исключения OpenVPN. Иногда антивирусные программы блокируют туннелирование.

6. Тестирование

После всех изменений, выполните следующие шаги:

  1. Перезапустите OpenVPN сервер.
  2. Переподключите клиент и проверьте доступность интернета, введите команду ping 8.8.8.8.
  3. Если всё ещё нет доступа, проверьте логи OpenVPN на сервере для выявления возможных ошибок:
tail -f /var/log/myvpn/openvpn.log

Заключение

Если, следуя всем указанным шагам, вы всё ещё не имеете доступа в интернет через OpenVPN, рекомендуется проверить наличие конфигурационных конфликтов в системе сетевых настроек или обратиться к сообществу OpenVPN за дополнительной поддержкой. Каждый шаг важно выполнять внимательно, чтобы обеспечить правильной работоспособности вашего VPN-сервера.

Оцените материал
Добавить комментарий

Капча загружается...