URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 90901
[ Назад ]

Исходное сообщение
"Проблемы с Bind9"

Отправлено drac753 , 08-Фев-11 13:55 
ОС Debian squeeze

Bind9 запускаю в chroot( /var/lib/named ) не создаётся cache_dump.db,named_stats.txt,named_mem_stats.txt права на log , в логах тишина
Насколько я понял файлы логов должны создаться /var/log/ , причём сам каталог /var находится /var/lib/named (так как запускаю в чрооте )


virdebian:/var/lib/named/var# ls -l
итого 12
drwxr-xr-x 3 bind bind 4096 Дек  8 11:27 cache
drwxr-xr-x 2 bind bind 4096 Фев  7 14:03 log
drwxr-xr-x 4 bind bind 4096 Дек  8 11:30 run


acl "virdebian" { 192.168.3.0/24; 127.0.0.1; };
options {
   directory "/etc/bind";

   pid-file   "/etc/bind/named.pid";
   dump-file  "/var/log/cache_dump.db";
   statistics-file  "/var/log/named_stats.txt";
   memstatistics-file  "/var/log/named_mem_stats.txt";
  
   #от кого разрешаем принимать запросы
   allow-query { "virdebian"; };
  
   #Разрешаем выполнять рекурсивные запросы только с virdebian
  
  
   #каким днс перенаправляем запрос если у нашего нет данных 1,2 днс провайдера 2 google
   forwarders { 83.149.24.243;
   83.149.24.244;
   8.8.8.8;
   };

   #скажем на каких портах обслуживать днс запросы
   listen-on port 53 {
   127.0.0.1;
   192.168.3.25;
   };
   #инфа о сервере
   version "virdebian DNS";
  

  
   auth-nxdomain no;    # conform to RFC1035
   #отключаем ipv 6
   listen-on-v6 { none; };
   };
   #ведение лога
   logging {
   channel warning {
   file "/var/log/dns_warning" versions 3 size 10m;
   severity warning;
   print-category yes;
   print-severity yes;
   print-time yes;
   };
  
   channel general_dns {
   file "/var/log/dns_logs" versions 3 size 10m;
   severity info;
   print-category yes;
   print-severity yes;
   print-time yes;
   };
   category default { warning; };
   category default { general_dns; };

};


Содержание

Сообщения в этом обсуждении
"Проблемы с Bind9"
Отправлено shadow_alone , 08-Фев-11 14:24 
а /var/lib/named/var/log/ существует вообще?
имеет ли bind права на запись туда?

"Проблемы с Bind9"
Отправлено drac753 , 08-Фев-11 14:48 
> а /var/lib/named/var/log/ существует вообще?
> имеет ли bind права на запись туда?

да существует права
virdebian:/var/lib/named/var# ls -l
итого 12
drwxr-xr-x 3 bind bind 4096 Дек  8 11:27 cache
drwxr-xr-x 3 bind bind 4096 Фев  8 12:45 log
drwxr-xr-x 4 bind bind 4096 Дек  8 11:30 run


"Проблемы с Bind9"
Отправлено shadow_alone , 08-Фев-11 15:03 
> да существует права
> virdebian:/var/lib/named/var# ls -l
> итого 12
> drwxr-xr-x 3 bind bind 4096 Дек  8 11:27 cache
> drwxr-xr-x 3 bind bind 4096 Фев  8 12:45 log
> drwxr-xr-x 4 bind bind 4096 Дек  8 11:30 run

Распишите пожалуйста подробно Ваши шаги, как помещали bind в chroot, что модифицировали, подробно.


"Проблемы с Bind9"
Отправлено drac753 , 08-Фев-11 16:26 
>> да существует права
>> virdebian:/var/lib/named/var# ls -l
>> итого 12
>> drwxr-xr-x 3 bind bind 4096 Дек  8 11:27 cache
>> drwxr-xr-x 3 bind bind 4096 Фев  8 12:45 log
>> drwxr-xr-x 4 bind bind 4096 Дек  8 11:30 run
> Распишите пожалуйста подробно Ваши шаги, как помещали bind в chroot, что модифицировали,
> подробно.

правим /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Теперь создадим все необходимые для работы bind9 директории.
Код:


mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Переместите директорию с конфигурацией bind9 из /etc в /var/lib/named/etc:
Код:


mv /etc/bind /var/lib/named/etc

Создадим символическую ссылку на новую директорию с конфигами bind на случай если в дальнейшем вы соберетесь обновить пакет, это поможет избежать проблем.
Код:


ln -s /var/lib/named/etc/bind /etc/bind

Создадим null и random девайсы и выставим правильные права на директории:
Код:


mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind



"Проблемы с Bind9"
Отправлено drac753 , 08-Фев-11 16:28 
Больше вродеб ничего не делал

"Проблемы с Bind9"
Отправлено shadow_alone , 08-Фев-11 16:47 
> Больше вродеб ничего не делал

vi /etc/rsyslog.d/bind-chroot.conf
добавь
$AddUnixListenSocket /var/lib/named/var/log


/etc/init.d/rsyslog restart

он сам должен создать log и log должен иметь следующие атрибуты:

srw-rw-rw- 1 root root 0 2008-10-09 14:48 /var/lib/named/var/log

потом стартуй bind


"Проблемы с Bind9"
Отправлено reader , 08-Фев-11 16:48 
> Больше вродеб ничего не делал

cache_dump.db,named_stats.txt создадутся по запросу через rndc, а не после старта bind


"Проблемы с Bind9"
Отправлено LSTemp , 09-Фев-11 15:07 
>> да существует права
>> virdebian:/var/lib/named/var# ls -l
>> итого 12
>> drwxr-xr-x 3 bind bind 4096 Дек  8 11:27 cache
>> drwxr-xr-x 3 bind bind 4096 Фев  8 12:45 log
>> drwxr-xr-x 4 bind bind 4096 Дек  8 11:30 run
> Распишите пожалуйста подробно Ваши шаги, как помещали bind в chroot, что модифицировали,
> подробно.

в кратце идея такая: бинд читает файл конфигурации (named.conf по умолчанию), потом делает chroot. поэтому в файле конфигурации все пути надо указывать относительно нового корня файловой системы.

то есть если в named.conf мы имеем "pid-file "/var/run/named.pid";", то реально этот файл должен лежать в <chroot>/var/run/named.pid"

вообще странно... google bind+chroot - полно инфы.

ну вот заметки, которые я для себя нашкрябал при установке из сырцов. резать не буду - просто ненужную информацию игнорируй. реально все, что тебе нужно - это создание всей файловой структуры, которая необходима для работы программы, в рамках твоего chroot (см. наверно только "create chroot directories" и "create required devices in chroot" - остальное не столь важно):

[root@local etc]# [root@local bind]# cat readme
bind chroot quick instalation procedure:

- goto in the 'patch' directory and run 'bind-xx.bsh' scripts for apply
  'bind-xx.diff' patches (see 'bind-xx.txt' for patch description)
  
- goto bind source directory

- configure bind:

    $ configure.bsh

- compile bind:

    $ make

- install bind:

    # make install

- remove symbol informatiom from binaries (optional):
  
    # strip /usr/local/lib/bind/*
    # strip /usr/local/bin/bind/*
    # strip /usr/local/sbin/bind/*

- create 'bind' user and group:

    # groupadd -g 300 bind
    # useradd -u 300 -g 300 \
              -d /chroot/bind -M \
              -s /sbin/nologin -p* \
              -c "SYS - named" \
              bind

- create chroot directories:

    # mkdir -p /chroot/bind/etc/direct/master
    # mkdir -p /chroot/bind/etc/direct/slave
    # mkdir -p /chroot/bind/etc/revers/master
    # mkdir -p /chroot/bind/etc/revers/slave
    # mkdir -p /chroot/bind/dev
    # mkdir -p /chroot/bind/var/run
    # mkdir -p /chroot/bind/var/log/old
    
    # ln -s /chroot/bind/etc /usr/local/etc/bind
    # ln -s /chroot/bind/var/log /var/log/bind

- create required devices in chroot:

    # mknod /chroot/bind/dev/null c 1 3
    # mknod /chroot/bind/dev/random c 1 8
    # chmod 666 /chroot/bind/dev/null
    # chmod 666 /chroot/bind/dev/random

- create rndc config file:

    # rndc-confgen > /chroot/bind/etc/rndc.conf
    
- create rndc key file

    # rndc-confgen -b 512 -a -c /chroot/bind/etc/rndc.key    
    
- change key in 'rndc.conf' file to new from 'rndc.key' file

- link rndc files to standard config directory:

    # ln -s /chroot/bind/etc/rndc.key /etc/rndc.key
    # ln -s /chroot/bind/etc/rndc.conf /etc/rndc.conf

- create 'root.hint' file (internet access required for this operation):

    # dig @a.root-servers.net . ns > /chroot/bind/etc/root.hint

- set access to the bind files:

    # chmod 644 /usr/local/lib/bind/*
    # chown 0:0 /usr/local/lib/bind/*
    # chmod 755 /usr/local/bin/bind/*
    # chown 0:0 /usr/local/bin/bind/*
    # chmod 750 /usr/local/sbin/bind/*
    # chown 0:0 /usr/local/sbin/bind/*

    # chmod 775 /chroot/bind/etc
    # chmod 775 /chroot/bind/etc/direct/master
    # chmod 775 /chroot/bind/etc/direct/slave
    # chmod 775 /chroot/bind/etc/revers/master
    # chmod 775 /chroot/bind/etc/revers/slave
    
    # chmod 640 /chroot/bind/etc/*
    # chmod 660 /chroot/bind/etc/direct/master/*
    # chmod 660 /chroot/bind/etc/direct/slave/*
    # chmod 660 /chroot/bind/etc/revers/master/*
    # chmod 660 /chroot/bind/etc/revers/slave/*
    
    # chmod 775 /chroot/bind/var
    # chmod 775 /chroot/bind/run
    
    # chown -R 0:bind /chroot/bind

- copy required files to chroot:

    # ln -s /etc/localtime /chroot/bind/etc/localtime

- see 'contrib' directory for bind initialization script, configuration
  samples, etc

PS
на FC делалось.

ADD
про логи забыл совсем. вроде в теме там Debian был - значит syslog есть. ставим ему в опциях запуска "-a <chroot>/bind/dev/log" (не помню точно где в дебиане - день рождения - пьяный... все равно из шапки ноги ростут (у дебиана, а не то, что вы подумали)- наверно /etc/sysconfig/syslog?). и syslog перезапустить. он девайс в <chroot>/bind/dev/log сделает для named и сделает сам.