Openvpn config files linux

Настройка OpenVPN клиента

Обновлено

Обновлено: 09.12.2021 Опубликовано: 20.07.2017

В данной инструкции подробно описан процесс настройки клиента OpenVPN на примере операционных систем Windows и Linux. Также, с ее помощью можно настроить скиента на Android.

Установка

Windows

Заходим на официальную страницу загрузки openvpn и скачиваем клиента для нужной Windows:

Скачиваем OpenVPN для Windows

Запускаем скачанный файл и устанавливаем программу, нажимая «Далее».

Linux CentOS

Устанавливаем репозиторий EPEL:

Linux Ubuntu

Android

Установка выполняется из Google Play. Набираем в поиске OpenVPN Connect — нажимаем установить и принимаем условия.

Настройка

После установки программы конфигурационный файл не создается автоматически и его нужно создать вручную.

В системах Windows создаем файл config.ovpn в папке %programfiles%\OpenVPN\config.

* имя файла может быть любым, расширение должно быть .ovpn.

Для создания конфигурационного файла в Linux выполняем команду:

* чтобы служба openvpn автоматически выполняла соединение, необходимо, чтобы конфигурационный файл назывался client.conf.

Пример конфигурационного файла

client
dev tun
proto udp
remote 192.168.0.15 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
dh dh2048.pem
tls-client
tls-auth ta.key 1
float
keepalive 10 120
comp-lzo
verb 0

Параметры конфигурационного файла

Параметр Значения Описание
client Строка говорит о том, что конфигурационный файл описывает клиентское подключение (программа сама устанавливает соединение, а не ждет, как сервер).
dev tap или tun Выбор виртуального сетевого драйвера. TUN — сетевой уровень модели OSI, оперирует IP-пакетами. TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Настраивая OpenVPN клиента, в большинстве случаев, необходимо выбирать tun. TAP необходимо использовать для работы определенных сервисов, например DHCP.
dev-node любая строка Параметр используется в системах Windows в случаях, если имеется несколько сетевых интерфейсов. Значение этого параметра должно содержать название сетевого подключения, через который должен работать OpenVPN.
proto udp или tcp Указывает, какой протокол использовать для передачи данных. В большинстве случаев, лучше использовать UDP, так как данный протокол создает меньше нагрузки на сеть.
remote VPN-сервер и порт Задает сервер, к которому должен подключаться клиент, а также сетевой порт (по умолчанию 1194), на котором OpenVPN принимает запросы. Можно указать несколько строк.
remote-random Если указано несколько строк remote, данный параметр говорит, что необходимо подключаться к удаленным серверам в случайном порядке.
resolv-retry количество секунд или infinite Используется в тех случаях, когда в качестве сервера указано доменное имя. Параметр задает время в секундах для повторного переподключения, если не удалось узнать имя сервера. infinite — держать связь с сервером постоянно.
nobind Клиент использует динамический порт для подключения.
user учетная запись Задает определенного пользователя для работы клиента (только для UNIX-систем).
group группа Задает определенную группу для работы клиента (только для UNIX-систем).
persist-key Не перечитывает ключи при перезагрузке сервиса OpenVPN.
persist-tun Не перечитывает параметры туннеля при перезагрузке сервиса OpenVPN.
http-proxy сервер прокси и порт Использовать прокси-сервер для подключения.
http-proxy-retry Переподключаться к прокси-серверу, если связь была разорвана.
http-proxy-timeout количество секунд Время, через которое выполнять попытки переподключения к прокси-серверу.
mute-replay-warnings Параметр стоит задавать при использовании беспроводного соединения. Он отключит дублирование предупреждений пакетов.
ca пут к сертификату Корневой сертификат удостоверяющего центра. Генерируем на сервере.
cert пут к сертификату Открытый ключ клиента. Генерируем на сервере.
key пут к сертификату Закрытый ключ клиента. Генерируем на сервере.
dh пут к сертификату Ключ с алгоритмом Diffie-Hellman (Диффи-Хеллмана).
remote-cert-tls сервер Исключает возможность mitm атаки, включая верификацию сертификата сервера.
tls-client Указание на то, что это клиент TLS.
tls-auth ta.key 1 Дополнительный уровень аутентификации посредством ключа TLS.
float Удаленный хост может менять IP-адрес в процессе соединения, при этом последнее не будет разорвано.
keepalive секунд1 секунд2 Пинговать каждые секунд1 сервер и если в течение секунд2 не будут получены ответные пакеты, перезапустить подключение.
cipher алгоритм Указывает алгоритм шифрования. Примеры: AES-256-CBC, AES-128-CBC, BF-CBC, DES-EDE3-CBC.
comp-lzo Использовать сжатие.
verb число от 0 до 9 Уровень детализации лога. 0 отключает отладочную информацию.
mute число Указывает сколько лог-сообщений может отображаться для каждой категории события.
auth-user-pass ничего или путь к файлу Говорит клиенту, что необходима аутентификация. Если не указан путь к файлу, клиент выкинет окно для авторизации, иначе прочитает данные из файла.
ipchange команда или путь к скрипту Выполняет команду при смене IP.
connect-retry секунд Переподключиться к серверу через указанное количество секунд, если соединение было разорвано.
connect-retry-max число Сколько раз повторять соединение, если оно было разорвано.
shaper байт Задает максимальную скорость передачи данных для исходящего трафика.
tun-mtu число Задает MTU.
status путь к файлу Путь к фалу хранения статуса.
log путь к файлу Путь к лог-файлу.
askpass путь к файлу Путь к файлу с паролем для приватного ключа (private key password).
Читайте также:  Add ssh key github linux

Наиболее полный и актуальный список параметров для OpenVPN можно получить командой openvpn —help (в Linux и Windows).

Сертификаты

Клиентские сертификаты генерируются на стороне сервера. Процедура следующая.

Источник

Creating configuration files for server and clients

Note that on Linux, BSD, or unix-like OSes, the sample configuration files are named server.conf and client.conf. On Windows they are named server.ovpn and client.ovpn.

Editing the server configuration file

The sample server configuration file is an ideal starting point for an OpenVPN server configuration. It will create a VPN using a virtual TUN network interface (for routing), will listen for client connections on UDP port 1194 (OpenVPN’s official port number), and distribute virtual addresses to connecting clients from the 10.8.0.0/24 subnet.

Before you use the sample configuration file, you should first edit the ca, cert, key, and dh parameters to point to the files you generated in the PKI section above.

At this point, the server configuration file is usable, however you still might want to customize it further:

  • If you are using Ethernet bridging, you must use server-bridge and dev tap instead of server and dev tun.
  • If you want your OpenVPN server to listen on a TCP port instead of a UDP port, use proto tcpinstead of proto udp (If you want OpenVPN to listen on both a UDP and TCP port, you must run two separate OpenVPN instances).
  • If you want to use a virtual IP address range other than 10.8.0.0/24, you should modify the serverdirective. Remember that this virtual IP address range should be a private range which is currently unused on your network.
  • Uncomment out the client-to-client directive if you would like connecting clients to be able to reach each other over the VPN. By default, clients will only be able to reach the server.
  • If you are using Linux, BSD, or a Unix-like OS, you can improve security by uncommenting out the user nobody and group nobody directives.
Читайте также:  Proxy для kali linux

If you want to run multiple OpenVPN instances on the same machine, each using a different configuration file, it is possible if you:

  • Use a different port number for each instance (the UDP and TCP protocols use different port spaces so you can run one daemon listening on UDP-1194 and another on TCP-1194).
  • If you are using Windows, each OpenVPN configuration taneeds to have its own TAP-Windows adapter. You can add additional adapters by going to Start Menu -> All Programs -> TAP-Windows -> Add a new TAP-Windows virtual ethernet adapter.
  • If you are running multiple OpenVPN instances out of the same directory, make sure to edit directives which create output files so that multiple instances do not overwrite each other’s output files. These directives include log, log-append, status, and ifconfig-pool-persist.

Editing the client configuration files

The sample client configuration file (client.conf on Linux/BSD/Unix or client.ovpn on Windows) mirrors the default directives set in the sample server configuration file.

  • Like the server configuration file, first edit the ca, cert, and key parameters to point to the files you generated in the PKI section above. Note that each client should have its own cert/key pair. Only the cafile is universal across the OpenVPN server and all clients.
  • Next, edit the remotedirective to point to the hostname/IP address and port number of the OpenVPN server (if your OpenVPN server will be running on a single-NIC machine behind a firewall/NAT-gateway, use the public IP address of the gateway, and a port number which you have configured the gateway to forward to the OpenVPN server).
  • Finally, ensure that the client configuration file is consistent with the directives used in the server configuration. The major thing to check for is that the dev (tun or tap) and proto (udp or tcp) directives are consistent. Also make sure that comp-lzo and fragment, if used, are present in both client and server config files.
Читайте также:  Metasploit kali linux туториал

Источник

Оцените статью
Adblock
detector