Настройка OpenVPN сервера: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Генерация сертификатов и ключей клиентов)
(Файл настройки сервера)
Строка 63: Строка 63:
 
</pre>
 
</pre>
 
===Файл настройки сервера===
 
===Файл настройки сервера===
Редактируем файл /etc/openvpn/server.conf
+
Редактируем файл /etc/openvpn/server.conf<br>
 +
Каналу отдаем сеть 172.16.145.0
 
<pre># На каком локальном IP адресе OpenVPN сервер будет работать.
 
<pre># На каком локальном IP адресе OpenVPN сервер будет работать.
 
# (не обязательный параметр)
 
# (не обязательный параметр)
Строка 77: Строка 78:
 
dev tun
 
dev tun
  
 +
#Пути до ключей
 
ca /etc/openvpn/keys/ca.crt
 
ca /etc/openvpn/keys/ca.crt
 
cert /etc/openvpn/keys/Server1.crt
 
cert /etc/openvpn/keys/Server1.crt
Строка 85: Строка 87:
 
# Сеть и маска соединения
 
# Сеть и маска соединения
 
server 172.16.145.0 255.255.255.0
 
server 172.16.145.0 255.255.255.0
 +
# Если нужно, что бы клиентам выдавался один и тот же адрес при
 +
# каждом соединениии
 
ifconfig-pool-persist ipp.txt
 
ifconfig-pool-persist ipp.txt
# Route для клиентов
+
# 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"
 
push "route 172.16.0.0 255.255.0.0"
 
# Директория настройки файлов клиентов
 
# Директория настройки файлов клиентов
 
client-config-dir /etc/openvpn_tun/ccd
 
client-config-dir /etc/openvpn_tun/ccd
# Route для того что бы сервер видел клиентов
+
# Route для того что бы сервер видел клиентов (см выше, но только для сервера)
 
route 172.16.0.0 255.255.0.0
 
route 172.16.0.0 255.255.0.0
 
# Для того что бы клиенты видели друг друга
 
# Для того что бы клиенты видели друг друга
Строка 116: Строка 123:
 
# Уровень логирования
 
# Уровень логирования
 
verb 4</pre>
 
verb 4</pre>
 +
Создаем директорию /etc/openvpn_tun/ccd<br>
 +
Создаем там 2 файла по имени ключа для клиента<br>

Версия 07:19, 21 мая 2008

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

Инсталяция

Итак устанавливаем пакет 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 файла по имени ключа для клиента