Инструменты пользователя

Инструменты сайта


openvpn

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
openvpn [2014/03/11 12:38]
metallic [Настройка клиента]
openvpn [2022/03/25 17:00] (текущий)
Строка 63: Строка 63:
 Перед тем как выполнять какие-либо действия с сертификатами нужно загрузить переменные среды: Перед тем как выполнять какие-либо действия с сертификатами нужно загрузить переменные среды:
  
-  . ./vars+  . ./vars
  
 Запустим скрипт очистки сертификатов, он нам создаст и инициализирует необходимые файлы: Запустим скрипт очистки сертификатов, он нам создаст и инициализирует необходимые файлы:
  
-  ./clean-all+  ./clean-all
  
 В результате должы появиться следующие файлы: В результате должы появиться следующие файлы:
Строка 83: Строка 83:
 Далее генерим сертификат сервера, качестве Common Name указываем что-то вроде "server": Далее генерим сертификат сервера, качестве Common Name указываем что-то вроде "server":
  
-  ./build-key-server server+  ./build-key-server server
  
 Дальше ключ DH(Diffie Hellman): Дальше ключ DH(Diffie Hellman):
  
-  ./build-dh+  ./build-dh
  
 Также в качестве дополнительной защиты(HMAC-firewall) сгенерим еще один ключик: Также в качестве дополнительной защиты(HMAC-firewall) сгенерим еще один ключик:
Строка 98: Строка 98:
   ./build-key client2   ./build-key client2
   ./build-key client3   ./build-key client3
 +
 +<note tip>
 +При генерации клиентских ключей можно дополнительно защитить их паролем на случай их кражи или потери. Вместо скрипта build-key нужно использовать build-key-pass, тогда при генерации ключа будет запрошен пароль(Enter PEM pass phrase). В этом случае у клиента при каждом подключении будет запрашиваться пароль. Сменить его нельзя и если клиент забыл пароль, то поможет только отзыва сертификата и перевыпуск ключа.
 +</note>
  
 Конфигурационный файл сервера /etc/openvpn/server.conf: Конфигурационный файл сервера /etc/openvpn/server.conf:
Строка 181: Строка 185:
  
 Тут статически задан адрес клиента 192.168.0.241, также переданы ему адрес DNS-сервера и маршрут(в данном случае маршрут по-умолчанию). Тут статически задан адрес клиента 192.168.0.241, также переданы ему адрес DNS-сервера и маршрут(в данном случае маршрут по-умолчанию).
 +
 +<note>
 +Адреса клиентов надо выбирать из этого пула:
 +
 +  [  1,  2] [  5,  6] [  9, 10] [ 13, 14] [ 17, 18]
 +  [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
 +  [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
 +  [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
 +  [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
 +  [101,102] [105,106] [109,110] [113,114] [117,118]
 +  [121,122] [125,126] [129,130] [133,134] [137,138]
 +  [141,142] [145,146] [149,150] [153,154] [157,158]
 +  [161,162] [165,166] [169,170] [173,174] [177,178]
 +  [181,182] [185,186] [189,190] [193,194] [197,198]
 +  [201,202] [205,206] [209,210] [213,214] [217,218]
 +  [221,222] [225,226] [229,230] [233,234] [237,238]
 +  [241,242] [245,246] [249,250] [253,254]
 +</note>
  
 ===== Настройка клиента ===== ===== Настройка клиента =====
Строка 225: Строка 247:
  
 Теперь можно запустить GUI и попробовать подключиться. Теперь можно запустить GUI и попробовать подключиться.
 +
 +===== Отзыв сертификатов =====
 +
 +Иногда может случиться такая ситуация, что выданный сертификат нужно заблокировать раньше, чем истечет срок его действия, для этого существует процедура "отзыва сертификата", .т.е. он просто добавляется в БД отозванных сертификатов и сервер при подключении проверяет это. Допустим мы хотим отозвать сертификат client1, переходим в каталог /usr/share/doc/openvpn/examples/easy-rsa/2.0 и выполняем следующие команды:
 +
 +  # . ./vars
 +  
 +  # ./revoke-full client1
 +  Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/2.0/openssl-1.0.0.cnf
 +  Revoking Certificate 02.
 +  Data Base Updated
 +  Using configuration from /usr/share/doc/openvpn/examples/easy-rsa/2.0/openssl-1.0.0.cnf
 +  client1.crt: C = RU, ST = RU, L = Voronezh, O = Roga & KO, OU = Roga, CN = client1, name = Roga, emailAddress = admin@domain.ru
 +  error 23 at 0 depth lookup:certificate revoked
 +
 +Не смотря на то, что в последнем сообщении содержится "error 23", на самом деле это значит, что операция прошла успешно. В результате выполнения этой команды должен был появиться файл БД /etc/openvpn/keys/crl.pem. Теперь в конфигурационном файле сервера нужно раскоментировать эту строку:
 +
 +  crl-verify /etc/openvpn/keys/crl.pem
 +
 +И перезагрузить конфигурационный файл:
 +
 +  # /etc/init.d/openvpn reload
 +
 +С этого момента client1 подключиться не сможет. Если же он уже был подключен, то соединение будет разорвано при ближайшем пересогласовании сертификатов(по умолчании каждый час). Если же соединение нужно разорвать немедленно, то можно воспользоваться управляющим интерфейсом, подключившись через telnet:
 +
 +  # telnet localhost 7505
 +  Trying 127.0.0.1...
 +  Connected to localhost.
 +  Escape character is '^]'.
 +  >INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
 +  
 +  kill client1
 +  SUCCESS: common name 'client1' found, 1 client(s) killed
 +  
 +===== Ссылки =====
 +
 +  * [[http://pro-ldap.ru/tr/zytrax/tech/encryption.html|Руководство по выживанию — шифрование, аутентификация]]
 +  * [[http://pro-ldap.ru/tr/zytrax/tech/ssl.html|Руководство по выживанию — TLS/SSL и сертификаты SSL (X.509)]]
 +  * [[http://habrahabr.ru/company/tuthost/blog/150433/|Цифровые SSL сертификаты. Разновидности, как выбрать?]]
openvpn.1394527103.txt.gz · Последнее изменение: 2022/03/25 17:03 (внешнее изменение)