FreeBSD > djbdns jail minitree 9.0-Release

Top > FreeBSD > djbdns jail minitree 9.0-Release

djbdns jail minitree 9.0-Release



djbdns を jail minitree として導入したときの備忘的まとめです


djbdns jail minimaltree
djbdns jail minitree 7.2
maintenance ShellScript

以上のサイトを参考にさせていただいております



djbdns jail インストール


基本的にjail fulltree環境での作業になります
事前に /root/maintenance に maintenace ShellScript環境を用意しておきます

ports から djbdns をインストール

  • config 設定
    config の設定はすべてはずします
    # cd /usr/ports/dns/djbdns
    # make config
    
  • djbdns のインストール
    途中 deamontools 0.76_16 と ucspi-tcpip 0.88_2 のconfig 画面になるので man だけはずし、インストールします
    # pkg_replace -vcCN dns/djbdns
    


maintenance ShellScript用Configファイル作成

  • Configファイルの作成
    # cd /root/maintenance/Config_file
    # vi djbdns.txt
    
    # miniroot
    /bin/sh
    /usr/sbin/nologin
    /etc/passwd
    /etc/group
    /etc/master.passwd
    
    # djbdns
    /usr/local/bin/dnscache
    /usr/local/bin/dnscache-conf
    /usr/local/bin/tinydns
    /usr/local/bin/tinydns-conf
    /usr/local/bin/tinydns-data
    /usr/local/bin/tinydns-edit
    /usr/local/etc/dnsroots.global
    
    # daemontools
    /usr/local/bin/envdir
    /usr/local/bin/envuidgid
    /usr/local/bin/multilog
    /usr/local/bin/softlimit
    
    # library
    /libexec/ld-elf.so.1
    
    # directory
    #mkdir /dev
    #mkdir /var/log
    
  • 必要なファイルを集めます
    # ../makembeddedtree.sh djbdns.txt /tmp/djbdns
    
  • passwd の編集
    rootのみ残します
    # vipw -d /tmp/djbdns/etc
    
    root::0:0::0:0:Charlie &:/root:/usr/sbin/nologin
    
  • group の編集
    rootのみ残します
    # vi /tmp/djbdns/etc/group
    
    wheel:*:0:root
    
  • djbdns 用 user group を用意します
    group id と user idは任意の数字でかまいません
    /usr/sbin/pw -V /tmp/djbdns/etc groupadd djbdns -g 10000
    /usr/sbin/pw -V /tmp/djbdns/etc useradd dnscache -g djbdns -u 10000 \
    -s /usr/sbin/nologin -d /nonexistent
    /usr/sbin/pw -V /tmp/djbdns/etc useradd tinydns -g djbdns -u 10001 \
    -s /usr/sbin/nologin -d /nonexistent
    
  • djbdns minitree環境の移動
    djbdns minitree 環境を本来稼動したい位置へ移動します
    せっかく zfs なので zfs で切り分けます
    # exit
    
    # zfs create -o mountpoint=/home/djbdns tank0/jail/djbdns
    # mv /home/mainte90/tmp/djbdns/* /home/djbdns/
    

djbdns 仮稼動・設定


  • djbdns minitree の仮稼動
    # jail /home/djbdns test.localdomain 192.168.1.200 /bin/sh
    

dnscache tinydns の設定

  • dnscache の初期設定
    xxx.xxx.xxx.xxxとxxx.xxx.xxx.yyyはフォワードするDNSサーバのIPアドレスです
    # /usr/local/bin/dnscache-conf dnscache snscache /dnscache 192.168.1.249
    # echo xxx.xxx.xxx.xxx > /dnscache/root/servers/@
    # echo xxx.xxx.xxx.yyy >> /dnscache/root/servers/@
    # echo 1 > /dnscache/env/FORWARDONLY
    # echo 192.168.1.248 > /dnscache/root/servers/localdomain
    # echo 192.168.1.248 >> /dnscache/root/servers/1.168.192.in-addr.arpa
    
  • tinydns の初期設定
    # /usr/local/bin/tinydns-conf tinydns tinydns /tinydns 192.168.1.248
    # cd /tinydns/root
    # ./add-ns localdomain 192.168.1.248
    # ./add-ns 1.168.192.in-addr.arpa 192.168.1.248
    # ./add-host dch.localdomain 192.168.1.249
    # ./add-host tns.localdomain 192.168.1.248
    # /usr/local/bin/tinydns-data
    # exit
    
  • dnscache の設定の続き
    # touch /home/djbdns/dnscache/root/ip/192.168.1
    # chmod 600 /home/djbdns/dnscache/root/ip/192.168.1
    

djbdns minitree の稼動


起動スクリプトの修正

もともとある run ファイルを修正します

  • dnscache 起動スクリプト
    # vi /home/djbdns/dnscache/root/run
    
    #!/bin/sh
    PATH=/usr/local/bin
    export PATH
    cd /dnscache
    exec < seed
    exec envdir ./env /bin/sh -c '
    exec envuidgid dnscache softlimit -o250 -d "$DATALIMIT" /usr/local/bin/dnscache 2>&1 \
    | /usr/local/bin/mutilog t s100000 n7 > /var/log/dnscache' &
    
  • tinydns 起動スクリプト
    # vi /home/djbdns/tinydns/root/run
    
    #!/bin/sh
    PATH=/usr/local/bin
    export PATH
    cd /tinydns
    exec envuidgid tinydns envdir ./env softlimit -d300000 /usr/local/bin/tinydns 2>&1 \
    | /usr/local/bin/multilog t s100000 n7 > /var/log/tinydns 2>&1 &
    

自動起動設定

tinydns dnscache の順番で起動するように設定します

  • tinydns の自動起動設定
    nullデバイスをマウントするのですが、すべてのデバイスがマウントされてしまうので、
    /dev/null以外が見えないように不要なデバイスを隠す設定をAFsrtJにしています
    起動は tinydns → dnscache の順です
    # vi /usr/local/etc/rc.d/010.jail_tinydns.sh
    
    #!/bin/sh
    #---------------------------------------
    Jid="248"
    Secu="-1"
    NtwkIF="lo0"
    HsFQDN="tns.localdomain"
    IPAdrs="192.168.1.248"
    BDcast="192.168.1.248"
    NTmask="255.255.255.255"
    PsName="tinydns"
    ChRoot="/home/djbdns"
    MTdpnf="$ChRoot/dev"
    #---------------------------------------
    BFsrtJ=""
    AFsrtJ="/sbin/devfs rule -s 40 delset
    /sbin/devfs rule -s 40 add hide
    /sbin/devfs rule -s 40 add path null unhide
    /sbin/devfs -m $ChRoot/dev rule -s 40 applyset"
    BFstpJ="/sbin/devfs rule -s 40 delset
    /sbin/devfs rule -s 40 add unhide
    /sbin/devfs -m $ChRoot/dev rule -s 40 applyset"
    AFstpJ=""
    Jstcom="/tinydns/run"
    #---------------------------------------
    . /usr/local/etc/rc.d/common_Njailstp.file
    jailstartop $1
    
  • dnscache の自動起動設定
    # vi /usr/local/etc/rc.d/011.jail_dnscache.sh
    
    #!/bin/sh
    #---------------------------------------
    Jid="249"
    Secu="-1"
    NtwkIF="lo0"
    HsFQDN="dch.localdomain"
    IPAdrs="192.168.1.249"
    BDcast="192.168.1.249"
    NTmask="255.255.255.255"
    PsName="dnscache"
    ChRoot="/home/djbdns"
    MTdpnf=""
    #---------------------------------------
    BFsrtJ="dd if=/dev/urandom of=$ChRoot/dnscache/seed bs=128 count=1"
    AFsrtJ=""
    BFstpJ=""
    AFstpJ=""
    Jstcom="/dnscache/run"
    #---------------------------------------
    . /usr/local/etc/rc.d/common_Njailstp.file
    jailstartop $1
    

アップグレード

アップグレードはこちらを参照してください

資料

アーカイブ

関連ページ


名前:
コメント:
最終更新:2012年09月05日 14:24