OpenVPN - руководство по установке

Вопросы по работе дополнительного ПО, которое можно поставить самому.

Модератор: Art.i

OpenVPN - руководство по установке

Сообщение ls » Пт апр 16, 2010 8:06 pm

В статье рассматривается установка и первоначальная настройка сервера OpenVPN ( http://openvpn.net/ ) на виртуальный выделенный сервер под управлением операционной системы Debian или CentOS Linux и настройка клиентского подключения с компьютера под управлением операционной системы Windows Vista.

Для использования OpenVPN необходимо заказать сервер на виртуализации KVM, тариф начиная с тарифного плана VDS-KVM-Разгон с операционной системой Debian или CentOS.

Установка сервера OpenVPN на сервер под управлением операционной системы Debian Linux


После активации сервера зайдите на него используя SSH-протокол, например, используя SSH-клиент PuTTY ( http://www.chiark.greenend.org.uk/~sgta ... nload.html ).

Выполните команду для запуска установки используя менеджер пакетов apt:

Код: выделить все
apt-get install -y openvpn


В некоторых случаях (если пакет не находится в репозитории) необходимо обновить кэш пакетов и экспортировать новый ключ репозитория
Пример:
Код: выделить все
apt-get update
....
....
W: There is no public key available for the following key IDs:
9AA38DCD55BE302B
W: GPG error: http://ftp2.de.debian.org lenny/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems


В таком случае необходимо поставить новый ключ выполнив две команды (вместо 9AA38DCD55BE302B может быть другой ключ):
Код: выделить все
gpg --keyserver pgpkeys.mit.edu --recv-key 9AA38DCD55BE302B
gpg -a --export 9AA38DCD55BE302B | apt-key add -


После успешной установки командой apt-get install openvpn необходимо будет создать ключи шифрования, которые будут использоваться для авторизации на OpenVPN сервере.

Создание криптографических ключей

Скопируйте файлы (утилиты для создания ключей) в папку файлов конфигурации openvpn выполнив команду:

Код: выделить все
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/


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

Код: выделить все
cd /etc/openvpn/


и выполните следующие команды для инициализации переменных окружения:

Код: выделить все
. ./vars
source ./vars


Инициализируйте каталог с ключами (ВНИМАНИЕ! Команда удалит старые ключи если они уже были созданы до этого) командой:

Код: выделить все
./clean-all


Создайте корневой сертификат (Certificate Authority) сервера:

Код: выделить все
./build-ca


Создайте сертификат и ключ для сервера:

Код: выделить все
./build-key-server server


При создании указываем все необходимые данные, в поле Common name обязательно указать имя server (оно также указано по-умолчанию).

Следующим действием, после создания файлов сертификатов сервера, создается файл ключей (параметров) DH (Диффи и Хеллмэна), для его создания следует использовать скрипт build-dh:

Код: выделить все
./build-dh


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

Указываете имя клиента (например, client1) при создании сертификата и выполните команду:

Код: выделить все
./build-key client1


После завершения создания всех файлов рекомендую сохранить резервную копию папки /etc/openvpn/keys где-либо в безопасном месте

В каталоге /etc/openvpn/keys нас интересуют 3 файла со следующими именами:
ca.crt
client1.crt
client1.key

Их необходимо будет скопировать на компьютер с которого будет осуществляться подключение. Копирование можно осуществить, например, используя протокол SCP/SFTP, а в качестве клиентского программного обеспечения для операционной системы Microsoft Windows использовать для этого программу WinSCP (http://winscp.net).

Настройка файлов конфигурации OpenVPN

После создания ключей следует настроить сервер. Скопируйте пример файлов конфигурации в каталог /etc/openvpn/ и разархивируйте его выполнив следующие команды:

Код: выделить все
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
cd /etc/openvpn
gunzip server.conf.gz


Теперь в каталоге /etc/openvpn находится файл конфигурации с именем server.conf

Внесите в него следующие необходимые изменения (укажите полные пути к файлам ключей):

Код: выделить все
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem


Остальные параметры оставляем такие какие были, то есть по-умолчанию.

Также для ведения логов (после настройки необходимо отключить) для поиска возможных проблем в работе можно в файле конфигурации OpenVPN сервера /etc/openvpn/server.conf добавить строку

Код: выделить все
log /var/log/openvpn.log


После окончания настройки запустите сервер и убедитесь в том, что он запускается с помощью следующих команд:

Код: выделить все
/etc/init.d/openvpn start
Starting virtual private network daemon: server.

ps ax|grep openvpn
 5175 ? Ss 0:00 /usr/sbin/openvpn --writepid /var/run/openvpn.server.pid --daemon ovpn-server --cd /etc/openvpn --config /etc/openvpn/server.conf


Настройка трансляции адресов (NAT) для выхода в интернет через сервер с установленным OpenVPN

Сервер настроен, однако выход в интернет после подключения к нему невозможен (возможна только установка VPN-тунеля до сервера).
Необходимо в файле конфигурации /etc/openvpn/server.conf указать необходимые маршруты (для перенаправления default gateway клиента на сервер):

Код: выделить все
push "redirect-gateway"


также необходимо поменять DNS-сервера, поскольку серверы интернет-провайдера могут запрещать рекурсивные запросы с чужих адресов, например, указав (DNS-сервер предварительно должен быть настроен на VDS) сервер 10.8.0.1 или какие-либо публичные DNS, например, Google Public DNS. Для этого в конфигурационный файл /etc/openvpn/server.conf также следует добавить строки:

Код: выделить все
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"


Если необходимо, чтобы клиенты, которые подключаются к серверу могли "видеть" друг-друга (отправлять к другу-другу пакеты и тем самым ходить "через сервер"), то необходимо раскоментировать параметр
Код: выделить все
client-to-client


Для работы NAT (трансляции адресов) необходимо настроить правила в firewall используя интерфейс управления фильтром пакетов iptables.

Для этого пропишите в файле /etc/rc.local следующие строки:

Код: выделить все
/sbin/iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
/sbin/iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

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

Выполните эти команды вручную чтобы применить необходимые правила, либо перезагрузите VDS чтобы убедиться что сервисы openvpn и правила iptables (их можно посмотреть командой iptables-save) запускаются автоматически.

На этом настройка OpenVPN сервера на VDS с операционной системой Debian Linux закончена.

Установка сервера OpenVPN на сервер под управлением операционной системы CentOS Linux

Конфигурация практически аналогична установке для Debian. Исключения составляет первоначальный процесс установки.

Поскольку в стандартном репозитории CentOS Linux пакет OpenVPN отсутствует, то для установки OpenVPN необходимо подключить дополнительный репозиторий RPMforge (http://rpmrepo.net/RPMforge).

Выполните следующие команды для установки:

Код: выделить все
wget -ivh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm


Тем самым репозиторий будет установлен и подключен и можно будет произвести установку OpenVPN используя стандартный менеджер пакетов yum воспользовавшись следующей командой:

Код: выделить все
yum -y install openvpn


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

Код: выделить все
cp /usr/share/doc/openvpn-2.0.9/easy-rsa/2.0/* /etc/openvpn/


Перейдите в папку /etc/openvpn/ и установите необходимые права выполнения на следующие файлы следующими командами:

Код: выделить все
cd /etc/openvpn/
chmod +x clean-all build-ca build-key-server build-dh build-key /etc/openvpn/whichopensslcnf ./build-ca


Создайте ключи (действуйте аналогично инструкции по установке на Debian Linux)

После чего скопируйте файл конфигурации openvpn в папку с файлами конфигурации

Код: выделить все
cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/


И также настройте его по аналогии с тем, как это настраивается на Debian Linux 5.0, равно как выполните другие настройки, например, настройте NAT если в этом есть необходимость полностью аналогичным образом.

Настройка OpenVPN клиента на операционной системе Windows Vista

Мы рекомендуем использовать в качестве клиентского программного обеспечения программный продукт OpenVPN GUI for Windows http://openvpn.se/

Скачайте его с офицального сайта http://openvpn.se/download.html файл openvpn-2.0.9-gui-1.0.3-install.exe и выполните его установку с параметрами по-умолчанию.

После завершения установки необходимо скопировать файл client.ovpn из каталога C:\Program Files\OpenVPN\sample-config\ в каталог c:\Program Files\OpenVPN\config\ и также скопировать в него (в этот каталог) следующие файлы сертификатов с сервера на котором производилась установка:
ca.crt
client1.crt
client1.key

В файле конфигурации клиента client.ovpn поменяйте строку:

Код: выделить все
remote my-server-1 1194


чтобы она указывала на адрес вашего сервера, например:

Код: выделить все
remote 172.16.0.2 1194


и также впишите другие (корректные) имена файлов сертификатов:

Код: выделить все
cert client1.crt
key client1.key


Если вы планируете "выходить в интернет" через OpenVPN-сервер, то необходимо также добавить строки которые позволят осуществлять изменение таблицы маршрутизации операционной системы Windows:

Код: выделить все
route-method exe
route-delay 2


И, кроме этого, потребуется запускать OpenVPN с правами администратора, например, следующим способом (по цепочке действий): Пуск - Программы - OpenVPN - правый клик на OpenVPN GUI и выбрать запуск с правами администратора.
В противном случае параметры смены настроек маршрутизации не будут применены.

Далее для подключения щелкните по значку в области системных уведомлений OpenVPN GUI и выберите меню Connect.

На этом настройка клиентского программного обеспечения для подключения к серверу OpenVPN завершена.
ls
Support team
 
Сообщений: 6350
Зарегистрирован: Чт мар 01, 2007 10:36 am
Откуда: FirstVDS

:)

Сообщение lamass » Вс апр 18, 2010 1:06 pm

Ничего на этом не завершено!!!

Где реализация под FreeBSD?

И почему не рассмотрен случай для раздавания_интернета_народу?

Хочется этот же материал видеть, но ориентированный на ваш FreeBSD набор (т.е. конфигурирование ipfw и т.д. и т.п.)

Ждем, уверен, я не один такой
lamass
 
Сообщений: 3
Зарегистрирован: Вс май 06, 2007 5:23 pm

Сообщение ls » Вс апр 18, 2010 1:35 pm

Пожалуйста, http://wiki.firstvds.ru - Можете написать вариант настройки для FreeBSD
Как раздавать интернет через NAT рассматривается, читайте внимательнее.
ls
Support team
 
Сообщений: 6350
Зарегистрирован: Чт мар 01, 2007 10:36 am
Откуда: FirstVDS


Вернуться в Дополнительные программы

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2