как установить vpn на kali linux
Как установить VPN для Kali Linux
# apt – get install network – manager – openvpn – gnome
# apt – get install network – manager – pptp – gnome
# apt – get install network – manager – vpnc – gnome
# apt – get install network – manager – openconnect – gnome
# apt – get install network – manager – ssh – gnome
# apt – get install network – manager – strongswan
# apt – get install network – manager – iodine – gnome
Anything in here will be replaced on browsers that support the canvas element
Kali Linux. Установка и настройка VPN
Как и обещал, первая из статей по Kali Linux.
Но сегодня мы не будем рассматривать хаки и подобное.
Эта статья будет как настроить VPN протокол в Kali Linux.
В Kali в пункте «Сетевые соединения» можно увидеть пункт «VPN» но он не активен.
Наша задача установить модули, чтобы пункт был активен.
В установке ничего сложного нет, необходимо лишь ввести некоторые команды в консоль.
Но прежде чем я напишу нужные команды, напишу про то, если вы используете Kali Linux на виртуальной машине.
Чтобы использовать протоколы VPN (ещё это касается различных атак на Wi Fi), необходимо иметь отдельный USB Wi Fi модуль. То есть если вы с ноутбука и у вас встроенный Wi Fi у вас не выйдет поработать, по причине что этот модуль будет использован вашей основной ОС. Но бывают заморочки, лучше ставить отдельную ОС.
Лично я использую TP-Link TL-WN722N для этих целей. И в качестве виртуальной машины лучше выбирать VMware player, с Virtual Box у меня не вышло поработать, модуль не определялся виртуальной машиной, если вам удастся разобраться с проблемой, отпишите в комментариях.
Если же Kali Linux установлен в качестве основной операционной системы, проблем никаких возникнуть не должно.
Первым делом если вы давно не обновлялись то советую обновиться, иначе могут возникнуть ошибки.
apt-get update
apt-get upgrade
Когда полностью обновились, устанавливаем VPN.
Открываем консоль и вводим по порядку следующие команды.
apt-get install network-manager-openvpn-gnome
apt-get install network-manager-pptp
apt-get install network-manager-pptp-gnome
apt-get install network-manager-strongswan
apt-get install network-manager-vpnc
apt-get install network-manager-vpnc-gnome
/etc/init.d/network-manager restart эта команда сделает рестарт менеджера сети.
Теперь можно использовать VPN.
Использование VPN.
Рассмотрим как использовать OpenVPN и PPTP протоколы.
OpenVPN.
Чтобы использовать протокол OPENVPN, скачиваем файл конфигурации с расширением OVPN.
Помещаем его в удобное для нас место, я использую рабочий стол.
Далее открываем консоль, переходим в папку с рабочим столом командой
После чего осталось дождаться подключение. Если потребуется имя пользователя(login) и пароль(password) вводим те данные которые показаны на сайте где вы взяли VPN.
Если всё хорошо, то увидим надпись «Initialization Sequence Completed». Консоль не закрываем, должно быть открыто пока работаете.
Если бесконечно идет подключение проблема скорее всего в сервере, попробуйте использовать другой файл конфигураций VPN.
PPTP.
Переходим в менеджер сети, «Соединения VPN-настроить VPN».
И вводим данные. Пример с vpnme.me
Когда всё прописали, сохраняем и подключаемся.
Вот в принципе и всё, никаких танцев с бубном и прочего.
И по возможности используйте платные VPN серверы, для надежности и проверяйте изменился ли ваш IP.
Это всё что я хотел сегодня написать на своем интернет блоге. Берегите себя и свои компьютеры.
Настройка VPN на Kali Linux
VPN создана для установления виртуального соединения между узлами с использованием выделенных соединений, виртуальных туннельных протоколов или шифрование трафика. На Kali Linux, по умолчанию, опция VPN является неактивной, т. е. недоступной для добавления новых соединений. Эта инструкция покажет пользователям, как установить необходимые пакеты для разрешения проблемы с невозможностью добавить VPN и включением VPN на Kali Linux.
Виртуальная частная сеть (VPN) расширяет частную сеть через общедоступную сеть, такую как Интернет. Она позволяет компьютерам отправлять и получать данные через общие или публичные сети так, будто бы компьютер напрямую подсоединён к частной сети, при этом используются все преимущества функциональности, безопасности и управление политиками частной сети.
Несмотря на то, что коммуникации осуществляются по сетям с меньшим или неизвестным уровнем доверия (например, по публичным сетям), уровень доверия к построенной логической сети не зависит от уровня доверия к базовым сетям благодаря использованию средств криптографии (шифрования, аутентификации, инфраструктуры открытых ключей, средств для защиты от повторов и изменений передаваемых по логической сети сообщений). Вики.
VPN позволяет работникам безопасно подключаться к внутренней сети компании при путешествии вне офиса. Точно также множество VPN связывает географически разрозненные офисы организации, создавая одну сплочённую сеть. Технология VPN также используется юзерами Интернета для подключения к прокси-серверам с целью защиты анонимности и местонахождения.
Для чего использовать VPN — какие преимущества?
Здесь 11 главных причин, почему вас может заинтересовать использование служб VPN.
Как вы могли заметить из списка выше, VPN не обязательно прячет всё. Поисковые движки могут, возможно, всё ещё узнать вас, основываясь на ваших кукиз, предыдущем поведении браузера, входа в аккаунт (да уж!), плагинах браузера (например, Alexa, Google Toolbar и т. д.).
Включение VPN на Kali Linux 2.0:
Чтобы добавить VPN в правом верхнем углу клините на эту иконку и нажмите на Wired:
Теперь выберите «Параметры проводных соединений»:
Нажмите на плюсик (+) в нижем левом углу:
Выберите VPN:
Вы увидите список доступных вариантов:
Включение VPN на Kali Linux 1.x
Проблема неактивности VPN на Kali Linux 1.x
По умолчанию, в Kali Linux секция VPN серого цвета. На самом деле, разрешить эту проблему просто, но те, кто не знаком с пакетами, требуемыми для VPN, могут прийти в замешательство из-за большого количества веб-сайтов, дающих различные советы. Всё это приводим к тому, что может быть непросто выявить корректную информацию. Я постараюсь сделать простую и краткую инструкцию с объяснением того, что мы делаем.
Ниже показан скриншот, на котором кнопка «Добавить» недоступна для использования.
Инструкция по включению VPN на Kali Linux 1.x
Во-первых, поправьте ваши репозитории. Используйте только официальные репозитории Kali Linux. Простая инструкция по восстановлению оригинальных записей репозиториев.
Как я уже сказал, на самом деле, это очень просто. Для этого только запустите последующую команду и всё готово.
Причина, почему я не перезапускаю Network-Manager в том, что aptitude сделает это. Для чего это делать дважды, правильно?
После того, как установка завершена, возвращаемся к иконке сетей, выбираем вкладку VPN и теперь кнопка Добавить активна.
Итак, давайте проверим, что у нас есть, если нажать на кнопку Добавить.
Опции VPN на Kali Linux (GNOME):
Далее — это опции, которые вы увидите, нажав кнопку Добавить на вкладке VPN.
Используйте выпадающее меню, чтобы увидеть все поддерживаемые типы соединения VPN:
Всего на Kali Linux у вас будет 4 поддерживаемых типа связи VPN:
Заключение:
VPN — это хорошо, VPN безопасен, VPN позволяет вам обходить прокси, файерволы, слежение и фильтры содержимого. Но всегда есть драма при использовании VPN, иногда он медленный, а иногда и не так безопасен, как вы можете думать. Но для стран вроде Ирана, Пакистана, Египта, Китая, Северной Корее, Саудовской Аравии и т. д., где фильтрация осуществляется на государственном уровне, может быть, это способ выглянуть наружу. Я не собираюсь обсуждать здесь правовые аспекты, оставлю это вам.
🐉 Как настроить OpenVPN в Kali Linux
OpenVPN – это бесплатное приложение VPN с открытым исходным кодом, которое позволяет шифровать и отправлять сетевые данные через защищенные туннели с одного устройства на другое, не находящееся в той же сети.
OpenVPN использует OpenSSL для шифрования сетевого трафика.
После подключения к серверу OpenVPN ваш сетевой трафик маршрутизируется через сервер, обеспечивая безопасность ваших данных.
В свою очередь, это помогает защитить вас от сетевых атак, особенно при подключении к общедоступным сетям.
ПРИМЕЧАНИЕ. Использование VPN не всегда гарантирует конфиденциальность данных. Всегда храните вашу личную информацию в безопасных и зашифрованных местах.
Это руководство покажем вам установку и настройку OpenVPN в Kali Linux для защиты вашего трафика при выполнении тестирования на проникновение.
Для этого вам потребуются:
Установка OpenVPN
Первый шаг – установить пакеты OpenVPN с помощью команды apt:
sudo apt-get update
sudo apt-get install openvpn network-manager
Подключение к VPN
Следующим шагом будет подключение к VPN-серверу.
Вам понадобится файл конфигурации OpenVPN.
Когда у вас есть файл конфигурации, используйте команду, показанную ниже, чтобы подключиться к серверу vpn.
Для подключения к серверу вам потребуются имя пользователя и пароль.
Вы также можете импортировать файл конфигурации VPN с помощью графического интерфейса пользователя.
Заключение
В этом кратком руководстве показано, как установить и настроить OpenVPN в Kali Linux.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Инструкция по настройке сервера и клиента OpenVPN
Оглавление
Обход блокировок с помощью российских VPS
Начнём с небольшого лайф-хака: если у вас уже есть VPS (виртуальный частный сервер – разновидность хостинга, когда в отличие от совместного (shared-хостинга) вам в аренду дают не папку на сервере, а целую виртуальную машину, в которую вы можете установить любую операционную систему и настроить её как вам заблагорассудится), так вот, если у вас уже есть VPS и даже если виртуальный сервер находится в РФ, то весьма вероятно, что он подойдёт для обхода блокировок Роскомнадзора.
Чтобы это проверить, необязательно настраивать VPN – подключитесь к вашему удалённому серверу (например, по SSH) и попробуйте выполнить что-то вроде:
Вполне вероятно, что вы получите HTML код страницы заблокированного ресурса – это означает, что на вашем российском VPS можно настроить VPN для обхода блокировок.
В принципе, причина очевидна: оборудование для блокировок заставили установить только провайдеров «последней мили». Т.е. это разные ростелекомы, билайны и т.п. – те, кому вы платите за Интернет.
У кого есть российские VPS – пишите в комментариях, у вас через VPS открываются заблокированные сайты или нет? Будет интересно собрать некоторую статистику. Также указывайте, настроен ли IPv6 – возможно, дело просто в этом.
Только не думайте, что я агитирую арендовать именно российские VPS для обхода блокировок – нет, просто если вы веб-мастер и у вас УЖЕ ЕСТЬ такой сервер, то вы можете сэкономить несколько долларов в месяц, обойдясь без аренды зарубежного VPS под VPN.
Для чего нужен VPN, что он даёт
VPN создаёт соединение между одним или несколькими компьютерами. Это соединение использует надёжное шифрование. В результате чего, можно безопасно передавать данные используя ненадёжные соединения. Например, при подключении к открытой Wi-Fi сети, ваш трафик подвержен сниффингу, как со стороны других устройств локальной сети, так и со стороны тех, кто даже не подключился к этой сети – достаточно перехватывать беспроводной трафик, не подключаясь к ней. Но если вы после подключения к открытой сети начинаете использовать VPN, то ваш трафик передаётся в зашифрованном виде.
Из этого зашифрованного трафика невозможно извлечь какие-либо данные. К примеру, если без VPN вы открываете сайт, использующий HTTPS, то в результате сниффинга невозможно узнать, какие именно данные вы отправили и какие страницы посетили. Но даже при HTTPS видно, к каким именно сайтам вы подключаетесь. При использовании VPN третья сторона, даже если у ней есть доступ к вашему трафику, никак не может определить, какие сайты вы открывали либо извлечь другие данные – весь трафик представляет собой поток зашифрованных данных, имеющих такую же ценность для посторонних, как случайный набор нулей и единиц.
Как работает VPN
Технология VPN позволяет объединять несколько устройств в безопасную сеть.
В своей работе VPN использует разделение на сервер и клиент. У одного сервера может быть несколько клиентов, которые объединены в виртуальную частную сеть, где они могут безопасно обмениваться данными.
Если какому-то клиенту нужно получить доступ к глобальной сети, то он обращается к серверу VPN, этот сервер получает для него данные и перенаправляет запросившему клиенту. Благодаря такой работе, VPN часто используется для сокрытия IP и для обхода блокировки.
К примеру, если вы настроили VPN сервер на компьютере (к примеру, на VPS – виртуальном частном сервере), находящемся не в РФ, то при выходе в Интернет, этот сервер будет запрашивать для вас информацию, в результате, ваш IP адрес будет скрыт (будет показываться IP адрес удалённого сервера), а поскольку для зарубежных компьютеров не работают российские блокировки, то вы сможете получить доступ к любому сайту, который вы не можете открыть напрямую.
Что такое OpenVPN
OpenVPN – это бесплатная программа с открытым исходным кодом, которая реализует технологию VPN. Эта программа имеет и клиентскую часть, и серверную. Работает на различных операционных системах, в том числе на Linux и Windows.
Благодаря распространённости, даже существуют роутеры, которые поддерживают OpenVPN.
Понятная и рабочая инструкция по настройке OpenVPN
Я попытался максимально понятно описать каждый шаг. Если у вас возникли вопросы, то пишите их в комментариях.
Я не поленился и проверил работоспособность OpenVPN сервера на двух VPS’ках под управлением Arch Linux (мой основной виртуальный сервер) и Debian (специально арендовал для написания инструкции), а также проверил клиенты под управлением Windows, Debian (Kali Linux, Ubuntu), Arch Linux.
Т.е. если у вас не получается или возникают ошибки, то попробуйте выполнять операции более внимательно. Если это не помогает – то пишите в комментариях – попробуем разобраться вместе.
При всей своей детальности, эта инструкция не для полных нубов, как минимум вы:
Ну и вам нужно достаточно сосредоточенности, чтобы не запутаться. Плюсом такого подхода (использование ассиметричного шифрования и различных дополнительных защит) является то, что если не получены ключи шифрования, то передаваемый трафик невозможно расшифровать никакими средствами, никакими суперкомпьютерами.
Сертификаты OpenVPN
Мы будем настраивать OpenVPN так, что в своей работе программа будет использовать сертификаты. Это очень надёжный способ как зашифровать передаваемый трафик, так и защитить подключение к серверу.
Настройка OpenVPN будет понятнее, если уяснить криптографические основы.
В криптографии есть понятие симметричного шифрования и асимметричного шифрования.
Пример симметричного шифрования: для шифрования используется пароль, для расшифровки используется этот же самый пароль.
При ассиметричном шифровании, данные зашифровываются одним ключом, а расшифровываются другим.
К примеру, при шифровании с помощью публичного ключа: имеются два ключа: приватный и публичный ключ (публичный ключ называют сертификатом). Приватный нужно хранить в секрете, а публичный распространяется свободно. С помощью публичного ключа можно шифровать сообщения и проверять электронную цифровую подпись. С помощью приватного ключа можно расшифровывать сообщения, зашифрованные публичным ключом, и подписывать данные электронной подписью.
Если у двух сторон имеется по своему собственному приватному ключу, и они обменялись публичными ключами, то перед отправкой данных они шифруют их публичным ключом другой стороны. Такие зашифрованные данные может расшифровать только истинный получатель – владелец приватного ключа.
Но это не всё. Пары ключей нельзя создавать просто так – они должны быть подписаны центром авторизации (certification authority (CA)). Для подписания сертификатов, центр сертификации использует свой собственный приватный ключ. А чтобы можно было проверить, что сертификат действительно подписан уполномоченным центром сертификации, распространяется публичный ключ (сертификат) этого CA.
Итак, получается что:
Сертификаты при этом не являются секретными, а приватные ключи должны быть секретными!
Получается уже семь обязательных файлов.
Именно это количество файлов и может вызвать путаницу. Но если понимать, какой файл для чего используется, то проблем не возникает.
Если кому-то интересно, посмотрите соответствующие статьи в Википедии (если вам это не совсем понятно, то не переживайте, свой VPN мы всё равно настроем):
После создания всех сертификатов, нужно настроить непосредственно сервер и клиент. Эта настройка заключается в том, что сгенерированные файлы ключей нужно скопировать в правильное расположение на сервере и клиентах (у каждого из клиентов по своей паре публичный-приватный ключ) и указать путь до файлов с ключами, указать IP подключения и некоторые другие опции.
Как установить OpenVPN
В разные системы OpenVPN ставится чуть по-разному. В Linux мы одновременно устанавливаем и сервер, и клиент. В Windows мы будем работать только с клиентом. Т.е. вам нужно выполнить установку и на сервер, и на клиентскую машину. Например, если у вас VPS с Linux, а пользоваться VPN вы будете с домашнего компьютера под управлением Windows, то устанавливайте OpenVPN на оба компьютера как это писано для каждой системы ниже.
Установка OpenVPN в Debian, Ubuntu, Linux Mint, Kali Linux
Для установки пакетов достаточно выполнить следующие команды (рекомендуется, чтобы предварительно система была обновлена и перезагружена):
Установка OpenVPN в Arch Linux, BlackArch
Установка выполняется следующей командой:
Установка OpenVPN в Windows
Для Windows имеется OpenVPN с графической оболочкой. Перейдите на страницу https://openvpn.net/community-downloads/, найдите там файл «WINDOWS INSTALLER (NSIS)» и скачайте установщик с расширением .exe. Или скачайте последнюю версию по прямой ссылке http://build.openvpn.net/downloads/releases/latest/openvpn-install-latest-stable.exe
Установка выполняется как обычно для Windows программ с мастером установки.
Обратите внимание, что при желании вы можете поставить галочку напротив «EasyRSA 2 Certificate Management Scripts». Это программа и скрипты для генерирования ключей. В этой инструкции ключи мы будем генерировать на Linux машине, т.е. эти скрипты нам не понадобятся, но при желании вы можете их установить.
Решение проблемы с ошибкой «OpenVPN GUI не поддерживает более 50 конфигураций. Пожалуйста свяжитесь с автором, если вам нужно больше.»
Возможно возникновение ошибки:
Для её исправления зайдите в папку C:\Program Files\OpenVPN\config\ и удалите оттуда файлы. Эти файлы могла оставить сборка на основе OpenVPN.
Создание ключей OpenVPN
Для безопасности рекомендуется, чтобы центр сертификации был на отдельном компьютере, ключи сервера генерировались на другом компьютере, и каждый клиент генерировал свои ключи на своём компьютере.
Для простоты, я буду выполнять действия на одной системе (на OpenVPN сервере), а потом перенесу клиентские ключи на нужный компьютер.
Имя файла | Нужен для | Цель | Секретный |
ca.crt | сервер + все клиенты | Публичный ключ (сертификат) корневого центра сертификации (CA) | НЕТ |
ca.key | только для машины, подписывающей ключи | Приватный ключ корневого центра сертификации (CA) | ДА |
dh | только сервер | Параметры Диффи Хеллмана | НЕТ |
ta.key | сервер + все клиенты | HMAC подпись к пакетам SSL/TLS | ДА |
server.crt | только сервер | Сертификат (публичный ключ) сервера | НЕТ |
server.key | только сервер | Приватный ключ сервера | ДА |
client1.crt | только client1 | Сертификат (публичный ключ) Client1 | НЕТ |
client1.key | только client1 | Приватный ключ Client1 | ДА |
client2.crt | только client2 | Сертификат (публичный ключ) Client2 | НЕТ |
client2.key | только client2 | Приватный ключ Client2 | ДА |
client3.crt | только client3 | Сертификат (публичный ключ) Client3 | НЕТ |
client3.key | только client3 | Приватный ключ Client3 | ДА |
Ключи могут генерироваться на любой операционной системе – они будут работать также на любой ОС. Например, сервер работает на Arch Linux и ключи созданы на нём, а затем клиентские ключи передаются в ОС под управлением Windows или Ubuntu.
В зависимости от вашей системы, выберите нужную инструкцию: для производных Debian или для производных Arch Linux.
Создание ключей OpenVPN в Debian, Ubuntu, Linux Mint, Kali Linux
Начинаем с инициализации центра сертификации:
Нужно будет придумать и два раза ввести пароль от 4 до 1023 символов.
Будет создано два файла:
Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.
Создаём папку, где будут все сертификаты сервера OpenVPN:
и сразу копируем туда первый файл:
Создание ключей OpenVPN сервера
Теперь нам нужно сгенерировать пару ключей OpenVPN сервера.
Нужно подписать сертификат ключами Центра Сертификации, для этого:
Будет задан вопрос, точно ли мы хотим подписать, наберите yes, затем введите пароль от Центра Сертификации (CA).
Когда появится фраза:
Нужно будет ввести пароль Центра Регистрации, который установили на предыдущем шаге.
Копируем в нужную папку файлы, которые нужны для запуска сервера OpenVPN:
Файл параметров Diffie-Hellman (DH) нужен для протокола обмена публичными ключами.
Создайте ключ HMAC:
Теперь у нас 5 файлов, необходимые для запуска сервера OpenVPN, размещены в папке /etc/openvpn/certs/. Проверьте, все ли файлы на месте:
Создание и подпись ключей клиентов OpenVPN
Аналогично нужно будет ответить на вопрос yes и ввести пароль вашего Центра Сертификации.
Теперь с сервера скачайте файл /etc/openvpn/certs/ca.crt и разместите его по этому же пути, т.е. /etc/openvpn/certs/ca.crt на клиентской машине.
С сервера скачайте файл /etc/openvpn/certs/ta.key и разместите его по этому же пути, т.е. /etc/openvpn/certs/ta.key на клиентской машине.
С сервера скачайте файл /usr/share/easy-rsa/pki/issued/client1.crt, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.crt.
С сервера скачайте файл /usr/share/easy-rsa/pki/private/client1.key, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.key.
Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.
Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):
Итак, если вы создали ключи в Debian (или производных), то вам не нужно создавать ключи в Arch Linux, т.е. пропустите следующий раздел.
Если вышеприведённые команды вызвали ошибку, значит у вас старая версия easy-rsa, в ней должны работать следующие команды:
Будет создано два файла:
Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.
Создаём папку, где будут все сертификаты сервера OpenVPN:
и сразу копируем туда первый файл:
Создание ключей OpenVPN сервера
Теперь нам нужно сгенерировать пару ключей OpenVPN сервера.
Все значения можно оставить по умолчанию. Положительно отвечаем на два запроса:
Копируем в нужную папку файлы, которые нужны для запуска сервера OpenVPN:
Файл параметров Diffie-Hellman (DH) нужен для протокола обмена публичными ключами.
Создайте ключ HMAC:
Теперь у нас 5 файлов, необходимые для запуска сервера OpenVPN, размещены в папке /etc/openvpn/certs/. Проверьте, все ли файлы на месте:
Создание ключей клиентов OpenVPN
Все значения можно оставить по умолчанию. Положительно отвечаем на два запроса:
Теперь с сервера скачайте файл /etc/openvpn/certs/ca.crt и разместите его по этому же пути, т.е. /etc/openvpn/certs/ca.crt на клиентской машине.
С сервера скачайте файл /etc/openvpn/certs/ta.key и разместите его по этому же пути, т.е. /etc/openvpn/certs/ta.key на клиентской машине.
С сервера скачайте файл /usr/share/easy-rsa/keys/client1.crt, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.crt.
С сервера скачайте файл /usr/share/easy-rsa/keys/client1.key, но в клиентской машине разместите его по пути /etc/openvpn/certs/client1.key.
Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.
Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):
Итак, если вы создали ключи в Debian (или производных), то вам не нужно создавать ключи в Arch Linux, т.е. пропустите следующий раздел.
Создание ключей OpenVPN в Arch Linux, BlackArch
Создание ключей центра сертификации
Начинаем с инициализации центра сертификации:
Следующей командой мы инициализируем инфраструктуру открытых ключей:
Нас предупредят, что предыдущая инфраструктура будет удалена, и что если мы хотим продолжить, то должны набрать yes.
Генерируем ключи центра сертификации:
Нужно будет придумать и два раза ввести пароль от 4 до 1023 символов.
Будет создано два файла:
Первый (ca.crt) – это сертификат, т.е. открытый ключ центра сертификации. Он нужен и для сервера и для каждого клиента – с помощью него они будут проверять, что публичные ключи других действительно подписаны центром сертификации и что не появился кто-то «левый», не одобренный центром сертификации.
На серверной машине этот файл должен быть по пути /etc/openvpn/certs/ca.crt, поскольку у меня CA и сервер это одна машина, то я создаю папку, где будут все сертификаты сервера OpenVPN:
и сразу копирую туда первый файл:
Создание ключей OpenVPN сервера
Теперь нам нужно сгенерировать пару ключей OpenVPN сервера. Если вы это делаете на другой машине, то необходимо выполнить начальную инициализацию:
Я все операции делаю на одном компьютере, поэтому перехожу сразу к следующему шагу:
Нужно будет ввести имя сервера – я оставляю значение по умолчанию.
Будут созданы два файла:
Первый – это приватный ключ сервера OpenVPN, который нужно хранить в секрете и который можно сразу переместить в нужное место, поскольку он не требует каких-либо дальнейших обработок. Если у вас OpenVPN сервер на другой машине, то разместите этот файл в папке /etc/openvpn/certs/, для этого создайте её:
Поскольку у меня CA и сервер это одна машина, то я сразу перемещаю файл в нужное место:
Но файл servername.req является файлом запроса, который будет подписан центром сертификации. Поэтому если у вас центр сертификации на другом компьютере, то перенесите его туда в папку /etc/easy-rsa/pki/reqs/, если у вас центр сертификации на этом же компьютере, то оставьте их где они лежат.
Файл параметров Diffie-Hellman (DH)
Этот файл нужен для протокола обмена публичными ключами.
На серверной машине OpenVPN создайте файл dh2048.pem командой:
Помните: можно использовать значения большие чем 2048 (например, 4096), но для создания требуется значительно больше времени, а для безопасности особо ничего не добавляется; рекомендуется иметь длину главного номера DH соответствующей длине RSA ключа.
Опять же на серверной OpenVPN машине создайте ключ HMAC:
Он будет использоваться для добавления дополнительной HMAC подписи к пакетам SSL/TLS рукопожатия. Как результат, любые UDP не имеющие корректной HMAC подписи будут немедленно отброшены, защищая от:
Создание ключей клиентов OpenVPN
Клиентские файлы можно генерировать на любой машине. Если ещё не инициализирован центр сертификации, то делаем это:
Генерируем клиентский приватный ключ и файл запроса:
Будет создано два файла:
Первый – это приватный ключ, его нужно скачать на компьютер клиента сервера OpenVPN, а второй – файл запроса, его нужно подписать, чтобы был создан сертификат клиента. Поэтому если у вас центр сертификации на другом компьютере, то перенесите его туда в папку /etc/easy-rsa/pki/reqs/, если у вас центр сертификации на этом же компьютере, то оставьте их где они лежат.
Можно создать столько пар для клиентов, сколько нужно – у каждого клиента должны быть свои собственные пары публичный-приватный ключ.
Подписывание сертификатов центром сертификации
Теперь нам нужно подписать файлы запросов сервера и клиентов, чтобы получились сертификаты (публичные ключи), а также разместить файлы по нужным папкам. Начнём с подписи.
Если у вас центр сертификации расположен на отдельной машине, то перенесите на неё файлы запросов .req в папку /etc/easy-rsa/pki/reqs/
Теперь в центре сертификации выполните:
Оба раза нас попросят задуматься, действительно ли мы хотим подписать эти файлы и действительно ли мы доверяем источнику. Также нужно будет ввести пароль, который мы придумывали, когда генерировали ключи центра сертификации.
В результате будут созданы следующие файлы:
Ставшие ненужными файлы запросов можно удалить:
Перемещаем файлы сервера:
В результате на сервере файлы ключей размещены в правильной директории.
Проверьте, все ли файлы на месте (на клиенте должно быть пять файлов):
Загрузка файлов на клиентские машины
Файлы можно открывать текстовым редактором и копировать-вставлять на клиентскую машину.
Проверьте, все ли файлы на месте (на клиенте должно быть четыре файла):
Размещение файлов ключей на сервере и на клиенте
Итак, всего на сервере должно быть пять файлов и они должны быть размещены в следующих директориях:
Проверьте, все ли файлы на месте:
На клиентской машине должны быть следующие файлы, и в случае Linux разместите их так:
Проверьте, все ли файлы на месте:
Файлы можно скачать используя программу scp или любым другим способом. Также их содержимое можно копировать-вставлять, поскольку они представляют собой обычный текст.
Для Windows машин создайте папку C:\Program Files\OpenVPN\certs\ и разместите там эти файлы:
Запуск сервера OpenVPN
Это универсальная инструкция для Debian, Ubuntu, Linux Mint, Kali Linux, Arch Linux и их производных.
Конфигурационный файл OpenVPN
В архиве /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz или в папке /usr/share/openvpn/examples/ имеются примеры файлов настройки. Оттуда можно взять файл server.conf и настроить его под свои нужды. Если вы действовали по этой инструкции, то можете просто создать новый файл /etc/openvpn/server/server.conf
Сохраните и закройте файл.
Тестирование и запуск сервера OpenVPN
Протестировать настройки OpenVPN сервера можно так:
Если есть ошибки в файле конфигурации, то программа сразу завершиться с ошибкой. Для решения проблем включите логи в файле настроек, увеличьте вербальность до 6 и изучайте журнал ошибок:
А если всё в порядке запустите OpenVPN сервер и добавьте его в автозагрузку
Если вы следовали этой инструкции и не меняли название файла, то вышеприведённые команды вам подойдут, их не нужно менять.
Если вы столкнулись с ошибкой:
То из файла /etc/openvpn/server/server.conf
Причина ошибки в том, что поддержка директивы explicit-exit-notify 1 была добавлена в OpenVPN начиная с версии 2.4. А на вашей машине, очевидно, OpenVPN более старой версии.
Если вы столкнулись с ошибкой «Address already in use», например:
Это означает, что порт занят другой программой. Проверить, какая программа использует порт, можно командой:
К примеру, для проверки порта 53:
Используйте любой другой, не занятый порт – для этого в конфигурационных файлах OpenVPN сервера и клиента отредактируйте директиву port 53.
Включение маршрутизации трафика на OpenVPN сервере
На данном этапе, если бы кто-то подключился к OpenVPN серверу, то он не сможет подключаться к глобальной сети. Чтобы это стало возможным нужно настроить маршрутизацию трафика.
Для этого создайте файл vpn_route.sh.
Обратите внимание, что я создаю скрипт в папке /root/bin/, если у вас её нет, то создайте её предварительно
Если вы хотите разместить скрипт в другой папке, то отредактируйте последующие данные под свои.
B этот файл скопируйте следующее содержимое, отредактировав его под свои нужды. Обратите внимание на:
Если вы не впишите имя, то есть вероятность, что при загрузке компьютера скрипт не сможет автоматически получить имя сетевого интерфейса и поэтому маршрутизация трафика не будет работать правильно!
Сделайте файл исполняемым:
Чтобы изменения вступили прямо сейчас, до перезапуска компьютера, выполните:
Если всё нормально, то для добавления его в автозагрузку создайте файл /etc/systemd/system/enable-openvpn-routing.service:
Со следующим содержимым:
Обратите внимание на строку /root/bin/vpn_route.sh – замените её на свой путь, если мы разместили файл в другом месте или назвали его по-другому.
И активируйте автозапуск этого файла:
Настройка клиентов OpenVPN сервера
Настройка Windows для использования OpenVPN
Как уже было сказано, необходимые ключи должны быть размещены в следующих папках:
Теперь в папке C:\Program Files\OpenVPN\config\ создайте файл client.ovpn со следующим содержимым:
ВНИМАНИЕ: замените в строке remote 185.117.153.79 IP адрес на свой.
Теперь выберите подключение «client» и нажмите «Подключиться»:
Свой IP вы можете проверить на сайте https://suip.biz/ru/?act=myip
Настройка Debian (Ubuntu, Linux Mint, Kali Linux), а также Arch Linux( BlackArch) для использования OpenVPN
Это универсальная инструкция для всех производных Debian и Arch Linux по подключению к OpenVPN.
Теперь настроем клиента, который будет пользоваться OpenVPN на Linux. Как это было сказано почти в самом начале, пакет OpenVPN у вас уже должен быть установлен.
Сгенерированные ключи должны быть в этих файлах:
Если у вас нет папки /etc/openvpn/certs/, то создайте её:
И скопируйте туда все необходимые ключи.
Проверьте, все ли файлы на месте (4 файла):
Создайте файл /etc/openvpn/client/client.conf
И скопируйте туда (обязательно поменяйте IP адрес в строке remote 185.117.153.79 на IP адрес ВАШЕГО OpenVPN сервера) :
Протестировать настройки OpenVPN сервера можно так:
Слова «Initialization Sequence Completed» говорят о том, что подключение прошло успешно.
Если по каким-то причинам нет Интернета, то проверьте, пингуются ли IP
и пингуются ли имена хостов:
Если пинг к IP проходит, а к именам хостов – нет, то откройте файл /etc/resolv.conf:
И замените его содержимое на:
А если всё в порядке запустите клиент OpenVPN в фоне и при желании добавьте его в автозагрузку. Это необязательно – вы можете подключаться к OpenVPN только по мере необходимости.
Добавление в автозагрузку:
Если нужно остановить, то введите:
Если нужно отключить из автозапуска, то выполните:
Сертификаты необязательно должны быть в отдельных файлах. Сертификат можно внедрить прямо в файл .ovpn и, на самом деле, это очень удобно! То есть для распространения конфигурации среди клиентов OpenVPN сервера не нужно передавать пять файлов (настройки и четыре сертификата) достаточно передать только один файл настроек, в который уже встроены сертификаты.
OpenVPN позволяет включать файлы в главный конфигурационный файлы, которые указываются опциями —ca, —cert, —dh, —extra-certs, —key, —pkcs12, —secret, —crl-verify, —http-proxy-user-pass, —tls-auth и —tls-crypt.
Пример использования встроенного сертификата:
Рассмотрим конкретно для нашей конфигурации. Мы используем четыре сертификата:
Эти четыре строки нужно удалить из конфигурационного файла. Обратите внимание, что с tls-auth после имени файла стоит цифра один – это дополнительная опция и чтобы она не была потеряна, к уже имеющимся опциям добавьте в ваш .ovpn файл строку:
Теперь прямо в файл .ovpn добавьте:
Где вместо многоточий […] вставьте соответствующие сертификаты/ключи полностью, вместе с комментариями. Получается примерно так:
Теперь файл настроек .ovpn можно загружать в различные клиенты OpenVPN: на телефон, например, или на другой компьютер – отдельные файлы сертификатов больше не нужны.
Информация о выходе новых версий OpenVPN
Информация о выходе новых версий, а также другой интересный материал об OpenVPN на форуме.
Заключение
Если у вас нет своего VPS, и вы хотите его купить прямо сейчас, то пара ссылок: