![]() |
Большинство интернет-пользователей, ввиду различных причин, стремятся использовать VPN-сервисы, однако, большинство из них, либо требуют ежемесячную подписку, либо не защищены, либо просто на просто медленны. К счастью, альтернативы существуют. Они требуют немного больше технических ноу-хау, но если вы хотите что-то сделать правильно, вы должны сделать это сами.
Чтобы узнать, как сделать свой собственный VPN, вы можете посмотреть видео или прочитать статью. Обратите внимание, что в статье содержатся полезные команды и текст конфигурации, которые вы можете просто скопировать и вставить для вашего удобства. Обновление: в видео используется старая версия easy-rsa, которая больше не доступна. Когда вы дойдете до отметки в 8 минут, обратитесь к этой статье для настройки easy-rsa 3. Давайте начнем Amazon Web Services предлагает один год бесплатного пространства виртуального сервера, при условии, что вы используете меньше пропускной способности, времени и пространства, чем заранее предопределенный порог. Даже если вы преодолеете этот предел, стоимость запуска образа сервера на Elastic Compute Cloud Amazon, вероятно, будет меньше, чем вы заплатите за подписку на VPN. Здесь мы объясним два разных способа использования Amazon Elastic Cloud, также называемого EC2, для перенаправления вашего подключения через местоположение по вашему выбору: SSH Tunneling и OpenVPN. У каждого есть свои преимущества и недостатки, поэтому используйте тот, который вам покажется более подходящим для ваших нужд. Независимо от того, какой именно из двух вариантов вы выберете, вам потребуется следующее:
В правом верхнем углу вы можете выбрать место, где мы будем настраивать вашу VPN. Нажмите «Запустить экземпляр» (Launch Instance). Выберите, Linux AMI, который указан как «бесплатный подходящий уровень» ("free tier eligible"). На момент написания этой статьи это AMA Amazon Linux AMI. Переходим к следующему шагу. Здесь выберите t2.micro, который также отмечен как бесплатный подходящий уровень (free tier eligible). Нажмите «Просмотреть и запустить» ("Review and Launch"). На следующей странице, вы должны получить предупреждающее сообщение с просьбой изменить свои группы безопасности. Нажмите Edit Security Groups (Редактировать группы безопасности). Вам потребуется изменить группу безопасности, чтобы разрешить трафик с вашего компьютера для доступа к VPN или прокси. У вас уже должно быть настроено одно правило для подключения к вашему серверу через SSH, которое мы будем использовать позже. Нам будет необходимо добавить еще одно, чтобы разрешить соединения OpenVPN, которые по умолчанию используют порт 1194. Для простоты на вкладке «Входящие» (Inbound) нажмите кнопку «Добавить правило» (Add rule). Затем выставьте тип (Type) на пользовательский UDP (Custom UDP), диапазон портов (Port Range) на 1194 и источник (Source) на «в любом месте»(Anywhere). Нажмите Сохранить (Save). Нажмите «просмотреть и запустить» ("review and launch"), а затем «запустить» ("launch") на следующей странице. Теперь вам нужно создать пару ключей, которая работает как пароль, который вы будете использовать для подключения к виртуальному серверу, который вы создаете. Выберите «создать новую пару ключей» ("create a new key pair") в раскрывающемся меню и назовите её как хотите. Нажмите кнопку, чтобы загрузить пару ключей. Храните эту пару, где-то в безопасности. Следующая страница должна предупредить вас о том, что экземпляр запускается. Прокрутите страницу вниз и нажмите «Просмотреть экземпляры» ("View instances"). Здесь вы увидите список всех запущенных вами экземпляров, в котором, если вы впервые используете EC2, будет всего лишь одно наименование. Мы можем подключиться к нашему экземпляру EC2 с PuTTy, но сначала нам понадобится соответствующий ключевой файл для подключения. Когда вы установили PuTTy, вы также должны были установить PuTTygen. Идем дальше и запускаем его. PuTTy и PuTTygen запускаются по умолчанию в качестве файлов .exe без необходимости их установки. Откройте PuTTygen, нажмите «Загрузить» (Load). Перейдите к файлу пары ключей .pem, который вы загрузили ранее, и загрузите его в Puttygen. Вам нужно будет выбрать параметр, «показать все типы файлов» для того, чтобы увидеть файл ключа с расширением .pem. Нажмите «Сохранить секретный ключ» ("Save Private Key"). Имя файла должно быть идентично ключу с расширением .pem. Вы можете создать кодовую фразу для закрытого ключа, если хотите. Теперь закройте PuTTygen и откройте PuTTy. Скопируйте общедоступный IP-адрес вашего экземпляра с консоли EC2 в PuTTy. Введите имя для своей сессии и нажмите «Сохранить». В левой панели окна перейдите к «Auth» в подвкладке SSH. Нажмите кнопку обзора внизу и перейдите к закрытому ключу, который вы только что создали. Вернитесь на главную страницу сеанса, назовите и сохраните свой профиль сеанса для того, чтобы вы могли быстро подключиться при следующем использовании PuTTy. Затем нажмите «Открыть» (Open). Появится запрос с просьбой ввести имя пользователя. Это зависит от того, какой тип сервера вы настроили в начале. Для Amazon Linux AMI это «ec2-user». SSH Туннелирование (необязательно) Начнем с того, что мы просто собираемся перенаправить веб-трафик через экземпляр, который мы создали с помощью SSH-туннелирования и прокси. Это быстрый и грязный способ обойти брандмауэр или географическую блокировку. Это не совсем VPN – данный вариант лучше всего подходит для легкого веб-трафика и не будет работать во всех случаях, но его гораздо проще настроить. Однако настройка SSH туннелирования абсолютно необязательна, поэтому не стесняйтесь перейти к следующему разделу. Откройте PuTTy и перейдите к Tunnels в левой панели окна. Добавьте порт 8080 с выбранным Auto и Dynamic. Вернитесь на страницу сеанса и снова нажмите «Сохранить» (Save), чтобы вам не пришлось все это повторять снова. Затем нажмите «Открыть» (Open). Теперь вы подключены к своему серверу, но вам по-прежнему нужно направлять трафик вашего веб-браузера. Если вы используете Firefox, это можно сделать в настройках вашего браузера. Если вы используете Chrome, загрузите расширение Proxy Switchy. Если вы предпочитаете создавать полностью функционирующую VPN, а не просто прокси для своего браузера, перейдите к следующему разделу. В Firefox:
Вуаля! Ваш трафик браузера теперь проходит через ваш экземпляр EC2. Этот вариант будет нормально работать для простого серфинга в Интернете, но на некоторых веб-сайтах вы можете столкнуться с проблемами, а приложения, отличные от вашего веб-браузера, по-прежнему будут использовать прямое соединение. Чтобы создать полнофункциональный VPN, который будет перенаправлять весь ваш интернет-трафик, читайте дальше. Настройка OpenVPN на сервере и клиенте OpenVPN - это бесплатный инструмент с открытым исходным кодом, который позволит вам запускать полнофункциональный VPN через ваш Amazon EC2. Это означает, что весь ваш интернет-трафик проходит через него, а не только ваш трафик веб-браузера, как в варианте с прокси-сервером, описанном выше. Настольные программы, такие как Steam или Spotify, работают лучше с использованием этого подхода. Подключитесь к экземпляру EC2 с помощью PuTTy в соответствии с инструкциями выше. Перед вами должно появиться командная строка, в которой написано Amazon Linux AMI. Выполните следующие команды (введите или скопируйте / вставьте их и нажмите клавишу ввода): Код: Код:
sudo yum install -y openvpnКод: Код:
sudo apt-get install -y openvpnМетод #1: Настройка PKI аутентификации с помощью easy-rsa (рекомендуется) В оригинальной версии этого руководства мы настраиваем OpenVPN со статическим шифрованием и файлом .ovpn. Хотя этот вариант и работает, он позволяет одновременно подключать только одно устройство, а тот факт, что вы используете только один ключ, означает, что он менее безопасен. Теперь мы рекомендуем читателям использовать easy-rsa для настройки аутентификации, которая является более безопасной и позволяет подключать любое количество устройств одновременно. Однако, если вам нужна старая версия со статическим шифрованием, вы можете перейти к ней, нажав здесь. Эта статья обновлена для использования с easy-rsa 3 Easy-rsa недоступен в списке пакетов yum по умолчанию, поэтому нам нужно включить репозиторий EPEL для его установки. Введите следующее в терминал PuTTy и нажмите Enter: Код: Код:
sudo yum install easy-rsa -y --enablerepo=epelСоздайте каталог easy-rsa в директорию, где установлен OpenVPN. Скопируйте файлы с вашей инсталляции easy-rsa (последняя версия 3.0.3 на момент написания) в новый каталог: Код: Код:
sudo mkdir /etc/openvpn/easy-rsaКод: Код:
sudo ./easyrsa init-pkiВам будет предложено ввести общее имя. Назовите как вам будет угодно, или просто нажмите Enter, чтобы оставить название в значении по умолчанию. Затем мы сгенерируем ключ Диффи-Хеллмана (Diffie-Hellman), который обеспечивает превосходную секретность: Код: Код:
sudo ./easyrsa gen-dhКод: Код:
sudo ./easyrsa gen-req server nopassКод: Код:
sudo ./easyrsa sign-req server serverТеперь мы настроим клиент. Опять же, мы не будем устанавливать здесь пароль, но вы можете это сделать. Обратите внимание: если вы хотите настроить автоматический запуск VPN, лучше не устанавливать пароль. Код: Код:
./easyrsa gen-req client nopassКод: Код:
sudo ./easyrsa sign-req client clientЗатем мы создадим ключ TLS для идеальной секретности в OpenVPN, который гарантирует, что данные прошлой сессии не могут быть дешифрованы, даже если злоумышленник завладеет нашим закрытым ключом. Код: Код:
cd /etc/openvpnКод: Код:
cd /etc/openvpnКод: Код:
port 1194Код: Код:
sudo service openvpn startКод: Код:
sudo chkconfig openvpn onКод: Код:
#!/bin/shКоманда обеспечит запуск OpenVPN, когда сервер загрузится, и сценарий обеспечит, чтобы в iptables были установлены необходимые маршруты для того, чтобы разрешить трафик OpenVPN. Теперь, когда сервер настроен, нам нужно настроить клиент. Для этого нам нужно будет перенести необходимый сертификат и файлы ключей с нашего сервера на наше клиентское устройство. Когда PuTTy все еще открыт и работает как root, сначала нам нужно изменить права доступа к этим файлам, чтобы мы могли получить к ним доступ. Мы также поместим их всех в одном месте, чтобы упростить процедуру. Для получения доступа к некоторым из этих файлов, мы должны быть пользователем root. Для этого введите: Код: Код:
sudo suКод: Код:
cd /etc/openvpnЧтобы получить файлы с нашего сервера и на наш ПК, мы будем использовать бесплатную программу под названием WinSCP. Просто используйте параметры установки по умолчанию. Как только это будет сделано, появится окно, в котором вам будет предложено импортировать данные аутентификации сервера из PuTTy. Выберите myvpn (или то название, которое вы выбрали для себя) и нажмите кнопку «Изменить» (Edit). Введите имя пользователя ec2-user. Нажмите «Войти». Если вы не впервые используете WinSCP, вы можете установить файл .ppk, который вы использовали в PuTTy, нажав «Изменить» (Edit) и «Дополнительно» (Advanced). Перейдите в SSH > Аутентификация (Authentication) > Файл приватного ключа (Private key file) и перейдите к файлу PPK. В поле имени хоста на главной странице вы можете ввести либо IP-адрес, либо домен вашего экземпляра EC2. Обязательно сохраните настройки, затем нажмите «Вход» (Login). В правой панели окна перейдите в каталог, содержащий ваши файлы ключей, в данном случае случае это /etc/openvpn/keys Выделите шесть файлов, которые вам понадобятся: client.crt, client.key, ca.crt, dh.pem, pfs.keyиca.key (не показаны из-за обновления статьи). Нажмите зеленую кнопку «Загрузить» (Download). На самом деле не имеет значения, где они находятся на левой панели окна, поскольку вам не нужны права администратора для доступа к ней. Для удобства мы помещаем файлы на наш рабочий стол. Однако вы возможно захотите сохранить файл ca.key где-нибудь в безопасности, например, на USB-накопителе. Итак, последней деталью, которую нам необходимо сделать, является удаление файла ca.key с сервера. Центр сертификации (certificate authority) или ЦС (CA) используется для подписания клиентских сертификатов, и, если он однажды был скомпрометирован, вы никогда больше не сможете доверять сертификатам, выпущенным этим центром сертификации еще раз. Хотя это не обязательно для работы VPN, мы настоятельно рекомендуем это сделать, особенно если вы не настроили пароль для ЦС. Перед удалением файла убедитесь, что у вас есть все ключи и сертификаты для каждого устройства, которое вы хотите подключить. Если в дальнейшем вы захотите добавить больше устройств, вам придется переместить файл ca.key обратно на сервер. После того, как ключ ЦС безопасно хранится в каком-либо месте, кроме сервера, зайдите в PuTTy и удалите исходную ca.key и копию, которую мы сделали с сервера: Код: Код:
sudo rm /etc/openvpn/easy-rsa/pki/private/ca.keyКод: Код:
cd /etc/openvpn/keysКод:
C://Program Files//OpenVPN//configНаконец, нам нужно создать файл конфигурации клиента. Откройте свой любимый редактор открытого текста («Блокнот» отлично подойдёт), щелкнув правой кнопкой мыши и выбрав «Запуск от имени администратора» вставьте следующую конфигурацию, заменив Код:
YOUR.EC2.INSTANCE.IPКод: Код:
clientКод:
C:\\Program Files\\OpenVPN\\configТеперь запустите графический интерфейс OpenVPN в режиме администратора, щелкнув по нему правой кнопкой мыши и выбрав «Запуск от имени администратора». Щелкните правой кнопкой мыши на значок на панели задач и подключитесь к конфигурации клиента, которую мы только что создали. Экран состояния с множеством текста будет мигать на дисплее, а затем значок станет зеленым. Поздравляем! Теперь вы подключены к созданному вами VPN. Метод #2: Статическое шифрование (проще, но не рекомендуется) В этом методе мы создадим общий ключ (shared key) для аутентификации. Это похоже на файл, который действует как пароль. Его проще настроить, но он позволяет подключать только одно устройство к VPN в любой момент времени и менее безопасен, чем метод easy-rsa, описанный выше. В PuTTy введите следующие команды и нажмите enter: Код: Код:
cd /etc/openvpnКод: Код:
sudo nano openvpn.confКод: Код:
port 1194Код: Код:
sudo service openvpn startКод: Код:
sudo chmod 777 ovpn.keyКод: Код:
cd /etc/openvpnВыберите myvpn (или то название, которое установили вы) и нажмите кнопку «Изменить» (Edit). Введите имя пользователя «ec2-user» в графе имя пользователя. Нажмите «Войти» (Login). Теперь вы можете перемещать файлы между сервером EC2 и локальным компьютером. На правой панели перейдите вверх, максимально насколько сможете, затем перейдите к etc/openvpn. Здесь вы найдете файл ovpn.key, который нам нужен. Нажмите и перетащите его в папку по вашему выбору, но запомните, куда вы переместили его, так как нам понадобится переместить его позже. Теперь, когда у вас есть ключ, нам нужно вернуть старые привелегии, чтобы ограничить крг лиц имеющих доступ. Вернитесь в терминал PuTTy и введите: Код: Код:
sudo chmod 600 ovpn.keyЗатем нам нужно создать файл конфигурации для локальной машины в соответствии с тем, который мы сделали на нашем сервере. Откройте Блокнот и вставьте следующее, заменив IP-адрес на IP-адресом вашего экземпляра EC2 (если вы его забыли, найдите его в своей AWS-консоли в EC2-экземплярах). Также дважды проверьте правильность полного пути к файлу, указывающего на ваш ключ. Код: Код:
proto tcp-clientЩелкните правой кнопкой мыши на значок OpenVPN в панели задач и нажмите «Выход» для того, чтобы выйти. Теперь запустите его снова - либо с ярлыка на рабочем столе, либо из папки Program Files, но на этот раз используйте правый клик и выберите «Запуск от имени администратора». Если вы не запускаете OpenVPN в качестве администратора в Windows, это, скорее всего, не сработает. Нажмите правой кнопкой мыши на значок в панели задач и выберите «Подключиться». Появится графический интерфейс OpenVPN, показывающий статус подключения. Если все это сработало, то значок в панели задач станет зеленым. Перейдите в Google и введите «Как определить мой IP?», И он должен вернуть IP-адрес вашего Amazon EC2. Мои поздравления, вы только что создали свой собственный VPN! Дополнительные примечания Если вы хотите защитить свой VPN от глубокого анализа пакетов, метод, используемый авторитарными режимами в таких местах, как Китай и Сирия, чтобы блокировать соединения OpenVPN, ознакомьтесь с нашим руководством по настройке Obfsproxy. Обратите внимание, что это учебное пособие было написано в виде продолжения более старого метода № 2, изложенного в этой статье, поэтому, если вы использовали easy-rsa, то для него потребуется дополнительная настройка. Не забудьте сохранить свою пропускную способность в пределах бесплатного уровня Amazon (free tier limits). Самый простой способ сделать это - щелкнуть правой кнопкой мыши по вашему экземпляру в консоли AWS и нажать по ссылку «Добавить / изменить сигналы» ("Add/Edit Alarms"). Вы можете настроить сервер на остановку или даже прекращение работы через несколько часов бездействия. Бесплатный уровень позволяет до 750 часов в месяц (что охватывает весь месяц), поэтому у вас нет необходимости делать этого. Тем не менее, пользователи, завершившие свой первоначальный бесплатный год обслуживания или те, которые превышают лимит на своих серверах, могут предотвратить ненужные расходы за неиспользуемое время сервера. Возможно, по мере следованиям нашим инструкциям, у вас что-то сможет пойти не так. Если вы действительно хотите получить VPN, но не хотите собственноручно пытаться исправить неполадки, вероятно, лучше всего выбрать платный VPN-сервис. Они также позволяют вам направлять свой интернет-трафик через несколько географических мест, в то время как экземпляр EC2, ограничен одним. Ознакомьтесь с нашими обзорами VPN здесь! Жесткое кодирование DNS-серверов в VPN Если вам нужно установить определенные DNS-серверы для использования с вашего VPN, есть несколько вариантов. Чтобы «поместить» DNS-сервер на клиент, добавьте эту строку в конфигурацию сервера. Это повлияет на все устройства, которые подключаются к вашему VPN (кавычки обязательны): Код: Код:
push "dhcp-option DNS 45.56.117.118"Код: Код:
dhcp-option DNS 45.56.117.118Источник How to make your own free VPN with Amazon Web Services |
Ещё есть cloud.google.com который даёт 300$ на год.
|
Очень подробно и доступно описано.Отличная статья
|
Цитата:
|
Цитата:
Выполни команды и покажи что выводит Код: Код:
cd /etc/openvpn/easy-rsa |
У меня такая же проблема с командой sudo ./easyrsa init-pki
на команду sudo cp -Rv /usr/share/easy-rsa/3.0.3/* Код: Код:
[ec2-user@ip-XXX-XX-XX-XXX easy-rsa]$ sudo cp -Rv /usr/share/easy-rsa/3.0.3/*cd /etc/openvpn/easy-rsa ls -la Код: Код:
[ec2-user@ip-XXX-XX-XXX-XXX easy-rsa]$ ls -la |
Цитата:
|
Цитата:
|
Цитата:
Код: Код:
sudo ls -la |
виноват, каюсь
Код: Код:
Using username "ec2-user". |
| Время: 15:38 |