Настройка серверов и сайтов на Linux/Unix под "ключ". Услуги системного администратора. Всегда онлайн в телеграм.

Регистрация Войти
Вход на сайт
Качественные бесплатные шаблоны dle скачать с сайта
» » » Установка OpenVPN

Установка OpenVPN

29-10-2010
Автор: synergix
Просмотров: 6 366
Комментариев: 0
Версия для печати
Установка OpenVPN Буквально на днях обратились мне с просьбой объединить 2 филиала одной общественной организации с головным офисом. Филиалы находились на порядочном удалении от головного офиса и варианты с радиомостами, протяжкой собственных линий или аренды были отклонены сразу. Все 3 сети имели свой выход в интернет по выделенной линии от одного и того же провайдера, дающего скорость в 2 Mbit/sec, бесплатный внутрисетевой трафик и статический "белый" IP.
По адресации
MAIN OFFICE - LAN 192.168.0.0/24, WAN 213.230.x.x
FILIAL1 - 192.168.1.0/24, WAN 213.230.x.x
FILIAL2 - 192.168.2.0/24, WAN 213.230.x.x

Было решено объединить сети используя OpenVPN. Почему OpenVPN?

1. OpenVPN - кроссплатформенное программное обеспечение, а для меня это очень важно, так как на гейтах филиалах находятся разные операционные системы.
OpenVPN используется на Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X, QNX и Microsoft Windows.
2. Нужно видеть всю сеть за гейтом филиала и обратно, а именно объединить все подсети.
3. Компрессия с помощью библиотеки компрессии LZO, для сжатия потока данных.
4. Шифрование канала, для обеспечения безопасности управляющего канала и потока данных, OpenVPN использует библиотеку OpenSSL.

В офисе в качестве шлюза работала FreeBSD, она же и будет выступать сервером OpenVPN. В филиалах одна сеть имела гейт на FreeBSD, вторая на Win. Также решено было предусмотреть подключение администратора для контроля.

Начнем установку:

#cd /usr/ports/security/openvpn
#make install clean


При установке выведется окошко конфигурирования, там ничего отмечать не надо. При этом выкачается портов примерно на 2-3 мегабайта.
Далее:
#cd /usr/local/share/doc/openvpn/easy-rsa/2.0/
#ee vars

И в нем редактируем одну строчку
# Меняем export KEY_DIR="$EASY_RSA/keys" на
export KEY_DIR="$EASY_RSA/keys/server"


Даем на скрипты права на исполняемость r-xr--r--

#chmod 544 *


Создаем директорию куда у нас будут создаваться/храниться ключи и сертификаты.

#mkdir -p keys/server


Далее запускаем shell

#sh
#. ./vars
NOTE: when you run ./clean-all, I will be doing a rm -rf on 
/usr/local/share/doc/openvpn/easy-rsa/2.0/keys/server
#./clean-all


На этом предварительную настройку и установку можно считать законченной.

Генерация ключей.

Создаем 2 ключа (ca.key и dh1024.pem) и 1 сертификат (server.key) только для сервера OpenVPN и дополнительный ключ (ta.key) для сервера и клиента.

1. Создаем 1-ый ключ Certificate Authority
# ./build-ca
Generating a 1024 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]:UZ
State or Province Name (full name) [CA]:Navoi
Locality Name (eg, city) [SanFrancisco]:Navoi
Organization Name (eg, company) [Fort-Funston]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) [Fort-Funston CA]:server
Name []:server
Email Address [me@myhost.mydomain]:synergix@localhost
#



2. Создаем сертификат X.509
# ./build-key-server server
Generating a 1024 bit RSA private key
.........++++++
..........................++++++
writing new private key to 'server.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]:UZ
State or Province Name (full name) [CA]:Navoi
Locality Name (eg, city) [SanFrancisco]:Navoi
Organization Name (eg, company) [Fort-Funston]:server
Organizational Unit Name (eg, section) []:server
Common Name (eg, your name or your server's hostname) [server]:server
Name []:server
Email Address [me@myhost.mydomain]:synergix@localhost

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:server
Using configuration from /usr/local/share/doc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName           :PRINTABLE:'UZ'
stateOrProvinceName   :PRINTABLE:'Navoi'
localityName          :PRINTABLE:'Navoi'
organizationName      :PRINTABLE:'server'
organizationalUnitName:PRINTABLE:'server'
commonName            :PRINTABLE:'server'
name                  :PRINTABLE:'server'
emailAddress          :IA5STRING:'synergix@localhost'
Certificate is to be certified until Sep  6 19:11:59 2020 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
#


3. Генерируем 1024 битный ключ с помощью алгоритма Диффи Хеллмана.

# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
...............................+.......+..............................++*++*++*
#


И выходим из shell

# exit


4. Создаем TLS-ключ (который нужен как и серверу, так и клиенту)

#openvpn --genkey --secret keys/server/ta.key



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

#mkdir /usr/local/etc/openvpn
#mkdir /usr/local/etc/openvpn/keys
#mkdir /usr/local/etc/openvpn/ccd


Переходим в директорию с ключами OpenVPN

#cd /usr/local/share/doc/openvpn/easy-rsa/2.0/keys/server/


Копируем ключи из /usr/local/etc/openvpn/keys

#cp ca.crt /usr/local/etc/openvpn/keys/
#cp server.crt /usr/local/etc/openvpn/keys/
#cp server.key /usr/local/etc/openvpn/keys/
#cp dh1024.pem /usr/local/etc/openvpn/keys/
#cp ta.key /usr/local/etc/openvpn/keys/

Теги: openvpn freebsd
Рейтинг статьи:
  • 0
Нашли ошибку?   
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.