arinux

Linux サーバー設定備忘録
<< openLDAP 構築(53) - メール管理(クォータ管理) | main | openLDAP 構築(55) - LDAP sdb back-end for BIND9 (2) >>
openLDAP 構築(54) - LDAP sdb back-end for BIND9 (1)


DNSサーバー(BIND9) のバックエンド DB として、sdb(simplified database) という簡易型のデータベースを利用し、LDAP からゾーンファイルの情報を得る方法を説明します。


ゾーンに対する問い合わせは常に LDAP から検索され、ゾーンはキャッシュされません。


メモ テスト環境


機種NEC Express5800
OSCentOS 4.5
kernel2.6.9-55.EL
LDAPopenldap-2.4.8
DNSbind-9.4.2



メモ BIND9 のインストール


  1. http://www.isc.org/index.pl から、
    「bind-9.4.2.tar.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [root]# cd /usr/local/src
    [root]# tar zxvf bind-9.4.2.tar.gz
    


  3. 「ldapdb.c」 と 「ldapdb.h」 を以下のようにコピーします。
    [root]# cd bind-9.4.2/contrib/sdb/ldap
    [root]# cp ldapdb.c ../../../bin/named/.
    [root]# cp ldapdb.h ../../../bin/named/include/.
    


  4. 「bin/named/Makefile.in」 を以下のように編集します。
    [root]# cd /usr/local/src/bind-9.4.2/bin/named
    [root]# cp Makefile.in Makefile.in.org
    [root]# vi Makefile.in
    
    #
    # Add database drivers here.
    #
    #29行目から以下をコメントアウトもしくは削除
    #DBDRIVER_OBJS =
    #DBDRIVER_SRCS =
    #DBDRIVER_INCLUDES =
    #DBDRIVER_LIBS =
    #以下を追加
    DBDRIVER_OBJS = ldapdb.@O@
    DBDRIVER_SRCS = ldapdb.c
    DBDRIVER_INCLUDES = -I/usr/local/include
    DBDRIVER_LIBS = -L/usr/local/lib -lldap -llber -lresolv
    


  5. 「bin/named/main.c」 を以下のように編集します。
    [root]# cd /usr/local/src/bind-9.4.2/bin/named
    [root]# cp main.c main.c.org
    [root]# vi main.c
    #74行目
    /* #include "xxdb.h" */
    #include <ldapdb.h>
    
    #684行目
            /* xxdb_init(); */
            ldapdb_init();
    
    #711行目
            /* xxdb_clear(); */
            ldapdb_clear();
    


  6. コンフィグ、コンパイル、インストールします。
    [root]# ./configure --prefix=/usr/local/bind9 --with-openssl=/usr/local/ssl ¥
    --enable-ipv6=no
    [root]# make
    [root]# make install
    
    虫眼鏡 make で以下のエラーが出る場合


    ./main.c:75:20: ldapdb.h: そのようなファイルやディレクトリはありません
    ./main.c: In function `setup':
    ./main.c:685: 警告: 関数 `ldapdb_init' の暗黙の宣言
    ./main.c: In function `cleanup':
    ./main.c:712: 警告: 関数 `ldapdb_clear' の暗黙の宣言
    make[2]: *** [main.o] エラー 1
    
    • 「ldapdb.h」 の置き場所を間違えています。
    • /usr/local/src/bind-9.4.2/bin/named/include に置きます。


  7. named グループとユーザーを追加します。
    [root]# groupadd named
    [root]# useradd -g named -d /usr/local/bind9/var/named -s /sbin/nologin named
    


  8. 「/usr/local/bind9」 以下のパーミッションを変更します。
    [root]# cd /usr/local/bind9
    [root]# chown -R named:named etc
    [root]# chown -R named:named var
    


  9. スタートアップ・スクリプトを作成します。
    [root]# vi /etc/rc.d/init.d/named
    
    #!/bin/sh
    #
    # named           This shell script takes care of starting and stopping
    #                 named (BIND DNS server).
    #
    # chkconfig: 345 55 45
    # description: named (BIND) is a Domain Name Server (DNS)
    # that is used to resolve host names to IP addresses.
    # probe: true
    
    namedcmd="/usr/local/bind9/sbin/named"
    namedconf="/usr/local/bind9/etc/named.conf"
    namedrun="/usr/local/bind9/var/run"
    pid_file="$namedrun/named.pid"
    
    # 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 $namedcmd ] || exit 0
    
    [ -f $namedconf ] || exit 0
    
    start() {
        slapd_user="named"
        start_proc=`basename $namedcmd`
        echo "Starting $start_proc"
    
        daemon $namedcmd -c $namedconf -u named
        echo
    }
    
    stop() {
        kill_proc=`basename $namedcmd`
        echo "Stopping $kill_proc"
        kill -KILL `cat $pid_file`
        rm -f $pid_file
        echo
    }
    
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        stop
        sleep 1
        start
        ;;
      *)
      echo $"Usage: $0 {start|stop|restart}"
      RETVAL=1
    esac
    
    exit $RETVAL
    


  10. パーミッションを設定します。
    [root]# chomd 755 /etc/rc.d/init.d/named
    



つづく

| arinux | openldap | 17:09 | comments(0) | trackbacks(0) | pookmark |









http://www.arinux.net/trackback/74
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE