Мы используем несколько провайдеров, у одного из которых временами наблюдается деградация трафика по SSL.
Иначе говоря, иногда гуглить становится невозможно, т.к. Google сейчас полностью перешел на использование HTTPS.
Чтобы хоть как-то выплеснуть ярость по поводу использования других поисковых машин вместо Гугля, в тех ситуациях, когда нужен именно Гуголь, мне пришлось разрушить битой четыре казённых монитора производства Apple, убить восемь бабушек и устроить революцию на Кубе.
Для тех кто попал в такую же ситуацию, в этом посте я расскажу, как получить заветное окошко с вот такой картинкой:
.jpg)
Инструкция для 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
