У клиентов VPN (pritunl) нет доступа к интернету. Какие шаги следует предпринять для решения этой проблемы?

Привет всем! У меня установлено UBUNTU 22.04 с Pritunl (OpenVPN сервер). Клиенты подключаются к серверу с Windows, iOS и Keenetic, и наблюдаю одно и то же поведение: они успешно соединяются, получают IP-адрес, но после этого могут видеть только сам сервер по его внешнему IP, не имея доступа даже к внутренней сети сервера. 

Вот вывод команды `ip a`:

```
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 
inet 127.0.0.1/8 scope host lo 
valid_lft forever preferred_lft forever 
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever 

2: ens3:  mtu 1500 qdisc fq_codel state UP group default qlen 1000 
link/ether 52:54:00:c3:d1:ca brd ff:ff:ff:ff:ff:ff 
altname enp0s3 
inet 74.119.194.237/24 brd 74.119.194.255 scope global ens3 
valid_lft forever preferred_lft forever 
inet6 2a09:7c41::15e9/32 scope global 
valid_lft forever preferred_lft forever 
inet6 fe80::5054:ff:fec3:d1ca/64 scope link 
valid_lft forever preferred_lft forever 

3: tun0:  mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000 
link/none 
inet 192.168.246.1/24 scope global tun0 
valid_lft forever preferred_lft forever 
inet6 fe80::3e1d:2cb5:f27d:6dc/64 scope link stable-privacy 
valid_lft forever preferred_lft forever 
```

Клиенты могут пинговать только 74.119.194.237, а 192.168.246.1 - не удается. 

Вот вывод команды `route`:

```
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface 
default         gw.stark-indust 0.0.0.0         UG    0      0        0 ens3 
74.119.194.0    0.0.0.0         255.255.255.0   U     0      0        0 ens3 
192.168.246.0   0.0.0.0         255.255.255.0   U     0      0        0 tun0 
```

Можете подсказать, в чем может быть проблема?
  • 9 октября 2024 г. 15:28
Ответы на вопрос 2
Проблема с отсутствием доступа к интернету и внутренней сети для клиентов вашего VPN может быть связана с несколькими факторами. Давайте проведем диагностику и попробуем определить возможные решения.

### Шаги для диагностики и решения проблемы:

1. **Настройка маршрутов**:
   Убедитесь, что на клиентских машинах правильно настроены маршруты. На клиентской стороне должно быть что-то вроде:
   ```
   route add 192.168.246.0 mask 255.255.255.0 192.168.246.1
   ```
   Попробуйте выполнить эту команду на клиентских системах.

2. **Проверка правил iptables**:
   Убедитесь, что на сервере отсутствуют блокировки на уровне iptables. Выполните команду:
   ```bash
   sudo iptables -L -n -v
   ```
   Если у вас есть правила, которые блокируют трафик, то измените их.

3. **Включение маршрутизации**:
   Убедитесь, что на сервере включена IP-маршрутизация. Для этого выполните следующую команду:
   ```bash
   echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
   ```
   Чтобы сохранить настройки навсегда, отредактируйте файл `/etc/sysctl.conf` и убедитесь, что есть строка `net.ipv4.ip_forward=1`.

4. **Настройка NAT** (если требуется):
   Если вы хотите, чтобы клиенты имели доступ в интернет, то нужно настроить NAT. Это можно сделать с помощью следующих команд:
   ```bash
   sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
   ```
   Убедитесь также, что у вас установлен пакет `iptables-persistent` для хранения правил.

5. **Проверка конфигурации Pritunl**:
   В веб-интерфейсе Pritunl проверьте настройки сервера. Убедитесь, что опция "Push Route" (реакция на маршруты) настроена правильно, и что вы добавили маршруты для `192.168.246.0/24` и других подсетей, к которым клиенты должны иметь доступ.

6. **Проверка IP-адресов клиентов**: 
   Убедитесь, что клиенты получают IP-адреса из диапазона `192.168.246.0/24`. Вы можете проверить их статус через панель управления Pritunl или с клиентских устройств.

7. **Проверка подключения к локальной сети**: 
   Если необходимо, попробуйте пинговать локальные IP-адреса или ресурсы в вашей сети с клиента, чтобы проверить, работает ли доступ к внутренней сети.

8. **Перезапуск документов**:
   Иногда помогает перезапуск службы Pritunl и клиента VPN. Перезапустите Pritunl командой:
   ```bash
   sudo systemctl restart pritunl
   ```

### Дополнительная информация
Если после выполнения всех шагов проблема не исчезает, имейте в виду, что программное обеспечение для брандмауэра (если используется) может также блокировать трафик VPN.

Убедитесь также, что конфигурация на клиентских устройствах настроена с необходимыми параметрами маршрутизации (push routes и маршруты).

Если у вас все еще есть проблемы, уточните детали конфигурации вашего Pritunl или клиентских устройств, чтобы более точно определить возможные причины.
Есть идеи, что где не так?

Причина - правила iptables на сервере (покажи?)
Похожие вопросы