OpenVPN очень удобное и мощное построения для шифрованных сетей. Много где его применял и применяю, но как то не писал про его настройку.
В данный момент появилась острая необходимость пробросить на один сервер впн, этим и займемся.
Имеем свежеустановленную систему
uname -a FreeBSD slik.loc 9.2-RELEASE FreeBSD 9.2-RELEASE #1: Tue Feb 18 12:08:12 EET 2014 slik@slik.loc:/usr/obj/usr/src/sys/SLIK i386
Приступаем к установке openvpn
cd /usr/ports/security/openvpn/ && make install clean
После установки OpenVPN приступаем к конфигурации.
cd /usr/local/share/doc/openvpn/easy-rsa/2.0/
Для начала сделаем правку в файле vars, приводим его к такому состоянию.
# Меняем export KEY_DIR="$EASY_RSA/keys" на export KEY_DIR="$EASY_RSA/keys/server" # меняем export KEY_SIZE=1024 на 2048 # (увеличим размер ключей с 1024 бит до 2048 бит) export KEY_SIZE=2048
Немного поправим права на скрипты.
chmod 544 *
Создадим директорию для хранения ключей и сертификатов
mkdir -p keys/server
Запускаем shell
#sh #. ./vars
Нам сказали что необходимо все почистить в папке server, что мы и делаем.
Один очень важный момент, команда ./clean-all удаляет все ранее созданные ключи и сертификаты, будьте осторожны!
./clean-all
Приступаем к созданию сертификата. Очень важный момент все правильно заполнять, так как часто возникают ошибки при невнимательности.
Вот мой листинг с консоли при создании сертификата.
# ./build-ca Generating a 2048 bit RSA private key ......................................................................................+++ ....................+++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [US]:UA State or Province Name (full name) [CA]:Kyiv Locality Name (eg, city) [SanFrancisco]:Kyiv Organization Name (eg, company) [Fort-Funston]:server Organizational Unit Name (eg, section) [changeme]:server Common Name (eg, your name or your server's hostname) [changeme]:server Name [changeme]: Email Address [mail@host.domain]:admin@slik45.kiev.ua #