В этой статье я буду говорить о цензуре и санкциях.


Фото с сайта izvestia.kiev.ua

Цензура неизбежно появляется с первыми же зачатками государственной власти. Во многих странах мира правительство имеет обыкновение блокировать для своих граждан доступ к определенным доменам или IP-адресам в Интернете. Некоторые говорят: «Это нужно, чтобы культура оставалась здоровой и сохранялись моральные ценности». Блокируются порносайты и все в таком духе. Даже в США можно найти некоторые домены, которые закрыты для широкой публики — например, сайты, где содержится детская порнография или контент, который идет вразрез с гуманистическими ценностями.

Но в Иране (и многих других странах) дела обстоят по-другому.

Блокируется множество сайтов. Мы не можем заходить на медиа-ресурсы (BBC, FoxNews, VOA), в социальные сети (Twitter, Facebook), мессенджеры (Telegram, WeChat, Kik, SnapChat), сервисы вроде YouTube. Не поверите, но нас не пускают даже на некоторые субдомены Sourceforge!

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

Эта система фильтрации/киберцензуры — очень прибыльный бизнес, и для государства, и для негосударственных организаций, которые зарабатывают на этом намного больше, чем рядовая IT-компания.

Иногда сталкиваешься с тем, что они жестко ограничивают функциональность какого-то сервиса, например, Telegram, чтобы продвинуть свой собственный продукт. При этом бывает, что они приводят какие-то сложные доводы о том, почему это необходимо. «Его сделали в Израиле!». Ну и что теперь? Или вы не использовали оружие, которое сделали в Израиле, когда вели войны с Ираком (1980-1988 годы)? Тогда никто об этом не говорил, а теперь началось.

Иногда они организуют атаки на SSL/TLS. Недавно я прочитал нечто подобное про Казахстан: там теперь прослушивается HTTPS-трафик. То есть они официально подвергают своих граждан атаке посредника.

Хорошо, а как это все влияет на меня как на разработчика? Ну, понимаете, системы, которые они применяют, несовершенны. Иногда остаешься без доступа к сервисам, без которых совсем никуда — тот же GitHub. А почему? Потому что программа, которая осуществляет фильтрацию, прервала соединение с GitHub из-за сбоя или мисконфига. Иногда все ломается на этапе SSL рукопожатия. Иногда рукопожатие затягивается очень надолго и все равно в конце концов не удается. Иногда CloudFlare отказывается работать из-за битых TCP пакетов.

Найти какую-то новую информацию — та еще головная боль: ни YouTube, ни Reddit, ни Medium, интернет-браузинг через пень-колоду и так далее. О скорости интернета вообще лучше не заговаривать — 200 килобайтов в секунду на домашнем WI-FI.

Санкции


Если вы следите за мировыми новостями, то наверняка слышали о том, что против Ирана введены санкции из-за его ядерной программы. И хотя это не ограничивается сферой ядерной физики, многие страны поддержали санкции США в отношении Ирана. До того, как это скажется на простых людях, никому нет дела. Люди ничего не стоят. Так они считают — и иранское правительство, и международные структуры вроде Организации Объединенных Наций.

Люди умирают от голода и отсутствия лекарств, экономика разваливается, а все политики со своими детьми перебрались за границу — они и понятия не имеют, что происходит на улицах.

Что же происходит с нами, работниками IT-сектора? Санкции. Чего нам не хватает? FOSS! Программного обеспечения с открытым кодом! Понимаете?



Несколько месяцев назад команда Slack решила присоединиться к санкциям. Они попросту удалили всех пользователей, о которых стало известно, что они из Ирана. Без предупреждения. Множество людей потеряли все данные, которые хранились у них на аккаунтах в Slack, и никто ничего не собирался делать по этому поводу. Некоторые пользователи родом из Ирана уже много лет живут за границей, кто-то даже не появляется в Иране, но и они потеряли аккаунты наряду со всеми остальными. Об этом много писали на Twitter. И еще. Я думаю, вы оценили масштаб.

Нам сложно получить MasterCard или VisaCard из-за экономических санкций для банков. Соответственно, мы не можем зарегистрироваться на AWS, купить что-то на Amazon или Ebay, оплатить консоль Google Store, пользоваться большинством сервисов.

Android dev выдает ошибку HTTP 403, Docker docs выдает ошибку HTTP 403, Bintray выдает ошибку HTTP 403, Schema.org выдает ошибку HTTP 403 и так далее. Здесь опубликован длинный список недоступных доменов.

Опыт разработчика


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

Вы гуглите название технологии и вам выдается масса источников, включая ссылки на официальную документацию. Вы кликаете на первую ссылку и вдруг выскакивает это дурацкое уродливое окно с надписью: «Вы подпадаете под санкции США и мы не можем вас обслуживать».

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

Вы подходите к начальнику и говорите: «С этой технологией ничего не выйдет. Подберите что-нибудь другое или закройте проект». На следующий день вы уже в поисках новой работы.

Как мы справляемся?


Нам приходится обходить цензуру и санкции.

HTTP прокси

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

Список доменов, на который я ссылался выше, взят с частного прокси-сервера, который поддерживается силами сообщества. Он принимает только те домены, которые перечислены в этом файле, а с остальными не работает. Людям приходится приложить немало усилий, чтобы настроить систему и использовать этот прокси строго для определенных доменов. И там содержатся далеко не все домены — список растет, когда кто-нибудь замечает нехватку какого-то сайта и обращает на это внимание владельца сервера. Есть и другое ограничение: этот прокси не открывает сайты, запрещенные цензурой.

DNS прокси

Существует еще DNS прокси, который поддерживается Технологическим университетом имени Шарифа, который открывает только сайты, подпадающие под санкции. Но его рекомендует правительство, а значит, вариант небезопасный. На главной странице у них опубликованы туториалы о том, как настроить DNS сервер на оси, чтобы указать ему на прокси-сервера. То есть все ваши DNS запросы будут обрабатываться прокси-сервером. Лично мне не нравится мысль о том, что третья сторона (причем такая, которую одобряет правительство) будет отслеживать все мои DNS запросы. Я не собираюсь менять свой DNS сервер с 1.1.1.1. на то, что предлагают они!

Публичные VPN сервисы

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

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

Частные VPN сервисы

Рабочее и безопасное, но дорогое решение.

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

TOR проект

Самое надежное, но не лучшее решение.

TOR — это перспективный способ обеспечения неприкосновенности частной жизни, который явно обходит как санкции, так и цензуру. Но с этим есть большая проблема — не все серверы любят получать трафик от TOR. Например, CloudFlare раздражает, когда вы обращаетесь к его серверам через TOR. Google заставляет вас проходить многочисленные капчи. А некоторые серверы просто не работают с «подозрительным» TCP-трафиком TOR.

Кроме того, правительство Ирана пыталось ограничить подключение к TOR, хотя они никогда не смогут заблокировать его полностью (только если они не блокируют все иностранные серверы!). Но напрямую подключаться к TOR-сети они не позволяют. Здесь пригодится bridges.torproject.org! Однако сначала вам нужно до него как-то добраться.

Как я выжил?


Я использую смесь всего вышеперечисленного!

С помощью bind/named я настроил отправку нескольких запросов к домену на прокси через shecan и privoxy, чтобы туннелировать все поддерживаемые домены через FOD, а другие через TOR.

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

Я просто хотел написать о том, насколько трудно бывает делать все то, что люди делают ежедневно, даже не задумываясь! Могу поспорить, что вы не можете представить интернет без YouTube. Ваши данные никогда внезапно не терялись без предварительного уведомления. Вы представить не можете, как тяжело выжить в условиях сильной цензуры и санкций. Вы не представляете, каково это — ждать VPN-подключения более 10 минут, а затем получить отказ!

Самая боль в том, что «все это происходит только потому, что мы живем в Иране, где никто не заботится о людях. Даже люди!».