Для тех, кто живёт не в Казахстане и не в курсе насчёт блокировки – поясняю, что на протяжении последних нескольких лет провайдер «Казахтелеком» перманентно блокирует доступ к сайтам 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-сервером, заблокированные сайты должны открываться напрямую.