openvpn клиент на ubuntu, настройка автоматического подключения

apt-get install openvpn

nano /etc/openvpn/client/userX.ovpn

client
remote ovpn.server.ru 1194
;ca ca.crt
;cert userX.crt
;key userX.key
daemon
dev tap
proto udp
comp-lzo

——BEGIN CERTIFICATE——







Настройка автозапуска openvpn и подключения к указанным серверам:
nano /etc/default/openvpn
# Start only these VPNs automatically via init script.
# Allowed values are «all», «none» or space separated list of
# names of the VPNs. If empty, «all» is assumed.
#AUTOSTART=»all» #Включен по умолчанию — запуск всех соединений
#AUTOSTART=»none» #отключение автозапуска
AUTOSTART=»ovpn.server» #при автозапуске подключаться к конкретному серверу, при этом конфиг подключения должен лежать в /etc/openvpn/ovpn.server.conf

Установка и настройка OpenVPN на Windows (2016, v2.4.0)

Устанавливаем актуальную на момент написания чтива версию openvpn-install-2.4.0-I602.exe, отмечаем флажком установку скриптов для работы с сертификатами. Если на этапе установки будет вопрос об установке драйвера виртуального сетевого адаптера — соответственно ставим.

Открываем командную строку (от администратора), переходим в каталог OpenVPN\easy-rsa
Подготовка:
init-config.bat — заменяет vars.bat дефолтным
clean-all.bat — чистит каталог с ключами от предыдущих генераций + кладет туда дефолтный serial и index.txt

После того как открыли командную строку, запускаем vars.bat (чтобы загрузить переменные)
При выполнении команд внимательно читаем что будет отвечено в ответ — ошибки скорее всего будут — либо гуглится, либо смотрим пути!
Чтобы меньше вылезало косяков — проверяем пути в vars, особенно переменная каталога с ключами + путь к openssl-1.0.0.cnf, наличие файлов serial и index.txt в каталоге keys… доступ на запись в данной папке.
Читать далее «Установка и настройка OpenVPN на Windows (2016, v2.4.0)»

Как вписать сертификаты в конфиг OpenVPN

#The vpn client’s certificate==========

——BEGIN CERTIFICATE——
MIIDgTCCAuqgAwIBAgIKHsfLLAABAAAAdzANBgkqhkiG9w0BAQUFADAXMRUwEwYD
……………………………………………………………………………….
bcUXPQ1m4q37n+fjSi+cG9dJn+LQdkc3fkNBva9jVu2KotWYTw==
——END CERTIFICATE——

#The vpn client’s private! key=========

——BEGIN RSA PRIVATE KEY——
MIICXgIBAAKBgQD0elrCdQr+kd6wd9jYVASXHqaBf925xiFsHKMRw+ppS08S1CFJ
…………………………………………………………………………………………..
ZwRhJ4KTxtsOb+qWIZ0CGKt6vgrniCJmQ/XkEUxf3/bvjw==
——END RSA PRIVATE KEY——

Источник: http://forum.ru-board.com/topic.cgi?forum=8&topic=11656&start=1420#10

Правильное убийство сертификатов OpenVPN (revoke keys)

Revoking Certificates

Revoking a certificate means to invalidate a previously signed certificate so that it can no longer be used for authentication purposes.

Typical reasons for wanting to revoke a certificate include:

The private key associated with the certificate is compromised or stolen.
The user of an encrypted private key forgets the password on the key.
You want to terminate a VPN user’s access.
Example

As an example, we will revoke the client2 certificate, which we generated above in the «key generation» section of the HOWTO.

First open up a shell or command prompt window and cd to the easy-rsa directory as you did in the «key generation» section above. On Linux/BSD/Unix:

. ./vars
./revoke-full client2
On Windows:

vars
revoke-full client2
You should see output similar to this:

Using configuration from /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf
DEBUG[load_index]: unique_subject = «yes»
Revoking Certificate 04.
Data Base Updated
Using configuration from /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf
DEBUG[load_index]: unique_subject = «yes»
client2.crt: /C=KG/ST=NA/O=OpenVPN-TEST/CN=client2/emailAddress=me@myhost.mydomain
error 23 at 0 depth lookup:certificate revoked
Note the «error 23» in the last line. That is what you want to see, as it indicates that a certificate verification of the revoked certificate failed.

The revoke-full script will generate a CRL (certificate revocation list) file called crl.pem in the keys subdirectory. The file should be copied to a directory where the OpenVPN server can access it, then CRL verification should be enabled in the server configuration:

crl-verify crl.pem
Now all connecting clients will have their client certificates verified against the CRL, and any positive match will result in the connection being dropped.

https://openvpn.net/index.php/open-source/documentation/howto.html#revoke

Настройка сервера OpenVPN на Windows (v2.1)

Когда писал инструкцию, версии 2.3.* имели проблемы с генерацией сертификатов и пришлось использовать проверенную версию
openvpn-2.1_rc22-install.exe
clean-all.bat
init-config.bat
vars.bat
build-ca.bat
build-dh.bat
build-key-server.bat server

редактируем server.ovpn:
;==================
mode server
proto udp
port 2294
local 192.168.1.9
dev tun
;tls-server ;Режим клиент-сервер
route-method exe ;Маршруты добавляются через .exe — это важно
route-delay 2 ;Задержка при добавлении маршрута
server 10.1.0.0 255.255.255.0 ;создается виртуальная сеть 10.8.0.0/24
route-gateway 10.1.0.1 ;задаем шлюз
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
;tls-auth ta.key
push «redirect-gateway» ;при успешном подключении к серверу, клиенту будет установлен новый default-gateway от vpn-сервера (см. netstat -r после соединения), таким образом весь трафик пойдет через vpn-сервер
push «route 10.1.0.0 255.255.255.0»
route 10.1.0.0 255.255.255.0 ;Задаем серверу ОС маршрут на всю сеть
;cipher BF-CBC ;Выбираем метод сжатия
comp-lzo
keepalive 5 60 ;Cервер пингует противоположную сторону с интервалом в 10 секунд и если сторона не отвечает за 60 секунд, то сервер запустит пересоединение
client-to-client ;разрешаем клиентам видеть друг-друга в сети
ifconfig-pool-persist ipp.txt ;файл, в котором будут храниться связи «профиль клиента, выделенный ip-адрес», и после переподключения будет выдан снова прежний адрес
;push «route 192.168.1.0 255.255.255.0»
;iroute 192.168.1.0 255.255.255.0
persist-key
persist-tun
status openvpn-status.log
verb 1
mute 20 ;ограничиваем количество однотипных логов
;==================

генерируем клиентов
build-key.bat
внимание. строку юзера прописывать уникальную для каждого ключа, иначе несколько ключей содинаковыми id не прокатят
Клиенту даем следующие файлы (4 штуки):
ca.crt — сертификат сервера
ta.key — tls сертификат
%username%.crt — персональный сертификат
%username%.key — персональный ключ

Назначение файлов:
Файл Машина Назначение Доступ
ca.crt Сервер и клиенты Сертификат корневого СА Публичный
ca.key Только на сервере Необходим для подписи других Секретный
сертификатов
dh1024.pem Только на сервере Diffie Hellman параметры Публичный
server.crt Только на сервере Сертификат сервера Публичный
server.key Только на сервере Ключ сервера Секретный
client.crt Только на клиенте Сертификат клиента Публичный
client.key Только на клиенте Ключ клиента Секретный

client1.ovpn
;==================
client
dev tun
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
float
verb 1
ca ca.crt
tls-auth ta.key 1
remote 22.33.44.55 1194
cert notebook.crt
key notebook.key
;==================

Настройка подключения к OpenVPN серверу на роутере с прошивкой AsusWRT-Merlyn

Select client instance — тут надеюсь вопросов не возникнет — какой свободен, тот и выбираем!
Импорт файла .ovpn — выдернет настройки подключения из нашего конфигурационного файла
Проверяем параметры:
Тип интерфейса
Протокол
Server
Address and Port
Режим авторизации
Username/Password Authentication
Сжатие,
Настройки шифрования и прочие

Далее, если у нас авторизация по сертификату без логина-пароля, вписываем наши ключи и сертификаты напротив опции — Режим авторизации — в открывшемся по ссылке окне Content modification of Keys & Certificates. Что куда вписывать:
Static Key — это файл ta.key
Certificate Authority — ca.crt
Client Certificate — %user%-cert.crt
Client Key — %user%-key.key