Как настроить OpenVPN сервер на Ubuntu так, чтобы клиенты могли взаимодействовать между собой?

Добрый день!

Мне нужна помощь в настройке OpenVPN сервера, который развёрнут на VDS сервере с использованием операционной системы Ubuntu.

Я хочу, чтобы клиенты могли видеть друг друга, или, точнее, чтобы только один клиент мог видеть всех остальных, и чтобы все остальные видели только его. Клиенты у меня разные - от Android и Windows 10 до Ubuntu.

Я предпочел бы использовать стандартные настройки, включая адаптер tun, протокол UDP и прочее, чтобы после установки и настройки скрипта install все осталось без изменений.

Ранее мне пришлось изменить сеть с стандартной 10.8.0.0/20 на 172.27.165.0/27. Я отредактировал директиву server, но у меня возникли сложности с настройкой правил файервола - мне потребовалась целая неделя, чтобы понять, где и как вносить изменения. Сейчас у всех клиентов в таблице маршрутизации явно указано, что все трафик должен проходить через OpenVPN сервер, так как на стороне клиента в файле route указано, что для всех адресов 128.0.0.0 с маской 128.0.0.0 должен использоваться шлюз VPN. Фактически все клиенты подключаются и весь трафик идёт через VPN сервер, но почему-то клиенты не могут видеть друг друга. Возможно, это связано с правилами файервола.

Буду признателен за ответ, если вы точно знаете, как решить эту проблему, без предложения попробовать что-то или указаний на изменение протокола с tun на tap, при этом не объясняя, зачем это нужно делать.
  • 22 ноября 2023 г. 15:00
Ответы на вопрос 2
Для настройки OpenVPN сервера на Ubuntu, чтобы клиенты могли взаимодействовать между собой, вам потребуется выполнить несколько шагов:

1. Установите OpenVPN на ваш сервер с помощью следующей команды:
   
   ```shell
   sudo apt-get update
   sudo apt-get install openvpn -y
   ```

2. Создайте директорию, где будут храниться конфигурационные файлы сервера:

   ```shell
   sudo mkdir /etc/openvpn/server
   ```

3. Скопируйте пример конфигурационного файла сервера в созданную директорию:

   ```shell
   sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/server/
   ```

4. Распакуйте архив:

   ```shell
   sudo gzip -d /etc/openvpn/server/server.conf.gz
   ```

5. Отредактируйте файл конфигурации сервера:

   ```shell
   sudo nano /etc/openvpn/server/server.conf
   ```

   Ниже приведены некоторые настройки, которые вам потребуется изменить:
   - `proto udp` (протокол)
   - `dev tun` (устройство)
   - `server 172.27.165.0 255.255.255.224` (IP-адрес и маска подсети)
   - `push "route 172.27.165.0 255.255.255.224"` (распространение маршрута)
   - `client-to-client` (взаимодействие между клиентами)

   Сохраните изменения и закройте файл.

6. Создайте директорию для хранения файлов аутентификации клиентов:

   ```shell
   sudo mkdir /etc/openvpn/server/clients
   ```

7. Сгенерируйте сертификаты и ключи для каждого клиента. Выполните следующую команду для каждого клиента, заменив `client_name` на имя клиента:

   ```shell
   sudo easyrsa build-client-full client_name
   ```

   Вы можете назначить уникальные имена каждому клиенту.

8. Переместите созданные файлы в директорию клиента:

   ```shell
   sudo cp /etc/openvpn/server/pki/issued/client_name.crt /etc/openvpn/server/clients/
   sudo cp /etc/openvpn/server/pki/private/client_name.key /etc/openvpn/server/clients/
   sudo cp /etc/openvpn/ca.crt /etc/openvpn/server/clients/
   ```

9. Создайте файл конфигурации для каждого клиента:

   ```shell
   sudo nano /etc/openvpn/server/clients/client_name.ovpn
   ```

   Вставьте следующий текст в файл:

   ```
   client
   dev tun
   proto udp
   remote YOUR_SERVER_IP YOUR_SERVER_PORT
   resolv-retry infinite
   nobind
   persist-key
   persist-tun
   remote-cert-tls server
   key-direction 1
   cipher AES-256-CBC
   auth SHA256
   <ca>
   -----BEGIN CERTIFICATE-----
   [Your CA Certificate]
   -----END CERTIFICATE-----
   </ca>
   <cert>
   -----BEGIN CERTIFICATE-----
   [Client Certificate]
   -----END CERTIFICATE-----
   </cert>
   <key>
   -----BEGIN PRIVATE KEY-----
   [Client Key]
   -----END PRIVATE KEY-----
   </key>
   ```

   Замените `YOUR_SERVER_IP` и `YOUR_SERVER_PORT` на IP-адрес и порт вашего сервера OpenVPN.

10. Закройте и сохраните файл конфигурации.

11. Повторите шаги 7-10 для каждого клиента.

12. Запустите сервер OpenVPN:

    ```shell
    sudo systemctl start openvpn@server
    ```
    
    Убедитесь, что сервис запущен без ошибок.

После выполнения всех этих шагов ваш OpenVPN сервер будет
Если у вас установлена ОС виртуального выделенного сервера (VDS) и вы хотите использовать его только с VPN, то рекомендуется установить Pritunl. Pritunl представляет собой готовый набор для настройки OpenVPN с веб-интерфейсом, и его установка достаточно проста. Вы сможете настроить VPN всего в несколько кликов мышкой через веб-интерфейс.
Похожие вопросы