Итак, дорогой друг, сегодня мы с тобой научимся создавать шифрованные соединения между различными сетями на базе OpenVPN. Для начала дуй на
http://openvpn.net/ и тащи от туда свеженький исходник (как всегда для гурманов) или бинарник (для любителей Windows). Те, кто не любит особо заморачиваться с компилированием в ручную могут дуть /usr/ports/security/openvpn (FreeBSD ports) и устанавливать из портов.
Если ты, как и я, дома работаешь с Windows (он все же удобнее и поиграться можно, когда работа до смерти надоедает 😉), то советую тебе зайти еще и суда:
http://openvpn.net/gui.html
— это GUI для виндовой версии, для MacOS там по-моему тоже что-то было. Итак, скачали, поставили под Win, устанавливаем под FreeBSD. Для тех, кто впервые решил собрать что-то ручками, напоминаю традиционные команды.
#tar –zxvf openvpn-2.0_rc21.tar.gz
#cd openvpn-2.0_rc21
#./configure
#make
#make install
#make clean
Если для успешной сборки не хватает каких-нибудь пакетиков, или попробуй указать их через опции в./configure. Для удобной работы с конфигуратором, я обычно использую либо два терминала либо две сессии Putty. На одном запускаю:
#./configure –help | less
А на другом набиваю различные флаги. Так, с установкой вроде бы разобрались… Переходим к куда более интересной и сложной части, а именно созданию конфигурационных файлов и различного рода ключей.
Модификация BSD
Для того чтобы все заработало, необходимо пересобрать ядро со следующими опциями:
options IPSEC
options IPSEC_ESP
Редактим конфиг
Для работы серверной части нам понадобится совсем не много. Если хочешь почитать дополнительную инфу:
Если хочется поскорее рваться в бой, то просто повторяй за мной! Ух ты, уже в рифму писать начал! Так вот, редактируем конфиг:
#vi /usr/local/etc/openvpn/office.conf
Прописываем туда следующее:
daemon openvpn # просим наш openvpn сервер стать демоном, советую вставить эту #строчку только после того как все заработает.
dev tun # используем этот интерфейс
server 10.1.0.0 255.255.255.0 #укажем ip сервера в vpn сети
push «route 10.1.0.0 255.255.255.0» #– эта штука добавит маршрут vpn сети
push «route 194.1.1.0 255.255.255.0» #– эта добавит клиентам маршут сетки за vpn сервером
push «route 192.168.0.0 255.255.255.0» #- это маршрут до твоей домашней сети
client-to-client #закомментируй это, если не хочешь, чтобы vpn клиенты видели друг друга
tls-server #указываем, что это серверная конфигурация
dh /etc/ssl/dh2048.pem # это сертификат для шифровки установки соединения
ca /etc/ssl/CA_cert.pem # Это серверные сертификаты
cert /etc/ssl/certs/Cserv.pem #
key /etc/ssl/keys/Kserv.pem #
proto tcp-server #Скажем серверу работать по TCP протоколу
port 5000 # На порту 5000
user nobody #Пользователь, из-под которого стартует vpn сервер (не ставь root!)
group nobody #Ну а это группа
comp-lzo #Включаем сжатие
persist-tun #Использование тех же интерфейса и ключа при рестарте сервера
persist-key
tls-auth /etc/ssl/ta.key 0 # Защита от DOS атак
keepalive 10 120 # Время жизни неактивной сессии
verb 4 # Количество отладочной информации (от 0 до 9)
Так, все. С сервером закончили. Переходим к клиенту. Про ключи и сертификаты не волнуйся, создадим их попозже.
Windows OpenVPN client
Знаешь, этой штукой можно пользоваться даже на dialup-ом соединении, что для меня не маловажно! Скинул ключи да установщик на Flash-ку и не беспокойся больше, даже если ты в гостях у друга пьешь пиво и ешь мясо, а тут начальник позвонит и начнет ругаться, что у них что-то не работает, поднимаешь клиента у друга, только не догадайся копировать ключи ему на жестак. Конфиг скопируй, а пути поменяй до клиентских ключей на флешке, вот. Ах, да… Поехали дальше.
Жмешь ПУСК-Программы-OpenVPN… Входи в папку с конфигурационными файлами. Создай home.ovpn и напиши или скопируй туда этот конфиг:
client #Говорим, чтобы клиент забирал информацию о маршрутизации с сервера (вспомни # push опции)
remote ip-a #Вместо ip-a впиши реальный ip своего видимого в интернете сервера
tls-client # Это клиентская конфигурация
ns-cert-type server #Это еще одна защита, на этот раз от «man in the middle» атаки.
ca «H:\\config openVPN\\CA_cert.pem» # Это как раз пути ключей (Они у меня на флешке)
cert «H:\\config openVPN\\chome.pem»
key «H:\\config openVPN\\khome.pem»
tls-auth «H:\\config openVPN\\ta.key» 1 #Защита от DOS. Здесь в отличии от сервера стоит #единичка. Не перепутай, Кутузов! 😉
proto tcp-client #Клиент работает по TCP
port 5000 #Соединяется с 5000 портом
comp-lzo # Это ты уже знаешь
tun-mtu 1500 #Просто скопируй, если не знаешь сетей, я не смогу рассказать об этом в #двух строчках
tun-mtu-extra 32
mssfix 1450
Так, конфиг готов. Перейдем к более интересному занятию, генерации ключей и сертификатов.
OpenSSL рулит
Топай в /etc/ssl. Там создай 2 файла: index.txt и serial. Теперь запишем кое-что в serial:
#cd /etc/ssl
#touch index.txt
#touch serial
#echo “01” > ./serial
Теперь, создадим пару папок:
#mkdir certs
#mkdir keys
#mkdir crl
А теперь, немножко позаботимся о безопасности и изменим свой openssl.cnf. Я понимаю, что у тебя очумелые ручки, поэтому не забудь сделать копию этого файла, так, на всякий пожарный. 😉
#cp ./openssl.cnf ./ openssl.cnf.backup
#vi openssl.cnf
Найди параметр «default_days» и выставь его равным 9125 (это кол-во дней до того, как наши сертификаты перестанут работать). И в самый конец конфига подпиши вот что:
[ server ]
basicConstraints =CA:FALSE
nsCertType =server
После того, как ты создашь сертификаты, эта штука не даст всяким читающим этот журнал парнишкам провести простую «man in the middle» атаку. Если забудешь это прописать настройка «ns-cert-type server» в конфигурационном файле работать не будет.
Еще чуток терпения и ты сделаешь то, чего так долго ждал. ТЫ СДЕЛАЕШЬ ЭТО!
Вернемся на пути истинные:
#openssl req –new –x509 –keyout private/CA_key.pem –out CA_cert.pem
Введи пароль и не забудь его.
#openssl req –new –nodes –keyout keys/Kserv.pem –out req/Rserv.pem
Для этой строки важно, чтобы параметр Organization Name совпадал с тем, что ты указал при генерации CA_cert.pem.
#openssl ca -extfile /etc/ssl/openssl.cnf –extensions server –out certs/Cserv.pem –infiles req/Rserv.pem
Тебя зададут пару вопросов, на которые не думая долго отвечай «y».
Это было для сервера. Теперь повторим все то же самое, но для клиента.
#openssl req –new –keyout keys/Khome.pem –out req/Rhome.pem
#openssl ca –out certs/Chome.pem –infiles req/Rhome.pem
Не забудем про ta.key:
#openvpn —genkey —secret ta.key
Так, и на последок создаем Diffie-Hellman (фиг знает как это по-русски написать) файл
#openssl dhparam –out dh2048.pem 2048
Получив сообщение о его долгом создании, идем пить пиво (у меня и правда почти 20 минут создавался).
Забираем наши сертификаты
Все, принимай мои поздравления, ты все сделал! Теперь осталось только забрать с собой:
— CA_cert.pem
— Chome.pem
— Khome.pem
— ta.key
Для этого либо копируем на дискетку:
#mkdir /mnt/floppy
#mount -t msdos /dev/fd0a /mnt/floppy
# cp /etc/ssl/certs/Cnode.pem /mnt/floppy
#cp /etc/ssl/keys/Knode.pem /mnt/floppy
#cp /etc/ssl/CA_cert.pem /mnt/floppy
#cp etc/ssl/ta.key /mnt/floppy
#umount –f /dev/fd0a
Либо, если ты отважный черт, а значит делаешь все строчка за строчкой сразу на сервере, то используешь sftp клиент и забираешь все с сервака самостоятельно.
Ракета пошла
Теперь запускаешь OpenVPN сервер:
#openvpn –config /usr/local/etc/openvpn/office.conf
Создай небольшой openvpn.sh в /usr/local/etc/rc.d для автоматического запуска при перезагрузках:
case «$1» in
start)
echo -n «OpenVPN2 Starting… «
/usr/local/sbin/openvpn || exit 1
;;
stop)
echo -n «Shutting down OpenVPN2… «
/usr/bin/killall openvpn &>/dev/null || exit 1
;;
reload|restart)
$0 stop && sleep 1 && $0 start || exit 1
;;
*)
echo «Usage: $0 {start|stop|reload|restart}»
exit 1
esac
Фаервол
Прописываешь правило для ipfw, чтобы разрешить коннекты на наш с тобой демон:
#ipfw –q add pass tcp from any to me 5000
#ipfw –q add pass tcp from any to any via tun0
Так же можешь добавить это к своему фаервол скрипту.
Последний штрих
Для коннекта с Windows-клиента используешь GUI, как прописать его в автозагрузку для удобства, думаю, и сам разберешься.
Подведем итоги
Итак, ты только что настроил соединение между сервером-маршрутизатором, защищающим твою сетку где-то там и своей домашней сетью. Это великий шаг. Ты на еще один левел поднял свое искусство администрирования. Еще раз не поскуплюсь и поздравлю тебя. Знаешь, есть умные люди, которые не советуют таким образом создавать соединения между сетями. Мы добавили с тобой правило только позволяющее подключаться к твоему серверу и беспрепятственно бегать между двумя сетями. Если ты решишь увеличить число клиентов OpenVPN сервера, тебе придется дополнительно настроить и фаерволинг с безопастность, а чем больше интерфейсов на маршрутизаторе, тем сложнее за этим следить. Кроме того, ты только что выполнил расширение адресного пространства своих сетей. Этого как раз и не любят эти грамотные в вопросах безопасности дяди. Ну да ладно, это уже философские байки, раз хочешь, пользуйся. И напоследок, отправляю тебя на
http://openvpn.net/ , там много документации, с которой я бы на твоем месте ознакомился. Ну все, мне пора. Если что, адрес все тот же:
. Жду отзывов и предложений.
Очень часто наши клиенты присылают нам запросы по установке и настройке OpenVPN на наших VPS-серверах. Но много других пользователей даже не догадываются о преимуществах его использования. В данной статье рассмотрим для чего нужен OpenVPN и опишем области его применения .
OpenVPN – свободная реализация технологии с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами.
OpenVPN дает возможность устанавливать соединения между компьютерами, находящимися за NAT-firewall, при этом нет необходимости менять их настройки. Технология разработана Дж. Йонаном и выходит под бесплатной лицензией GNU GPL. Инструмент используют во многих популярных и широко используемых ОС: Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X, QNX и Microsoft Windows .
Прежде всего OpenVPN применяется для обеспечения. Правда, существует масса способов для решения этой проблемы. Но OpenVPN по праву считается наиболее подходящим вариантом в плане безопаснсоти. Далее рассмотрим почему.
Области применения технологии OpenVPN : для безопасного объединения сетей или серверов с помощью сети Интернет, для обхода блокировок локальных сетевых экранов или ограничений провайдеров, для осуществления контроля за использованием сетевого трафика в рамках одной сети, в качестве безопасного доступа на сервер или в Сеть и другое.
OpenVPN в основном применяют в качестве механизма защиты для частной Сети. Использовать подобный инструмент с открытым исходным кодом можно с целью полноценной разработки зашифрованного канала. Работатают с OpenVPN в режимах: точка-точка или сервер-клиенты. Считается по праву довольно полезным методом шифрования между компьютерами в условиях конкретной сети.
Для пользователя данной технологией предоставляется пару видов аутентификации:
Первый, с помощью предустановленного ключа, это по сути наиболее простой способ.
Второй, это сертификатная аутентификация, которая является очень гибкой в процессе настройки. И на завершение третий: с помощью логина и пароля (может работать без создания клиентского сертификата, но серверный сертификат все равно нужен).
OpenVPN использует статические, предустановленные ключи или обмен динамическими ключами на основе TLS. Существует поддержка соединения VPN с динамическими удалёнными узлами (DHCP или клиенты dial-up), туннели поверх NAT или с помощью полноценного межсетевого экрана.
Бесплатные и платные VPN-сервисы.
За счет чего достигается безопасность и шифрование в OpenVPN? Это, в первую очередь, обеспечено библиотекой OpenSSL и протоколом транспортного уровня Transport Layer Security. Но вместо OpenSSL в новых релизах OpenVPN может использоваться библиотека PolarSSL. Протокол TLS – усовершенствованная версия протокола защищенной передачи данных уровня защищенных сокетов Secure Socket Layers.
OpenVPN хорошо совмещен и связан с OpenSSL библиотеками, поэтому механизмы шифрования основаны в основном на нем.
Особенности использования OpenVPN на разных операционных системах . В зависимости от выбранной вами ОС, есть свои нюнсы в работе с частной сетью. Например, режим fast-io, который ускоряет UDP-соединение, может работать только в GNU/Linux. В системе Windows довольно часто возникают неполадки с изменениями маршрутов, для подобных решений использую опцию route-method.
OpenVPN портирован в MacOS X - существует свободно распространяемый проект tunnelblick. Нет поддержки параметра TCP_NODELAY ядром этой ОС. Разработан коммерческий проект viscocity для этой ОС. OpenVPN часто используют на маршрутизаторах некоторых производителей: Linksys и Mikrotik и другие.
используется на одном сервере в виртуальной сети, поэтому нет возможности устанавливать связь между клиентами напрямую. Для такого решения используют совсем другую технологию, под названием CloudVPN.
Кроме всех выше перечисленных преимуществах, применение в OpenVPN стандартных протоколов TCP и UDP, дает возможность стать альтернативой IPsec в случаях, когда Интернет-провайдер блокирует некоторые VPN протоколы.
OpenVPN – довольно универсальное программное обеспечение, которое предоставляет множество вариантов настройки в опытных руках пользователя. Как установить VPN от ГиперХост на ОС Android. Детальнее . Если Вам будет нужна помощь в настройке и установки данного продукта на наших , обращайтесь в техническую поддержку Hyper Host™ . Мы будем рады Вам помочь в кратчайшие сроки и в любое время суток!
Как обеспечить онлайн безопасность? для работы в Сети.
10308 раз(а) 23 Сегодня просмотрено раз(а)
1) На сайте openvpn.net переходим в раздел Community . Во вкладке Downloads нажимаем на Community Downloads .
2) Выбираем установочный файл в соответствии с разрядностью ОС (32bit /64bit ), установленной на и скачиваем его.
3) Запускаем установочный файл и выполняем шаги установки.
5) В процессе установки OpenVPN программа может запросить подтверждение установки TAP -драйвера. Данный запрос необходимо подтвердить нажатием на кнопку Установить .
6) На этом процесс установки завершается.
Настройка на стороне сервера
Рассмотрим пример настройки OpenVPN-соединения с использованием самоподписанного SSL-сертификата.
1) Запускаем командную строку.
Пуск (Start) -> Выполнить (Run) -> cmd
2) Переходим в директорию C:\Program Files\OpenVPN\easy-rsa при помощи команды:
Cd \Program Files\OpenVPN\easy-rsa
3) Запускаем файл init-config.bat в командной строке:
Init-config.bat
После запуска файла будет создан файл vars.bat .
4) Файл vars.bat необходимо открыть в текстовом редакторе (блокнот или Wordpad) и изменить данные для подписи ключей на свои личные. Отредактировать можно информацию в следующих строках:
Set KEY_COUNTRY=US #Страна set KEY_PROVINCE=CA #Область set KEY_CITY=SanFrancisco #Город set KEY_ORG=OpenVPN #Название компании set [email protected] #Контактный e-mail
Также, в случае отсутствия записи вида:
Set OPENSSL_CONF=C:\Program Files\OpenVPN\easy-rsa\openssl-1.0.0.cnf
необходимо её добавить под строкой:
Set KEY_CONFIG=openssl-1.0.0.cnf
Примечание: путь расположения и имя конфигурационного файла могут отличаться от указанных в примере. Поэтому предварительно убедитесь в том, что файл расположен и именован в соответствии с указанными данными.
5) Для создания index и serial файлов, выполняем поочередно следующие команды в командной строке:
Vars clean-all
6) Следующей командой создается СА-ключ, которым будет подписываться будущий SSL-сертификат. После запуска команды будут запрошены значения параметров. Если до этого вы внесли корректировки в файл vars.bat , то на параметры, указанные в 4-м шаге можно отвечать путём нажатия Enter . Исключением является параметр – Common Name . В нём необходимо ввести хостнейм сервера, либо доменное имя.
Build-ca
7) Создаем ключ Диффи-Хельмана.
Build-key-server <имя_сервера>
В нашем случае будет следующая команда:
Build-key-server server
Заполнение производится по аналогии 6-го шага. В поле Common Name в нашем случае указываем server . На оба вопроса «Sign the certificate? » и «1 out of 1 certificate requests certified, commit? » отвечаем согласием путём ввода «y «, и затем нажимаем Enter .
9) Cоздаем отдельный ключ для каждого клиента:
Build-key client1
Вводим необходимые контактные данные. В Common Name указываем client1 .
Переносим файлы из папки /keys в папку /config .
10) Из папки /sample-config копируем файл server.ovpn в папку /config
Настройка файервола
Убеждаемся в том, что порты 5194 и 1194 не заблокированы файерволом, иначе добавляем разрешающие правила на входящий и исходящий трафик:
11) Переходим в Start (Пуск) -> All programs -> Administrative Tools -> Windows Firewall with Advanced Security .
12) Нажимаем в левой части окна на Inbound Rules и в разделе Actions нажимаем на New rule . В результате должен появиться мастер создания правил.
13) Предложенные 5 шагов заполняем следующим образом:
Шаг 1 — Rule type: Port;
Шаг 2 — Protocol and Ports: По умолчанию в настройках OpenVPN сервера используется UDP-протокол. Если данная конфигурация не изменялась, то выбираем в данном шаге UDP . В противном случае — TCP . В поле Specific local ports указываем 5194 .
Шаг 3 – Action: Allow the connection;
Шаг 4 – Profile: Оставляем галочки включенными.
Шаг 5 – Name: Указываем название правила на своё усмотрение и нажимаем Finish .
14) Аналогичным образом добавляем правило для порта 1194 , после чего переходим в Outbound Rules и создаем два правила, идентичные тем, которые были созданы в Inbound .
Запуск сервера
15) Запускаем сервер OpenVPN путём нажатия правой кнопкой мыши на файле server.ovpn Sarting OpenVPN on this config file .
16) В результате появится командная строка, в которой будет отображен процесс запуска VPN-сервера. Если по окончанию будет выведена строка Initialization Sequence Completed , значит запуск прошел успешно.
Настройка на стороне клиента
Следующие шаги предполагают наличие уже установленного OpenVPN-клиента.
1) Из папки /sample-config на сервере скачиваем на компьютер файл client.ovpn в папку OpenVPN/config/
2) Из папки /config на сервере скачиваем файлы ca.crt , client1.crt , client1.key на компьютер в папку OpenVPN/config/
3) Открываем скачанный файл client.ovpn в текстовом редакторе и вносим следующие корректировки:
В записи remote my-server-1 1194 заменяем my-server-1 на IP-адрес сервера. В cert client.crt изменяем client.crt на client1.crt В key client.key изменяем client.key на client1.key
После этого сохраняем изменения.
4) Запускаем OPENVPN-GUI . В системном трее нажимаем правой кнопкой на иконке OpenVPN и в контекстном меню выбираем пункт Edit config .
Если открывшаяся конфигурация не соответствует файлу client.ovpn , то приводим настройки в соответствующий вид. Если соответствует, то закрываем редактор, вновь нажимаем правой кнопкой на иконке в системном трее и выбираем пункт Connect . Если в появившемся окне процесса соединения отобразятся строки:
Initialization Sequence Completed MANAGEMENT: >STATE: ********,CONNECTED,SUCCESS
Возможные ошибки
failed to update database TXT_DB error number 2Причина: при создании сертификата и ключа для клиента была указана информация, идентичная той, которая использовалась до этого для генерирования другого сертификата.
Решение: указание другой контактной информации.
WARNING: can"t open config file: /etc/ssl/openssl.cnf
Причина: некорректно установленный путь в переменной окружения OPENSSL_CONF .
Решение: необходимо объявить данную переменную в файле vars.bat , как указано в шаге 4 настройки на стороне сервера.
Последнее время всех будоражит вопрос настройки VPN. Если раньше о существовании VPN (Virtual Privat Network) знали системные администраторы, программисты и продвинутые пользователи, то сейчас эта аббревиатура у всех на устах. Каждый хочет настроить его, использовать для доступа к заблокированным сервисам или социальным сетям. А некоторым просто интересно, что это за зверь такой. Что же на самом деле собой представляет этот загадочный VPN? Если в двух словах, то с помощью VPN создается учacтoк ceти к кoтopoму имeeтe дocтуп тoлькo вы. Вся информация проходит через провайдера или какую-либо другую третью точку доступа, но в зашифрованном виде по специально созданному между сервером и вашим компьютером виртуальному каналу. Потом уже сервер от имени пользователя начинает путешествовать по интернету.
Таким образом, создается "тоннель" между компьютером и сервером, в котором вся информация зашифрована, и провайдер не понимает, на какой сайт переходит пользователь. Хакеры не смогут украсть ваши данные даже при подключении к публичному Wi-Fi, а история посещения сайтов будет доступна только вам.
Для чего нужен VPN
Прежде всего он необходим для анонимных действий в Интернете, для сокрытия вашего реального IP-адреса. Мне, например, не нравится, что любой системный администратор моего провайдера может при желании узнать, какие сайты посещаю, что покупаю и главное - как и чем расплачиваюсь. Также каждого беспокоит безопасность и конфиденциальность файлов. VPN-протоколы используют несколько протоколов шифрования (MD5-HMAC, RSA) и 2048-битные ключи позволяют осуществить параноидальное шифрование всех данных.
VPN-сервисы можно использовать для обхода блокировки провайдером или системным администратором на работе различных сайтов и социальных сетей. Некоторые сервисы ограничивают доступ в вашей стране или предоставляют скидки/привилегии/бонусы только в конкретных странах. VPN-соединение поможет вам стать резидентом этой страны и пользоваться сервисом в своё удовольствие. Но больше всего меня радует возможность эффективного сжатия трафика, которое позволяет компенсировать потери, а иногда даже ускорить соединение.
Почему я выбрал OpenVPN?
Когда стал вопрос о том, что мне необходим платный протокол VPN-соединения, то решил почитать немного о такой услуге, походил по сайтам и форумам, поспрашивал друзей, знакомых, системных администраторов. Большинство из них хвалили именно OpenVPN.
За почти 2 года использования я убедился, что они были правы. Протокол VPN-соединения работает без сбоев, стабильно и безопасно. Важным плюсом является наличие мобильных приложений клиента для Android, iOS, Windows 10 Mobile. Есть даже возможность использовать его без установки клиента, используя стандартные настройки VPN в Windows 10. Самое главное - шифрование моих файлов. Еще ни разу OpenVPN не подводил меня. А при наличии домашнего сервера - это один из главных плюсов при выборе VPN-клиента. Да и цена вполне приемлема. Высокое качество технической поддержки.
Настройка OpenVPN-клиента для Windows 10
Нам понадобится установочный файл клиента, который легко найти по .
Важно выбрать установщик с вашей разрядностью системы.
После того, как ваш ПК загрузит установщик, запустите его и следуйте простым указанием. Сама установка очень проста и понятна. Достаточно начальных знаний английского языка.
На Рабочем столе вашего устройства появится ярлык программы. Кликаете по нему правой кнопкой мыши и перейдите в раздел Свойства. А там нажмите на опцию Дополнительно. Нам необходимо разрешить клиенту запускаться от имени администратора. Пару манипуляций и все готово.
Теперь необходимо зайти в Проводник. Пройдя путь C:\ Program Files\ OpenVPN, откройте папку config и извлеките из полученного на почту при покупке подписки, либо скачанного из личного кабинета архива файлы с расширением .ovpn
Теперь останется только запустить снова клиент OpenVPN и подключится к нужному серверу. Несколько секунд и у вас появится VPN-соединение к примеру с местоположением в Люксембурге.
Как видите, ничего сложного. Но многие задали наверно себе вопросы: «Где брать файлы? Как их купить? Это же дорого?»
Для этого вам необходимо зарегистрироваться на сайте, которую пройти очень легко и просто.
Затем следует зайти в раздел Мои лицензии
и совершить покупку. Правда, сможете купить не меньше 10 клиентов OPenVPN, которые обойдутся вам в год всего лишь 150 долларов. Согласитесь, не так уж и дорого.
Стоит заметить, что существует и бесплатная версия OpenVPN. Заходите по ссылке freeopenvpn.org/ .
Выбираете из списка понравившийся вам VPN-сервер, скачиваете его в формате .ovpn. Запускаете клиент OpenVPN и подключаетесь к выбранному вами серверу. Только будьте готовы к тому, что бесплатный VPN-сервер-это реклама, незащищенность и нет никакого шифрования.
Какие есть альтернативы OpenVPN?
Последнее время на рынке очень много VPN-решений как платных, так и бесплатных. До OpenVPN я использовал Hotspot Shield , у которого есть также бесплатная версия и расширение для браузера Google Chrome. Бесплатная версия мне не понравилась, потому что вечно доставала меня сообщениями, что у них есть Elite версия, которая якобы лучшая в мире и т.д. Хотя из личного опыта скажу, что часто в работе данный VPN-сервис подтормаживал, защиты очень мало и плохое шифрование. База доступных IP-адресов незначительная.
Следует также обратить свое внимание и на NordVPN . У него достаточно высокая скорость и безопасность. NordVPN работает в юрисдикции Панамы, его сеть включает в себя 559 серверов, расположенных в 49 странах мира. Серверы поддерживают ряд настроек для шифрования и особого использования - например, для обмена файлами или трансляции потокового медиа-контента. Cервис поддерживает до 6 одновременных подключений, так что вы можете подключить все ваши устройства сразу.
Довольно популярный в кругу продвинутых пользователей VPN-сервис Zenmate , имеющий немецкое происхождение. Довольно качественный, быстрый в платной версии, удобная защита и шифрование. Есть бесплатное расширение для браузеров, но там всего 5 свободных каналов. Поэтому пользоваться им неудобно. Плюс он требует регистрации, а потом достает рассылкой с рекламой и предложениями купить коммерческую версию.
Наверно многие в последние дни слышали и читали о VPN-сервисе TunnelBear с логотипом прикольного медвежонка. Он тоже имеет бесплатную версию, правда с ограниченным трафиком всего 500 МБ в месяц. Очень простой в управлении, легко включить и выключить одним нажатием. Но у знакомого стоит платная версия TunnelBear и он вечно жалуется, что сильно падает скорость соединения, иногда в 5 и более раз. Обращался в центр поддержки, где ответили, что это из-за защиты, которую они обеспечивают.
В сухом остатке
Как видите на рынке довольно много VPN-сервисов. Если вам необходимо как-то скрывать свой IP-адрес, чтобы использовать запрещенные или ограниченные в доступе у нас сервисы, то смело покупайте VPN-протокол. Все зависит от вашего желания и финансовых возможностей. По поводу бесплатных VPN помните, что за все нужно платить. Как говорит мой один знакомый: «Бесплатно - не значит даром».
OpenVPN пользуется заслуженной популярностью у системных администраторов, когда нужно быстро и эффективно соединить VPN-каналами удаленные офисы. Сегодня предлагаем вам статью нашего читателя в которой он расскажет вам как настроить безопасный канал между офисами с дополнительной парольной защитой на платформе Windows.
И так нам нужно организовать VPN канал между двумя офисами. Сеть Офис 1 (назовем его С_ОФ1) и Сеть Офис 2 (назовем его С_ОФ2).
Скажу сразу что в моем случае OpenVPN в обоих офисах установлен на Windows 7.
С_ОФ1
включает:
Машина куда ставим OpenVPN Server имеет 2 сетевых интерфейса.
Также на ней установлен прокси-сервер который раздает инет в локалку, тем самым являясь для всех машин в локалке основным шлюзом(192.168.0.100)
192.168.0.100 смотрит в сеть
192.168.1.2 смотрит в мир через роутер. Роутер имеет статический IP скажем 111.222.333.444. На роутере сделан проброс порта 1190 (в моем случае порт 1190 проброшена на 192.168.1.2)
Пользователь в сети: 192.168.0.50
С_ОФ2
включает:
Машина куда ставим OpenVPN Client имеет 2 сетевых интерфейса.
Также на ней установлен прокси-сервер который раздает инет в локалку, тем самым являясь для всех машин в локалке основным шлюзом(172.17.10.10)
172.17.10.10смотрит в сеть
192.168.1.2 смотрит в мир через роутер.
Пользователь в сети: 172.17.10.50
Задача: Пользователь С_ОФ1(192.168.0.50) должен видеть расшареные ресурсы на Пользователе С_ОФ2 (172.17.10.50) и наоборот.
Приступаем к настройке
Скачиваем OpenVPN с в соответствии с разрядностью системы.
Запускаем установку, на 3-м шаге активируем неактивные пункты.
Следующий шаг - путь для установки. Чтобы облегчить себе дальнейшую жизнь, устанавливаем в корень диска С.
В процессе установки в систему инсталлируется виртуальный сетевой адаптер TAP-Win32 Adapter V9 и, соответственно, драйвер к нему. Этому интерфейсу программа OpenVPN как раз и будет назначать IP адрес и маску виртуальной сети OpenVPN. В нашем случае ему назначен адрес 10.10.10.1с маской 255.255.255.0 на сервере С_ОФ1 и 10.10.10.2 с аналогичной маской на клиенте С_ОФ2.
Переименуем его в "VPN"
В директории "C:\OpenVPN" следует сразу же создать дополнительно папку ssl
(здесь мы будем хранить ключи аутентификации) папку ccd
(здесь будут находится конфигурация настроек сервера для клиента).
В папке easy-rsa создаем файл vars.bat , данный пакетный файл будет задавать переменные для сеанса генерации сертификатов, в той части что касается организации и расположения заполняем своими данными.
Set HOME=C:\OpenVPN\easy-rsa
set KEY_CONFIG=openssl-1.0.0.cnf
set KEY_DIR=C:\OpenVPN\ssl
set KEY_SIZE=1024
set KEY_COUNTRY=RU
set KEY_PROVINCE=Stavropol
set KEY_CITY= Stavropol
set KEY_ORG=ServerVPN
set KEY_EMAIL=admin@localhost
set KEY_CN=test
set KEY_NAME=test
set KEY_OU=test
set PKCS11_MODULE_PATH=test
set PKCS11_PIN=1234
Запускаем командную строку от имени администратора.
Переходим по пути C:\OpenVPN\easy-rsa, набрав для перехода в командной строке команду
Cd C:\OpenVPN\easy-rsa
Запускаем vars.bat :
Теперь запускаем build-ca.bat . Так как вся информация о сервере у нас уже заполнена, все оставляем без изменений:
после этого у нас в папке ssl появится два файла ca.crt и ca.key .
Запускаем build-dh.bat :
в результате у нас в папке ssl появится файл dh1024.pem.
Создаем серверный ключ, для этого вводим команду:
Build-key-server.bat ServerVPN
где "ServerVPN " это название нащего VPN сервера, как в моем случае,
Важно! Указываем параметр "commonname" - пишем имя нашего VPN сервера. Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes
в результате у нас в папке ssl появятся файлы ServerVPN.crt , ServerVPN.csr , ServerVPN.key.
Приступаем к формированию клиентских ключей.
Выполняем команду:
Build-key.bat UserVPN_1
где "UserVPN_1 " имя нашего клиента.
Важно! Указываем параметр "commonname" - пишем имя нашего VPN клиента(UserVPN_1). Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes
В результате у нас в папке ssl появятся файлы UserVPN_1.crt , UserVPN_1.csr , UserVPN_1.key .
Если у вас несколько клиентов, то повторяем формирование ключей; не забывая каждому клиенту присваивать свои имена
Build-key.bat UserVPN_2
build-key.bat UserVPN_3
Генерация ключа tls-auth (ta.key) для аутентификации пакетов, для этого переходим в корневую папку OpenVPN:
и выполняем команду:
Openvpn --genkey --secret ssl/ta.key
в результате в папке ssl плучим файл ta.key .
Приступаем к созданию конфига сервера. В папке config создаем файл OpenVPN.ovpn :
#Порт для работы OpenVPN
port 1190
proto udp
#Тип интерфейса
dev tun
#Имя интерфейса
dev-node "VPN"
#Сертификат для шифрования подключения
dh C:\\OpenVPN\\ssl\\dh1024.pem
ca C:\\OpenVPN\\ssl\\ca.crt
#Сертификат сервера
cert C:\\OpenVPN\\ssl\\ServerVPN.crt
#ключ сервера
key C:\\OpenVPN\\ssl\\ServerVPN.key
# Защита от DOS атак (для сервера, после пути к ключу, ставим 0 а для клиента 1)
tls-server
tls-auth C:\\OpenVPN\\keys\\ta.key 0
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
#Диапазон IP адресов для VPN сети
server 10.10.10.0 255.255.255.0
cipher AES-256-CBC
#Логи
#Каталог, в которой лежит файл с названием нашего клиента, в моем случае UserVPN_1 без расширения, и в нем записать команды, которые будут выполнятся на клиенте:
client-config-dir "C:\\OpenVPN\\ccd"
verb 3
mute 20
# Максимальное количество одновременно подключенных клиенты мы хотим разрешить
max-clients 2
#Время жизни неактивной сессии
keepalive 10 120
#Разрешаем клиентам видеть друг друга
client-to-client
#Включаем сжатие
comp-lzo
persist-key
persist-tun
#Маршруты добавляются через.exe если без него, то не у всех прописываются маршруты
route-method exe
#Задержка перед добавлением маршрута
route-delay 5
#Команда которая сообщает клиентам что за сервером локальная сеть с адресами 192.168.0.0 255.255.255.0
push "route 192.168.0.0 255.255.255.0"
#Прописывает маршрут на сервере чтобы видеть сеть за клиентом
route 172.17.10.0 255.255.255.0 10.10.10.2
#Шлюз
route-gateway 10.10.10.1
# каждому клиенту выдается по 1 адресу, без виртуальных портов маршрутизатора
topology subnet
В папке ccd создаем файл без расширения и называем его точно, как клиента UserVPN_1 , открываем его блокнотом и пишем следующее:
#Присваиваем клиенту постоянный IP 10.10.10.2
ifconfig-push 10.10.10.2 255.255.255.0
#сообщаем серверу что за клиентом сеть 172.17.10.0
iroute 172.17.10.0 255.255.255.0
#если раскоментировать следующую строку, то клиент будет отключен (на случай если нужно этого клиента отключить от сервера, а остальные будут работать)
# disable
Создаем конфиг клиента.
#Говорим, чтобы клиент забирал информацию о маршрутизации с сервера (push опции)
client
#Порт для работы OpenVPN
port 1190
#Указываем по какому протоколу работает OpenVPN
proto udp
#Тип интерфейса
dev tun
#Имя интерфейса
dev-node "VPN"
# Адрес сервера, к которому подключаемся
remote 444.333.222.111 1190
#защита
remote-cert-tls server
#Сертификат центра сертификации
ca C:\\OpenVPN\\ssl\\ca.crt
#Сертификат сервера
cert C:\\OpenVPN\\ssl\\ UserVPN_1.crt
#ключ
key C:\\OpenVPN\\ssl\\ UserVPN_1.key
# Защита от DOS атак
tls-auth C:\\OpenVPN\\keys\\ta.key 1
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ping-restart 60
ping 10
#Включаем сжатие
comp-lzo
persist-key
persist-tun
# Выбор криптографического шифра
cipher AES-256-CBC
#Логи
status C:\\OpenVPN\\log\\openvpn-status.log
log C:\\OpenVPN\\log\\openvpn.log
#Уровень отладочной информации
verb 3
#Количество повторяющихся сообщений
mute 20
Устанавливаем на клиенте OpenVPN, предаём ему ca.crt , UserVPN_1.crt , UserVPN_1.key , ta.key .
Настраиваем файрволы и антивирусы на клиенте и на сервере для беспрепятственного прохождения пакетов. Описывать не буду все зависит от установленных антивирусов и файрволов.
После всего этого запускаем наш сервер и клиент.
Если все правильно сделали наш сервер получит IP 10.10.10.1 и подключится к нему клиент и получит IP 10.10.10.2 . И так подключение у нас состоялось теперь сервер и клиент пингуют друг друга по IP нашей VPN сети, то есть 10.10.10.1 и 10.10.10.2.
Для того чтобы пинг шел по внутренним адресам наших С_ОФ1 и С_ОФ2 нужно включить службу Маршрутизации и удаленного доступа .
Hужно зайти в свойства службы, настроить ее на автоматическое включение и запустить.
После этого мы сможем пинговать внутренние IP сервера и клиента (172.17.10.10 клиент и 192.168.0.100 сервер).
Но у этого способа есть маленький недостаток: после включения этой службы и подключения к нашему VPN-каналу на значке сетевого подключения повиснет красный крест до отключения VPN.
При этом все сети работают в штатном режиме. Лично меня этот крест раздражает и иногда сбивает с толку.
Есть второй способ как сделать видимыми внутренние IP сетей наших сервера и клиента.
Для этого заходим в реестр, открываем ветку реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TcpIP\Parameters
Находим параметр и меняем значение: IPEnableRouter типа REG_DWORD значение 1 .
Не забываем перезагрузить машину, чтобы настройки вступили в силу!
Это нужно проделать и на сервере, и на клиенте.
Итак мы пингуем наши сети по внутренним IP, а так как у нас и сервер и клиент для своих сетей являются шлюзами, то и машины из сети 1 могут видеть машины из сети 2 и наоборот. то есть Пользователь С_ОФ1(192.168.0.50) может видеть расшаренные папки Пользователя С_ОФ2 (172.17.10.50) и наоборот.
Если сервер и клиент не будут являться шлюзами для своих сетей, в том случае придётся прописывать маршруты руками.
Пример для С_ОФ1:
Route -p 172.17.10.0 255.255.255.0 192.168.0.100 (машина где установлен OpenVPN)
Пример для С_ОФ2:
Route -p 192.168.0.0 255.255.255.0 172.17.10.10(машина где установлен OpenVPN)
в моем случае этого не понадобилось.
Для автоматического запуска сервера и клиента нам нужно включить службу OpenVPN Service
теперь при загрузке машины сервер автоматически стартует, а при включении машины клиента он также автоматически подключится к серверу.
Дополнительная защита
Как известно в OpenVPN есть возможность аутентификации по сертификатам, как описано выше, а так же по логину и паролю, но можно еще и объединить их вместе. Насколько мне известно только в Linux есть возможность штатными средствами настроить аутентификацию по логину и паролю, но в Windows это тоже можно решить. Для этого в папке config создаем файл auth.vbs и пишем в него следующее
"VBscript auth.vbs для аутентификации в OpenVPN - auth-user-pass-verify auth.vbs via-file "(c) 2007 vinni http://forum.ixbt.com/users.cgi?id=info:vinni "Support: http://forum.ixbt.com/topic.cgi?id=14:49976 " в скрипте производится сравнение имени пользователя без учёта регистра. " Если нужно иначе - уберите UCase(...) в 2 или 4 местах On Error Resume Next " открываем файл, имя которого передано OpenVPN-ом в скрипт через параметр Set fso = CreateObject("scripting.filesystemobject") Set CurrentUserPasswordFile = fso.OpenTextFile(WScript.Arguments(0),1) "1 = for reading if Err.Number<>0 Then WScript.Quit(1) " читаем из этого файла 2 строки - имя и пароль, которые ввёл пользователь "на том конце" if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1) UserName=CurrentUserPasswordFile.ReadLine if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1) Password=CurrentUserPasswordFile.ReadLine CurrentUserPasswordFile.Close " открываем переменную окружения common_name (это CN предъявленного клиентом сертификата) " и сравниваем её с введенным именем пользователя. " если это сравнение не нужно, то следующие 2 строки удалить или закомменировать CurrentCommonName = CreateObject("Wscript.Shell").ExpandEnvironmentStrings("%common_name%") if UCase(CurrentCommonName) <> UCase(UserName) then WScript.Quit(1) " открываем наш файл с базой логинов и паролей " по умолчанию это Users.pw в текущем каталоге Set UserPasswordFileBase = fso.OpenTextFile("Users.pw",1) "1 = for reading if Err.Number<>0 Then WScript.Quit(1) " читаем в цикле пары строк, пропуская пустые МЕЖДУ ЭТИМИ ПАРАМИ, " и сравниваем их с тем, что ввёл пользователь. Do while not(UserPasswordFileBase.AtEndOfStream) NextUserName=UserPasswordFileBase.ReadLine if Err.Number<>0 Then WScript.Quit(1) if NextUserName<>"" then " если имя пользователя надо сравнивать с учётом регистра, то удалите здесь UCase(...) if UCase(UserName)=UCase(NextUserName) then if Password=UserPasswordFileBase.ReadLine then " если имя и пароль совпали с парой из базы, то завершаем скрипт с результатом 0 " так нужно для OpenVPN"a, это признак успешной аутентификации UserPasswordFileBase.Close WScript.Quit(0) end if else UserPasswordFileBase.ReadLine end if end if Loop " если поиск завершился безуспешно, то завершаем скрипт с результатом 1 " так нужно для OpenVPN"a, это признак НЕуспешной аутентификации UserPasswordFileBase.Close WScript.Quit(1)
Так же в папке config содаем файл Users.pw туда пише логин и пароль нашего клиента
UserVPN_1
123456
Если несколько клиентов то:
UserVPN_1
123456
UserVPN_2
365214
UserVPN_3
14578
Дальше нужно в конфиге клиента прописать строку auth-user-pass , теперь когда клиент будет подключаться к серверу у него будет выплывать окно авторизации где нужно ввести логин и пароль, который вы назначили ему в Users.pw ,их нужно будет сообщить клиенту.
У меня настроено что имя пользователь(логин) соответствует имени клиента в сертификате, то есть UserVPN_1 . но можно задать и другое имя отличное от имени в сертификате, для этого нужно смотреть настройки в auth.vbs .
" открываем переменную окружения common_name (это CN предъявленного клиентом сертификата)
" и сравниваем её с введенным именем пользователя.
" если это сравнение не нужно, то следующие 2 строки удалить или закомменировать
CurrentCommonName = CreateObject("WscrIPt.Shell").ExpandEnvironmentStrings("%common_name%")
if UCase(CurrentCommonName) <> UCase(UserName) then WScrIPt.Quit(1)
WScrIPt.Echo "Debug: CurrentCommonName= " & CurrentCommonName
А для того чтобы аутентификация работала и по сертификату, и по логину с паролем, но при этом не выплывало окно авторизации пользователя, так как это будет задерживать подключение клиента к серверу если, например, у вас включена автоматическая загрузка службы OpenVPN Service (как настроено у меня) или вы просто не хотите каждый раз вводить логин и пароль, в этом случае на клиенте в папке ssl создаем файл pass.txt и пишем в него наш логин и пароль вот так:
UserVPN_1
123456
а в конфиге клиента меняем строку auth-user-pass на auth-user-pass C:\\OpenVPN\\ssl\\pass.txt .
Теперь я включаю машину где установлен OpenVPN -Server, запускается служба и сервер VPN автоматически поднимается. Клиент запускает машину и у него также проходит автоматическое подключение к моему серверу. Теперь можно заходить в общие папки или по RDP работать, например, в 1С, установленной в другой организации.
контакты [email protected]
Теги:
Значение слова неудачный
Обзор Samsung Galaxy A7 (2017): не боится воды и экономии Стоит ли покупать samsung a7
Делаем бэкап прошивки на андроиде
Как настроить файл подкачки?
Установка режима совместимости в Windows