Wednesday, October 18th, 2017

Bind-Chroot-Howto (Debian)

Published on Апрель 6, 2009 by   ·   Комментариев нет

Установка Bind и помещение в Chroot
Устнанавливаем bind9:

   apt-get install bind9

Для помещения BIND в chroot выполняем следущие шаги:

  /etc/init.d/bind9 stop

Редактируем скрипт запуска /etc/init.d/bind9 stop для запуска его от имени непривилегированного пользователя 'bind' и работы в /etc/default/bind. Модифицируем строку OPTS=»» в OPTS=»-u bind -t /etc/default/bind»:

      #!/bin/sh

      PATH=/sbin:/bin:/usr/sbin:/usr/bin

      # for a chrooted server: "-u bind -t /etc/default/bind"
      OPTS="-u nobody -t /etc/default/bind"

      test -x /usr/sbin/named || exit 0

      case "$1" in
          start)
              echo -n "Starting domain name service: named"
              start-stop-daemon --start --quiet \
                  --pidfile /var/run/named.pid --exec /usr/sbin/named -- $OPTS
              echo "."
          ;;

          stop)
              echo -n "Stopping domain name service: named"
              /usr/sbin/rndc stop
              echo "."
          ;;

          reload)
              /usr/sbin/rndc reload
          ;;

          restart|force-reload)
              $0 stop
              sleep 2
              $0 start
          ;;

          *)
              echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
              exit 1
          ;;
      esac

      exit 0

Открываем необходимые каталоги в /var/lib:

      mkdir -p /etc/default/bind/etc
      mkdir /etc/default/bind/dev
      mkdir -p /etc/default/bind/var/cache/bind
      mkdir /etc/default/bind/var/run

Затем перемещаем файл конфигурации из /etc в /etc/default/bind/etc:

  mv /etc/bind /etc/default/bind/etc

Создаем символическую ссылку файла конфигурации на каталог /etc, для устранения возможных проблем при обновлении системы:

   ln -s /etc/default/bind/etc/bind /etc/bind

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

      mknod /etc/default/bind/dev/null c 1 3
      mknod /etc/default/bind/dev/random c 1 8
      chmod 666 /etc/default/bind/dev/null /etc/default/bind/dev/random
      chown -R nobody:nogroup /etc/default/bind/var/*
      chown -R nobody:nogroup /etc/default/bind/etc/bind

Затем нам необходимо модифицировать стартовый сценарий /etc/init.d/sysklogd для возможности регистрации системных событий. Изменяем строку SYSLOGD=»» на SYSLOGD=»-a /etc/default/bind/dev/log»:

      #! /bin/sh
      # /etc/init.d/sysklogd: start the system log daemon.

      PATH=/bin:/usr/bin:/sbin:/usr/sbin

      pidfile=/var/run/syslogd.pid
      binpath=/sbin/syslogd

      test -x $binpath || exit 0

      # Options for start/restart the daemons
      #   For remote UDP logging use SYSLOGD="-r"
      #
      SYSLOGD="-a /etc/default/bind/dev/log"

      create_xconsole()
      {
          if [ ! -e /dev/xconsole ]; then
              mknod -m 640 /dev/xconsole p
          else
              chmod 0640 /dev/xconsole
          fi
          chown root.adm /dev/xconsole
      }

      running()
      {
          # No pidfile, probably no daemon present
          #
          if [ ! -f $pidfile ]
          then
              return 1
          fi

          pid=`cat $pidfile`

          # No pid, probably no daemon present
          #
          if [ -z "$pid" ]
          then
              return 1
          fi

          cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -1`

          # No syslogd?
          #
          if [ "$cmd" != "$binpath" ]
          then
              return 1
          fi

          return 0
      }

      case "$1" in
        start)
          echo -n "Starting system log daemon: syslogd"
          create_xconsole
          start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
          echo "."
          ;;
        stop)
          echo -n "Stopping system log daemon: syslogd"
          start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
          echo "."
          ;;
        reload|force-reload)
          start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
          ;;
        restart)
          echo -n "Stopping system log daemon: syslogd"
          start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
          echo "."
          sleep 1
          echo -n "Starting system log daemon: syslogd"
          start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
          echo "."
          ;;
        reload-or-restart)
          if running
          then
              start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
          else
              start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
          fi
          ;;
        *)
          echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
          exit 1
      esac

      exit 0

Перезапускаем демон sysklogd:

      /etc/init.d/sysklogd restart

Запускаем BIND и проверяем /var/log/syslog на наличие ошибок:

      /etc/init.d/bind9 start

Все готово.

От меня лично:

Проверено на:

      root@hpux:~# uname -a
      Linux hpux 2.4.17-32 #1 Sat Mar 16 17:09:00 MST 2002 parisc unknown
cause and effect essays

Работает.

zp8497586rq


Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]