![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
DNS чрезвычайно важный сервис для IP сетей. Однако, данные на сервере DNS
могут оказаться ложными. Сейчас все идет к цифровой подписи таких данных, что
будет подтверждать их подлинность (метод базируется на цифровой подписи RSA).
Большинство дистрибутивов включают bind 8.x, однако ни один (насколько мне
известно) не использует установку для не-root, по умолчанию использован
chroot. Исправить данное упущение просто: -u -g -t Еще один способ: скачать пакет bind-chroot, доступный для большинства
дистрибутивов и поставить его. Перед установкой создайте (можно с помощью
groupadd и useradd) группу и пользователя, на UID/GID которых bind сменит
свои после запуска. Многие пакеты используют holelogd для протоколирования
данных bind в /var/log/messages (нормальный режим работы bind). Файл настроек
обычно безопасен (то есть, Вы не сможете запросить версию bind). Другой аспект bind: он хранит данные о Вашей сети. Когда делается запрос
DNS обычно посылается маленькая просьба о части информации. Например, что
является адресом IP для www.seifried.org? Но есть доменные запросы, где DNS
запрашивает всю информацию для, скажем, seifried.org, захватывает ее и может
затем делать ее доступной другому (в случае вторичного DNS-сервера). Это
потенциально очень опасно. Bind версии 4 толковой защиты не имел. Вы могли
ограничивать передачи некоторым сервером, но толку было мало. Это изменилось
в Bind 8, документация есть на
http://www.isc.org/bind.html. Помните, что обезопасить придется ВСЕ
зональные серверы (как master, так и secondaries), поскольку secondary
могут прекрасно передать данные за пределы зоны. Имеется относительно безопасный файл named.conf (из пакета bind-chroot с
ftp://ftp.tux.org): DNS работает на порте 53, используя протоколы udp и tcp, udp используется
для нормальных запросов (это легко и быстро), tcp используется для зональных
передач и больших запросов (скажем, dig www.microsoft.com). Таким образом,
firewalling tcp относительно безопасен и определенно остановит любые
зональные передачи, но случайный запрос DNS не сможет работать. Лучше
использовать named.conf, чтобы управлять зональными передачами. или Блокирует зональные передачи и большие запросы, следующие команды
блокируют нормальные запросы (но не зональные передачи, так что при
блокировке не забывайте использовать оба набора правил): или Chroot'ing DNS
http://www.etherboy.com/dns/chrootdns.html Dents представляет собой DNS-сервер, доступный по GPL, в настоящее время
находится на тестировании (release 0.0.3). Dents написан с нуля с поддержкой
SQL backends, интеграции с SNMP и использует CORBA для своих задач. В целом
это должно создать хорошую конкуренцию Bind. Dents доступен на
http://www.dents.org. Written by Kurt Seifried
Сетевые серверы: DNS
Обзор
DNS-серверы
Bind
указывает с каким UID bind будет работать как только свяжется с портом
53 (я использую пользователя 'named' без каких-либо прав, аналог 'nobody').
указывает с каким GID bind будет работать как только свяжется с портом
53 (я использую группу 'named'без каких-либо прав, аналог 'nobody').
указывает каталог, который bind будет использовать после запуска, в этом
каталоге, Вы должны разместить все нужные для bind библиотеки, и файлы
конфигурации. Хорошим выбором является /home/named.
options {
// The following paths are necessary for this chroot
directory "/var/named";
dump-file "/var/tmp/named_dump.db"; // _PATH_DUMPFILE
pid-file "/var/run/named.pid"; // _PATH_PIDFILE
statistics-file "/var/tmp/named.stats"; // _PATH_STATS
memstatistics-file "/var/tmp/named.memstats"; // _PATH_MEMSTATS
// End necessary chroot paths
check-names master warn; /* default. */
datasize 20M;
};
zone "localhost" {
type master;
file "master/localhost";
check-names fail;
allow-update {
none;
};
allow-transfer {
any;
};
};
zone "0.0.127.in-addr.arpa" {
type master;
file "master/127.0.0";
allow-update {
none;
};
allow-transfer {
any;
};
};
// Deny and log queries for our version number except from localhost
zone "bind" chaos {
type master;
file "master/bind";
allow-query {
localhost;
};
};
zone "." {
type hint;
file "named.zone";
};
zone "example.org" {
type master;
file "zones/example.org";
allow-transfer {
10.2.1.1;
10.3.1.1;
};
};
ipfwadm -I -a accept -P tcp -S 10.0.0.0/8 -D 0.0.0.0/0 53
ipfwadm -I -a accept -P tcp -S some.trusted.host -D 0.0.0.0/0 53
ipfwadm -I -a deny -P tcp -S 0.0.0.0/0 -D 0.0.0.0/0 53
ipchains -A input -p tcp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 53
ipchains -A input -p tcp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 53
ipchains -A input -p tcp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 53
ipfwadm -I -a accept -P udp -S 10.0.0.0/8 -D 0.0.0.0/0 53
ipfwadm -I -a accept -P udp -S some.trusted.host -D 0.0.0.0/0 53
ipfwadm -I -a deny -P udp -S 0.0.0.0/0 -D 0.0.0.0/0 53
ipchains -A input -p udp -j ACCEPT -s 10.0.0.0/8 -d 0.0.0.0/0 53
ipchains -A input -p udp -j ACCEPT -s some.trusted.host -d 0.0.0.0/0 53
ipchains -A input -p udp -j DENY -s 0.0.0.0/0 -d 0.0.0.0/0 53
Dents
Найди своих коллег! |