Имеется сервер на Bind. Как подменить все адреса? X(
Т.е. у человека указан адрес моего DNS сервера, он заходит в браузер и пишет ya.ru. Запрос идет на мой сервер, а мой сервер дает ему IP не Яндекса, а уже мои. И так нужно сделать, чтобы как какой-бы сайт не заходил пользователь, ему выдавалась только эта страница.
в свежеустановленном делаем следующие правки:
[root@guestdns ~]# cat /var/named/named.ca
$TTL 60
@ IN SOA @ hostmaster (
0 ; serial
60 ; refresh
5 ; retry
60 ; expire
60 ) ; minimum
NS @
A IP адрес сервера
* A IP адрес сервера
и обязательно прописываете здесь все те зоны, которые должны резолвится правильно, как slave
или forward
ну и все. Теперь все известные серверу домены будут резолвится через slave или forward записи, а неизвестные - идут на named.ca, где в обычном режиме прописаны NS корневые, а сейчас - будет отдаваться указанный вами адрес на любую запись
вам надо заменить содержимое файла named.ca, в котором обычно хранится список корневых NS серверов.
Только учтите, что после этого ваш сервер уже будет неспособен отдать правильные адреса. Поэтому я бы не менял это на существующем сервере, а сделал бы отдельный, независимый. Ну и уже переключал бы какой dns отдавать клиенту....
Руслан Федосеев: Надеюсь, что занимаюсь своим делом. Очень надеюсь :)
Тогда, я удаляю всё в db.root и пишу то, что вы написали выше. Если сделаю копию файла, и после изменений верну на свое место, днс сервер будет возвращать нормальные имена?
не своим....
пока вы тут у меня уточняете - это все уже можно было 100 раз проверить и разобраться ;)
ЗЫ. много-много лет назад умные люди придумали виртуализацию. Благодаря ей, мы сейчас можем быстренько соорудить на своем ноуте виртуалочку, и проверить всякие интересные идеи прям сразу..... а только потом заходить на продакшн сервера и что то там крутить ;)
Использую Bind 9.10 в составе OpenServer под Windows. Стоит идентичная задача. Корневые серверы прописаны в файле root.zone. Как уж не вставлял Вашу правку - при попытке входа - выдет ошибку, заходит только на ресурсы "вручную прописаные". Синтаксисом не владею. И незнаю как прописать записи через slave или forward. Спасибо!
[root@guestdns ~]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 94.158.46.3; 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 10.0.0.0/12; 193.192.36.0/23; 94.158.36.0/20; };
recursion yes;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type master;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
zone "lds.ua" IN {
type slave;
file "slaves/lds.ua.dns";
masters { 193.192.36.3; 94.158.46.150; };
};
zone "lds.net.ua" IN {
type slave;
file "slaves/lds.net.ua.dns";
masters { 193.192.36.3; 94.158.46.150; };
};
[root@guestdns ~]# cat /var/named/named.ca
$TTL 60
@ IN SOA @ hostmaster (
0 ; serial
60 ; refresh
5 ; retry
60 ; expire
60 ) ; minimum
NS @
A 94.158.46.3
* A 94.158.46.3
[root@guestdns ~]#
Вот, других изменений нет.
В данной конфигурации - все домены, кроме lds.ua и lds.net.ua резолвятся в 94.158.46.3
Время жизни всех записей установлено в 60 сек, чтобы при смене днс сервера у клиента у него восстановилась работа интернета.
Да, отключите dnssec обязательно, он не даст вам подменить чужие зоны.
Руслан, спасибо. По Вашему рецепту все заработало.
Вопрос: все запросы, кроме нескольких адресов, нужно перенаправлять на другие DNS-сервера или отвечать "query refused". А эти несколько адресов направлять на определенные IP. Спасибо за ответ!