# Подключение к виртуальной сети (OpenVPN)

Вы можете подключить текущее устройство к сети OpenVPN, вызвав интерфейс, предоставляемый FIRERPA. FIRERPA имеет встроенную поддержку OpenVPN, позволяя выбрать один из трех режимов входа: по сертификату (CA/CERT/KEY), по имени пользователя и паролю (CA/пользователь/пароль) или по сертификату + имени пользователя и паролю (CA/CERT/KEY/пользователь/пароль) (выбор также зависит от конфигурации вашего сервера OpenVPN). Эта функция может сосуществовать с системным прокси. Следует отметить, что данная функция включает только основные возможности OpenVPN и, за исключением конфигурации `DNS`, пока не может применять другую информацию об автоматической конфигурации, отправляемую сервером. Эти конфигурации включают, но не ограничиваются, PAC-прокси, конфигурацией HTTP-прокси и т.д. Чтобы избавить вас от хлопот по установке сервера OpenVPN, мы предоставляем готовый к использованию docker-образ OpenVPN, который поставляется со скриптами для генерации кода вызова интерфейса и конфигурации автозапуска.

## Подключение к VPN

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

```python
profile = OpenVPNProfile()
# Вставьте сюда код, автоматически сгенерированный вашим сервером
d.start_openvpn(profile)
```

## Отключение от VPN

Способ вызова для отключения от VPN также очень прост, достаточно сделать следующее, чтобы отключить OpenVPN.

```python
d.stop_openvpn()
```

## Полные параметры

Ниже приведена полная информация о параметрах конфигурации интерфейса VPN. Мы лишь описываем значение каждого параметра и не рекомендуем вам самостоятельно составлять параметры для этого интерфейса. Пожалуйста, используйте код, сгенерированный вашим сервером.


Включает ли глобальный VPN. Если включено, весь системный трафик будет проходить через выходной узел VPN-сервера.

```python
profile.all_traffic  = False
```

Протокол подключения, включенный на стороне сервера. Вы можете выбрать `OpenVPNProto.UDP` или `OpenVPNProto.TCP`. Этот выбор зависит от конфигурации вашего сервера.

```python
profile.proto        = OpenVPNProto.UDP
```

Конфигурация имени пользователя и пароля для аутентификации OpenVPN.

```python
profile.login        = "имя_пользователя"
profile.password     = "пароль"
```

С помощью этих двух параметров вы можете установить адрес и порт вашего сервера OpenVPN.

```python
profile.host         = адрес_сервера
profile.port         = порт_сервера
```

Устанавливает метод шифрования канала на стороне сервера. Интерфейс поддерживает следующие методы шифрования: `AES_128_GCM`, `AES_256_GCM`, `CHACHA20_POLY1305`, `AES_128_CBC`, `AES_256_CBC`.

```python
profile.cipher       = OpenVPNCipher.AES_256_GCM
```

Устанавливает параметры, связанные с `tls-auth` в OpenVPN. Для получения дополнительной информации вы можете посетить официальную документацию [openvpn.net/community-resources/reference-manual-for-openvpn-2-5](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-5/).

```python
profile.tls_encryption = OpenVPNEncryption.TLS_CRYPT
profile.tls_key_direction = OpenVPNKeyDirection.KEY_DIRECTION_NONE
profile.tls_key      = "-----BEGIN OpenVPN Static key V1-----"
```

Конфигурация, связанная с клиентским сертификатом OpenVPN, закрытым ключом клиента и сертификатом сервера.

```python
profile.ca           = "-----BEGIN CERTIFICATE-----"
profile.cert         = "-----BEGIN CERTIFICATE-----"
profile.key          = "-----BEGIN PRIVATE KEY-----"
```

## Автоматическое подключение к VPN

Вы можете настроить FIRERPA на автоматическое подключение к VPN-серверу при запуске, отредактировав файл `properties.local`. Поскольку эта конфигурация сложна, мы по-прежнему не рекомендуем создавать ее вручную. Пожалуйста, обратитесь к нашей документации по развертыванию сервера OpenVPN, чтобы узнать, как автоматически сгенерировать конфигурацию для `properties.local`.

## Быстрая настройка VPN

Пожалуйста, перейдите к нашей документации `Развертывание сервера OpenVPN`, чтобы узнать, как его развернуть и использовать.