Статья описывает способ получения доступа к ресурсам ошибочно попавшим под раздачу плюшек Роскомндзором (далее РКН). Именно ошибочно попавшим. Мы законопослушные граждане и не ходим туда куда нам запрещают наши госорганы. Так что если вдруг вы решите воспользоваться способом для того что бы пойти на какие то “законно” заблокированные ресурсы, суровый меч правосудия возможно взметнется над вашей головой и я в этом не виноват, поскольку вот прямо сейчас я вас предупредил!
Проблема возникла совершенно неожиданно, когда наш центральный офис переехал в другое место и как следствие сменил провайдера. Сотрудники в массовом порядке начали жаловаться мне, что не могут заходить на те сайты, куда раньше доступ у них был. При этом с других наших офисов, сидящих на других провайдерах, сайты по прежнему были доступны.
Некоторое время из-за хлопот с переездом проблему я игнорил, но когда начала жаловаться бухгалтерия (у вас же бухгалтерия тоже по значимости на 1 месте после руководства фирмы?), пришлось разбираться.
Первым делом подозрение пало на проблемы с MTU и MSS. Но с ними, к счастью, все оказалось в порядке. Пробил проблемный домен по базе РКН, тоже ОК, домен чист. Пооткрывал сайт через шлюзы других филиалов (3 разных провайдера), открывается. Но через нашего провайдера к IP домена даже пинги не идут. И тогда я догадался пробить через РКН IP проблемного домена. Вы же уже догадались, что IP-таки в базе оказался?
Но где же тогда редирект на страницу с указанием на то что данный ресурс заблокирован и т.д. и т.п., спросите вы. И я спросил. Сначала правда попробовал открыть несколько сайтов, где раньше, когда было можно, мы все искали что бы посмотреть или скачать. И убедившись, что нет никаких предупреждений о блокировке и на этих сайтах, я позвонил провайдеру.
Провайдер меня выслушал, признал, что проблема есть, а предупреждений нет.
Посочувствовал моей ситуации, но что-то исправлять отказался. Мол, мы соблюдаем требование по блокировке, а требований по уведомлению нет. На чем мы и попрощались.
Конечно, у меня возникло желание прободаться с провайдером, но лень и отсутствие свободного времени это желание затолкали глубоко. Примерно ту да же куда я в душе послал провайдера с его интернетом, туда где солнышко не светит.
Проблему же надо было как-то решать. В качестве шлюзов-маршрутизаторов у нас на фирме используются Микротики, не важно какие, Роутер ОС у всех одинаковая. Покопавшись на Хабре, нашел несколько статей о том как обходить блокировки РКН, генерируя и загружая базу РКН в Микротик. При этом маршрутизируя заблокированный трафик на те шлюзы, где никаких блокировок нет. Ради интереса попробовал этот способ. Работает, но не устраивает.
Во первых объем базы в 60000 ip (на начало лета 2019г), отправлял мой Микротик в глубокую кому. Роутер ОС CHR c большим объемом памяти и несколькими ядрами чувствовала себя несколько лучше но давала понять что при таком добросовестном отношении РКН к своим обязанностям и ее хватит не на долго.
Во вторых, доступ получался ко всем заблокированным ресурсам в том числе и тем, которые заблокированы на “законных” основаниях. Что меня как законопослушного гражданина так же не устраивало.
Но сама идея направлять к разрешенным сайтам трафик через те шлюзы где он не блокируется засела в моем сознании.
Что же мы можем для этого сделать?
Первое что приходит на ум выяснить ip ресурса и определить для него шлюз в роутинге. Не вариант, у ресурса может быть несколько ip и они могут меняться, иногда часто. Устанешь добавлять.
Второе, парсить IP по средствам Layer 7 в фаерволе, занося их в адрес лист. Уже лучше, но у Layer 7 есть неприятная черта. Если правил несколько то он начинает относиться к ресурсам процессора примерно так же как некоторые жены относятся к зарплате своего мужа. В результате чего в семье начинаются ссоры, скандалы и прочие неурядицы.
Направлять вообще весь трафик через удаленный шлюз, так же пагубно.
К счастью на сентябрьском MUM один из докладчиков открыл страшную тайну. Оказывается Микротики с некоторых пор научились парсить IP домена прямо из его имени в адрес листе, добавляя IP в тот же лист! Вооружившись полученной информацией я наконец решил задачу.
Ниже пример решения:
1. Создаем в фаерволе адрес лист с нужным доменом.
2. В FirewallMangle создаем правило, chain:prerouting, advanced: Dst.Address list= имя нашего листа, action:mark routing, New Routing Mark=имя марки
3. Идем в IPRoutes. Создаем новый маршрут по умолчанию. Dst Address=0.0.0.0/0, Gateway= ip шлюза, Routing Mark=ваша марка
На этом все. Теперь ваш Микротик будет парсить ip нужного домена в тот адрес лист, который вы для этого придумали, маркировать маршруты к этому ip и отправлять их через тот шлюз, который вам нужен. У вас же есть резервный шлюз? Смайл.
Делалось на прошивке 6.45.5
Спасибо за внимание.
Автор: PAPIruss