Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
algo — Настройте личный VPN в облаке | Kitploit
Инструменты/GitHubGitHub/trailofbits/algo
Инструменты шифрования/дешифрованияСкриптинг и автоматизацияСетевая безопасностьБезопасность облачных средКонфиденциальность
GitHubtrailofbits/algo

algo

Настройте личный VPN в облаке

Репозиторий
30.4k2.4k713 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Algo VPN

Twitter

Algo VPN — это набор сценариев Ansible, которые упрощают настройку личного VPN на основе WireGuard и IPsec. Он использует самые безопасные настройки по умолчанию и работает с распространёнными облачными провайдерами.

Дополнительную информацию см. в анонсе релиза.

Возможности

  • Поддерживает только IKEv2 с надёжной криптографией (AES-GCM, SHA2 и P-256) для iOS, macOS и Linux
  • Поддерживает WireGuard для всех вышеперечисленных, а также для Android и Windows 11
  • Генерирует .conf-файлы и QR-коды для клиентов WireGuard на iOS, macOS, Android и Windows
  • Генерирует профили Apple для автоматической настройки устройств iOS и macOS для IPsec — без необходимости в клиентском ПО
  • Включает вспомогательные скрипты для добавления, удаления и управления пользователями
  • Блокирует рекламу с помощью локального DNS-резолвера (опционально)
  • Настраивает ограниченных пользователей SSH для туннелирования трафика (опционально)
  • Ориентирован на приватность: минимальное журналирование, автоматическая ротация логов и настраиваемые улучшения конфиденциальности
  • Основан на Ubuntu 22.04 LTS с автоматическими обновлениями безопасности
  • Устанавливается на DigitalOcean, Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, OpenStack, CloudStack, Hetzner Cloud, Linode или ваш собственный сервер Ubuntu (для продвинутых пользователей)

Анти-возможности

  • Не поддерживает устаревшие наборы шифров или протоколы, такие как L2TP, IKEv1 или RSA
  • Не устанавливает Tor, OpenVPN или другие рискованные серверы
  • Не полагается на безопасность TLS
  • Не претендует на анонимность или обход цензуры
  • Не утверждает, что защитит вас от ФСБ, ГБ, DGSE или ЛММ

Развёртывание сервера Algo

Самый простой способ запустить сервер Algo — запустить его на вашей локальной системе или из Google Cloud Shell и позволить ему автоматически создать новую виртуальную машину в облаке.

  1. Зарегистрируйте аккаунт у облачного хостинг-провайдера. Algo поддерживает DigitalOcean (наиболее дружелюбный к пользователю), Amazon Lightsail, Amazon EC2, Vultr, Microsoft Azure, Google Compute Engine, Scaleway, DreamCompute, Linode, другие облачные хостинги на базе OpenStack, облачный хостинг на базе CloudStack или Hetzner Cloud.

  2. Получите копию Algo. Сценарии Algo будут запускаться с вашей локальной системы. Есть два способа получить копию:

    • Скачайте ZIP-файл. Распакуйте файл, чтобы создать каталог с именем algo-master, содержащий сценарии Algo.

    • Используйте git clone, чтобы создать каталог с именем algo, содержащий сценарии Algo:

      root@kitploit:~
      git clone https://github.com/trailofbits/algo.git
      
  3. Настройте параметры конфигурации. Откройте config.cfg в вашем любимом текстовом редакторе. Укажите пользователей, которых вы хотите создать, в списке users. Создайте уникального пользователя для каждого устройства, которое вы планируете подключать к вашему VPN. Также перед развёртыванием следует просмотреть другие опции, так как изменение мнения о них позже .

Вот и всё! Теперь вы можете настраивать клиенты для подключения к вашему VPN. Перейдите к разделу Настройка VPN-клиентов ниже.

root@kitploit:~
    "#                          Congratulations!                            #"
    "#                     Your Algo server is running.                     #"
    "#    Config files and certificates are in the ./configs/ directory.    #"
    "#              Go to https://whoer.net/ after connecting               #"
    "#        and ensure that all your traffic passes through the VPN.      #"
    "#                     Local DNS resolver 172.16.0.1                    #"
    "#        The p12 and SSH keys password for new users is XXXXXXXX       #"
    "#        The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX       #"
    "#      Shell access: ssh -F configs/<server_ip>/ssh_config <hostname>  #"

Настройка VPN-клиентов

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

Важно для пользователей IPsec: Если вы хотите позже добавлять или удалять пользователей, вы должны выбрать yes на запрос Do you want to retain the keys (PKI)? во время развёртывания сервера. Это сохранит центр сертификации, необходимый для управления пользователями.

Apple

WireGuard используется для предоставления VPN-услуг на устройствах Apple. Algo генерирует файл конфигурации WireGuard, wireguard/<username>.conf, и QR-код, wireguard/<username>.png, для каждого пользователя, определённого в config.cfg.

На iOS установите приложение WireGuard из App Store. Затем используйте приложение WireGuard для сканирования QR-кода или отправки файла конфигурации через AirDrop на устройство.

На macOS установите приложение WireGuard из Mac App Store. После запуска приложения WireGuard появится в строке меню. Нажмите на значок WireGuard, выберите Import tunnel(s) from file..., затем выберите соответствующий файл конфигурации WireGuard.

На iOS или macOS вы можете включить «Подключаться по требованию» и/или исключить определённые доверенные Wi-Fi сети (например, домашнюю или рабочую), отредактировав конфигурацию туннеля в приложении WireGuard. (Algo не может сделать это автоматически.)

Если вы предпочитаете использовать встроенный IPsec VPN на устройствах Apple или вам нужно автоматически настраивать «Подключаться по требованию» или исключённые Wi-Fi сети, см. руководство по настройке IPsec-клиента Apple для подробных инструкций.

Android

WireGuard используется для предоставления VPN-услуг на Android. Установите VPN-клиент WireGuard. Импортируйте соответствующий файл wireguard/<name>.conf на ваше устройство, затем настройте с его помощью новое подключение. См. руководство по настройке Android для подробных инструкций по установке и настройке.

Windows

WireGuard используется для предоставления VPN-услуг на Windows. Algo генерирует файл конфигурации WireGuard, wireguard/<username>.conf, для каждого пользователя, определённого в config.cfg.

Установите VPN-клиент WireGuard. Импортируйте сгенерированный файл wireguard/<username>.conf на ваше устройство, затем настройте с его помощью новое подключение. См. инструкции по настройке Windows для более подробного пошагового руководства и устранения неполадок.

Linux

Клиенты Linux могут использовать как WireGuard, так и IPsec:

WireGuard: WireGuard отлично работает с клиентами Linux. См. руководство по настройке WireGuard на Linux для пошаговых инструкций по настройке WireGuard на Ubuntu и других дистрибутивах.

IPsec: Для клиентов strongSwan IPsec (включая OpenWrt, Ubuntu Server и другие дистрибутивы) см. руководство по настройке IPsec на Linux для подробных инструкций.

OpenWrt

Для маршрутизаторов OpenWrt, использующих WireGuard, см. руководство по настройке WireGuard на OpenWrt для специфических инструкций по настройке маршрутизатора.

Другие устройства

Для устройств, не указанных выше, или для ручной настройки вам понадобятся определённые сертификаты и файлы конфигурации. Необходимые файлы зависят от платформы вашего устройства и протокола VPN (WireGuard или IPsec).

  • ipsec/manual/cacert.pem: Сертификат CA
  • ipsec/manual/.p12: Сертификат пользователя и закрытый ключ (в формате PKCS#12)
  • ipsec/manual/.conf: Конфигурация клиента strongSwan
  • ipsec/manual/.secrets: Конфигурация клиента strongSwan
  • ipsec/apple/.mobileconfig: Профиль Apple
  • wireguard/.conf: Профиль конфигурации WireGuard
  • wireguard/.png: QR-код конфигурации WireGuard

Настройка SSH-туннеля

Если вы включили опциональную роль SSH-туннелирования, для каждого пользователя из config.cfg будут созданы локальные учётные записи, а файлы authorized_key для них будут находиться в каталоге configs (user.pem). Учётные записи SSH не имеют доступа к оболочке, не могут аутентифицироваться по паролю и имеют ограниченные возможности туннелирования (например, требуется ssh -N). Это гарантирует, что пользователи SSH имеют минимальные права, необходимые для настройки туннеля, и не могут выполнять никаких других действий на сервере Algo.

Используйте пример команды ниже для запуска SSH-туннеля, заменив <user> и <ip> на свои. После настройки туннеля вы можете настроить браузер или другое приложение на использование 127.0.0.1:1080 в качестве SOCKS-прокси для маршрутизации трафика через сервер Algo:

root@kitploit:~
ssh -D 127.0.0.1:1080 -f -q -C -N <user>@algo -i configs/<ip>/ssh-tunnel/<user>.pem -F configs/<ip>/ssh_config

SSH-доступ к серверу Algo

Ваш сервер Algo настроен на доступ по SSH только по ключу для административных целей. Откройте приложение «Терминал», перейдите в каталог algo-master, куда вы изначально загрузили Algo, а затем используйте команду, указанную в сообщении об успехе:

root@kitploit:~
ssh -F configs/<ip>/ssh_config <hostname>

где <ip> — это IP-адрес вашего сервера Algo. Если вы регулярно входите на сервер, будет полезно автоматически загружать ваш SSH-ключ Algo. Добавьте следующий фрагмент в конец файла ~/.bash_profile, чтобы навсегда добавить его в ваше окружение оболочки:

root@kitploit:~
ssh-add ~/.ssh/algo > /dev/null 2>&1

Кроме того, вы можете решить включить сгенерированную конфигурацию для любых созданных серверов Algo в ваш SSH-конфиг. Отредактируйте файл ~/.ssh/config, добавив в начало следующую директиву:

root@kitploit:~
Include <algodirectory>/configs/*/ssh_config

где <algodirectory> — это каталог, в который вы клонировали Algo.

Добавление или удаление пользователей

Algo упрощает добавление или удаление пользователей с вашего VPN-сервера после первоначального развёртывания.

Для пользователей IPsec: Вы должны были выбрать yes на запрос Do you want to retain the keys (PKI)? во время первоначального развёртывания сервера. Это сохранит центр сертификации, необходимый для управления пользователями. Также следует сохранить пароли ключей p12 и CA, показанные во время развёртывания, так как они отображаются только один раз.

Чтобы добавить или удалить пользователей, сначала отредактируйте список users в вашем файле config.cfg. Добавьте новые имена пользователей или удалите существующие по мере необходимости. Затем перейдите в каталог algo в вашем терминале и выполните:

macOS/Linux:

root@kitploit:~
./algo update-users

Windows:

root@kitploit:~
.\algo.ps1 update-users

После завершения процесса для новых пользователей будут сгенерированы новые файлы конфигурации в каталоге configs. Сервер VPN Algo будет обновлён так, чтобы содержать только пользователей, перечисленных в файле config.cfg. Удалённые пользователи больше не смогут подключаться, а новые пользователи получат свежие сертификаты и файлы конфигурации, готовые к использованию.

Конфиденциальность и журналирование

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

Что регистрируется по умолчанию:

  • Системные события безопасности (неудачные попытки SSH, блокировки брандмауэра, обновления системы)
  • Сообщения ядра и диагностика загрузки (с пониженной детализацией)
  • Состояние клиента WireGuard (видно через sudo wg — показывает последнюю конечную точку и время рукопожатия)
  • Базовый статус служб (запуск/остановка/ошибки служб)
  • Все логи автоматически ротируются и удаляются через 7 дней

Конфиденциальность контролируется двумя основными настройками в config.cfg:

  • strongswan_log_level: -1 — управляет журналированием подключений StrongSwan (-1 = отключено, 2 = отладка)
  • privacy_enhancements_enabled: true — главный переключатель для ротации логов, очистки истории, фильтрации логов и очистки

Чтобы включить полную отладку при устранении неисправностей, установите оба параметра: strongswan_log_level: 2 и privacy_enhancements_enabled: false. Это зафиксирует подробные логи подключений и отключит все функции конфиденциальности. Не забудьте отменить эти изменения после отладки.

После развёртывания проверьте настройки конфиденциальности:

root@kitploit:~
ssh -F configs/<server_ip>/ssh_config <hostname>
sudo /usr/local/bin/privacy-monitor.sh

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

Для максимального уровня конфиденциальности относитесь к своим серверам Algo как к одноразовым. Запускайте новый экземпляр, когда он вам нужен, используйте его для конкретной цели, а затем полностью уничтожайте. Эфемерная природа облачной инфраструктуры может быть функцией конфиденциальности, если использовать её осознанно.

Дополнительная документация

  • Часто задаваемые вопросы
  • Устранение неполадок
  • Как Algo использует брандмауэры

Инструкции по настройке для конкретных облачных провайдеров

  • Настройка Amazon EC2
  • Настройка Azure
  • Настройка DigitalOcean
  • Настройка Google Cloud Platform
  • Настройка Vultr
  • Настройка CloudStack
  • Настройка Hetzner Cloud

Установка и развёртывание с распространённых платформ

  • Развёртывание с macOS
  • Развёртывание с Windows
  • Развёртывание из Google Cloud Shell
  • Развёртывание из Docker-контейнера

Настройка VPN-клиентов для подключения к серверу

  • Настройка клиентов Windows
  • Настройка клиентов Android
  • Настройка клиентов Linux с помощью Ansible
  • Настройка клиентов Ubuntu для использования WireGuard
  • Настройка клиентов Linux для использования IPsec
  • Настройка устройств Apple для использования IPsec
  • Настройка Mac с macOS 10.13 или старше для использования WireGuard

Продвинутое развёртывание

  • Развёртывание на вашем собственном сервере Ubuntu и настройка road warrior
  • Развёртывание из Ansible без интерактивного режима
  • Развёртывание на облачном сервере при создании с помощью shell-скрипта или cloud-init
  • Развёртывание на неподдерживаемом облачном провайдере

Если вы прочитали всю документацию и у вас остались вопросы, создайте новое обсуждение.

Одобрения

Я долго жаловался на плачевное состояние VPN-сервисов, вероятно, пора сделать надлежащий доклад на эту тему. TL;DR: используйте Algo.

-- Kenn White

Прежде чем выбирать VPN-провайдера/приложение, убедитесь, что вы провели исследование https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – или рассмотрите Algo

-- The Register

Algo действительно прост и безопасен.

-- the grugq

Я поигрался с Algo VPN, набором скриптов, которые позволяют настроить VPN в облаке за очень короткое время, даже если вы мало что знаете о разработке. Должен сказать, что подход Trail of Bits меня впечатлил.

-- Romain Dillet для TechCrunch

Если вам некомфортно платить анонимному случайному VPN-провайдеру, это лучшее решение.

-- Thorin Klosowski для Lifehacker

Участие в разработке

См. наше Руководство по разработке для получения информации о:

  • Настройке среды разработки
  • Использовании предварительных хуков для обеспечения качества кода
  • Запуске тестов и линтеров
  • Внесении кода через pull request

Поддержка Algo VPN

PayPal Patreon

Все пожертвования поддерживают дальнейшее развитие. Спасибо!

  • Мы принимаем пожертвования через PayPal и Patreon.
  • Используйте наш реферальный код при регистрации в Digital Ocean для получения кредита в $10.
  • Мы также принимаем и ценим вклад в виде нового кода и исправлений ошибок через Github Pull Requests.

Algo лицензирован и распространяется под лицензией AGPLv3. Если вы хотите распространять модификацию с закрытым исходным кодом или сервис на основе Algo, пожалуйста, рассмотрите возможность приобретения исключения. Как и методы, описанные выше, это поможет поддержать дальнейшее развитие.

Скачать инструмент
может потребовать развёртывания нового сервера
  • Запустите развёртывание. Вернитесь в терминал. В каталоге Algo выполните соответствующий сценарий для вашей платформы:

    macOS/Linux:

    root@kitploit:~
    ./algo
    

    Windows:

    root@kitploit:~
    .\algo.ps1
    

    При первом запуске сценарий автоматически установит необходимое окружение Python (Python 3.11+). При последующих запусках он запускается немедленно и работает на всех платформах (macOS, Linux, Windows через WSL). Сценарий Windows PowerShell автоматически использует WSL при необходимости, так как Ansible требует Unix-подобного окружения. Доступно несколько опциональных функций, ни одна из которых не требуется для полностью функционального VPN-сервера. Эти опциональные функции описаны в документации по развёртыванию.