Как написать свой vpn на python
Перейти к содержимому

Как написать свой vpn на python

  • автор:

VPN сервер, создание VPN подключения

Каким образом можно создать VPN сервер, к которому можно создать подключение через Питон?

Отслеживать

16.6k 4 4 золотых знака 20 20 серебряных знаков 30 30 бронзовых знаков

задан 24 июн 2018 в 14:27

Jedi Knight Jedi Knight

281 3 3 серебряных знака 14 14 бронзовых знаков

Так вопрос в создании сервера или в подключении к серверу средствами python?

24 июн 2018 в 15:31

Скорее в подключении средствами

24 июн 2018 в 15:46

Запустить из питона программу или батник/скрипт, который в свою очередь запустит vpn-клиента, поднимет туннельные интерфейсы и т.д. и т.п. А если найдёте системные вызовы для этого и как вызывать их из питона, то будет ещё лучше.

5 июл 2022 в 2:34

если подключаемся средствами ОС, то какой ОС?

2 ноя 2022 в 7:16

а так то щас как напишу впн сервер и клиента на питоне — тут на часик делов то

2 ноя 2022 в 7:19

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Попробуй через 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 за 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-сервер за 15 минут, даже если вы не разбираетесь в программировании

Материал предоставлен Нуру Набиевым, нашим подписчиком

На фоне новых законов о регулировании трафика все больше людей начинают волноваться о своей конфиденциальности в сети. Однако это не означает, что вы должны платить большие деньги 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 есть ваша платежная информация.

9 новых технологий, которые вы можете освоить за лето и стать ценнее на рынке труда

Но в Algo VPN есть возможность настроить одноразовые VPN. Вы можете загрузить новый VPN-сервер и подключиться к этой VPN всего за несколько минут. Как только вы закончите, вы можете просто удалить свой экземпляр и сделать вид, что этот VPN-сервер никогда не существовал.

Это намного дешевле, чем подписка на услугу VPN, оплата которой стоит около 0,006 долл. США за час использования или даже меньше. И вы получите гораздо лучшую производительность, так как вы не будете передавать свой VPN-сервер другим пользователям VPN. Я добился удивительных сетевых характеристик от моего сервера AWS VPN:

Инструкция: как настроить и запустить собственный VPN-сервер за 15 минут, даже если вы не разбираетесь в программировании 1

Хотя Algo VPN упрощает настройку VPN-сервера на DigitalOcean, AWS, Microsoft Azure и Google Cloud, он отлично справится и на самом маленьком облачном сервере под Ubuntu.

UPD от 13 апреля 2018 г.
Ещё более быстрый способ развёртывания собственного VPN:

  • Заходим на DigitalOcean и регистрируемся по этой ссылке (да, она реферальная, но вы получите 10 долларов на счёт);
  • Затем заходим сюда и логинимся через DO;
  • В итоге скрипт соберёт дроплет с VPN и после установки предоставит вам все необходимые настройки.

Готово, можно пользоваться!

Как сделать свой VPN дешево и быстро

В этой инструкции мы покажем, как самостоятельно развернуть свой VPN-сервер, чтобы раз и навсегда перестать беспокоиться о собственной безопасности в сети и получить доступ к заблокированным ресурсам.

Блокировками в России сегодня уже никого не удивить. С пугающей частотой Роскомнадзор добавляет в список заблокированных ресурсов сайты и сервисы, которые распространяют фейковые новости, а многие зарубежные сайты сами покидают рунет или собираются прекратить свою деятельность в России в самое ближайшее время. Простым пользователям остается привыкать к текущим реалиям или искать пути обхода, которые, как правило, сводятся к трем основным способам:

  1. Создание собственного VPN
  2. Подключение к коммерческому VPN-сервису
  3. Подключение к бесплатным VPN-сервисам

Однако наиболее целесообразным из них является только первый пункт, так как практически любые сторонние VPN-серверы имеют ряд существенных недостатков. В случае большой загруженности они могут снижать скорость соединения, а также имеют ограничения по количеству подключаемых устройств.

Кроме того, в теории такие сервисы могут хранить логи ваших действий в сети и передавать их по запросу третьим лицам, например, властям. Пожалуй, единственный плюс платных VPN — возможность быстрого переключения между серверами в разных локациях.

Фото: Unsplash

Стоит ли упоминать про бесплатные VPN, с которыми дела обстоят еще хуже? Главное, что необходимо понимать о работе бесплатных VPN сервисов: если вы не платите за VPN, значит, за него платит кто-то еще. Естественно, взамен этот «кто-то» должен получать что-то ценное, например, ваши конфиденциальные данные.

С собственным VPN сервером вы забудете про любые ограничения. Вы сможете раздать интернет своим друзьям и вместе наслаждаться свободным интернетом, так как даже самый дешевый сервер за 3$ в месяц справится с такой нагрузкой, а ваше соединение всегда будет оставаться под надежной защитой.

Итак, думаю выбор очевиден. Нам нужен собственный VPN-сервер. Многие пользователи полагают, что создание собственного VPN — это непосильная задача, для реализации которой необходимы навыки программирования или, как минимум, базовые знания управления консолью Linux и многочасовые манипуляции с компьютером.

Спешим вас обрадовать. Запустить собственный VPN-сервер сможет каждый, а мы покажем как сделать это с минимальными усилиями и научим вас подключать к нему любые свои устройства без каких-либо ограничений.

Вот несколько этапов, которые потребуются для создания собственного VPN-сервера:

  1. Выбор хостинг-провайдера.
  2. Аренда виртуального сервера.
  3. Удаленное подключение к серверу.
  4. Развертывание VPN сервера с помощью терминала командной строки.
  5. Подключение и настройка интернет-соединения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *