OpenVPN как не принять предложение сервера о настройке интерфейсов

В повседневной работе я пользуюсь десятками включённых VPN клиентов. Эти клиенты соединяются с разными серверами, а серверы имеют разные настройки. Так например у меня возникала ситуация когда нужный мне роут пробрасывался через TUN интерфейс который PUSH-ился с сервера. Если бы сервер использовал только я стоило бы перенастроить только сервер чтобы это исправить. Однако сервером пользуются и другие люди и там этот PUSH необходим. Сначала я руками переписывал роут и забывал до следующего переподключения. Но последнее время часто приходилось переподключаться и вечное переписывание роута стало раздражать. В документации к OpenVPN написано что в настройках с недавнего времени появился ключ который поможет клиенту отвергнуть то что ему предлагает сервер.
Continue reading OpenVPN как не принять предложение сервера о настройке интерфейсов

OpenVPN: — PUSH тебе твой собственный ROUTE

К бессонной ночи привёло “молчание логов” OpenVPN сервера при невозможности прочесть файл.

Имеется OpenVPN сервер, к которому подключены VPN клиенты. За некоторыми клиентами находятся сети которые необходимо анонсировать другим клиентам OpenVPN и обеспечить маршрутизацию.

Для этого в OpenVPN предусмотрены четыре параметра находящиеся в двух разных файлах которые позволяют настроить роутинг в сети VPN клиента.

Файл /etc/openvpn/*.conf

push "route 192.168.33.0 255.255.255.0"
route 192.168.33.0 255.255.255.0
client-config-dir ccd-vpn03

client-config-dir определяет каталог в котором будут находиться файлы в которых будут объявлены сети клиентов. Имена файлов должны совпадать с CommonName сертификата клиента за которым находятся сети объявленные в файле. Например если за клиентом с сертификатом у которого CN равен “vpn03.gw01.common-client2” находится сеть 192.168.33.0 255.255.255.0 то файл /etc/openvpn/ccd-vpn03/vpn03.gw01.common-client2

iroute 192.168.33.0 255.255.255.0

Continue reading OpenVPN: — PUSH тебе твой собственный ROUTE

Проверка GnuPG подписи OpenVPN

Как скачивать OpenVPN чтобы минимизировать риски получить поддельный инсталяционный пакет.
Нужно выполнить несколько шагов.

Проверить что открывшийся URL зашифрован TLS1.1 и выше и подписан правильной подписью.

Для этого нужно посмотреть сертификат. На момент публикации статьи сертификат для домена *.openvpn.net подписан Go Daddy Secure Certificate Authority – G2 действительным до 03/05/2016. Отпечаток SHA1:BD:4B:30:9E:65:DC:3F:7B:59:52:46:4A:1C:19:D6:BE:E4:98:5B:5A

$ echo | openssl s_client -tls1_2 -showcerts -connect openvpn.net:443 2>/dev/null | openssl x509 -fingerprint | grep 'BD:4B:30:9E:65:DC:3F:7B:59:52:46:4A:1C:19:D6:BE:E4:98:5B:5A'

Continue reading Проверка GnuPG подписи OpenVPN

Настройка OpenVPN на Windows

В этом описании будет рассмотрена настройка OpenVPN, как серверной части так и клиентской. Для OpenVPN роль клиента или сервера задаётся только конфигурационным файлом. Исполняемый модуль для обеих ролей один и тот же.

Загрузка и установка OpenVPN

Загрузите инсталятор с сайта openvpn.net (выбирайте свежую версию, сейчас это OpenVPN 2.3.5 — выпущенная 2014.10.28) и запустите его на компьютере который будет выступать сервером и произведите установку. Более ранние версии ставить не рекомендуется по причине наличия серьёзной уязвимости в пакете OpenSSL.
Произведите такю же установку на всех комьпютерах которые будут выступать в роли клиентов.

Continue reading Настройка OpenVPN на Windows

OpenVPN TLS key negotiation failed to occur within 60 seconds. TLS handshake failed

Сегодня клиент обратился с проблемой которая заключалась в том, что один из удалённых пользователей не может соединиться с OpenVPN сервером.

В журнале сервера с данного IP были такие ошибки:

Tue Nov 11 09:58:49 2014 xxx.xxx.xxx.xxx:49611 TLS: Initial packet from 176.108.233.33:49611, sid=aea2a5e5 bc9d76f6
Tue Nov 11 09:59:49 2014 xxx.xxx.xxx.xxx:49611 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue Nov 11 09:59:49 2014 xxx.xxx.xxx.xxx:49611 TLS Error: TLS handshake failed

Документация по OpenVPN указывает на проблему соединения.

Это казалось абсурдным так как эта запись была в журнале сервера. И конечно пинги на сервер проходили. В журнале статуса openvpn-status.log (у вас может быть другой, смотрите конфиг опцию status) была запись в состоянии UNDEF

UNDEF,xxx.xxx.xxx.xxx:49611,84,108,Tue Nov 11 09:26:20 2014

После попытки перейти с UDP на TCP стало ясно, что проблема не в протоколе. Включение более детальных логов опцией verb 6 также не раскрыло глаза. И тут в tcpdump бросилось в глаза то что от клиента приходит всего один пакет, а сервер в ответ отвечает от 5-ю до 20-ю, а может и более пакетами. Чтобы проверить проходимость больших пакетов с клиента ping-анули сервер пакетами размером 16 килобайт. В ответ небыло получено ни одного ответа. Проблема была явно в связи о чём и говорила запись в логе. Клиенту осталось разобраться с провайдером.

Установка openvpn на Linux mint

Прежде всего уясните себе что машина с easy-rsa это машина которая только подписывает ключи. И по логике безопасности должна быть отдельной машиной. Не стоит хранить генератор ключей и в особенности приватный CA на самом VPN сервере.

1) ставим openvpn на VPN сервере

# apt-get install openvpn

2) ставим easy-rsa на станции подписей

# apt-get install easy-rsa

3) создаём каталог куда скопируем easy-rsa и там будем изменять настройки, создавать и подписывать сертификаты

# mkdir -p /root/sign-host/easy-rsa
# cd /root/sign-host/easy-rsa
# cp /usr/share/easy-rsa/* ./

Continue reading Установка openvpn на Linux mint

Генерация RSA ключей для OpenVPN


Генерация RSA ключей для OpenVPN выполняется в несколько простых шагов.

Но прежде чем перейти к генерации ключей нам потребуется определиться с некоторыми моментами.
Нам нужны?

  • название CA ключа
  • название ключа сервера
  • название ключей клиентов
  • название организации (опционально)
  • e-mail (опционально)

При генерации клиентских ключей важно понять, что ключ клиента может быть либо “персональным” либо “совместным” одним на нескольких клиентов и даже одним на всех клиентов.
Continue reading Генерация RSA ключей для OpenVPN