VPN за 60 секунд
Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).
На своем компьютере установим sshuttle:
pip install sshuttle
git clone https://github.com/sshuttle/sshuttle.git && python setup.py install
apt-get install sshuttle
sudo sshuttle -r username@sshserver 0.0.0.0/0
где username — логин на удаленном виртуальном сервере, sshserver — его IP-адрес или доменное имя, параметр 0.0.0.0/0 означает, что мы собираемся добавить в нашу таблицу маршрутизации правило, благодаря которому весь исходящий трафик будет отправляться на удалённый сервер, за исключением DNS-запросов. Разработчик намеренно не включает по умолчанию этот функционал для DNS, потому что у некоторых пользователей для выхода в интернет должны использоваться провайдерские серверы разрешения имен. Если мы можем пользоваться любыми DNS-серверами, то и запросы к ним можем “завернуть” в наш шифрованный SSH-туннель:
sshuttle --dns -r username@sshserver 0.0.0.0/0
Помимо этого мы можем направлять в туннель наш исходящий трафик не полностью, а только для определенных IP-подсетей, указывая соответствующий параметр:
sshuttle -r username@sshserver 11.12.13.14/0
Преимущества этого решения в следующем:
- у Вас нет необходимости иметь права администратора на удалённом сервере, используемом для выхода в интернет
- Вам не нужно создавать правила SSH для форварда каждого порта
Инструкция: как настроить и запустить собственный VPN-сервер за 15 минут, даже если вы не разбираетесь в программировании
Заботитесь о безопасности и анонимности в сети? Тогда лучше не полагайтесь на сторонние VPN-сервисы — запустите свой. Здесь найдете короткую инструкцию.
Материал предоставлен Нуру Набиевым, нашим подписчиком
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На фоне новых законов о регулировании трафика все больше людей начинают волноваться о своей конфиденциальности в сети. Однако это не означает, что вы должны платить большие деньги VPN-сервисам и туннелировать весь ваш интернет-трафик через незнакомые VPN-серверы. В этой статье я расскажу о создании собственного VPN-сервера за 15 минут.
VPN не делает вас анонимным пользователем интернета
Так что же такое тогда VPN и для чего она нужна? В этой части статьи я кратко расскажу о функции VPN, а далее разберемся с настройкой собственного сервера.
Каждый раз, когда вы подключаете свой компьютер или смартфон к VPN-серверу, вы устанавливаете зашифрованный туннель между вашим устройством и этим сервером. Никто не может видеть, какие данные передаются внутри этого туннеля, даже ваш провайдер.
И все же, это не делает вас анонимным пользователем. Вы просто перекладываете риск на тот самый туннель VPN, а компания, которая предоставляет VPN-сервис, может видеть весь ваш интернет-трафик. Такие компании могут продавать ваши данные в рекламных целях.
Вот почему я не рекомендую подписываться на незнакомые вам VPN-сервисы и еще и платить им — третьи лица могут продавать ваши данные налево и направо.
В качестве примечания, многие сайты теперь полагаются на HTTPS для установления безопасного соединения между вашим браузером и веб-сайтом, который вы используете. Вы должны устанавливать расширение HTTPS везде и использовать его при любой возможности.
Но VPN-сервисы могут быть и полезны. Иногда вы не можете получить доступ к веб-сайту из общедоступной сети, так как он заблокирован. Например, если вы находитесь в Китае, то вам придется использовать VPN, чтобы иметь доступ к своей учетной записи Gmail.
Инструкция: настраиваем и запускаем собственный VPN-сервер
Нам подойдет Algo VPN — набор скриптов, которые позволят нам настроить VPN в облаке за очень короткое время, даже если вы не очень разбираетесь в программировании.
Я создал VPN-сервер на DigitalOcean, это сервер Scaleway в связке с Amazon Web Services. Через пару минут после этого я уже смог подключиться ко всем этим VPN-сетям с моего Mac и iPhone.
Algo VPN автоматизирует процесс установки VPN, поэтому вам не нужно устанавливать соединение SSH с сервером и запускать сложные командные строки.
Для начала, вы должны подписаться на облачного провайдера (в данном случае это DigitalOcean) и запустить мастер настройки Algo VPN на вашем терминале. Я подробно опишу процесс установки позже, однако он может измениться после публикации этого поста. Все объявления можете найти в официальном репозитории GitHub.
В DigitalOcean нам не нужно создавать и настраивать собственный сервер. Algo VPN позаботится об этом для нас, так как он использует API DigitalOcean для создания сервера и установки всего необходимого для VPN.
В конце установки вы получите несколько файлов на локальном жестком диске. Например, в macOS двойной щелчок на профиле конфигурации добавит VPN-сервер к вашим сетевым настройкам и подключит вас к вашему VPN-серверу. Вам не нужно устанавливать VPN-клиент, он работает изначально на macOS и iOS.
Подробная инструкция со скриптами
1. Создайте учетную запись на хостинг-провайдере DigitalOcean.
Algo поддерживает DigitalOcean (наиболее доверенный), Amazon EC2, Google Compute Engine, и Microsoft Azure.
2. Загрузите Algo VPN на свой локальный компьютер.
Содержимое архива разархивируйте в отдельную директорию.
3. Установите зависимости с командной строкой на этой странице.
Откройте терминал. Интерпретатор python, который вы используете для развертывания Algo, должен быть второй версии. cd в algo-master директорию (где вы разархивировали Algo), далее:
Для macOS:
$ python -m ensurepip --user $ python -m pip install --user --upgrade virtualenv
Для Linux (deb-based):
$ sudo apt-get update && sudo apt-get install build-essential libssl-dev libffi-dev python-dev python-pip python-setuptools python-virtualenv –y
Более подробная информация для каждой ОС содержится в официальной документации.
4. Установите остальные зависимости Algo для вашей операционной системы.
Используя то же окно терминала, что и на предыдущем шаге, выполните команду ниже:
$ python -m virtualenv env && source env/bin/activate && python -m pip install -r requirements.txt
В macOS вам может быть предложено установить cc , установите его, если это так.
5. Укажите пользователей, которых вы хотите создать.
Откройте config.cfg в вашем любимом текстовом редакторе, после чего укажите пользователей в списке users .
6. Начинайте развертывание.
Вернитесь к своему терминалу. В директории Algo запустите ./algo и следуйте инструкциям. Существует несколько дополнительных функций. Эти дополнительные функции более подробно описаны в ROLES.md (на GitHub).
На этом все! Подробную инструкцию вы сможете найти в официальном репозитории GitHub.
Одноразовые VPN
Запуск собственного VPN-сервера не означает, что вы будете в полной безопасности в Интернете. Еще раз, вы переносите ваш риск на туннель к провайдеру облачного хостинга.
Если вы используете Algo VPN для Microsoft Azure, Роскомнадзор или АНБ может запрашивать у Microsoft дополнительную информацию о вас, если они посчитают это необходимым. Не забывайте, что у Microsoft есть ваша платежная информация.
Но в Algo VPN есть возможность настроить одноразовые VPN. Вы можете загрузить новый VPN-сервер и подключиться к этой VPN всего за несколько минут. Как только вы закончите, вы можете просто удалить свой экземпляр и сделать вид, что этот VPN-сервер никогда не существовал.
Это намного дешевле, чем подписка на услугу VPN, оплата которой стоит около 0,006 долл. США за час использования или даже меньше. И вы получите гораздо лучшую производительность, так как вы не будете передавать свой VPN-сервер другим пользователям VPN. Я добился удивительных сетевых характеристик от моего сервера AWS VPN:
Хотя Algo VPN упрощает настройку VPN-сервера на DigitalOcean, AWS, Microsoft Azure и Google Cloud, он отлично справится и на самом маленьком облачном сервере под Ubuntu.
UPD от 13 апреля 2018 г.
Ещё более быстрый способ развёртывания собственного VPN:
- Заходим на DigitalOcean и регистрируемся по этой ссылке (да, она реферальная, но вы получите 10 долларов на счёт);
- Затем заходим сюда и логинимся через DO;
- В итоге скрипт соберёт дроплет с VPN и после установки предоставит вам все необходимые настройки.
Готово, можно пользоваться!
VPN сервер, создание VPN подключения
Запустить из питона программу или батник/скрипт, который в свою очередь запустит vpn-клиента, поднимет туннельные интерфейсы и т.д. и т.п. А если найдёте системные вызовы для этого и как вызывать их из питона, то будет ещё лучше.
5 июл 2022 в 2:34
если подключаемся средствами ОС, то какой ОС?
2 ноя 2022 в 7:16
а так то щас как напишу впн сервер и клиента на питоне — тут на часик делов то
2 ноя 2022 в 7:19
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Можно использовать requests
import requests proxies = resp = requests.get('http://example.com', proxies=proxies )
Отслеживать
ответ дан 25 июн 2018 в 7:59
3,169 2 2 золотых знака 22 22 серебряных знака 44 44 бронзовых знака
Это решение для получения страницы из кода, я имел в виду создание постоянного подключения к vpn посредством ОС.
25 июн 2018 в 8:22
@JediKnight, а нафиг в этой схеме питон?
11 апр 2022 в 23:07
Попробуй через http.server:
import http.server import urllib PORT = 9097 class MyProxy(http.server.SimpleHTTPRequestHandler): def do_GET(self): url=self.path[1:] self.send_response(200) self.end_headers() self.copyfile(urllib.urlopen(url), self.wfile) httpd = socketserver.ForkingTCPServer(('', PORT), MyProxy) print ("Now serving at", str(PORT)) httpd.serve_forever()```
Как настроить свой VPN сервер
Правительства разных стран так или иначе пытаются запретить доступ к определённым ресурсам в Интернете. В России «заблокирован» Telegram и LinkedIn, в Казахстане уже не первый год невозможно посетить сайт Медузы, под раздачу даже попал официальный сайт gRPC, в Украине на фоне политических проблем запретили доступ к Яндексу.
От мала до велика знают как обойти эти блокировки, никого уже не удивишь словом VPN. Спроси у продвинутого юзера про VPN и он лихо назовёт парочку приложений для своего любимого смартфона в названии которых точно будет VPN Но мало кто задумывается, что публичные впн-сервисы могут также таить угрозу. Например, они без труда могут перехватывать весь трафик между вашим телефоном (клиентом) и сервисом на который вы обращаетесь (сервером). Таким сервисом может быть в том числе и банковское приложение, интернет-банкинг. Согласитесь, неприятно будет в один прекрасный день увидеть 0 на балансе вашего личного счёта.
Чтобы чувствовать себя в безопасности при использовании VPN я рекомендую настроить свой собственный VPN сервер. Для этого не нужно уметь программировать и даже иметь навыки администрирования Linux. Всё что необходимо — это иметь аккаунт на облачном хостинге DigitalOcean и следовать инструкциям этого руководства.
Если у вас до сих пор нет аккаунта в DigitalOcean, то создать его можно по моей ссылке. Зарегистрировавшись по ней вы получите $100 на ваш аккаунт, которыми сможете воспользоваться в течение 2-х месяцев! То есть как минимум у вас будет 2 месяца бесплатного использования личного VPN сервиса!
Установка и настройка OpenVPN
Прелесть DigitalOcean в том, что у них есть Marketplace готовых продуктов. В этом маркетплейсе есть официальный образ популярного Open Source VPN сервера OpenVPN.
После регистрации и входа в панель DigitalOcean, в левой части найдите Marketplace, переходите по ссылке:

В списке готовых приложений ищем OpenVPN Access Server, и переходим по ссылке:

На странице сервиса вам необходимо нажать на кнопку с текстом Create OpenVPN Access Server Droplet:

Droplet в терминах DigitalOcean это виртуальная машина, если проводить аналогию с сервисом AWS, то Droplet это та же EC2-машина.
После нажатия на кнопку DigitalOcean предложит вам выбрать тарифный план, от него зависит мощность сервера на котором будет крутиться ваш будущий VPN сервер. Скажу, что для личного пользования подойдёт самый дешевый тариф — $5. За эти деньги вы получите виртуальную машину с 1 Гб оперативной памяти и 25 Гб SSD диска + 1000 Гб трафика. Именно на этом тарифном плане крутится мой VPN сервер, которым я пользуюсь уже третий год подряд.

После выбора тарифного плана вам также необходимо выбрать регион в котором находится датацентр. Если вы из Евразии, то смело выбирайте Frankfurt, в этом регионе минимальный пинг.

Далее предлагается выбрать вариант аутентификации на будущей виртуальной машине, есть 2 способа:
- использовать одноразовый пароль, который будет отправлен на почту и после первичного входа его необходимо поменять
- использовать ssh ключ
Если вы не знаете, что такое SSH ключи, то выбирайте вариант с одноразовым паролем. После этого необходимо задать название будущей виртуальной машины (дроплета), тут всё на ваше усмотрение, можно оставить всё как предлагает digitalocean. Нажимаем на зелёную кнопку Create Droplet. Готово. Создание виртуальной машины занимает какое-то время, около 2-х минут.
После создания виртуальной машины вам необходимо к ней подключиться для первичной настройки OpenVPN, нужно ответить на несколько вопросов в интерактивном режиме (на каком порту будет Admin UI, какой порт используется для VPN сервера и т.д.):

После настройки конфигурации сервера необходимо задать пароль для пользователя openvpn , он является администратором VPN сервера.
passwd openvpn
После этого необходимо открыть админ панель OpenVPN в браузере, ссылка будет в терминале в котором вы задавали настройки:

Авторизуемся на сервере:

После входа в панель необходимо будет создать пользователя, сделать это нужно в разделе User Management → User Permissions не забыв также указать пароль. После создания пользователя необходимо выйти из административной панели и перейти по ссылке без указания /admin, появится вот такая форма:

Авторизуйтесь под новым пользователем. После успешного входа вы увидите страницу, где вам будет предложено скачать VPN клиент OpenVPN либо загрузить файл конфигурации для OpenVPN клиента с расширением .ovpn. Для Android также есть приложение клиента, в котором можно импортировать этот файл конфигурации, и всё будет работать как по маслу.
Интересные записи:
- Обновляем подсистему Linux на Windows 10
- Введение в Vagrant
- Windows 10 Ubuntu: запускаем Django приложение
- Используем KVM для создания виртуальных машин на сервере
- Poetry: новый менеджер зависимостей в Python
