OpenVPN
OpenVPN - программа с открытым исходным кодом для построения
VPN. Существуют версии как для UNIX, так и для Windows-систем.
Поддержка ГОСТ в OpenVPN
Для работы с ГОСТ требуется применение патча (комплекта исправлений исходного
кода) и перекомпиляция приложения с библиотекой openssl, подерживающей ГОСТ.
Мы представляем следующие патчи:
Сборка OpenVPN с openssl 0.9.8 с поддержкой ГОСТ
Скомпилировать openssl 0.9.8 в каталоге cp_src/openssl-0.9.8e по
нашей инструкции.
Перейти в рабочий каталог:
cd cp_src
Скачать исходные коды OpenVPN:
wget http://swupdate.openvpn.net/community/releases/openvpn-2.1.4.tar.gz
Распаковать исходные коды OpenVPN:
tar zxvf openvpn-2.1.4.tar.gz
Перейти в получившийся каталог:
cd openvpn-2.1.4
Загрузить патч для OpenVPN версии 2.1.4:
wget http://cryptocom.ru/opensource/openvpn-2.1.4.diff.gz
Распаковать архив с патчем:
gunzip openvpn-2.1.4.diff.gz
Далее следует применить патч следующей командой:
patch -p1 < openvpn-2.1.4.diff
Следует сконфигурировать OpenVPN с требуемыми Вам опциями. Мы предлагаем следующий вариант:
./configure --with-ssl-headers=/opt/openssl/include --with-ssl-lib=/opt/openssl/lib \
--with-lzo-headers=/usr/include/lzo --with-lzo-lib=/usr/lib CFLAGS=-DALLOW_NON_CBC_CIPHERS \
--prefix=/opt/openvpn
При этом нужно, чтобы переменная среды CFLAGS при запуске configure содержала -DALLOW_NON_CBC_CIPHERS. Также важно указать опции --with-ssl-lib и --with-ssl-headers, которые необходимы для сборки OpenVPN с поддержкой ГОСТ.
Собрать и установить OpenVPN:
make all
sudo make install
Для использования ГОСТ в openvpn собранной с данным патчем и OpenSSL с
поддержкой ГОСТ следует указать в конфигурационном файле (или в
командной строке)
engine gost
cipher gost89
auth gost-mac
Данные опции можно использовать как в режиме с preshared ключами, так и
в режиме с tls-аутентификацией. В последнем случае следует добавить
tls-cipher GOST2001-GOST89-GOST89
После установки следует отредактировать файл /etc/ld.so.conf путем
добавления пути /opt/openssl/lib для поиска библиотек libssl.so.0.9.8 и libcrypto.so.0.9.8,
с которыми линкуется OpenVPN на этапе сборки.
После этого следует перечитать конфигурационный файл ld командой
sudo ldconfig
Сборка OpenVPN с openssl 1.0.0 с поддержкой ГОСТ
Скомпилировать openssl 1.0.0 по нашей инструкции.
Скачать исходные коды OpenVPN:
wget http://swupdate.openvpn.net/community/releases/openvpn-2.2.2.tar.gz
Распаковать исходные коды OpenVPN:
tar zxvf openvpn-2.2.2.tar.gz
Перейти в получившийся каталог:
cd openvpn-2.2.2
Загрузить патч для OpenVPN версии 2.2.2:
wget http://cryptocom.ru/opensource/openvpn-2.2.2.diff.gz
Распаковать архив с патчем:
gunzip openvpn-2.2.2.diff.gz
Далее следует применить патч следующей командой:
patch -p1 < openvpn-2.2.2.diff
Следует сконфигурировать OpenVPN с требуемыми Вам опциями. Мы предлагаем следующий вариант:
./configure --with-ssl-headers=/opt/openssl/include --with-ssl-lib=/opt/openssl/lib \
--with-lzo-headers=/usr/include/lzo --with-lzo-lib=/usr/lib CFLAGS=-DALLOW_NON_CBC_CIPHERS \
--prefix=/opt/openvpn
Предполагается, что openssl установлен в директории /opt/openssl/
При этом нужно, чтобы переменная среды CFLAGS при запуске configure содержала
-DALLOW_NON_CBC_CIPHERS. Также важно указать опции --with-ssl-lib и
--with-ssl-headers, которые необходимы для сборки OpenVPN с поддержкой ГОСТ.
Собрать и установить OpenVPN:
make all
sudo make install
Для использования ГОСТ в openvpn собранной с данным патчем и OpenSSL с
поддержкой ГОСТ следует указать в конфигурационном файле (или в
командной строке)
engine gost
cipher gost89
auth gost-mac
Данные опции можно использовать как в режиме с preshared ключами, так и
в режиме с tls-аутентификацией. В последнем случае следует добавить
tls-cipher GOST2001-GOST89-GOST89
|