Прим: заготовка для будущего расширенного руководства по bind9, данный вариант как быстрое пособие был написан для forum.opennet.ru. 1. компиляция и установка # cd /usr/ports/net/bind9 # make && make install примечание: по-умолчанию named из порта bind9 будет установлен с PREFIX=/usr/local, чтобы заменить им тот что поставляется с системой(bind8), необходимо при сборке порта: # make PORT_REPLACES_BASE_BIND9=yes && make install 2. генерация rndc.key и создание rndc.conf В данном примере подразумевается что bind9 из портов будет установлен с PREFIX=/usr/local # rndc-confgen -a -c /usr/local/etc/rndc.key прим.: если у вас возникли проблемы с генерацией ключа, попробуйте воспользоваться командой rndcontrol (для увеличения энтропии): # rndcontrol -sОдна из наиболее полезных ссылок Security, Unix, Networking:[-s ] например, мы решили что для этого будем использовать прерывания IRQ=5,7,11: # rndcontrol -s 5 -s 7 -s 11 прим: попробуйте в вашей версии системы выполнить: # grep rand /etc/defaults/rc.conf rand_irqs="NO" # Stir the entropy pool (like "5 11" or NO). # если вы нашли такую переменную, то задайте нужные вам значения для увеличения энтропии(чтобы повысить надежность генерации случайных чисел), например в /etc/rc.conf: rand_irqs="5 10 11 14" # chmod 600 /usr/local/etc/rndc.key # chown bind:bind /usr/local/etc/rndc.key # cp /usr/local/etc/rndc.conf.sample /usr/local/etc/rndc.conf # chmod 600 /usr/local/etc/rndc.conf # chown bind:bind /usr/local/etc/rndc.conf файл rndc.conf должен выглядеть так: options { default-server 127.0.0.1; default-key "rndc-key"; }; server 127.0.0.1 { key "rndc-key"; }; key "rndc-key" { algorithm hmac-md5; secret "xxxxxxxxxxxxxxxxxxxxxxxx"; }; # из файла содержащего сгенерированный ключ /usr/local/etc/rndc.key, берем ключ и вставляем его в secret "xxxxxxxxxxxxxxxxxxxxxxxx" файла rndc.conf. проверяем: [alone]~ > uname -a FreeBSD alone.dubna.ru 4.7-STABLE FreeBSD 4.7-STABLE #1: Thu Feb 27 19:00:47 MSK 2003 toor@alone.dubna.ru:/usr/obj/usr/src/sys/ALONE47 i386 [alone]~ > date четверг, 27 марта 2003 г. 15:11:43 (MSK) [alone]~ > ls -la /usr/local/etc/rndc.* -rw------- 1 bind bind 228 Mar 27 14:25 /usr/local/etc/rndc.conf -r--r--r-- 1 root wheel 1195 Mar 27 13:04 /usr/local/etc/rndc.conf.sample -rw------- 1 bind bind 77 Mar 27 14:22 /usr/local/etc/rndc.key [alone]~ > 3. создаем минимальную конфигурацию named.conf (остальное самостоятельно) # touch /usr/local/etc/named.conf редактируем named.conf: ------------------------------ named.conf ---------------------------- // acl "internal" { 127.0.0.1; }; include "/usr/local/etc/rndc.key"; controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; }; }; options { directory "/usr/local/etc/namedb"; forwarders { 194.87.162.120; }; // allow-transfer { "internal"; }; // allow-query { "internal"; }; // notify explicit; listen-on { 62.84.100.160; 127.0.0.1; }; query-source address * port 53; pid-file "/usr/local/etc/namedb/named.pid"; dump-file "/var/tmp/named_dump.db"; auth-nxdomain yes; }; logging { category lame-servers { null; }; category default { default_syslog; }; }; zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "lavr.pp.ru" in { type master; file "master/lavr.pp.ru"; }; ---------------------------------------------------------------------- # mkdir /usr/local/etc/namedb # mkdir /usr/local/etc/namedb/master # touch /usr/local/etc/namedb/localhost.rev редактируем localhost.rev: ----------------------------- localhost.rev -------------------------- ; ; Data file for local loopback interface. ; $TTL 604800 @ IN SOA alone.dubna.ru. lavr.alone.dubna.ru. ( 2001110401 ; Serial 28800 ; Refresh 8 hours 7200 ; Retry 2 hours 604800 ; Expire 7 days 86400 ) ; Minimum 1 day IN NS unix1.jinr.ru. 1 IN PTR localhost. ---------------------------------------------------------------------- создаем файл зоны lavr.pp.ru: # touch /usr/local/master/lavr.pp.ru редактируем: -------------------------------- lavr.pp.ru -------------------------- $TTL 604800 @ IN SOA unix1.jinr.ru. lavr.unix1.jinr.ru. ( 2002082001 ; Serial 28800 ; Refresh 8 hours 7200 ; Retry 2 hours 604800 ; Expire 7 days 86400 ) ; Minimum 1 day IN NS unix1.jinr.ru. IN NS alone.dubna.ru. IN NS spleen.demos.su. ; IN MX 10 sunct0.jinr.dubna.su. ; IN MX 50 cv.jinr.dubna.su. IN A 159.93.17.121 www IN MX 0 not.for.mail IN A 159.93.17.121 lavr.pp.ru. IN A 159.93.17.121 ;*.lavr.pp.ru. IN A 159.93.17.121 ----------------------------------------------------------------------- проверяем конфигурацию: # named-checkconf /usr/local/etc/named.conf если все ok: # chown -R /usr/local/etc/namedb 4. Настраиваем запуск named от пользователя bind и проверяем ручным запуском # vi /etc/rc.conf ------------------------------- /etc/rc.conf --------------------------- ... named_enable="YES" named_program="/usr/local/sbin/named" named_flags="-c /usr/local/etc/named.conf -u bind" ... ------------------------------------------------------------------------ проверяем ручным запуском: # /usr/local/sbin/named -c /usr/local/etc/named.conf -u bind для убедительности проверяем версию bind: [alone]~ > /usr/local/sbin/named -v BIND 9.2.2 [alone]~ > date четверг, 27 марта 2003 г. 15:29:30 (MSK) [alone]~ > для большей убедительности проверяем что нам отдаст сам named: [alone]~ > dig @62.84.100.160 version.bind chaos txt ; <<>> DiG 9.2.2 <<>> @62.84.100.160 version.bind chaos txt ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47169 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;version.bind. CH TXT ;; ANSWER SECTION: version.bind. 0 CH TXT "9.2.2" ;; Query time: 6 msec ;; SERVER: 62.84.100.160#53(62.84.100.160) ;; WHEN: Thu Mar 27 15:30:26 2003 ;; MSG SIZE rcvd: 48 [alone]~ > примечание: поправьте свой named.conf чтобы в целях security он не отдавал реальную версию, для этого в options добавить строку: options { ... ... version "Not a chance :)"; ... }; ну или version "some text here"; Прим: актуально как для bind8, так и для bind9 В результате имеем: [unix1]~ > dig @62.84.100.160 version.bind chaos txt ; <<>> DiG 8.3 <<>> @62.84.100.160 version.bind chaos txt ; (1 server found) ;; res options: init recurs defnam dnsrch ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUERY SECTION: ;; version.bind, type = TXT, class = CHAOS ;; ANSWER SECTION: version.bind. 0S CHAOS TXT "Not a chance :)" ;; Total query time: 10 msec ;; FROM: unix1.jinr.dubna.su to SERVER: 62.84.100.160 62.84.100.160 ;; WHEN: Tue Apr 29 10:44:25 2003 ;; MSG SIZE sent: 30 rcvd: 58 [unix1]~ > Примечание: файлы named.conf и зоны приведены как пример, используйте свои и дополнительные возможности bind, такие как acl, view & etc, данный пример лишь показывает как быстро перестроиться с версии bind8.