Информация
На главную Главная

Мой t-cards.ru
Войти Войти
Зарегистрироваться Регистрация

Разное
Форум Форум
Вернуться Форумы на t-cards.ru> Hard"n"Soft
Логин
Пароль
Регистрация Участники Поиск >> FAQ


Сообщения в теме: "OpenVPN в режиме сервера TAP..."
04.07.2009 14:57
Новичок

Регистрация: 04.07.2009
Проживание:
Сообщения: 3
По умолчаниюOpenVPN в режиме сервера TAP

Сначало Ядро:
Device Drivers - >
<*> Network device support - - →
<*> Universal TUN/TAP device driver support

Установка:

Cмотрим флаги
# emerge -pv openvpn
и устанавливаем
# emerge openvpn

Настройка:

1.Сначала настроим файл переменных для генерации ключей

# cd /usr/share/openvpn/easy-rsa/
# vi vars
Здесь нас интересует переменная KEY_DIR, туда будут падать генерированные ключи. При чем папка не должна существовать т.к. в последствии запускаемый скрипт все равное ее убьет и пересоздаст заново.
Последние пять строчек правим по своему усмотрению. В названиях не должно быть пробелов.
-------------------------------------------------------------------------------
export EASY_RSA="`pwd`"
export KEY_CONFIG="$EASY_RSA/openssl.cnf"
export KEY_DIR="/etc/openvpn/keys"
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY="RU"
export KEY_PROVINCE="RU"
export KEY_CITY="Mocsow"
export KEY_ORG="YITO"
export KEY_EMAIL="ad@mpk.ru"

2.Первая генерация ключей

Загружаем переменные
# source ./vars

Запускаем скрипт создающий каталог указанный в KEY_DIR, а так же два необходимыx файла
index.txt и serial, причем в файл serial приписывается 01.
ВНИМАНИЕ — если в каталоге что то существует это будет удалено безвозвратно rm -rf
# ./clean-all

Генерируем:
# openvpn --genkey --secret ta.key генерация ключа для использования tls-auth
Файл ключа создастся в /usr/share/openvpn/easy-rsa/. Остальные ключи там, куда указывает KEY_DIR.
Файл ta.key можно свободно копировать в нужное место.

Дальше:
# ./build-dh - генерация ключа Диффи-Хеллмана . Этот процесс может занять некоторое время.
# ./pkitool --initca - Certificate Authority для сервера.
# ./pkitool --server hydra - генерируем сертификат X.509 для сервера hydra.
# ./pkitool lazy - генерируем сертификат X.509 для клиента lazy.

Все необходимые ключи созданы, раздаем ключи клиентам:

Всем клиентам:
ca.crt
dh1024.pem
ta.key

Клиенту для которого предназначен сертификат:           
lazy.crt
lazy.csr (не нашел применение)
lazy.key
Файлы *.key необходимо пересылать на клиентские машины через заведомо защищённый канал.

3.Конфигурируем сервер:
# vi /etc/openvpn/openvpn_srv.conf
------------------------------------------------------------------------------
#режим сервера
mode server
#использовать TLS-аутентифкацию
tls-server
tls-timeout 120
#прослушивание по tcp-протоколу
proto tcp-server
#использовать tap устройство
dev tap
#прослушиваемый порт 1194
port 1194
#скрипт который будет выполнятся при поднятии впн туннеля
#up /etc/openvpn/upscript.sh
#режим демона
daemon
#TLS-ключ
tls-auth /etc/openvpn/keys/ta.key 0
#указываем файл с CA
ca /etc/openvpn/keys/ca.crt
#сертификат сервера
cert /etc/openvpn/keys/hydra.crt
#указываем ключ сертификата
key /etc/openvpn/keys/hydra.key
#файл Диффи-Хеллмана
dh /etc/openvpn/vserver/keys/dh1024.pem
#указываем IP-адрес сервера и маску виртуальной сети
ifconfig 172.16.1.1 255.255.255.224
#описываем наш vpn пул
#IP-адрес через push "ifconfig адрес маска"
ifconfig-pool 172.16.1.2 172.16.1.30
# Если вы хотите, что бы за клиентами закреплялись постоянные адреса,
# добавьте следующий параметр:
# Он определяет файл, в котором будет сохраняться информация о машине и ее IP.
# Файл содержит строки:
# Имя машины,IP адрес. Во время работы.
# Cервер с периодичностью в 600 секунд обновляет содержимое этого файла.
# При включении, сервер читает содержимое файла.
# Эта обция НЕ РАБОТАЕТ если включено duplicate-cn
ifconfig-pool-persist /var/log/openvpn-ipp.txt
# В этом файле сохраняется информация о текущих соединениях сервера.
status /var/log/openvpn-status.log 1
status-version 2
# Добавляем клиенту необходимые маршруты на локальные подсети, например:
push "route 194.187.205.0 255.255.255.0"
# Шлюз для вышеуказанных маршрутов
push "route-gateway 172.16.1.1"
#разрешаем дублирование сертифкатов
#если упустить эту опцию то на каждого клиента надо
#генерировать отдельный сертификат с помощью pkitool
#duplicate-cn
#включаем режим отладки
verb 3
#алгоритм шифрования.Список алгоритмов можно получить
#с помощью команды openvpn --show-ciphers
cipher DES-EDE3-CBC
#не перечитывать ключ при сбросе соединения
persist-key
#лог файл
log-append /var/log/openvpn.log
persist-tun
#включаем сжатие
comp-lzo

При такой конфигурации сервера, каждому клиенту необходимо генерировать свой ключ.

Генерация нового ключа клиента:

# cd /usr/share/openvpn/easy-rsa/
# source ./vars
# ./pkitool petrov
Получаем в коталоге KEY_DIR три файла petrov.* и отдаем их Петрову ...

Запуск сервера:
# cd /etc/init.d/
# ln -s openvpn openvpn_srv
# /etc/init.d/openvpn_srv start

OOps, пол статьи не влезло, продолжение в следующем посте ...
04.07.2009 15:14
Новичок

Регистрация: 04.07.2009
Проживание:
Сообщения: 3
По умолчаниюOpenVPN в режиме сервера TAP

4.Конфигурация клиентов:

Windows: (проверял, работает)
Файл с:\\\\Program Files\\\\OpenVPN\\\\config\\\\client.ovpn
-------------------------------------------------------------------------------
#работа в режиме клиента с TLS-аутентифкацией
tls-client
ns-cert-type server
#протокол tcp
proto tcp-client
#удаленный сервер
remote server.domain.ru
#устройство
dev tap
port 1194
cd C:\\key
#принимать команды push от сервера.то есть позволять переконфигурировать клиента
pull
#файл для авторизации
tls-auth C:\\key\\ta.key 1
#указываем файл Диффи-Хеллмана
dh C:\\key\\dh1024.pem
#указываем файл CA
ca C:\\key\\ca.crt
#указываем файл с сертификатом клиента
cert C:\\key\\lazy.crt
#указываем файл с ключем клиента
key C:\\key\\lazy.key
#алгоритм шифрования
cipher DES-EDE3-CBC
#использовать сжатие
comp-lzo

Два слеша ' \\ ' не ошибка, именно так Windows OpenVPN понимает пути.

Gentoo Linux: (не проверял, но должно работать)
# emerge openvpn
# vi /etc/openvpn/openvpn_client
-------------------------------------------------------------------------------
#работа в режиме клиента с TLS-аутентифкацией
tls-client
#протокол tcp
proto tcp-client
#удаленный сервер
remote server.domain.ru
#устройство
dev tap
port 1194
cd /etc/openvpn/
#принимать команды push от сервера.то есть позволять переконфигурировать клиента
pull
#файл для авторизации
tls-auth /etc/openvpn/keys/ta.key 1
#указываем файл Диффи-Хеллмана
dh /etc/openvpn/keys/dh1024.pem
#указываем файл CA
ca /etc/openvpn/keys/ca.crt
#указываем файл с сертификатом клиента
cert /etc/openvpn/keys/lazy.crt
#указываем файл с ключем клиента
key /etc/openvpn/keys/lazy.key
#алгоритм шифрования
cipher DES-EDE3-CBC
#использовать сжатие
comp-lzo

Запуск клиента:
# cd /etc/init.d/
# ln -s openvpn openvpn_client
# /etc/init.d/openvpn_client start