BIND 9 ?
ที่จริงก็ไม่ได้อยากอัปเกรดเท่าไหร่ แต่ทางศูนย์คอมพิวเตอร์เขาขอมา เลยจัดให้ :P .. จะว่าไปแล้ว BIND 9 ก็น่าสนใจตรงที่มันใช้ rndc + chroot ได้ และมีความปลอดภัยสูงขึ้น .. ถ้าเป็น FreeBSD >= 5.3 เข้าใจว่ามี BIND 9 มาให้เลย ส่วน FreeBSD 4.x และ 5.x < 5.3 นี่ต้องติดตั้งจาก ports เอา
เริ่มติดตั้ง
# cd /usr/ports/dns/bind9 # make # make install
เซ็ตอัป rndc
rndc ใช้ irq มาทำเป็น entropy pool ยิ่งอุปกรณ์มีข้อมูลเข้า/ออก random มากๆ ยิ่งดี เขาแนะนำให้ใช้ irq ของ keyboard, mouse, disk, หรือ network interface cards .. ผมไม่ค่อยแนะนำให้ใช้ keyboard/mouse เท่าไหร่ เพราะพวกเซิร์ฟเวอร์หลายๆ ตัวไม่ได้ต่อไว้ด้วยซ้ำ ข้อมูลอาจจะไม่ random อย่างที่ต้องการ .. เลือก disk หรือ network interface cards น่าจะดีกว่า
# grep -i irq /var/run/dmesg.boot
เพิ่ม irq เป็น entropy pool ของ rndc
# rndcontrol -s 12 # rndcontrol -s 14
ถ้าจะให้ใช้ได้ตั้งแต่ boot ก็แก้ /etc/rc.conf เพิ่ม
rand_irqs="12 14"
จากนั้นก็สร้าง config ของ rndc
cd /usr/local/etc rndc-confgen > rndc.conf
แล้วก็สร้าง key
rndc-confgen -a
จะได้ไฟล์ rndc.key แล้วก็แก้ rndc.conf อีกนิดหน่อย เพื่อเอา key ใน rndc.key มาใส่
vi /usr/local/etc/rndc.conf options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; server 127.0.0.1 { key "rndc-key"; }
ก๊อป key “rndc-key” {…} จาก /usr/local/etc/rndc.key มาใส่ใน /usr/local/etc/rndc.conf เป็นอันเสร็จเรื่องของ rndc
เซ็ตอัพ BIND 9
ถ้าใช้ BIND 8 มาก่อน เอา config และ zone files ของ BIND 8 มาแก้นิดๆ หน่อยๆ แล้วใช้กับ BIND 9 เลยก็ได้ ดังนั้น ก๊อปปี้ named.conf ของ BIND 8 มาไว้ที่ /usr/local/etc/named.conf แล้วก็แก้อีกนิด เพื่อเอา rndc มาใช้
include "/usr/local/etc/rndc.key"; controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key" }; };
และใน options { … } เพิ่ม pid-file ” … ” กับ dump-file ” … ” เข้าไปด้วย
options { ... directory "/path/to/namedb" pid-file "/path/to/namedb/named.pid" dump-file "/var/tmp/named_dump.db" ... };
เสร็จแล้ว อย่าลืมเช็ค zone {… } กับ zone file ให้ตรงกัน
แก้ไฟล์เสร็จก็ เปลี่ยน owner/groups ของไฟล์เป็น uid ที่จะรัน named .. ปกติจะใช้ user bind รัน named ก็
chown -R bind:bind /path/to/namedb chmod 750 /path/to/namedb
เช็ค named.conf
named-checkconf /usr/local/etc/named.conf
ทดสอบ
/usr/local/sbin/named -c /usr/local/etc/named.conf -u bind -g
ถ้า named รันได้โดยไม่มี error/warning ก็เป็นอันเรียบร้อย … สุดท้ายก็แก้ /etc/rc.conf
vi /etc/rc.conf named_enable="YES" named_program="/usr/local/sbin/named" named_flags="-c /usr/local/etc/named.conf -u bind"
ทีนี้ตอน boot ก็จะรัน BIND 9 แทน BIND 8 .. เสร็จแล้ว :)