воскресенье, 19 января 2014 г.

Как к Винде большой hosts прикручивали...

Началась эта песня с непонятных сетевых телодвижений на свежеустановленной системе (ХР в ипостаси Zver). Сборка, на мой взгляд, довольно спорная, но ехать можно. Если вообще уж не на чем.
Также был установлен целый выводок нужного и ненужного зверского софта. От себя я добавил только DU Meter - по многолетней привычке с диалапных времён «слушать» трафик. Ухом.
Подключаюсь к Сети. Пикает, зараза. Без малейших моих действий в Интернете. Просто установил соединение. Трафик не сильно, но течёт.

Хех... Иду качаю TCPView Марка Русиновича. Не помню где брал. Русиновича вместе с его Sysinternals на корню купила Microsoft, но на просторах сия софтина находится за пару минут.

UPD
Позже глянул - всё не так грустно. В голове не укладывается, но это так - мелкомягкие разрешили своему кадру раздавать софт БЕСПЛАТНО. Можете себе представить? Я - не могу. Но приходится верить своим глазам - старый сайт sysinternals.com редиректит на technet.microsoft.com/sysinternals
Бедные Стив Балмер с Биллом - это ж прямая идеологическая диверсия в собственной фирме, девиз которой с пелёнок был "Ни Байта задарма!!!"

Страница с описанием (на русском) и ссылкой на закачку. 
Прямая ссылка на архив с программой  (285 КБ).
Запускаем, глядим. Ага - половина стада куда-то лезет непонятно зачем. Особенно умилил Punto Switcher:
На кой ляд переключателю клавиатуры висеть на постоянной связи с Яндексом???
Согласитесь - идеальнее места для размещения кейлоггера не найти. И идеальнее метода внедрения - собственными руками пользователя :)
Любое нажатие клавиш, включая набор пароля не пройдёт мимо этого незаметного труженика святых Control, Alt и Delete.
Но здесь не всё так страшно - аппетиты Яндекса элементарно урезаются в Настройках Punto Switcher'a. Правда 99% юзеров понятия не имеют, что они по умолчанию подключены к любознательным плохишам, но это уже их заботы.

Озадачивает другое - некоторые программы просто невозможно цивилизованными способами приласкать кувалдой по шаловливым ручкам. Нет у них выключателя этой фичи и всё тут. А некоторые, типа неплохого дефрагментатора O&O Defrag, ещё и ножкой топают, когда у них соску отбирают, принудительно обрывая соединение.
Ну, с не особо нужными приблудами разговор короткий - отправляем их в /dev/null, нежно приговаривая:
«Ну-ка, нафиг с пляжа», а с нужным софтом надо, как говорит Жванецкий, тщательнЕЕ.
На ум сразу приходит возможность подсунуть программе вместо родного сервера нашенский localhost, добавив всего одну строку в файл hosts. Типа:
 
127.0.0.1   blablabla.com
Сказано - сделано. И тут... приходит чувство какой-то незавершённости. Что ж это я пёрся в такую даль, аж в *\WINDOWS\system32\drivers\etc\, ради пары убогих строчек? Неее. Хочется написать туда ещё какую-нибудь каку.
Как назло, повылетали из головы фамилии мерзопакостных сайтов, которые я клялся-божился заблокировать как только буду мимо файла hosts пробегать. Ну,
ещё хоть кого-то прибить хочется. Для кислотно-щелочного баланса...

В процессе ковыряния отвёрткой в носу гугления, обнаружился интересный сайтик hostsfile.mine.nu - здесь лежит уже готовый жирный hosts-файл чуть ли не с сотней тысяч нехороших сайтов (более 60 000 верифицированных). Реклама, фишинг, spyware... короче, полный фарш.
Ба! «Да это ж мой гардеробчик!»
Правда, я всегда почему-то боялся в файл
hosts совать больше пары десятков адресов. Сам не знаю почему.
Вентилирую тему и обнаруживаю не ложку, а целую бочку дёгтя. Юнихам и Макинтошам глубоко фиолетово до размера файла hosts, а поведение Винды на больших
hosts-файлах зависит от фазы Луны. От 100% загрузки процессора до падения через 10-20 минут. Причём, нормальная работа как вариант вообще не рассматривается. Предлагается парочка танго с бубном, но никаких гарантий.

Ну, тема уже зацепила и «даже если вас съели — у вас все равно есть два выхода». Будем искать второй.


Короче, решил проблему как и положено в Виндах - через зад. Мысль двигалась таким кривым путём: нужно найти какой-нибудь лёгонький сетевой сервис (желательно полезный), к которому сбоку можно прикрутить большой файл hosts. Глубокое бурение привело к программе Acrylic DNS Proxy. Это локальный кеширующий DNS-сервер. Ускоряет работу в Интернет тем, что не приходится при каждом чихе скакать меченым атомом по внешним DNS-серверам в поисках нужного IP.
Прописывается Службой, кушает не очень и вообще - программа из серии «поставил, настроил и забыл». Бесплатная. Лежит на sourceforge.net (402,6 КБ).


Для настройки сервера добываем IP-адреса DNS-серверов провайдера. В командной строке набиваем: 

ipconfig /all 
и видим примерно следующее:
  
IP-адреса DNS-серверов следует сохранить (хоть на бумажке).

Устанавливаем программу Acrylic DNS Proxy и редактируем конфигурационный файл  *:\Program Files\Acrylic DNS Proxy\AcrylicConfiguration.ini      
Нас интересуют только следующие строки:
PrimaryServerAddress=
. . .
SecondaryServerAddress=
. . .
TertiaryServerAddress=
. . .
QuaternaryServerAddress=
. . .
QuinaryServerAddress=
. . .
SenaryServerAddress=
. . .
SeptenaryServerAddress=
. . .
OctonaryServerAddress=
. . .
NonaryServerAddress=
. . .
DenaryServerAddress=
После "=" в первой строке вписываем IP-адрес первого DNS-сервера провайдера, во второй - второго. Если есть. Если нет, то во вторую и последующие строки нужно (можно) вбить IP халявных DNS-серверов. Например, 8.8.8.8 и 8.8.4.4 - это Google Public DNS, 208.67.222.222 и 208.67.222.220 - OpenDNS, 77.88.8.8 - Яндекс.DNS...
Я на этом остановился. Если нужно ещё, то можно выбрать по вкусу, например, здесь.
Сохраняем файл.

Теперь переключимся на наш новоиспечённый DNS-сервер. Для этого идём в Свойства нашего Подключения удалённого доступа, вкладка Сеть и лезем в Свойства, выделив Протокол Интернета (TCP/IP) 

На более свежих поделиях Мелкософта экстерьер будет немножко другой, там это называется Протокол Интернета версии 4 (TCP/IPv4), а то и 6. Те же... хм. Вид сбоку, короче. В смысле - алгоритм действий тот же.

Переключаемся с автоматического режима полёта на ручной и в поле Предпочитаемый DNS-сервер вводим 127.0.0.1.
Поле с альтернативным адресом оставляем пустым.
Не забываем везде нажимать [OK], а то мало ли, бывали случаи...

Для контроля в командной строке снова набиваем: 
ipconfig /all 
и должны увидеть только один адрес DNS-сервера: 127.0.0.1

Теперь мы имеем полностью настроенный локальный кеширующий DNS-прокси-сервер. Осталось только запустить. Но весь этот огород мы городили для другого.

Остался последний штрих - подключение hosts-файла. По сравнению с остальным, этот процесс проще пареной репы.
Забираем файл с этой страницы. Он там самый верхний. Если кто-то боится голых тётенек, то можно покопаться внизу - там есть файл Adult Sites Version, он в три раза толще.
Распаковываем архив в папку *:\Program Files\Acrylic DNS Proxy\ и переименовываем файл в AcrylicHosts.txt. Старый AcrylicHosts.txt лучше на всякий случай сохранить под другим именем.
Всё! Можно запускать.

Пуск->Программы->Acrylic DNS Proxy->Config->Start Acrylic Service


PS:
Я, как перфекционист до костей мозгА, перед запуском вписал в AcrylicHosts.txt:
127.0.0.1 mail.ru
с контрольным выстрелом:
127.0.0.1 www.mail.ru
Запустил сервер и попробовал достучаться до http://mail.ru
Старый трудяга Firefox долго пыхтел и вытащил таки из своего склероза кеша нечто, напоминающее главную страницу mail.ru после пьяного дебоша. Но в проблемах не сознался. Пришлось запустить Opera и Chrome. Вот, что они рассказали:


Аминь!