Короткий ответ
- НЕТ готового бесплатного open‑source «drop‑in» self‑hosted решения с полной и надёжной гарантийной привязкой IP → конкретный VPN‑бренд (например, NordVPN/ExpressVPN и т. п.) с покрытием, сопоставимым с коммерческими сервисами.
- ДА — вы можете организовать self‑hosted систему, которая по сочетанию источников (локальные базы GeoIP/ISP, списки VPN‑серверов, ASN/rdns/сертификаты, сканеры типа Shodan/Censys) будет помечать IP как VPN и часто указывать конкретное название сервиса. Это — инженерная задача: составление, нормализация и регулярное обновление нескольких источников.
Почему нет «волшебной» бесплатной базы
- VPN‑провайдеры используют собственные сети, арендуют адреса в облаках и хостингах, часто меняют блоки — трудно поддерживать полную базу.
- Многие коммерческие базы (MaxMind, IP2Location, ipinfo и т. п.) дают флаги «anonymous proxy / VPN / hosting provider» и/или поле ISP/Organization (иногда там указано название VPN). Но ни одна из них бесплатна и всё равно не даёт 100% точности по бренду.
- Одно только определение «VPN» — уже нетривиальная задача; назначение конкретного бренда ещё сложнее.
Как сделать self‑hosted систему, которая будет указывать бренд VPN
Рекомендованная архитектура (порядок действий, источники):
1. Базовые локальные базы (self‑hosted)
- MaxMind GeoIP2: GeoIP2 City/ASN/ISP + GeoIP2 Anonymous IP. Можно скачивать DB и хранить локально (нужна лицензия/ключ для коммерческих баз). Anonymous DB даёт флаги (proxy/tor/hosting), ISP/ASN DB — имя провайдера.
- IP2Location (аналогично): есть локальные DB‑файлы с флагами proxy/vpn и полем ISP.
Эти две базы часто покрывают большую часть случаев и легко хостятся локально.
2. ASN / ISP / rdns‑анализ
- Сопоставлять IP → ASN, и держать ручной реестр известных ASN/диапазонов, принадлежащих конкретным VPN‑поставщикам. Многие VPN имеют собственные AS или публично известные блоки.
- Reverse DNS и PTR: часто содержат подсказки (в редких случаях — бренд в hostname).
3. Публичные и community‑списки
- VPNGate (University of Tsukuba) — список публичных VPN серверов (CSV).
- GitHub‑репозитории, где собирают публичные VPN IP/остатки (search: “vpn ip list”, “public-vpn-servers”).
- Списки Tor exit nodes, прокси‑списки и т.п. (Tor предоставляет актуальный список).
Подгружать эти списки в локальную БД и помечать.
4. Сервисы/сканеры для дополнения (частично коммерческие)
- Shodan / Censys /ZoomEye: можно получить данные о сервисах/сертификатах, banner/HTTP заголовках, которые указывают на конкретное ПО/бренд.
- TLS/HTTP fingerprinting (например, сертификаты с CN/SAN, заголовки веб‑страниц, найденные на сервере) — иногда прямо указывают бренд (редко, но бывает).
5. Активные/пассивные сигнатуры
- JA3/JA3S TLS fingerprints, Active probing (порты OpenVPN 1194, UDP WireGuard/51820, SSTP и т.д.). Осторожно: активное сканирование может быть юридически/этически спорным.
- Passive DNS / сертификатная история (Farsight DNSDB, Censys) — коммерческие, но дают хорошие подсказки бренда.
6. Ручная и автоматическая агрегация и скоринг
- Собирать сигналы (MaxMind flag, ISP name, ASN match, rdns, presence in VPNGate/GitHub lists, Shodan/Censys metadata, TLS fingerprint) и считать score. Для высоких score можно присваивать конкретное название VPN, для низких — просто «probable VPN / hosting provider».
Инструменты и технологии для self‑hosted реализации
- geoipupdate + MaxMind DB (локально) или ip2location DB файлы
- БД: PostgreSQL/Elasticsearch для хранения наборов IP/метаданных
- Сторонние API/даунлоады: Shodan/Censys (если есть ключи), VPNGate CSV
- Скрипты для enrichment: reverse DNS, whois/rdap (ipwhois), ASN lookup
- Optional: инструменты для массового TLS/HTTP fingerprinting (например, masscan + tls‑scanner), либо использование Shodan/Censys вместо сканирования
Практические ограничения и советы
- Точность ≠ полнота: у вас будет либо высокая точность для небольшого набора известных брендов, либо широкое покрытие с меньшей уверенность. Ожидайте ложноположительные/ложноотрицательные результаты.
- Частые обновления: VPN-пул меняется быстро — автоматизируйте регулярные обновления (daily/weekly).
- Лицензии и стоимость: коммерческие DB (MaxMind Commercial, IP2Location, Shodan/Censys, Farsight) дают лучшее покрытие, но стоят денег. Для 100% self‑hosted без оплаты придётся полагаться на частично неполные community‑списки и ASN/rdns heuristics.
- Правовые/этические вопросы: активное сканирование может быть запрещено/нежелательно для некоторых сетей; всегда проверяйте правила и законы.
Резюме / рекомендации
- Если вам нужен "best effort" self‑hosted: купите/скачайте локальные DB MaxMind GeoIP2 (ISP + Anonymous IP) и/или IP2Location, добавьте парсер ASN/rdns, интегрируйте VPNGate и community‑lists, и обогащайте данными от Shodan/Censys при необходимости. Соберите scoring‑модель для присвоения бренда.
- Если нужна коммерческая, готовая точность и простота — рассматривайте облачные/коммерческие API (ipinfo, MaxMind Enterprise, IP2Location commercial, ipqualityscore): они дают VPN/ISP + иногда бренд, но это не полностью self‑hosted.
- Могу помочь составить конкретный план/скрипты: пример pipeline для обновления MaxMind DB → загрузка public lists → ASN/rdns enrichment → scoring и API для запроса.
Если хотите, могу:
- предложить минимальный набор SQL‑схем и enrichment‑скриптов,
- привести ссылки на проверенные public lists (VPNGate, несколько GitHub‑репозиториев),
- или описать примерный scoring‑алгоритм для присвоения бренда.