Карта сайта
Обслуживание компьютеров, ремонт компьютеров, 1С предприятие, обслуживание серверов,создание сайтов, продвижение сайтов, доработка 1С предприятие
О компании | Статьи | | Простая настройка OpenVPN с фиксированными адресами клиентов

« Назад « На главную

Простая настройка OpenVPN с фиксированными адресами клиентов

В этой заметке подробно описана процедура настройки OpenVPN (virtual private network — виртуальная частная сеть), в рамках модели сервер-клиент и способ фиксации адресов клиентов в виртуальной сети, на базе сертификатной аутентификации. Эта технология позволяет быстро и экономично поднимать виртуальные локальные сети на базе существующих физических или интернета.


Стоит заметить, что компания OpenVPN предлагает использовать свой продукт OpenVPN Access Server (пакет openvpn-as) — сервер с возможностью настройки и контроля доступа через web-интерфейс, но, к сожалению, количество клиентов для него ограничено лицензией, поэтому опишем процедуру настройки пакета openvpn.


Прежде всего определимся с адресным диапазоном.
Необходим один внешний фиксированный IP адрес для VPN-сервера (в том случае если VPN будет работать через интернет), условно обозначим его 9.9.9.9
Диапазон внутренних адресов виртуальной сети мы предлагаем использовать такой: 192.168.10.2 — 192.168.10.99


Часть I — настройка сервера


Установим пакет из репозиториев, в Debian/Ubuntu это:


sudo apt-get install openvpn


После установки перейдем в папку со скриптами генерации ключей (в различных дистрибутивах путь может различаться):


cd /usr/share/doc/openvpn/examples/easy-rsa/2.0


Отредактируем файл переменных:


sudo nano vars


В файле vars измените следующие значения:


export KEY_DIR="/etc/openvpn/keys" # путь к папке где будут лежать ключи
export KEY_COUNTRY="RU" # это и следующие значения изменяйте по-собственному усмотрению
export KEY_PROVINCE="MS"
export KEY_CITY="Moscow"
export KEY_ORG="СompanyName"
export KEY_EMAIL="some@address.ru"


Следующие команды рекомендуем выполнять под root’ом, дабы не возникло проблем с правами:


su
mkdir /etc/openvpn/keys
mkdir /etc/openvpn/ccd
source ./vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server
./pkitool client
openvpn --genkey --secret ta.key
mv ./ta.key /etc/openvpn/keys


Эти команды создают необходимые папки и генерируют сертификаты для сервера и клиентов с данными введенными в файл vars.
Создадим файл настроек:


nano /etc/openvpn/openvpn.conf


В него добавьте следующий текст:


mode server # указывает программе работать в режиме сервера
tls-server # активирует работу Transport Layer Security (криптографический протокол) сервера
proto tcp-server # выбираем протокол TCP (если необходим UDP, тогда: proto udp)
dev tap # используемый тип интерфейса - L2 туннель (для L3-туннеля: dev tun)
port 1200 # указываем порт, по которому будет работать OpenVPN
daemon # программа будет работать в режиме демона, если нет в этом необходимости - просто раскомментируйте строку
tls-auth /etc/openvpn/keys/ta.key 0 # активирует дополнительный уровень аутентификации
ca /etc/openvpn/keys/ca.crt # путь к корневому сертификату
cert /etc/openvpn/keys/server.crt # путь к сертификату сервера
key /etc/openvpn/keys/server.key # ключ сервера
dh /etc/openvpn/keys/dh1024.pem # файл алгоритма Diffie-Hellman
client-config-dir /etc/openvpn/ccd # путь к каталогу индивидуальных клиентских конфигураций
ifconfig 192.168.10.1 255.255.255.0 # устанавливает виртуальный адрес сервера
ifconfig-pool 192.168.10.2 192.168.10.99 # устанавливает диапазон виртуальных адресов для клиентов
push "route 192.168.10.0 255.255.255.0 192.168.10.1" # эта команда будет выполняться на клиентских компьютерах, во время инициализации OpenVPN, она будет активировать роутинг так, чтобы клиенты автоматически использовали openvpn-сервер как шлюз для этой подсети
duplicate-cn # включает возможность использования одного ключа несколькими клиентами
verb 3 # указывает уровень отладки
cipher DES-EDE3-CBC # шифрование по алгоритму DES-EDE3-CBC
persist-key # будет загружать ключи в режиме persist, то есть их перезагрузка не потребуется в случае разрыва соединения
log-append /var/log/openvpn.log # путь к файлу лога
persist-tun # активирует работу tun/tap устройств в режиме persist
comp-lzo # активирует использование сжатия


Всё, если процедура прошла без ошибок, то сервер готов. Перезапустите его командой:


sudo /etc/init.d/openvpn restart


Часть II — настройка клиента


Прежде всего установим пакет и создадим папку для хранения ключей:


sudo apt-get install openvpn
sudo mkdir /etc/openvpn/keys


С сервера надо взять 4 файла:


ca.crt
client.crt
client.key
ta.key


и скопировать их в папку /etc/openvpn/keys клиента.


Создаем файл-настроек клиента:


sudo nano /etc/openvpn/client.conf


Добавляем в него следующий текст:


tls-client # указывает программе работать в режиме клиента
proto tcp-client # активирует протокол TCP
remote 9.9.9.9 # внешний адрес сервера
dev tap # используемый тип интерфейса - L2 туннель
port 1200 # номер openvpn-порта сервера
cd /etc/openvpn # указывает на директорию по-умолчанию
pull # указывает принимать команды от сервера
tls-auth /etc/openvpn/keys/ta.key 1 # активирует дополнительный уровень аутентификации
ca /etc/openvpn/keys/ca.crt # путь к корневому сертификату сервера
cert /etc/openvpn/keys/client.crt # путь к сертификату клиента
key /etc/openvpn/keys/client.key # путь к ключу клиента
cipher DES-EDE3-CBC # шифрование по алгоритму DES-EDE3-CBC
log-append /var/log/openvpn.log # путь к файлу лога
comp-lzo # активирует использование сжатия


Клиент готов, можно запускать:


sudo /etc/init.d/openvpn restart


После успешного запуска должен появиться виртуальный сетевой интерфейс с адресом в пределах выделенного на сервере диапазона.


Также, вероятно, вам потребуется настроить корректным образом роутинг на вашей клиентской машине. К примеру в linux для добавления маршрута к другой подсети доступной на сервере обычно это делается так:


sudo route add -net 192.168.5.0 netmask 255.255.255.0 gw 192.168.10.1 tap0


Также необходимые подсети вы можете добавить в конфигурационный файл сервера /etc/openvpn/openvpn.conf, добавив строки подобно этой:


push "route 192.168.5.0 255.255.255.0 192.168.10.1"


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


Часть III — настройка фиксированных адресов


Если есть необходимость в том, чтобы клиентские адреса не выдавались автоматически в пределах диапазона, а были всегда строго фиксированы, то достаточно выполнить следующие инструкции…


Информация о фиксированных адресах в нашем случае будет храниться на сервере, а назначаться они будут в соответствии с ключами (то есть каждый клиент с фиксированным адресом должен будет иметь свой уникальный ключ, ну а те клиенты, кому подходят динамические адреса — могут использовать общий клиентский ключ). Для этого на сервере генерируем два дополнительных ключа:


cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./pkitool client1
./pkitool client2


Создаем файл для client1:


sudo nano /etc/openvpn/ccd/client1


В него добавляем строку:


ifconfig-push 192.168.10.51 255.255.255.0


Аналогичным образом сделаем и для client2:


sudo nano /etc/openvpn/ccd/client2


Где добавим строку:


ifconfig-push 192.168.10.52 255.255.255.0


Такая настройка сделает адрес client1 — 192.168.10.51, а client2 — 192.168.10.52.
К этому стоит добавить, что эти файлы в папке ccd (параметр — client-config-dir) являются отдельными конфигурационными файлами клиентов, можете добавить в них какие-либо параметры по-своему усмотрению.


Настройка клиента для использования фиксированного адреса производится аналогично тому, как описано выше, единственное отличие в шагах, это то, что вместо client.crt и client.key вам надо скопировать и указать в файле конфигурации client1.crt и client1.key или client2.crt и client2.key соответственно.

06 Ноябрь 2012 г.



метки:



Вверх

Подписаться на RSS

  • Новости
  • Статьи
  • Разделы статей

    Наши контакты

    +7 922 292-00-34

    +7(343)361-52-00

    Напишите нам через форму!!!

    Быстрая форма связи с нами

     
    Ваше имя?*
    Как с Вами связаться?*
    Опишите вопрос или сообщение*
    Введите код *


    Знаком (*) выделены обязательные поля.
    Каталог интернет ресурсов - ИнфоПитер
    Наверх

    ООО "Бизнес Технологии"© 2010 г.

    Написать автору

    Карта сайта