Мы используем несколько провайдеров, у одного из которых временами наблюдается деградация трафика по SSL.
Иначе говоря, иногда гуглить становится невозможно, т.к. Google сейчас полностью перешел на использование HTTPS.
Чтобы хоть как-то выплеснуть ярость по поводу использования других поисковых машин вместо Гугля, в тех ситуациях, когда нужен именно Гуголь, мне пришлось разрушить битой четыре казённых монитора производства Apple, убить восемь бабушек и устроить революцию на Кубе.
Для тех кто попал в такую же ситуацию, в этом посте я расскажу, как получить заветное окошко с вот такой картинкой:
Инструкция для Windows 7, с подсказками для линуксов (на примере ArchLinux).
0) Общий смысл в следующем:
— установить локальный DNS-сервер (BIND9),
— настроить его (добавить форвардинг на основной DNS, зону www.google.com, прописать CNAME на nosslsearch.google.com
— прописать этот DNS как умолчательный, остальные подвинуть вниз по цепочке
Всё это делается легко, просто, за несколько минут.
1) Скачать Bind9 по ссылке:
http://www.isc.org/software/bind
последняя версия на момент написания была такая:
http://www.isc.org/software/bind/991-p2/download/bind991-p2zip
Распаковать архив, запустить инсталлятор (BINDInstall.exe) с правами администратора.
Target Directory — C:named, для совместимости с файлами конфигурации, которые будут ниже. Если менять на другую, то везде.
(арчлинукс: pacman -S bind будет достаточно :) Target Directory в нашем случае — корень.)
3) При создании пользователя (Service Account Name, Service Account Password) накладывается стандартная политика. Т.е. если в вашем домене все пароли должны быть длинными буквенно-цифровыми строчками, а имена пользователей начинаться с большой буквы — сюда нужно писать так же, иначе инсталлятор покажет ошибку «не могу сделать пользователя».
(арчлинукс: у нас всё из коробки, bind устанавливается как демон, правильные права есть по-умолчанию при любой системе инициализации)
4) Дальше идем в нашу Target Directory и создаем конфиги.
(Пара слов о происхождении конфигов.
Это умолчательный конфиг Bind9 для ArchLinux.
В свою очередь root.hint взят из FTP.INTERNIC.NET, остальное написано руками)
5) Создаем файл C:namedetcnamed.conf
Содержание такое:
// // /etc/named.conf // //http://users.livejournal.com/__hedin/335226.html options { directory "C:namedvarnamed"; pid-file "C:namedvarrunnamednamed.pid"; auth-nxdomain yes; datasize default; listen-on-v6 { any; }; // Default security settings. allow-recursion { 127.0.0.1; }; allow-transfer { none; }; allow-update { none; }; version none; hostname none; server-id none; }; zone "localhost" IN { type master; file "localhost.zone"; allow-transfer { any; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "127.0.0.zone"; allow-transfer { any; }; }; zone "." IN { type forward; forward first; forwarders { 192.168.0.6; 192.168.0.4; }; }; zone "www.google.com" in { type master; notify no; allow-query { any; }; file "www.google.com.zone"; }; #zone "." IN { # type hint; # file "root.hint"; #}; logging { channel xfer-log { file "C:namedvarlognamed.log"; print-category yes; print-severity yes; print-time yes; severity info; }; category xfer-in { xfer-log; }; category xfer-out { xfer-log; }; category notify { xfer-log; }; };
192.168.0.6, 192.168.0.4 — это адреса корпоративного DNS'а. Их нужно знать, и они должны быть статическими. Если у вас используется домен на основе Windows Server, они скорее всего именно такие, и их можно узнать в свойствах сетевого подключения.
(Я оставил закомменченный root.hint на случай, если внезапно захочется заигнорить корпоративные DNS)
(арчлинукс: этот файл у нас уже есть, из текста выше нужно скопипастать секции zone «localhost», zone «0.0.127.in-addr.arpa», zone «www.google.com», и закомментить старую #zone "." IN.)
6) Создаем директории /var/log, /var/named, /var/run/named внутри нашей Target Directory.
(линукс: все уже есть)
7) Внутри /var/named положить следующие файлы:
@ IN SOA localhost. root.localhost. ( 2012050900 7200 1800 1209600 300 ) 1800 IN NS localhost. 1800 IN A 216.239.32.20 ;nosslsearch.google.com.
localhost.zone:
$ORIGIN localhost. @ 1D IN SOA @ root ( 42 ; serial (yyyymmdd##) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum ttl 1D IN NS @ 1D IN A 127.0.0.1
127.0.0.zone:
$ORIGIN 0.0.127.in-addr.arpa. @ 1D IN SOA localhost. root.localhost. ( 42 ; serial (yyyymmdd##) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum ttl 1D IN NS localhost. 1 1D IN PTR localhost.
Скачать и положить туда же файл
ftp://ftp.internic.net/domain/named.cache
преименовав его в root.hint
(арчлинукс: всё это уже есть, кроме www.google.com.zone, его нужно добавить)
8) Проверяем что всё работает:
Запускаем командную строку:
Start -> в полоске Search набираем cmd -> enter
Переходим в директорию с BIND'ом:
cd C:namedbin
Запускаем его:
named.exe -f -u named
Открываем еще одну консоль:
Start -> в полоске Search набираем cmd -> enter
Делаем поиск гугля по имени:
nslookup www.google.com 127.0.0.1
Выхлоп должен походить на вот этот:
Server: localhost Address: 127.0.0.1 DNS request timed out. timeout was 2 seconds. Name: www.google.com Address: 216.239.32.20
ЕСЛИ ОН НЕ ТАКОЙ, ВСЁ ПРОПАЛО, ПРОВЕРЯЕМ СВОИ ДЕЙСТВИЯ
(арчлинукс: nslookup www.google.com должен выдать www.google.com->216.239.32.20)
9) Запускаем Bind как сервис:
Start -> правой кнопкой по Computer -> Manage -> Services and Applications -> Services -> правой кнопкой по ISC BIND -> Start или Restart (что доступно)
(арчлинукс: /etc/rc.d/named restart)
10) Прописываем в свойства сети. 127.0.0.1 должен стать первым DNSом, остальные подвинуться.
Конкретно вот так:
Start -> Control Panel -> Network and Sharing Center -> Change adapter settings -> правой кнопкой по основному адаптеру (у меня это «Local Area Connection») -> Properties -> выделить Internet Protocol Version 4 -> Переключить радиогруппу на «Use the following DNS Server Addresses:» -> кнопка Advanced -> вкладка DNS -> с помощью кнопок «вверх», «вниз», «add», «remove» добавить и выстроить DNS в нужном порядке: вначале 127.0.0.1, потом корпоративные (у меня они такие: 127.0.0.1, 192.168.0.6, 192.168.0.4).
(С IPv6 не экспериментировал, он у меня просто отключен. Теоретически, должно работать.)
(арчлинукс: в /etc/resolv.conf добавить строчку nameserver 127.0.0.1 так, чтобы она была самой первой строчкой в этом файле, начинающейся с nameserver)
11) Проверяем в браузере (заходим на www.google.com, ищем что-нибудь, наблюдаем ошибку как на картинке в начале поста)
12) PROFIT
Счастья вам, дамы и господа.
ОМ.
На территории нашей организации за помощью в настройке и вопросами можно обращаться ко мне.
Пост одновременно опубликован в моем ЖЖ (не у всех есть возможность читать и комментировать Хабр)
Автор: olegchir