เราดำเนินการต่อกับชุดบทความของเราและในบทความนี้เราจะจัดการกับประเด็นต่อไปนี้:
- การติดตั้ง
- ไดเร็กทอรีและไฟล์หลัก
ก่อนดำเนินการต่อเราขอแนะนำให้คุณอย่าหยุดอ่าน:
การติดตั้ง
ในคอนโซล ในฐานะ ผู้ใช้ rootเราจะติดตั้งbind9 :
ความถนัดติดตั้ง bind9
นอกจากนี้ เรายังต้องติดตั้ง แพ็กเกจdnsutilsซึ่งมีเครื่องมือที่จำเป็นสำหรับการสอบถาม DNS และวินิจฉัยการทำงาน:
ความถนัดในการติดตั้ง dnsutils
หากคุณต้องการดูเอกสารที่มาในที่เก็บ:
ความถนัดติดตั้ง bind9-doc
เอกสารจะถูกจัดเก็บไว้ใน ไดเร็กทอรี /usr/share/doc/bind9-doc/armและไฟล์ดัชนีหรือสารบัญคือBv9ARM.htmlหากต้องการเปิด ให้รันคำสั่ง:
firefox / usr / share / doc / bind9-doc / arm / Bv9ARM.html
เมื่อเราติดตั้งbind9 บน Debian แพ็กเกจ bind9utilsก็จะถูกติดตั้งมาด้วยซึ่งมีเครื่องมือที่มีประโยชน์หลายอย่างสำหรับการดูแลรักษาการติดตั้ง BIND ให้ทำงานได้อย่างราบรื่น เครื่องมือเหล่านั้นได้แก่rndc, named-checkconf และ named-checkzoneนอกจากนี้ แพ็กเกจ dnsutilsยังมีชุดโปรแกรมไคลเอ็นต์ BIND รวมถึงdigและnslookupเราจะใช้เครื่องมือและคำสั่งเหล่านี้ทั้งหมดในบทความต่อไปนี้
หากต้องการดูโปรแกรมทั้งหมดในแต่ละแพ็กเกจ เราต้องเรียกใช้งานในฐานะ ผู้ใช้ root :
dpkg -L bind9utils dpkg -L dnsutils
หรือไปที่Synapticค้นหาแพ็กเกจ แล้วดูว่ามีไฟล์ใดบ้างที่ติดตั้ง โดยเฉพาะไฟล์ที่ติดตั้งอยู่ใน โฟลเดอร์ /usr/binหรือ/usr/ sbin
หากเราต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการใช้เครื่องมือหรือโปรแกรมแต่ละตัวที่ติดตั้งเราต้องดำเนินการ:
ชาย
ไดเร็กทอรีและไฟล์หลัก
เมื่อคุณติดตั้ง Debian ไฟล์ `/etc/resolv.conf`จะถูกสร้างขึ้นไฟล์นี้ หรือ " ไฟล์กำหนดค่าบริการตัวแก้ไข DNS " ประกอบด้วยตัวเลือกหลายอย่าง ซึ่งค่าเริ่มต้นคือชื่อโดเมนและที่อยู่ IP ของเซิร์ฟเวอร์ DNS ที่ประกาศไว้ระหว่างการติดตั้ง เนื่องจากเอกสารช่วยเหลือของไฟล์เป็นภาษาสเปนและเข้าใจง่ายมาก เราขอแนะนำให้คุณอ่านโดยใช้คำสั่ง`man resolv.conf`
หลังจากติดตั้งbind9ใน Squeeze แล้ว จะมีการสร้างไดเร็กทอรีอย่างน้อยดังต่อไปนี้:
/ etc / bind / var / cache / bind / var / lib / bind
ใน ไดเร็กทอรี /etc/bindเราจะพบไฟล์การกำหนดค่าต่างๆ ดังต่อไปนี้:
named.conf named.conf.options named.conf.default-zones named.conf.local rndc.key
ใน ไดเร็กทอรี /var/cache/bindเราจะสร้าง ไฟล์ Local Zonesซึ่งเราจะกล่าวถึงในภายหลัง เพื่อความอยากรู้ ลองรันคำสั่งต่อไปนี้ในคอนโซลในฐานะ ผู้ใช้ root ดู :
ls -l / etc / bind ls -l / var / cache / bind
แน่นอนว่าไดเร็กทอรีสุดท้ายจะไม่มีอะไรเลยเนื่องจากเรายังไม่ได้สร้าง Local Zone
การแบ่งการตั้งค่า BIND ออกเป็นหลายไฟล์นั้นทำได้เพื่อความสะดวกและชัดเจน แต่ละไฟล์มีฟังก์ชันเฉพาะดังที่เราจะเห็นด้านล่าง:
named.conf : ไฟล์การกำหนดค่าหลัก ประกอบด้วยไฟล์named.conf.options , named.conf.localและnamed.conf.default- zones
named.conf.options : ตัวเลือกบริการ DNS ทั่วไป คำสั่ง: directory “/var/cache/bind”จะบอก bind9 ว่าจะค้นหาไฟล์ของ Local Zones ที่สร้างขึ้นได้ที่ใด นอกจากนี้เรายังประกาศเซิร์ฟเวอร์ “ Forwarders ” ได้สูงสุด 3 ตัว ซึ่งเป็นเซิร์ฟเวอร์ DNS ภายนอกที่เราสามารถสอบถามจากเครือข่ายของเรา (ผ่านไฟร์วอลล์แน่นอน) เพื่อตอบคำถามหรือคำขอที่ DNS ภายในของเราไม่สามารถตอบได้
ตัวอย่างเช่น หากเรากำลังกำหนดค่า DNS สำหรับ LAN 192.168.10.0/24 และเราต้องการ ให้Forwarder ตัวใดตัวหนึ่งเป็น Name Server ของ UCI เราต้องประกาศคำสั่ง forwarders { 200.55.140.178; } ; ที่อยู่ IP ที่ตรงกับเซิร์ฟเวอร์ns1.uci.cu
ด้วยวิธีนี้ เราสามารถสอบถามเซิร์ฟเวอร์ DNS ภายในของเราเพื่อหาที่อยู่ IP ของโฮสต์ yahoo.es (ซึ่งเห็นได้ชัดว่าไม่ได้อยู่ในเครือข่าย LAN ของเรา) เนื่องจาก DNS ของเราจะสอบถามเซิร์ฟเวอร์ DNS ของ UCI ว่ารู้จักที่อยู่ IP ของ yahoo.es หรือไม่ จากนั้นจะส่งผลลัพธ์กลับมา ไม่ว่าจะเป็นความสำเร็จหรือไม่ก็ตาม นอกจากนี้ เราจะกำหนดค่าสำคัญอื่นๆ ใน ไฟล์ named.conf.option ด้วย ดังที่เราจะเห็นในภายหลัง
named.conf.default-zones : ตามชื่อที่บ่งบอก นี่คือโซนเริ่มต้น ในส่วนนี้ BIND จะถูกกำหนดค่าด้วยชื่อไฟล์ที่มีข้อมูลสำหรับเซิร์ฟเวอร์รูทที่จำเป็นในการเริ่มต้นแคช DNS โดยเฉพาะ ไฟล์ db.root นอกจากนี้ BIND ยังได้รับคำสั่งให้มีอำนาจเต็ม (authority) สำหรับการแก้ไขชื่อ localhostทั้งการค้นหาแบบไปข้างหน้าและย้อนกลับ และหลักการเดียวกันนี้ใช้กับโซนบรอดแคสต์ด้วย
named.conf.local : ไฟล์ที่เราใช้กำหนดค่าการตั้งค่าเซิร์ฟเวอร์ DNS ในเครือข่ายท้องถิ่น โดยใช้ชื่อของแต่ละโซนในเครือข่ายท้องถิ่น (Local Zones ) และไฟล์บันทึก DNS เหล่านี้จะทำหน้าที่เชื่อมโยงชื่อของคอมพิวเตอร์ที่เชื่อมต่อกับเครือข่าย LAN กับที่อยู่ IP ของคอมพิวเตอร์เหล่านั้น และในทางกลับกัน
rndc.key : ไฟล์ที่สร้างขึ้นโดยอัตโนมัติซึ่งมีคีย์สำหรับควบคุม BIND การใช้ยูทิลิตี้ควบคุมเซิร์ฟเวอร์ BIND ที่ชื่อ rndcทำให้เราสามารถโหลดการกำหนดค่า DNS ใหม่ได้โดยไม่ต้องรีสตาร์ทด้วย คำสั่ง rndc reloadซึ่งมีประโยชน์มากเมื่อทำการเปลี่ยนแปลงไฟล์ Local Zones
ใน Debian ไฟล์ Local Zoneอาจอยู่ใน/var/lib/bind ก็ได้ ในขณะที่ในระบบปฏิบัติการอื่นๆ เช่น Red Hat และ CentOS ไฟล์เหล่านี้มักจะอยู่ใน/var/lib/namedหรือไดเร็กทอรีอื่นๆ ขึ้นอยู่กับระดับความปลอดภัยที่นำมาใช้
เราเลือก ไดเร็กทอรี /var/cache/bindเพราะเป็นไดเร็กทอรีที่ Debian แนะนำโดยค่าเริ่มต้นใน ไฟล์ named.conf.optionsเราสามารถใช้ไดเร็กทอรีอื่นใดก็ได้ ตราบใดที่เราบอกbind9ว่าจะค้นหาไฟล์โซนได้ที่ใด หรือระบุพาธแบบเต็มไปยังแต่ละโซนใน ไฟล์ named.conf.localขอแนะนำอย่างยิ่งให้ใช้ไดเร็กทอรีที่แนะนำโดยระบบปฏิบัติการของคุณ
การอธิบายรายละเอียดเกี่ยวกับมาตรการรักษาความปลอดภัยเพิ่มเติมในการสร้าง chroot สำหรับ BIND นั้นอยู่นอกเหนือขอบเขตของบทความนี้ เช่นเดียวกับการรักษาความปลอดภัยโดยใช้บริบท SELinux ผู้ที่ต้องการใช้งานคุณสมบัติดังกล่าวควรศึกษาคู่มือหรือเอกสารเฉพาะทาง โปรดจำไว้ว่า แพ็กเกจเอกสาร bind9-docติดตั้งอยู่ใน ไดเร็กทอรี /usr/share/doc/bind9- doc
ดีครับจนถึงตอนที่ 2 เราไม่ต้องการขยายความในบทความเดียวเนื่องจากคำแนะนำที่ดีของหัวหน้าของเรา ในที่สุด! เราจะเข้าสู่สาระสำคัญของ BIND Setup and Testing …ในบทต่อไป