Для моей конкретной настройки у меня есть контроль над файлом зоны BIND 9, скажем, для example.com
. В этой зоне есть несколько хостов, например www.example.com
и mail.example.com
. Я хочу, чтобы общедоступный Интернет мог запрашивать эти хосты и получать их IP-адреса, как и следовало ожидать.
Могут ли некоторые хосты быть помечены как «частные» в том смысле, что большинство общедоступных интернет-пользователей не могут запрашивать информацию об этих хостах, за исключением определенного диапазона IP-адресов пользователей? Например, можно сделать третий хост, secret.example.com
доступный для запросов только пользователям в 192.168.0.x
ассортимент?
Я знаю, что могу сделать это с отдельными зонами в BIND, но, похоже, это не предлагает то, что мне нужно. Ключевым моментом здесь является то, что и публичный, и частный хосты должны быть частью одного и того же родителя, example.com
в таком случае. Этого также можно добиться с помощью /etc/hosts
файл на нескольких закрытых машинах, но тогда записи не будут централизованно управляться.
Возможно ли это, или я упускаю из виду другое решение?
Да, Bind делает это с Просмотры. Некоторые подробные примеры Вот и Вот.
В named.conf это будет выглядеть примерно так:
view "trusted" {
match-clients { 192.168.23.0/24; }; // our network
recursion yes;
zone "example.com" {
type master;
// private zone file including local hosts
file "internal/master.example.com";
};
// add required zones
};
view "badguys" {
match-clients {"any"; }; // all others hosts
// recursion not supported
recursion no;
};
zone "example.com" {
type master;
// public only hosts
file "external/master.example.com";
};
// add required zones
};
Один трюк, который я обычно делаю, чтобы упростить администрирование, - это просто сделать внутренний файл $ ВКЛЮЧИТЬ внешний файл - только не забывайте о SOA.
В качестве последнего слова предостережения не притворяйтесь, что это что-то большее, чем Rubber Chicken Security (хотя в этом нет ничего плохого).