Возвращение доступа к недоступным в России сервисам
Данный материал был подготовлен с единственной целью: дать возможность людям иметь доступ к недоступному в иных ситуациях контенту. Сегодня я понял, что сервис wetransfer решил запретить пользователям из России и Белоруссии передавать файлы
Я использовал этот сервис на протяжении примерно четырёх месяцев для того, чтобы пользователи одного из моих проектов могли отправлять мне файлы логов, чтобы я мог узнать причину каких-либо возникающих у них ошибок
Поскольку, по мнению wetransfer, логи моей программы применяются «в интересах войны», пользоваться я им больше не могу. А хотелось бы
Для возвращения доступа к подобным, абсолютно бессмысленным образом ушедших с нашего рынка сервисам, этот материал и подготовлен
Дисклеймер: цель статьи — рассказ о возможностях. Воспринимайте это как диванную аналитику с соседом-дебилом. Нам не интересна серьёзная теоретическая база. И, ещё раз, мы не нарушаем законодательство, а восстанавливаем доступ к сайтам, ушедшим из России по собственной воле. В данном примере я буду восстанавливать доступ к сервису wetransfer
Кроме того, я линуксоид, и все гайды будут ориентированы именно на аудиторию линукса. Принцип работы не зависит от операционной системы, поэтому при достаточных знаниях сделать аналогичное для windows не несёт абсолютно никакой проблемы
Как можно вернуть доступ к закрытому сайту?
Блокировка сайтов происходит по региональному принципу, то есть они недоступны в одном конкретном регионе. Регионы определяются довольно просто: по IP адресу
Ограниченность IPv4
Когда мы подключаемся к какому-то сайту — мы создаём TCP соединение между сервером, который хостит этот сайт, и нашим компьютером. При этом сервер сайта знает адрес клиента, который к нему подключается. Адреса всех компьютеров строго распределены между разными странами, а внутри стран — между их регионами. Текущий стандарт де-факто IPv4 имеет ограниченное количество устройств (4,294,967,296 — 4.29 миллиарда), которые могут одновременно иметь различные адреса, причём это количество радикально меньше и количества людей на планете, и количества существующих устройств, имеющих доступ к интернету (и требующих IP адрес)
Собственно, техническая сторона вопроса нас не сильно интересует. Здесь мы собрались лишь для того, чтобы обсудить практическую её сторону — к сожалению, в сложившихся обстоятельствах именно это нам и остаётся
Итак, IPv4 адресов мало и они строго распределены между государствами, при этом узнать страну, которой принадлежит адрес, крайне просто. Что дальше?
Изменение внешнего IP адреса
Решение элементарное: нужно просто сменить IP адрес. Если есть какой-то промежуток адресов, которые принадлежат России, то всё что нужно — это получить адрес, который «на бумаге» России не принадлежит
Но на этом хорошие новости заканчиваются. Потому что дело это не такое простое. И решений здесь несколько; самое простое из них — использование VPN
VPN
Я не буду рассматривать здесь этот вариант, хотя мы единожды используем его в дальнейшем. Однако я должен дать небольшое описание технологии для тех, кто не знает о ней
VPN — это виртуальный туннель, который соединяет ваш компьютер с компьютером на «другой стороне» — в нашем случае интересен вариант вне России. При этом любые ваши исходящие запросы сквозь этот туннель будут перенаправлены на компьютер по ту сторону, а уже он отправит этот запрос дальше. В обратном порядке работают входящие соединения.
Плюсы: мы успешно сменили наш IP адрес, получили доступ к закрытому в России сайту и вдобавок защитили наши данные
Тор
Собственно, то, ради чего все здесь и собрались
Тор - это особая технология, работающая на добровольцах по всему миру. Идея схожа с VPN: мы создаём виртуальные туннели и через них выходим в интернет через другие устройства. Однако в этот раз таких клиентов не 1, а 4 или больше
То есть мы подключаемся к первому клиенту, он - ко второму, тот к третьему, и так далее. Последний клиент в этой цепи осуществляет запрос к сайту и возвращает результат по обратному пути
Плюсы: бесплатно и супер-безопасно. Имеется доступ к onion сайтам с повышенной анонимностью
Минусы: медленнее и требует технической подготовки
Именно этот вариант мы и будем использовать по причинам, описанным в "плюсах". Меня не особо волнует скорость работы (она вполне сносная - ниже), а с технической частью я подскажу уже здесь
Torproject и вопросы легальности
Первое что нужно сделать - скачать тор. Однако есть проблема: он заблокирован на территории России. Причина проста и понятна: он даёт доступ к запрещённым в России сайтам
Федеральный закон от 29.07.2017 № 276-ФЗ "О внесении изменений в Федеральный закон "Об информации, информационных технологиях и о защите информации" гласит о том, что
- Организации и частные лица, предоставляющие услуги VPN и ему подобных сервисов, обязаны следовать списку запрещённых в России сайтов и блокировать доступ к ним
- В случае отсутствии блокировок запрещённых в России сервисов им будет отправлено уведомление, в случае игнорирования которого сервис будет заблокирован интернет-провайдерами страны
Собственно, именно это и случилось с тором и кучей других VPN сервисов в 2017-м: они получили эти уведомления, но отказались блокировать запрещённые в России сайты (что в случае тора в принципе невыполнимо)
Правильно ли это - решайте для себя сами. Моё мнениие следующее: если вы работаете в некоторой стране и зарабатываете на её гражданах - вы обязаны соблюдать её законодательство
Тем не менее, в этом законе нет ни слова об использовании в том числе заблокированных VPN и им подобным сервисов, что автоматически делает их вполне легальными, хоть и недоступными для установки
Установка через OpenVPN
Для меня установка лаунчера тора доступна прямо через Gnome Software в качестве Flatpak
Тем не менее сам "установщик/лаунчер браузера" скачать его не сможет, так как это происходит через сайт torproject, на котором и хранятся файлы браузера
Поэтому для установки тора мы используем OpenVPN. Это программа и по совместительству технология для осуществления подключения к VPN
Для меня (Fedora Workstation, GNOME) подключение к OpenVPN доступно прямо через настройки сети - самая последняя строка, Import from file
Для кого-то для этого понадобится скачать одноимённую программу, но это не мой случай
Далее необходимо найти любой бесплатный OpenVPN сервер. Я не оставлю вам вариант, который использовал сам, однако уверен, что вы сможете найти подходящий довольно просто
Затем мы просто подключаемся к этому VPN и скачиваем браузер тора
Обратите внимание что в целом вы могли бы продолжить использовать этот бесплатный VPN и для других задач. Мне же останавливаться на этом не хочется
После установки браузера главное - не забыть в настройках выбрать мост. Для меня вполне успешно работает obfs4, хотя для некоторых он может быть недоступен. Вы можете использовать любой другой из предложенного списка, или запросить один из них с сайта torproject (что, конечно, потребует использование OpenVPN)
Сервис тора
После этого (и запуска самого браузера) у вас должен появиться сервис тора. По идее его можно было бы установить отдельно, но лучше сразу иметь и то, и другое, не так ли?
Как пользоваться браузером тора мне учить вас не надо. Интереснее научить наш любимый Firefox использовать его по нашему желанию
К слову, не забудьте добавить сервис тора в автозапуск системы
systemctl enable tor
SOCKS прокси
Сервис тора создаёт локальной SOCKS5 прокси по адресу 127.0.0.1:9050. Через этот прокси мы можем осуществлять соединения через сеть тора
Проверить работоспособность сервиса тора и его прокси можно с помощью curl
Сайт https://api.ipify.org возвращает нам IP адрес, через который мы осуществили к нему запрос. Первый запрос был совершён напрямую, второй - через локальный прокси тора. Как вы можете заметить - мой IP адрес был успешно изменён, что говорит о том, что прокси тора успешно работает
Кроме того, наш адрес можно изменить буквально одной командой, перезапустив сервис тора
systemctl restart tor
Расширение FoxyProxy
Для управления прокси серверами, используемыми в браузере Firefox, я установил расширение FoxyProxy. Далее сказал ему использовать прокси, подходящие под определённые шаблоны, и, собственно, добавил эти прокси и шаблоны. Про I2P мы поговорим далее, а сейчас нас интересует тор
Собственно, теперь я имею автоматический доступ как к обычным сайтам, так и, к примеру, onion версии твиттера
Кроме того теперь я могу подключаться к сети тора буквально одним кликом - переключив режим работы FoxyProxy
Скорость подключения так же довольно хорошая. При желании можно поперезапускать сервис тора несколько раз чтобы сменить релеи. Вдруг станет лучше?
I2P
Другая интересная технология - I2P (IIP, Invisible Internet Project) - протокол "невидимого интернета". Идея заключается в том, чтобы дать пользователям системы возможность анонимного и безопасного доступа к "невидимому интернету". Основное отличие от тора (напоминаю: мы игнорируем техническую часть) заключается в том, что I2P абсолютно независим от внешнего интернета. То есть, он работает поверх него, но не предоставляет к нему доступа. Вместо этого I2P позволяет пользователям иметь доступ к одноимённым сайтам из виртуального пространства имён. В целом, это похоже на onion сайты, к которым никаким иным образом получить доступ не представляется возможным
Установка
Как и тор, i2pd доступен для установки прямо из gnome software в качестве flatpak
После запуска программы внизу general settings необходимо (рекомендованно) включить SOCKS прокси
Как и с тором, i2pd будет создавать socks5 прокси по локальному адресу 127.0.0.1:447, и http по адресу 127.0.0.1:4444. По моей личной практике некоторые I2P сайты недоступны через socks прокси, поэтому я рекомендую настроить оба варианта
Теперь наше расширение автоматически будет использовать I2P прокси если потребуется
Подробнее про различные I2P сайты вы можете почитать сами. Однако, возможно, главным из них является http://i2pforum.i2p
Собственно, на этом всё. Мы научили наш браузер работать с onion и i2p сайтами, смогли добавить поддержку tor соединения в один клик, а главное - вернули мне доступ к wetransfer. Ура!
И напоследок. Что мы сделали - так это перенаправили пакеты с браузера в сеть тор. Соединения, генерируемые приложениями на компьютере, так и остаются открытыми. Для решения этой задачи я нашёл вот такой ответ на superuser.com. К счастью, сейчас всё работает вполне себе стабильно и блокируются только некоторые сайты. Однако уже были разговоры о том, чтобы заблокировать для российских пользователей некоторое открытое ПО. Если такое всё же случится - я напишу уже новую статью, в которой мы постараемся обойти данное ограничение