Компьютерное, важное: цензура и взлом.

На модерации Отложенный

Как мы уже все знаем, начались очень «весёлые» времена (парафразируя Вакарчука).

Преамбула:

Как многие знают, я являюсь администратором русскоязычного форума в Аргентине http://forum.nasha-argentina.com.ar , а у нас обычная практика, давать ссылки на сайты различного тематического содержания, которые, в основном касаются тем документации, легализации, браков, работы, университетов и пр. целевое.

Пару недель тому, к нам поступил вопрос от одной гомосексуальной пары проживающей в Израиле по поводу заключения брака. Ответили по общим постановлениям закона и, в какой юрисдикции заключение брака между иностранцами требует менее сложных ходатайств. Для разъяснения других подробностей, предложили проконсультироваться с организацией защищающей права гомосексуалистов, а точнее http://cha.org.ar/  (Comunidad Homosexual Argentina).

И что получилось? Один израильский провайдер перенаправлял на http://cha.org/  (Christian Heritage Academy, то есть, пидоры совсем другого вида), а другой просто указывал, что нет такого адреса.

Из РФ и РБ та же петрушка. Из Украины (проверка на уровне знакомых) проблем не было. Хотя не сомневался, что в некоторых странах, типа Ирана или Китая, будут стараться запрещать доступ на ресурсы гомосексуалистов, хотя, в другом конце Света и по-испански, как-то глупо звучит. Но случай с Израилем и РФ меня заинтриговал.

В самом деле, нет никакого формального запрета на эти сайты и ресурсы, но провайдеры, по собственной инициативе или с телефонного указания «сверху» (верхом может быть чиновник или какой-то ретивый клирик) блокируют доступ. (Читайте статью на Росбалте).

Тема меня заинтриговала. По whois определил, что сайт http://cha.org.ar/ разделяет IP с 246 другими доменами. (Убедитесь сами http://viewdns.info/reverseip/?host=201.235.253.65 ). Раз так, следовало бы испытать, на каком уровне блокируют сайт, на уровне доменного имени или на уровне IP?. Для этого, просто следовало набрать адрес любого другого домена из списка. Оказалось, что во всех случаях, у моих знакомых, где происходили проблемы с http://cha.org.ar/ отлично открывался сайт http://camposenuruguay.com  на том же IP.

То есть, единственный возможный вывод: DNS (Служба разрешения доменных имён, то есть работает аналогично телефонной книге) провайдера или блокирует определённый домен, или выдаёт ложную информацию, заведомо, или в последствии взлома.

Когда блокируется разрешение доменного имени, решение просто: использовать другую службу DNS, а когда блокируют IP, нет другого выхода, как использовать Proxy.

Если бы речь шла только о блокировании порносайтов, или сайтов гомосексуалистов, то для огромного большинства пользователей особой проблемы не было бы. Вопрос в том, что каждый раз становятся более известными случаи блокирования DNS сайтов оппозиции и, с каждым днём растущем количестве мои знакомые указывают на факт недоступности. И это случается и в Украине, и в РФ, но конечно, чаще всего в РБ и Казахстане. О других странах бСССР у меня информации нет. Фабула. Как выявить и предотвратить DNS блокаду? Блокада ли это, или сервер глючит? Определить это очень просто (процедура для Windows, пользователи Linux сами всё знают) : 1. Открываем командную строку (Пуск>Все Программы>Стандартные>Командная строка ). 2. Набираем nslookup и нажимаем на ENTER. В ответ выйдет:          Сервер по умолчанию: [имя сервера]          Ххх.ххх.ххх.ххх (то есть, IP сервера)          > 3. Набираем домен, ІР которого желаем найти, например, dpni.org и нажимаем Enter. 4. Если не получаем ответа в течение 3-5 сек., это значит, что что-то не в порядке. Может происходить следующее:

a. Если выдаёт: « [название сервера] не удалось найти dpni.org: Non-existent domain», а Вы уверены, что доменное имя написали правильно, то его тупо блокируют на уровне DNS Вашего провайдера. b. Возвращается знак «>» без ответа или ответ «server timeout error» (или что-то вроде этого, в зависимости от версии Windows), то DNS тупо глючит.

5. Если получаем ответ, то обычно он выглядит так:          Не заслуживающий доверия ответ:          Имя: dpni.org          Address: 72.46.129.210

Ответ, в самом деле, не заслуживает доверия! Хотя это плохой перевод «Non authoritave response». Дело в том, что только 2 DNS и их копии поддержки являются доверительными для разрешения доменного имени. Это именно те, которым владелец доменного имени доверил эту задачу. Эти DNS числятся в ICANN и в базах данных учреждений, ответственных за выдачу и хранение доменных имён в каждой стране, в своей территориальной зоне. В реестр доверенного сервера разрешения имён включён регистр SOA (Starting of Autority) для каждого доверенного именно ему доменного имени. Этот регистр — единственный, который не копируется в другие серверы.

 

a. Какие часто используемые регистры DNS существуют для разрешения имён?

i. Регистр А (ААА в протоколе интернет версия 6 IPv6). Это — основной регистр. Содержит название домена и адрес IР. Практически всё. Но этот и все остальные регистры содержат, также, информацию TTL (time-to-live), то есть время, в течение которого этот адрес IР действительный без повторной консультации. Один хост (сервер) может иметь несколько различных адресов IP, когда загруженность очень высока (напр.: Youtube) или несколько доменных имён могут использовать один адрес IР (для большинства сайтов). ii. Регистр CNAME (регистр псевдонимов). Используется, когда разными именами называем один и тот же сервер. Например, vk.com vkontakte.ru является одним и тем же сервером с разными именами. Формат информации: название домена и название домена, на который перенаправляется, а также, TTL. Регистр CNAME перенаправляет только на один сервер, но на сервер адресат может иметь много псевдонимов. iii. Регистр MX (почтовый). Разрешает имена почтовых северов. Разрешает имя почтового сервера (всё, что после @). Может использовать формат А (имя — IР) или формат CNAME, хотя разрешается использовать различные серверы. Также содержит поле «приоритет» и ТТL. Сервер, с низшим уровнем приоритета используется в первую очередь, а по мере занятости, служба переводится на второстепенные.

b. Как переводятся имена в адреса ІР? Процедура многошаговая.

i. В первую очередь Windows проверяет собственный кэш, который содержит уже найденные адреса, в диапазоне жизнеспособности. В кэш, при запуске (и каждом изменении) загружается файл hosts (так как оно есть, без расширения) который находится в папке \windows\system32\drivers\etc. Формат регистров здесь аналогична DNS, только сначала идёт адрес IР, а потом, через хотя бы один пробел, название хоста. Так как этот файл, как и lmhosts был предназначен для определения компьютеров в локальной сети, со статическими именами, которая не требовала бы использования внутреннего DN сервера, то TTL там не ограничен. Как использовать эту возможность для собственных нужд и разница между hosts lmhosts будет описано в пункте 6. ii. Если разрешение имени найдено, то совершается запрос по уже имеющемуся IР адресу, но если на браузере просим повторить запрос, адрес, не вписанный в hosts запрашивается повторно. iii. Windows запрашивает разрешение имени на DNS указанный в конфигурации сети на компьютере, с которого проводится запрос. Это первый, очень важный момент. Как можем узнать, какие именно DNS используется нашим компьютером? Очень просто. Открываем ещё одну инстанцию командной строки (окно с nslookup нам ещё нужно) и набираем ipconfig/all [Enter] В первую очередь появится информация о настройке протокола IР. Эта информация пока нам не нужна. Далее появится список сетевых приспособлений: сетевые платы, беспроводные устройства и/или устройства через USB. Нужно искать в списке приспособление, с помощью которого мы подключены к Интернет: Ethernet Adapter — сетевая плата. (В домашнем компьютере, она обычно одна). Wireless Adapter (или что-то в этом роде) — беспроводная сеть (WiFi), MiniPort Wan (или похожее) — модем подключённый через USB.
Описание будет похоже на это:
DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . : Сетевой контроллер NVIDIA nForce
Физический адрес . . . . . . . . . : 00-22-15-9B-D8-10
DHCP включен . . . . . . . . . . . : Нет
Автонастройка включена . . . . . . : Да
IPv4-адрес . . . . . . . . . . . . : 192.168.0.32(Основной)
Маска подсети. . . . . . . . . . . : 255.255.255.0
Основной шлюз. . . . . . . . . . . : 192.168.0.10
DNS-серверы. . . . . . . . . . . .: 8.8.8.8
                                                8.8.4.4
Вот, к первому, указанному в нижней строке (DNS-серверы), Windows и будет обращаться через порт 53, а если не сможет связаться (в основном это по причине занятости или выхода из строя), то со следующими в списке.
iv. Получив запрос, DNS, в первую очередь проверяет свой кэш, сверяет TTL (жизнеспособность) своего регистра.
Если время жизни не истекло, то выдаёт ответ на запрос.
Если TTL истекло, то связывается с SOA доменного имени и передаёт полученный ответ и оставляет его в своём кэше.
Кэш SOA живёт обычно 48 часов. Поэтому, если изменяем авторитетный сервер для доменного имени, то мировое распространение изменения может занять до 48 часов.
Если у DNS сервера нет в кэше доменного имени, которое мы ищем, то обращается к авторитетным коренным серверам (более подробную информацию найдёте здесь: http://www.root-servers.org/), которые указывают на авторитетный DNS-сервер для определённого имени. Находят нужный IР адрес и передают его по запросу.

 

6.

И так, как уже можно догадаться, блокировать или неправильно направить любое доменное имя на DNS сервере очень просто: Добавляем регистр с доменным именем и даём ему либо другой номер IР или просто устанавливаем заглушку 255.255.255.255, далее придаём TTL значение «бесконечное». Также просто осуществить это блокирование на уровне страны: только нужно каждого провайдера заставить использовать «цензорный» корневой сервер, вместо настоящих и блокировать порт 53, для того, чтоб не использовали иностранные DNS.
А вот использовать заглушку в нашем компе мы можем для того, чтоб избавиться от рекламы. Вот один друг в ЖЖ мне посоветовал внести в файл hosts следующие адреса, для того, чтоб избавиться от рекламы в Youtube:        
255.255.255.255 pagead2.googlesyndication.com        
255.255.255.255 googleads.g.doubleclick.net        
255.255.255.255 ad.adriver.ru        
255.255.255.255 pink.habralab.ru        
255.255.255.255 www.google–analytics.com        
255.255.255.255 ssl.google–analytics.com        
255.255.255.255 m1.emea.2mdn.net.edgesuite.net
Вы можете их скопировать и поместить в файл hosts (открыть его в блокноте), сохранить и сразу избавиться от рекламы. Аналогично можно заглушить большинство серверов собирающих информацию о посещении и тех, кто распространяет рекламу. А разница между hosts и lmhosts заключается в том, что host предназначен для разрешения сетевых имён хостов, использующих имена в стиле Интернет, а lmhosts для разрешения имён в стиле NetBIOS. Последний, практически не используется, только в локальных сетях более, чем десятилетней конфигурации, а в крупных организациях такие ещё существуют.

 

7. Сейчас, вернёмся к процедуре, которую начали в п.5.

a. Полученный Адрес IР проверяем, где находится хостинг. Лично я использую отличную службу http://viewdns.info (на главной странице есть множества служб связанных с DNS). Есть прямая ссылка на http://viewdns.info/iplocation/ . Если хостинг сайта в международной зоне выпадает, например, на пригороды Бердска, то можете быть уверены, что DNS выдаёт поддельную информацию. Если сайт открывается, то можете быть на 100% уверенны, что службы следят за Вами. Органы следят особо ретиво за оппозиционерами местечковых царьков. (А как вы думаете, смогли вычислить анонимных блоггеров, пишущих на заграничных блогах/форумах?). b. Далее, возвращаемся к окну командной строки, в котором отрыта программа nslookup. На «>» набираем server 8.8.8.8 и нажимаем ENTER. Это общественный сервер Гугла. Далее проверяем тот же сайт, к которому ищем адрес IР. И так, сравниваем результаты:
i. Один и тот же IР? Место нахождения подозрительно? Результат: выход на DNS Гугл может быть заблокированным брандмауэром. Место нахождения правильное? Вам может быть стоит всё равно поменять DNS на общественный, с целью минимизировать возможность регистрации Ваших запросов. ii. Различный IР? По всей вероятности Ваш провайдер накладывает цензуру или слежку. iii. Нет ответа на запрос? Провайдер поставил брандмауэр и закрыл порт 53. Как обойти это ограничение я расскажу в следующей статье.

8. В этой статье мы остановимся на решении конкретной проблемы DNS. Через пару дней, если кому интересно, расскажу подробно, как обращаться с модемом «мостом», рутером и беспроводными соединениями. А пока, что мы можем сделать, чтоб было быстро и просто?

a. Скачиваем бесплатную программу «DNS Jumper» http://www.fiberdownload.com/Download/20721/DNS-Jumper  , в которой уже загружена база данных с общественными серверами. b. Проверяем достоверность информации, которую нам выдаёт наш DNS. Каким образом? Скачиваем программу DNS – Benchmark с http://code.google.com/p/namebench/downloads/list  Эта программа, не только проверяет скорость доступа к серверу, а также достоверность информации, связанной с оплатами, такие, как PayPal, Visa и Яндекс деньги. Самое интересное, что у участвующих в пробе друзей из РФ, доступ к PayPal и WebMoney не показывал реальные IP адреса.

Продолжение следует, иначе, будет чересчур длинным и никто не будет читать