
IP — это не паспорт, но владельцы сайтов так не считают
Сегодня у меня плохое настроение. Не из-за погоды и не из-за того, что закончился любимый сорт кофе. Я снова врезался лбом в невидимую стену, которой в интернете вообще не должно быть.
Мне нужно было прочитать техническую документацию. Обычное дело — разбираешься с новой библиотекой, открываешь официальный сайт… и ничего не происходит. Страница просто не грузится. Ни ошибки, ни «доступ ограничён», ни капчи — просто крутится-вертится и умирает по таймауту. Проверяю интернет — всё в порядке. Открываю другие сайты — работают. Понимаю: владельцы ресурса решили, что российским IP здесь не место.
Ладно, привычным движением включаю VPN. Документация открылась. Читаю, разбираюсь, параллельно нужно проверить что-то в российском сервисе — и вот сюрприз: теперь уже он не отвечает. Потому что видит иностранный IP и решает, что меня не существует.
Выключаю VPN — работает российский сервис, не работает документация. Включаю VPN — работает документация, отваливается российский сервис. Чувствую себя диджеем на пульте, только вместо музыки — тумблер «какую половину интернета мне сегодня видеть».
И вот тут вылезает главная эмоция: я никуда не уезжал, я сижу дома за своим компьютером — почему мне приходится выбирать, к какой части интернета иметь доступ? Я всё тот же человек, с теми же аккаунтами, той же историей, тем же паспортом. Просто в зависимости от положения тумблера я то «подозрительный иностранец» для российских сайтов, то «потенциальный мошенник» для зарубежных.
Интернет, который обещали, и интернет, который получился
Когда-то нам продавали интернет как единое пространство. Всемирная сеть, глобальная деревня, «любой ресурс из любой точки». В реальности всё больше похоже на карту с политическими границами: здесь доступно только для резидентов определённых стран, здесь сайт отвечает только «своим», а здесь целый блок IP просто молча заброшен в чёрную дыру.
Причём дело даже не в языке — я не прошу переводить интерфейс. Дело в самом факте: тебя отфутболивают не потому, что ты не понимаешь, а потому что ты пришёл «не оттуда». Заходишь в интернет не как человек с логином, паролем, историей платежей и нормальной репутацией, а как безликий пакет с IP-адресом. И первая проверка — не «кто ты?», а «откуда ты пришёл?».
Стена работает в обе стороны
Самое ироничное — геоблокировка бьёт с обеих сторон. Российские сайты не пускают своих граждан из-за рубежа, а зарубежные сервисы блокируют российские IP. И речь не о санкциях или законах — речь о добровольных решениях «для безопасности».
Официальный сайт Apple блокирует IP-адреса из Ганы (при этом почему-то не из Нигерии) — и компания открыто признаёт, что делает это из-за опасений по поводу мошенничества. Один крупный западный ритейлер составил список «двенадцати худших стран по киберпреступности» и заблокировал их все разом — трафик на сервера упал на 80%, и менеджмент посчитал это победой. Американские медицинские порталы закрывают доступ для всех IP не из США — и если ты американец в отпуске, тебе предлагают подключиться через VPN к собственной клинике.
Многие ecommerce-площадки вообще не принимают заказы из-за рубежа. Риск фрода настолько пугает, что некоторые платёжные провайдеры запрещают своим мерчантам работать с иностранными картами. Один продавец на Shopify написал: «У меня были странные случаи мошенничества за последние годы… Я продаю только в США и Канаду, поэтому просто заблокировал посетителей из всех остальных стран». Не конкретных мошенников — всех.
В России та же логика. Сайты ЖКХ, региональные банки, маркетплейсы — многие из них просто молча отрубают соединения с иностранных IP. Не потому что закон требует. Потому что так «безопаснее». Потому что проще поставить галочку в настройках фаервола, чем разбираться с реальными угрозами.
Получается замкнутый круг: включаешь VPN, чтобы читать документацию — отваливаются российские сервисы. Выключаешь — работают российские, но западные считают тебя потенциальным мошенником. Ты сидишь дома, никуда не уезжал, но вынужден постоянно «переезжать» между странами на уровне IP.
Рабочий день как квест по переключению VPN
Вот как выглядит типичный рабочий день разработчика в 2025 году. Утром нужно почитать документацию к библиотеке — включаешь VPN, потому что без него сайт не открывается. Потом надо зайти в российский таск-трекер — выключаешь VPN, потому что с иностранным IP он выдаёт таймаут. Пишешь код, натыкаешься на баг, идёшь на Stack Overflow — ой, а этот конкретный вопрос почему-то не грузится, снова включаешь VPN. Надо проверить оплату в российском сервисе — выключаешь.
К обеду у тебя уже рефлекс: что-то не работает — первым делом дёргаешь тумблер VPN. Не помогло — дёргаешь в другую сторону. Это даже не troubleshooting, это какой-то ритуальный танец. И самое обидное — ты понятия не имеешь заранее, какой именно ресурс потребует какого именно IP. Это лотерея. Каждый раз.
Иногда доходит до абсурда: нужно одновременно держать открытыми документацию (требует VPN) и российский сервис (не работает с VPN). Приходится настраивать split tunneling, если VPN позволяет, или работать с двух устройств. Или просить коллегу скинуть скриншот того, что ты не можешь открыть сам.
Но самое обидное — ведь мошенник первым делом пойдёт ставить VPN, прятаться за чужой инфраструктурой и подделывать всё, что можно. Нормальный пользователь, который просто хочет работать, вынужден жонглировать IP-адресами и чувствовать себя контрабандистом — хотя он всего лишь читает документацию и платит за хостинг.
Как работает геоблок — и почему это костыль
Технически всё довольно просто. Сервер или промежуточный файрвол видит входящий IP-адрес и прогоняет его через базу GeoIP — вроде MaxMind. База говорит: «этот IP сейчас принадлежит диапазону такой-то страны или провайдера». Дальше правила файрвола решают: пускать, требовать дополнительную проверку или просто не отвечать.
Если решили «не пускать», то вместо внятного ответа вроде «мы не обслуживаем запросы из таких-то регионов» происходит вот что: пакеты в твою сторону просто не отправляются. На экране — бесконечная загрузка и таймаут. С точки зрения железа всё честно: нет ответа — значит, нет ответа. С точки зрения человека — ты превратился в призрака.
Главная проблема такой схемы: она идеально бьёт по тем, кто играет по правилам, и легко обходится теми, ради кого якобы вводилась. Любой более-менее соображающий злоумышленник никогда не пойдёт на цель «с родного IP» — спрячется за VPN, прокси или украденными серверами и подстроит географию под «нормальную». А обычный пользователь, который ничего не скрывает и зашёл с того места, где физически находится, внезапно оказывается «не тем» и вылетает из системы.
Когда паранойя опускается глубже: фильтрация по TCP
Геоблок по IP бесит. Но иногда ад решает пойти ещё глубже в сетевой стек.
Недавно была показательная история с Озоном. С макбука на macOS сайт не открывается. С Linux — аналогично. С телефона на Android и Windows — всё идеально. Если у тебя российский IP. Браузеры меняешь — не помогает. Кэш чистишь — не помогает. Создаётся впечатление, что это не сайт «лежит», а именно определённые устройства для него как будто не существуют.
Потом технари разобрали проблему и докопались до дна: в цепочке защиты кто-то включил фильтрацию по TCP-отпечатку — в том числе по опции timestamps. Если перевести с сетевого на человеческий: TCP — это базовый транспортный протокол, по которому ходят почти все HTTP-запросы. У него есть поле «опции», где передаются дополнительные параметры. Разные операционные системы используют свой набор опций и значений — по этому паттерну можно примерно понять, откуда пришёл клиент: Windows, Linux, macOS.
Некоторые системы безопасности используют это для так называемого fingerprinting — попытки определить систему и «подозрительных» клиентов. В том случае комбинация опций для Linux и macOS совпала с каким-то шаблоном «нелегитимного» клиента, и трафик от этих систем начали отрубать на уровне файрвола.
Результат: обычный пользователь с макбуком, легальным браузером и картой в кошельке внезапно перестаёт существовать для сайта, потому что у его TCP-пакетов «не те» биты в служебном поле. Это даже не про гражданство — это уже дискриминация по сетевому стеку.
А можно защищаться без геоблоков? Можно.
Интересно, что крупнейшие мировые сервисы умудряются работать глобально, не блокируя пользователей по географии, но при этом успешно защищаясь от атак.
Google — один из самых атакуемых сервисов в мире, но он доступен практически отовсюду. Компания использует собственную инфраструктуру машинного обучения, чтобы отличать легитимный трафик от вредоносного. Для сайтов, которые рискуют стать жертвами политически мотивированных DDoS-атак — новостных изданий, правозащитных организаций — Google предлагает бесплатный Project Shield.
Cloudflare защищает почти 20% всех сайтов в интернете и в 2024 году заблокировал около 21,3 миллиона DDoS-атак — в среднем 4 870 атак каждый час. В октябре 2024 года их системы автономно отразили атаку на 5,6 терабит в секунду — крупнейшую из когда-либо зафиксированных. И при этом защищаемые сайты остаются доступными по всему миру.
Wikipedia работает глобально, несмотря на регулярные попытки атак. GitHub открыт для разработчиков из любой страны. Эти сервисы доказывают: защита от угроз не требует превращения интернета в набор закрытых дворов. Современные инструменты — rate limiting, защита от брутфорса, поведенческий анализ, распределённые сети доставки контента — позволяют фильтровать реальные угрозы, а не рубить целые регионы и операционные системы.
Это не защита — это театр безопасности
Я не спорю, что существуют DDoS-атаки, бот-сети и странная активность с экзотических хостингов. Но блокировать по стране и по TCP-опциям — это не про серьёзную защиту. Это про удобный самообман.
Плохие ребята и так не будут приходить напрямую. Они воспользуются взломанными серверами, прокси-пулами, коммерческими VPN, которые выглядят как обычные провайдеры. Если сегодня заблокировали их «подозрительный» TCP-профиль, завтра трафик от них будет выглядеть как обычный Chrome на Windows.
Хорошие пользователи попадают под раздачу первыми. Путешественники, фрилансеры, экспаты, люди в командировках, те, кто просто использует Linux или macOS — все они внезапно превращаются в «аномалию, которую проще отрубить, чем разбираться».
Такие блокировки толкают людей в серую зону. Если мне блокируют доступ к моему счёту или магазину по гео или TCP, я ставлю первый попавшийся бесплатный VPN с рекламой, включаю непонятное расширение в браузер, использую сомнительные прокси. В итоге реально снижается безопасность: мой трафик начинает ходить через неизвестно какие точки — а всё из-за того, что официальный вход «только для своих».
Бизнес делает себе хуже и даже не всегда это понимает. Маркетинг рассказывает про «заботу о клиенте», PR — про «цифровую трансформацию», а внизу тихо стоит фильтр, который просто не пускает часть клиентов «из не тех стран, браузеров и ОС».
Как могло бы быть
Нормальная, взрослая безопасность давно знает другие подходы. Если человек заходит из новой страны, можно попросить дополнительное подтверждение, например, код или пуш. Можно ограничить конкретные чувствительные операции вроде перевода крупной суммы или смены реквизитов, а не просто не пускать на сайт. Можно смотреть на комплекс факторов — историю логинов, устройство, поведение — а не на один флажок в GeoIP.
Вместо «не нравится TCP-отпечаток — рубим» можно использовать нормальную сетевую гигиену: rate limiting, защиту от брутфорса, фильтры по реальным признакам ботов, а не по «мне кажется, это линукс». Железо, фреймворки, готовые решения для всего этого уже есть. Просто это сложнее, чем галочка «заблокировать такой-то диапазон». И менее эффектно в отчётах.
Что остаётся пользователю
Честный ответ: мир идеальных решений нам никто не обещал, и приходится выбирать между неудобным и неприятным. VPN становится стандартной частью набора — хочешь не хочешь, а приходится. Обходные пути — подмена User-Agent, прокси, танцы с бубном — вдруг оказываются частью повседневности у людей, которые вообще-то ничего не нарушают.
Иногда стоит голосовать рублём: по возможности уходить от сервисов, которые особенно ярко демонстрируют «мы вообще не думали про людей, только про фильтры». Иногда — писать в поддержку, понимая, что ответ может быть из серии «такая политика безопасности, ничего не знаем». Но всё равно хотя бы фиксировать факт: вы только что выкинули своего же клиента, потому что его IP вам не понравился.
Финал
Я не наивен: понимаю, что обратно в «дикий и свободный» интернет девяностых мы уже не вернёмся. Слишком много политики, денег и страхов завязано на сетевую инфраструктуру.
Но мне важно хотя бы назвать вещи своими именами. Блокировка по стране без объяснений — это не «забота о безопасности», а тупой шлагбаум. Отказ в доступе из-за TCP-опций — не «умная защита от угроз», а ошибка, за которую платит живой человек. И необходимость жонглировать VPN-тумблером каждые пять минут, чтобы просто делать свою работу — это не «норма нового мира», а откровенный трэш.
Я никуда не уезжал. Я сижу дома, за своим компьютером, пытаюсь читать документацию и пользоваться сервисами, которым плачу деньги. Почему я должен притворяться то голландцем, то москвичом, в зависимости от того, какой сайт мне нужен прямо сейчас?
IP — это не национальность. TCP-опция — это не повод выкинуть человека из магазина. И если мы продолжаем строить мир, в котором эти вещи решают больше, чем реальная личность и реальная ответственность — у меня к этому миру очень много вопросов.