Простая разблокировка LiveJournal и Blogger.com

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