>   Is it possible to perform an installation of chrooted bind?? That is can
> I do rpm -ivh --prefix=<chroot> bind?
> 
>   I have a problem with the updated files for bind.  It is not able to
> perform named-xfers...  That is:
> 1. I have the chroot directory install.
> 2. Modified /etc/init.d/named so that it reads:
>   daemon named -u named -g named -t <chroot>
> 3. Added the file /usr/sbin/named-xfer to <chroot>/usr/sbin/named-xfer with
> permissions 0755.
> 4. Restarted the server and got the message:
> Nov 14 13:11:49 www named[6343]: chrooted to <chroot>
> Nov 14 13:11:49 www named[6343]: group = named
> Nov 14 13:11:49 www named[6343]: user = named
> Nov 14 13:11:49 www named[6343]: Ready to answer queries.
> Nov 14 13:11:49 www named[6346]: can't exec
> /usr/sbin/named-xfer: Permission denied
> in syslog
> 5. How??

I use user 'dns' instead of 'named' to not confuse it with the program.

Here's a listing of user 'dns'...
# ls -l /home/dns
drwx------    2 dns      dns          4096 Sep  9 12:13 dev/
drwx------    2 dns      dns          4096 Nov  2 12:32 etc/
drwx------    2 dns      dns          4096 Nov 11 10:29 lib/
drwx------    3 dns      dns          4096 Sep  4 17:30 usr/
drwx------    5 dns      dns          4096 Nov 11 10:33 var/

### Each program/file is copied from the system so that it has 'dns' permission
### and any compromise is restricted to user 'dns'.
-rw-r--r--    1 dns      dns          2048 Nov  2 12:32 /home/dns/etc/named.conf
-rwxr-x---    1 dns      dns       5262426 Sep  5 18:33 /home/dns/lib/libc.so.6*
-rwxr-x---    1 dns      dns        483816 Sep  5 18:33 /home/dns/lib/ld-linux.so.2*
crw-rw-r--    1 dns      dns        1,   3 Sep  4 17:30 /home/dns/dev/null
-rwxr-x---    1 dns      dns        583356 Nov 10 14:09 /home/dns/usr/sbin/named*
-rwxr-x---    1 dns      dns        309116 Nov 10 14:09 /home/dns/usr/sbin/named-xfer*
-rwxr-x---    1 dns      dns         39708 Nov 10 14:09 /home/dns/usr/sbin/ndc*
lrwxrwxrwx    1 dns      dns            18 Nov 11 10:33 /home/dns/var/named.log -> 
/var/log/named.lo
-rw-r-----    1 dns      dns          2769 Sep  4 04:07 /home/dns/var/named/named.ca
-rw-r-----    1 dns      dns           330 Nov  2 11:11 /home/dns/var/named/named.local
-rw-r-----    1 dns      dns           828 Nov  2 11:16 /home/dns/var/named/com.mysite
-rw-r-----    1 dns      dns             0 Nov 11 10:41 /home/dns/var/lock/subsys/named

### I also made these links (ln -s) to make sure things point to the right place.
/etc/named.conf -> /home/dns/etc/named.conf
/var/named -> /home/dns/var/named/


### I modified /etc/rc.d/init.d/named (latest bind security fix) to look like this...
### (Perhaps Mandrake can make similar changes)

#!/bin/sh
#
# named           This shell script takes care of starting and stopping
#                 named (BIND DNS server).
#
# chkconfig: 2345 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true

CHROOT=/home/dns

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f $CHROOT/usr/sbin/named ] || exit 0

[ -f $CHROOT/etc/named.conf ] || exit 0

RETVAL=0

# See how we were called.
case "$1" in
  start)
        # Start daemons.
        echo -n "Starting named: "
        daemon $CHROOT/usr/sbin/named -u dns -g dns
  RETVAL=$?
  [ $RETVAL -eq 0 ] && touch $CHROOT/var/lock/subsys/named
  echo
        ;;
  stop)
        # Stop daemons.
        echo -n "Shutting down named: "
        killproc $CHROOT/usr/sbin/named
  RETVAL=$?
  [ $RETVAL -eq 0 ] && rm -f $CHROOT/var/lock/subsys/named
        echo
        ;;
  status)
  $CHROOT/usr/sbin/ndc status
  exit $?
  ;;
  restart)
  $0 stop
  $0 start
  ;;
  reload)
  $CHROOT/usr/sbin/ndc reload
  exit $?
  ;;
  probe)
  # named knows how to reload intelligently; we don't want linuxconf
  # to offer to restart every time
  $CHROOT/usr/sbin/ndc reload >/dev/null 2>&1 || echo start
  exit 0
  ;;

  *)
        echo "Usage: $CHROOT/usr/sbin/named {start|stop|status|restart}"
        exit 1
esac

exit $RETVAL


### This has been working well for me.

Thanks... Dan.



Reply via email to