В статье рассматривается установка и первоначальная настройка сервера 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 завершена.