Для тех, кто живёт не в Казахстане и не в курсе насчёт блокировки – поясняю, что на протяжении последних нескольких лет провайдер «Казахтелеком» перманентно блокирует доступ к сайтам LiveJournal и Blogger.com по причине размещённых там оппозиционных блогов.
Как говорится, «любопытство – не порок, а пусть к знаниям». Чтобы иметь возможность читать «ЖЖ», я несколько лет пользовался всевозможными прокси и год назад написал об этом заметку, но потом мне это надоело. В какой-то момент меня заинтересовал сам механизм блокировки, реализация которого оказалась довольно простой. Информации по этому вопросу в Сети предостаточно, да я и не первый, кто вообще пишет об этом.
В случае с LiveJournal, суть защиты состоит в блокировании одного из принадлежащих ему IP-адресов, а именно '208.93.0.128'; а в ситуации с Blogger.com провайдером, в качестве перестраховки, был заблокирован целый диапазон адресов, на которых располагаются сервисы Google. Кстати, именно поэтому ни в чём неповинный интерфейс веб-почты «Google Apps» ('ghs.google.com'), физически расположенный на этих же серверах, также попал под раздачу.
Чтобы пользоваться LiveJournal, нужно просто переназначить его доменное имя и, за некоторым исключением, поддомены третьего уровня на принадлежащий ему, но незаблокированный провайдером IP-адрес. По аналогии, для доступа к Blogger.com нужно найти какой-нибудь разрешённый IP-адрес из диапазона Google и назначить доменам третьего уровня в зоне 'blogger.com' этот адрес (посмотрите, во что ресольвится имя 'google.com' и не ошибётесь, глобально Google в Казахстане не забанен).
Эти манипуляции можно сделать в файле hosts, но это очень неудобно по причине отсутствия в нём поддержки маски имени (wildcard) – каждое доменное имя придётся прописывать вручную. Поэтому, лучше описать нужные нам зоны на DNS-сервере сети (надеюсь, он у Вас есть).
Добавляем описание зон в 'named.conf':
// livejournal.com zone zone "livejournal.com" IN { type master; file "livejournal.com.zone"; allow-update { none; }; }; // lj-toys.com zone zone "lj-toys.com" IN { type master; file "lj-toys.com.zone"; allow-update { none; }; }; // blogger.com zone zone "blogger.com" IN { type master; file "blogger.com.zone"; allow-update { none; }; };
Описываем зоны. Файл 'livejournal.com.zone':
$TTL 86400 $ORIGIN livejournal.com. @ IN SOA ns01.livejournal.com. root.livejournal.com. ( 2010010100 ; Serial 10800 ; Refresh 3600 ; Retry 3600000 ; Expire 86400 ) ; minimum NS ns01.livejournal.com. NS ns02.livejournal.com. NS ns03.livejournal.com. MX 10 mail.livejournal.com. TXT "v=spf1 a mx ip4:208.93.0.0/23 ?all" @ A 208.93.0.129 mail A 208.93.0.48 ns01 A 208.93.0.64 ns02 A 208.93.0.65 ns03 A 208.80.68.245 l-pics A 208.111.168.7 l-stat A 208.111.168.6 l-userpic A 208.111.168.6 pics A 208.93.0.130 *.livejournal.com. A 208.93.0.129
Файл 'lj-toys.com.zone':
$TTL 86400 $ORIGIN lj-toys.com. @ IN SOA ns01.livejournal.com. root.lj-toys.com. ( 2010010100 ; Serial 10800 ; Refresh 3600 ; Retry 3600000 ; Expire 86400 ) ; minimum NS ns01.livejournal.com. NS ns02.livejournal.com. NS ns03.livejournal.com. MX 10 mail.lj-toys.com. @ A 208.93.0.129 mail A 208.93.0.129 *.lj-toys.com. A 208.93.0.129
Файл 'blogger.com.zone':
$TTL 86400 $ORIGIN blogger.com. @ IN SOA ns1.google.com. dns-admin.google.com. ( 2010010100 ; serial 3H ; refresh 15M ; retry 1W ; expire 1D ) ; minimum NS ns1.google.com. NS ns2.google.com. NS ns3.google.com. NS ns4.google.com. MX 10 gmr-smtp-in.l.google.com. TXT "v=spf1 include:_netblocks.google.com -all" @ A 74.125.71.190 *.blogger.com. A 74.125.71.190
Перезапускаем BIND и, вуаля! У всех клиентов, пользующихся Вашим DNS-сервером, заблокированные сайты должны открываться напрямую.
Обсуждение
Правда, есть у нас люди, упорно отрицающие очевидные факты – можете поискать эпические треды на Yvision, в которых «эксперты» переливают из пустого в порожнее. Как убедиться в наличии блокировки? Да очень просто – разуть глаза и посмотреть.
Якобы, «потери происходят уже за пределами сети Казахтелекома»; наивные, дайте мне промежуточный маршрутизатор и я устрою вам потери на любом hop-е маршрута.
А как насчет http://blogspot.com? :)
Насчёт Блогспота не уверен, поскольку детально не смотрел. Обещаю, что гляну, но не ручаюсь за положительный результат. Вообще, эту статью надо бы скорректировать с учётом серверов Google в КТ.
Прикол еще в том, что пытаясь открыть http://blogspot.com/ происходит перенаправление на http://www.blogger.com/
Так и должно быть. Это одна контора.
Для посетителей этой страницы: смотрите обновлённую версию этой заметки! Приведённые здесь данные немного устарели.
Денис, спасибо, для http это работает. А что делать с защищённым соединением https по которому проходит авторизация на сервисе?
Как раз в ближайшее время я хотел написать заметку об изменениях в блокировке ЖЖ, который попеременно то блокируют, то разрешают. Вы меня немного опередили с вопросом
Вкратце, решение такое: замените 208.93.0.129 в зонах на 208.93.0.128 и HTTPS заработает. «Казахтелеком» теперь блокирует другой диапазон адресов, а ранее блокированный 208.93.0.128, на котором есть HTTPS, пока доступен.
Видимо, я делаю что-то не так — таймаут.
Кэши почистите. Перезапустите named, браузер, клиентскую ОС. Проверьте, что при ресольвинге отдаётся нужный адрес (208.93.0.128). Ещё раз проверил, у меня нормально открывается https://livejournal.com/.
Всё ок, помогла перезагрузка.
Денис, добрый день!
ЖЖ опыть заблокировали и я опять к вам. :) Что на этот раз исправить в зонах бинда?
Теперь по http/https закрыта вся /24-подсеть ЖЖ (а может, и больше, я не смотрел). Так что, пока не вижу решения, кроме прокси и анонимайзеров.