Настройка OpenVPN сервера

Материал из Wiki МИАЦ ВО
Версия от 07:29, 21 мая 2008; Misha (обсуждение | вклад) (Файл настройки сервера)
Перейти к навигации Перейти к поиску

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

Инсталяция

Итак устанавливаем пакет openvpn со всеми зависимостями. Копируем скрипты

cp /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn

Копируем конфигурационный файл настройки сервера

cp /usr/share/openvpn/sample-config-files/server.conf /etc/openvpn

Задача

небходимо соеденить 3 локальных сети с одну, с помощью третей, которая соединяет все три интернет сервера сервера локальных сетей.

                  Сервер 2 (OpenVPN client2 )                 Сервер 3(OpenVPN client2 )
                  |-----------------|                        |---------------------|
 Лок сеть 2       |172.16.135.10    |10.0.0.0/8              |       172.16.136.10 | Лок сеть 3
------------------|       10.1.14.2 |------------------------|10.4.49.2            |----------------
172.16.135.0/24   |-----------------|            |           |---------------------| 172.16.136.0/24
                                                 |
                                       |---------------------|
                                       |    10.4.46.2        | Лок сеть 2
                                       |         172.16.130.1|--------------------
                                       |---------------------| 172.16.130.0/24
                                       Сервер 1 (OpenVPN server)

Настройка сервера

Генерация ключей и сертификатов

Начальная инициализация

Выполняется 1 раз

Редактируем файл /etc/vars. Я, например поменял в нем только переменные

export KEY_COUNTRY="RU"
export KEY_PROVINCE="RUS"
export KEY_CITY="Vologda"
export KEY_ORG="MIAC"
export KEY_EMAIL="mnk@myhost.mydomain"

Вы можете использовать свои.

#. vars

Именно точка пробел vars

Очистка и инициализация папки ключей

#./clean-all

Создание master Certificate Authority (CA) certificate & key

Выполняется 1 раз
Генерация сертификата и ключа - ca.crt, ca.key

#. vars
#./build-ca

Генерация сертификата и ключа для сервера

Выполняется 1 раз

#. vars
#./build-key-server ServerName

ServerName - имя сервера. На некоторые доп вопросы можно ответить 2 раза "пусто", на 2 последних - "y":

Sign the certificate? [y/n]:y<br />
1 out of 1 certificate requests certified, commit? [y/n]y

В результате будет создан ключ ServerName.key, сертификат ServerName.crt, запрос Certificate Signing Request (CSR) ServerName.csr, ?непонятный файл? 01.pem (копия ServerName.csr)

Генерация Diffie Hellman parameters

Выполняется 1 раз, нужно только для tls-server

#. vars
#./build-dh

Работает около минуты, грузит CPU под 100% , генерит файл dh1024.pem

Генерация сертификатов и ключей клиентов

Выполняется по необходимости

#. vars
#./build-key client1
#./build-key client2

Файл настройки сервера

Редактируем файл /etc/openvpn/server.conf
Каналу отдаем сеть 172.16.145.0

# На каком локальном IP адресе OpenVPN сервер будет работать.
# (не обязательный параметр)
local 10.4.46.2

# Порт на котором он будет работать
# Стандартный порт 1194, но мб и другой
port 1194

# TCP или UDP сервер?
proto udp

dev tun

#Пути до ключей
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/Server1.crt
key /etc/openvpn/keys/Server1.key  # This file should be kept secret

dh /etc/openvpn_tun/keys/dh1024.pem

# Сеть и маска соединения
server 172.16.145.0 255.255.255.0
# Если нужно, что бы клиентам выдавался один и тот же адрес при
# каждом соединениии
ifconfig-pool-persist ipp.txt
# Route для клиентов (используется такая маска, что бы можно было видеть все 
# локальные сети с адресами 172.16.ххх.ххх. параметры мб другими, например,
# push "route 172.16.130.0 255.255.248.0"
# тогда rout будет на сети 172.16.130.0-172.16.137.0)
push "route 172.16.0.0 255.255.0.0"
# Директория настройки файлов клиентов
client-config-dir /etc/openvpn_tun/ccd
# Route для того что бы сервер видел клиентов (см выше, но только для сервера)
route 172.16.0.0 255.255.0.0
# Для того что бы клиенты видели друг друга
client-to-client

# Проверка связи каждые 10 сек. Если в течении 120 сек
# ответа не будет, считается, что канал упал
keepalive 10 120

# Нужна ли компрессия соединения.
comp-lzo
# Максим кол-во клиентов
max-clients 100
# Группа и пользователь, от имени которых работает демон.
user nobody
group nobody

persist-key
persist-tun

# Куда писать статус лог.
status openvpn-status.log
# Куда писать  лог.
log        /var/log/openvpn/openvpn.log
# Уровень логирования
verb 4

Создаем директорию /etc/openvpn_tun/ccd
Создаем там 2 файла по имени ключа для клиента
Файл buh

iroute 172.16.136.0 255.255.255.0

Файл uzo

iroute 172.16.135.0 255.255.255.0

Файлы настройки клиента

Копируем ключи buh.crt, buh.key, ca.crt на первый сервер в папку /etc/openvpn/keys
Копируем ключи uzo.crt, uzo.key, ca.crt на второй сервер в папку /etc/openvpn/keys
Редактируем или создаем файл /etc/openvpn/client.conf. Файлы на обоих серверах одинаковые, отличаются только ключами

client
;dev tap
dev tun
;proto tcp
proto udp
remote 10.4.46.2  1194
resolv-retry infinite
nobind
user nobody
group nobody
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/buh.crt
key /etc/openvpn/keys/buh.key
comp-lzo
verb 3