Pull to refresh

Comments 59

IP-адреса точек входа и выхода находятся в разных подсетях

А находятся ли они в разных BGP AS?
Если они в одной принадлежащей ДЦ, то поиск может быть успешным.
Берём внешний, определяем в какой автономке, получаем список префиксов этой автономки, ищем по закромам гражданки Яровой. С большой вероятностью находим, так как таких хитрых пользователей, ходящих в инет через датацентры, не особо много.

В диапазонах этих AS наверняка будут подняты десятки серверов к которым будут подключаться разные пользователи внутри страны. В итоге в логах netflow будет сильно больше одного IP адреса из этой сети.


Представьте себя на месте лица, запрашивающего такую информацию. Допустим вы делаете запрос на выгрузку всех коннектов, допустим, /23 сети. Получаете сотню лог netflow с сотней ip-адресов. Что дальше? Конечно это возможно, просто масштаб работы на несколько порядков увеличивается.

Это вызовет проблему аналитики?
Представьте себе аналитику случайных позиций курсора, в момент чтения материала со страницы поиска + поисковые запросы с этой «печенькой» + аналитику выбора количество анализируемых данных в теле запроса, это позиционирование и выбор пунктуации, скорость набора текста и т.д.
Вызывает ли это проблемы в анализе? Нет не вызывает, что уж тут проанализировать перечень обращений к ДНС, или подменить сам ДНС, получая ДНС запросы напрямую от пользователя.
Столь простой анализ совсем не проблема, для выявления пользователя…
Хм, интересно читать статьи подобного рода от ОРИ
Дык VDSina для того их и пишет, чтобы собирать побольше компромата и отдавать его тов. майору.
А насколько strongSwan нагружает сервер? Самый дешёвый VPS потянет?

Прелесть strongswan в том, что он использует ipsec ядра и при прочих равных меньше нагружает систему чем тот же openvpn. Самого дешевого сервера вполне хватает, но зависит от числа пользователей, разумеется.

у меня обслуживает 60 друзей на самом дешёвом тарифе у Hetzner.de + прокси для телеграма бонусом крутится.

Ставьте скриптом отсюда — github.com/jawj/IKEv2-setup

Вау, спасибо! Благодаря вашей ссылке я узнал про сервис https://sslip.io
Это именно то, что я давно хотел и уже собирался сам делать.
Теперь можно сделать полноценный docker контейнер который будет разворачиваться полностью сам без доменного имени.

решений на докере уже вагон, практика показывает, что нативное лучше

Существуют также инструменты для перехватывания системных вызовов программ и перенаправления их в прокси: ProxyCap, Proxifier, но они менее стабильны, так как иногда пропускают запросы и они уходят мимо прокси или работают некорректно с некоторыми программами.

Можно подробнее об этом? Я пользуюсь Proxifier чтобы засунуть программу java в SOCKS и вроде бы все работает корректно. В каких случаях могут быть проблемы?


Кстати, в macOS есть возможность указать SOCKS прокси глобально для всей системы и вот тут точно некоторые запросы могут уходить мимо прокси. Вроде графические программы работают через прокси, но какие-то системные запросы могут пройти мимо.

Я сам сталкивался с тем, что при редактировании правил в Proxifier, коннекты могут идти мимо существующих правил. Еще он иногда вылетает и программы начинают так же работать напрямую. Для каких-то маленьких задач, где правила не изменяются, он достаточо неплох, но для всей системы мне не понравилось.

Шикарная иллюстрация. Есть вопрос — как прикрутить к strongSwan авторизацию через AD?

У strongswan есть плагин для RADIUS, нельзя сделать прослойку между RADIUS и AD?

Можно в теории, но хочется как можно проще. У меня немного необычная задача — нужно организовать поднятие VPN-туннелей в зависимости от принадлежности к группе AD. Например, членство в группе Developers должно поднимать туннель до 10.1.1.4.
Как вариант — посмотреть в сторону SoftEther VPN.
github.com/SoftEtherVPN/SoftEtherVPN
Умеет из коробки L2TP (поверх IPSec и без него), PPTP, OpenVPN UDP/TCP, свой протокол SoftEther.
Есть сервер под Linux и Windows. Управление как через нативное Windows-приложение, так и через CLI (при этом сервер может быть на Linux, а управление осуществляется из Windows). При установке на подключенный к домену AD Windows может авторизовывать пользователей по каталогу AD. При установке на Linux — может авторизовывать через RADIUS. Если есть контроллер домена AD на Windows (не Samba/FreeIPA), там же можно развернуть родной RADIUS (роль сервера политики сети). К сожалению, не умеет работать с внешними группами безопасности (отчасти решается при авторизации через RADIUS — т.к. сервер RADIUS будет решать (на основе настроенной вами политики), кого допускать до сервера VPN, а кого нет). Группы надо создавать на самом SoftEther. Есть встроенный фильтр (ACL) — можно обозначить, какие группы пользователей на какие адреса и по каким протоколам/портам могут ходить. Есть встроенный Virtual NAT с DHCP-сервером, есть push static route для всех поддерживаемых вариантов VPN.
Благодарю) посмотрю обязательно. Этот вариант потенциально проще, чем StrongSwan?
Все относительно. Лично для меня — пожалуй, да, так как в моих кейсах решает сразу все вопросы по организации пользовательского VPN (road warriors) и настраивается достаточно интуитивно.
Я у себя использую StrongSwan + NPAS + AD
Для групп в strongswan есть rightgroups (docs) но я не пробовал если честно (могу затестить и отписаться)
В принципе ничего сложного там нет (Больше проблем с мобильными девайсами)

Спасибо. Если поделишься конфигами — буду благодарен. Мне не нужны мобильные особо.

Да без проблем, могу завтра скинуть.
Настройки для strongswan (Centos 7)

Выкладывайте уж для всех.

Очень благодарен) Больше, чем на +1 карму не подниму, но все равно спасибо.
Можно я совсем обнаглею и предложу написать пост на тему?) Инвайт подарил.
Спасибо за подарок, можно конечно написать. Но не могу сказать что это будет прям завтра. Скорее всего на выходных.
Было бы очень круто) Расскажешь заодно более подробно про архитектуру решения. Это многим было бы очень актуально.
У DigitalOcean есть бесплатная опция floating ip, дополнительный IP который внутри одного датацентра можно направить на любой сервер.
Этот адрес можно использовать для подключения, а точкой выхода будет адрес сервера.

А лучше бы наоборот...

Знает ли кто-нибудь, как сделать тоже самое в Google Cloud Platform?

На сколько я помню, Google Compute Engine позволяет добавлять IP адреса на виртуалку так же как и amazon aws.

Спасибо за отличную статью!
Подскажите пожалуйста, в ближайшее время на серваках в амстердаме появятся места?
Вам спасибо :)
через неделю будут
Было би интересно, такое же, но с использованием WireGuard

Цитата valdikss, сам про wireguard ничего не знаю:


На текущий момент развития, Wireguard — просто туннель, как GRE или IPIP, который не имеет функциональность передачи настроек клиенту (IP-адрес, маршруты, DNS-сервер, различные опции). Туннель настраивается с обеих сторон, и любые изменения конфигурации (маршрутов, например) будут требовать изменения с обеих сторон. Это совершенно непрактично.
Wireguard не предназначен для VPN-сервисов, и в текущем его виде может быть использован только для создания приватных туннелей.
Вы как-то иначе представляете настройку? Почему вам очень нужен Wireguard?
Непрактично для коммерческих сервисов, где действительно с этим проблема. Хотя даже уже сейчас уже есть образцы решения этих проблем — тот же NordVPN уже предлагает WG своим клиентам.

Практически не влияет на применимость дома для полной инкапсуляции трафика домохозяйства на уровне маршрутизатора.

Кроме того, скорость. Нет, СКОРОСТЬ. Условный Xiaomi MiR 3G за две тыщи вытягивает тунеллить более 200 мегабит, и это можно дополнительно улучшить ценой потери длины ключа.

Иными словами, если не рентить сервис друзьям и знакомым, это более чем вменяемый кейс без недостатков IKE и OpenVPN.
В сетевых технологиях я профан, подскажите, ради интереса — если Я--вая контролирует абсолютно весь входящий и исходящий трафик в РФ, а VPN сервера находятся за контролируемой границей — насколько реально выявить адреса, 1 — на который приходит запрос изнутри контролируемой зоны, и затем 2 — который в течение N секунд отправляет запрос в контролируемую зону (если пользователь через такой VPN сервер работает с ресурсом внутри страны).

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

То что вы описываете вполне возможно, тут я ответил подробнее. В реальности это предполагает очень сложную работу которую будут делать только в случае, если вы являетесь очень важным объектом для компетентных структур и никаких други способов у них нет. В этом случае намного проще затребовать все данные у хостера или дружественного государства.

Если некто из-за double vpn выгрузил на youtube ролик размером в 1GB
И в это же время (с точностью до секунд) у одного из клиентов good.citizen.vpn была активной сессия с исходящим траффиком около 1GB
То эти 2 события могут быть обьединены.
То есть, надо грузить сразу несколько роликов на тот же или другой сервер.

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

А ещё можно поставить дома и на сервере Yggdrasil, и подключаться по VPN через него.
UFO just landed and posted this here
Немного снизит, а насколько зависит от того, какой маршрут выберете.
Имея массив метаданных для всех исходящих и входящих пакетов в масштабах страны, несложно ассоциировать good.citizen.vpn и super.cool.guy.vpn путем сопоставления времени и размера пакета. Вопрос лишь в рациональном хранилище и эффективной реализации простого алгоритма. Если оба источник и назначение «за забором» — тру анонимности с помощью впн типа «кащеевы яйца» не достигнуть.
Мне вот интересно, что нет нигде простого как грабли метода:
1) купил виртуалку с публичным айпи где-нибудь в условной Гаване
2) настроил ssh по ключику с Dynamic Forward на порт, к примеру, 8383 (на винде можно Git Bash или Cygwin'ом)
3) открыл любимый браузер Firefox\Waterfox\еще-какой-нибудь-фокс (там проще настроить) и в настройках прокси указываешь 127.0.0.1:8383 — и другие галочки вроде проксирования DNS по вкусу
Все. Зачем VPN-то? Весь ваш траффик будет гулять как обычно, а один (или несколько) нужных браузеров будут показывать чудный внешний мир мимо всяких DPI и прочей мерзоты.
— разные IP входа-выхода, размышления о нескольких серверах…
— сертификаты, подписываемые LE, а не свой CA (easy-rsa, модифицированный ValdikSS позволяет так же создавать практически одной командой)
Серьезно?
сертификаты, подписываемые LE, а не свой CA
Серьезно?

Чем по-вашему это угрожает? Вы опасаетесь, что ваш домен появится в логах certificate transparency или что? Можно использовать анонимный поддомен от sslip.io.
К тому же, сертификат вам нужен только для точки входа, для выхода не нужен сертификат.


Никакой дополнительной безопасности от собственного PKI вы не получите, а вот неудобств целую гору:


  • Попробуйте добавить в windows свой CA для ipsec, это очень приятный квест, который я не пожелаю никому проходить.
  • Держать в системной ключнице самоподписанные сертификаты я считаю плохой практикой, потому что это создает пользовательскую привычку, что непонятные CA в системе это норма. В итоге, со временем, из-за мусора из непонятных сертификатов можно не заметить там что-то постороннее.
  • Если вы используете аутентификацию по сертификату, то заблокировать пользователя это тоже непростая задача. Управлять листами отозванных сертификатов куда сложнее чем закомментировать одну строчку в ipsec.secrets

Ну и банально, скинуть пользователю логин-пароль намного легче чем инструкции по накручиванию сертификатов в системе.

Мне понадобилось установить libcharon-extra-plugins, чтобы лебедь заработал

Это указано в статье. В остальном все получилось?

ну в Debian видимо надо отдельно поставить, а так да, работает. Пока не установил этот пакет, не авторизовался.
А что в этой схеме и у Strongswan вообще с обфускацией?

Ничего, будет видно что это ipsec трафик.

А в Китае, например, заблочат? Я использую ShadowSocks с плагином обфускации, вот и думаю — есть ли смысл заменить его на StrongSwan?
А в Китае, например, заблочат?

Обычно блочат. На сколько мне известно, shadowsocks тоже не панацея, потому что в Китае любые неопознанные соединения, через которые идет достаточно много трафика, шейпят так, чо ими потом нельзя пользоваться.

SS тем хорош, что его можно натравить только на нужные apps в андроид, будет бегать один телеграм, например. Ну или телега + facebook. Трафика там 0, обфускация есть, блочить не должны.
Не обязательно, чтобы через соединения шло много трафика :) В Китае также используют «Active probing» для любых неопознанных (шифрованных) соединений. Говоря простым языком — по адресу и порту назначения пытаются обратиться по какому-либо протоколу для анонимизации, например native Tor, obfs 2/3, VPN. И если ответ приходит в контексте протокола — блочат.
image

Более подробно можно почитать в whitepaper'e — Examining How the Great FirewallDiscovers Hidden Circumvention Servers
Нет никакого смысла заменять носки на лебедя, тем более без обфускации, тем более в Китае.
Sign up to leave a comment.