Как все начиналось

Идея

Воплощение

Плач Ярославны

Инструкция

apt-get update apt-get install build-essential apt-get install zlib1g-dev apt-get install libcurl4-openssl-dev apt-get install openssl libssl-dev apt-get install libc-ares-dev git clone https://github.com/3s3s/3s3s.org.git cd 3s3s.org ./compile.sh

nohup ./test_server.exe &

#define DNS_NAME "3s3s.ru"

./compile.sh nohup ./test_server.exe &

Ну и на сладкое...

В этой статье я сначала расскажу историю не очень долгой жизни одного анонимайзера, а потом научу — как сделать анонимайзер из исходных кодов, даже не обладая особыми навыками программирования или администрирования. Выложить свой исходный код в открытый доступ было решено после того, как мой анонимайзер попал в список Роскомнадзора и был заблокирован… Но обо всем по порядку.В далеком 2013 году, на одном из форумов я поспорил с оппонентом, что за вечер напишу с нуля на с++ сервер раздающий статические страницы. Глупый спор, не помню с чего начался, но дабы не потерять лицо пришлось этот спор выиграть…После этой истории исходники сервера валялись на задворках жесткого диска примерно полгода, пока все усиливающаяся интернет-цензура в России не привела к идее сделать собственный анонимайзер. Но анонимайзеров много и все известные мне работали по принципу: «введите на нашем сайте адрес и мы покажем эту страницу», хотелось сделать что-то оригинальное. Основная идея — сделать необязательным посещение сайта анонимайзера… Но как это сделать удобным?Решение пришло случайно и по началу у меня даже не было достаточных технических знаний, чтобы понять — а будет ли это работать? Оказалось — работает! Идея проста: берем любой сайт и к его имени хоста дописываем окончание в виде доменного имени анонимайзера. Например вместо habrahabr.ru пишем habrahabr.ru.3s3s.org (В последствии доделал и для https: вместо habrahabr.ru пишем h_t_t_p_s.habrahabr.ru.3s3s.org Правда первооткрывателем я себя чувствовал совсем не долго. Хорошие люди подсказали, что идея уже давно реализована и называется CoralCDN Ну я попробовал этот CoralCDN и меня он не воодушевил ни своей скоростью ни стабильностью. Поэтому все таки решил написать свой вариант.1. Покупаем самый дешевый VDS. Можно найти за 10$ в год, но я все таки советую что-то посолидней. Лично я выбрал DigitalOcean за 5$ в месяц и был доволен как слон.2. Покупаем короткий домен, желательно красивый и не подконтрольный цензуре и у зарубежного регистратора. Я купил 3s3s.org у GoDaddy. 20$ в год3. Делаем две «А» записи в настройках DNS зоны:раз: "@.3s3s.org -> [IP адрес VDS]"два: "*.3s3s.org -> [IP адрес VDS]"4. Пишем код анонимайзера, загружаем на свой сервер и готово…Ну вот тут я подобрался к моменту, ради которого и начал писать эту статью. Самое главное, чтобы про ваш анонимайзер знали только проверенные люди. Потому что несмотря на то, что прямого запрета в законах РФ на анонимайзеры нет, по факту прокуроры, которым видимо нечем больше заниматься, время от времени подают в суд, а суды под шаблон выносят решения о блокировке этих сервисов.Мой анонимайзер продержался два года, но вот две недели назад я получил от хостера письмо, что Роскомнадзор собирается мой сайт заблокировать… Поиск по интернету показал, что сайт уже в черном списке благодаря решению суда, а время на обжалование уже вышло…Я конечно попытаюсь как-то еще побороться и восстановить срок, потом попробовать подать апелляцию, но сайт уже заблокирован и скорее всего так заблокированным и останется, поэтому и было принято решение выложить исходный код и инструкцию по его использованиюв открытый доступ.Итак, если вы решили сделать свой анонимайзер, то после покупки сервера и домена вам осталось сделать совсем немного.4.1 Установить на сервер операционную систему. Мой анонимайзер работал под CentOS 6, но исходник на гитхабе я решил заточить под Ubuntu 164.2 Зайти в консоль и выполнить следующие команды:Последняя команда скомпилирует анонимайзер. Чтобы запустить его, нужно выполнить командуОднако не торопитесь. Прежде чем компилировать и запускать, вам все таки придется заняться программированием… А именно: вам нужно исправить одну (первую) строчку в файле log.h!Думаю вы поняли, что конкретно нужно исправить в этой строчке? Вот после исправления, запускайтеИ можете заходить на сайт вашего собственного анонимайзера. Удачи!P.S. Для демонстрации купил недавно за 100 рублей домен 3s3s.ru и запустил на новом сервере анонимайзер по описанной инструкции: 3s3s.ru P.P.S. Пожалуй, обрисую основные отличительные черты именно этого анонимайзера.Не обязательно заходить на сайт анонимайзера, достаточно в адресной строке браузера приписать к имени нужного ресурса строчку ".3s3s.org" (теперь уже ".3s3s.ru") Например вместо www.kasparov.ru написать www.kasparov.ru.3s3s.ru Сервис работает с любыми браузерами и любыми устройствами не требуя дополнительных настроек и установок стороннего софта.Если провайдер очень умный и блокирует все, чтона запрещенный адрес, то можно уже зайти на сайт анонимайзера и ввести адрес там. По умолчанию мой анонимайзерзапрашиваемого ресурса, т.е. меняет настоящий адрес на случайную строку. Таким образом провайдер уже никак не сможет определить — к какому ресурсу вы реально обращаетесь.Как бонус, можно придумать блокируемому ресурсу любое название и на сайте анонимайзера сделать постоянный домен третьего уровня. Например, вместо www.kasparov.ru сделать kasp.3s3s.ru В последней версии я модифицировал код таким образом, что теперь необходимость в собственном VDS отпала. По крайней мере в случае, если вам не нужен собственный анонимайзер, а достаточно лишь собственного домена.Домен можно купить в зоне ru за 100 рублей на год, либо получить бесплатно у фринома.Итак, для того, чтобы получить анонимайзер на собственном домене, без навыков програмирования вообще, вам нужно:1. Купить (или получить бесплатно) домен.2. Настроить A записи своего домена на IP адрес моего анонимайзера (на сегодня это 104.131.65.219 но как вы понимаете, все может в любой момент поменяться). Настройки должны выглядеть примерно так:раз: "@.ваш.домен -> 104.131.65.219"два: "*.ваш.домен -> 104.131.65.219"Все!Когда DNS обновятся, то вы сможете заходить на любые заблокированные сайты набрав в адресной строке:Пробуйте, должно работать. Если работать не будет, пишите в баг-трекер на гитхабе. Обязательно сделаю, чтобы заработало. Таким методом блокировки доменов станут бессмысленными, а если будут блокировать IP (что вряд ли, но теоретически возможно), то поменять IP — дело 10 минут.Правда предупреждаю, что особенностью бесплатных доменов у фринома является невозможность упомянутой выше настройки. Чтобы обойти это ограничение, придется сначала делегировать домен например на сервера яндекса.