DNS در انگلیسی مخفف عبارت «سیستم نامگذاری دامین» است و عنوانهای هاست یا URLها را به آدرسهای IP ترجمه میکند. به عنوان مثال، اگر شما آدرس www.ariaservice.net را در مرورگر تایپ میکنید، سرور DNS نام دامین را به آدرس IP متناظر آن ترجمه میکند. از آنجایی که آدرسهای IP را همیشه نمیتوان به حافظه...
1399/04/242984 بازدید
DNS در انگلیسی مخفف عبارت «سیستم نامگذاری دامین» است و عنوانهای هاست یا URLها را به آدرسهای IP ترجمه میکند. به عنوان مثال، اگر شما آدرس www.ariaservice.net را در مرورگر تایپ میکنید، سرور DNS نام دامین را به آدرس IP متناظر آن ترجمه میکند. از آنجایی که آدرسهای IP را همیشه نمیتوان به حافظه سپرد، سرورهای DNS ها نقش تعیینکنندهای پیدا میکنند. چرا که به خاطر آوردن یک عنوان دامین بسیار سادهتر از یک آدرس IP خواهد بود.
در این مطلب آموزشی، به شما کمک میکنیم تا یک سرور DNS محلی را بر روی سیستم CentOS 7 نصب کنید. البته همین مراحل برای نصب سرور DNS در لینوکسهای RHEL و Scientific Linux 7 نیز قابلاجرا هستند.
نصب سرور DNS
سناریوی مراحل کار
به منظور رسیدن به اهداف آموزشی که در این مطلب دنبال میکنیم، از سه سیستم نقطهای استفاده میکنیم. یکی به عنوان سرور Master DNS عمل میکند، دیگری Secondary DNS و سیستم سوم کلاینت DNS ما خواهد بود. در اینجا جزئيات سه سیستم را مرور میکنیم.
جزئیات سرور DNS اصلی یا Master
سیستمعامل: CentOS 7 مینیمال سرور
عنوان هاست: ariaservice.local
آدرس IP: 168.1.101/24
جزئیات سرور DNS ثانویه یا Slave
سیستمعامل: CentOS 7 مینیمال سرور
عنوان هاست: ariaservice.local
آدرس IP: 168.1.102/24
جزئيات کلاینت
سیستمعامل: CentOS 6.5 دسکتاپ
عنوان هاست: ariaservice.local
آدرس IP: 168.1.103/24
نصب سرور DNS اصلی
برای این منظور باید بستههای bind9 را بر روی سرورتان نصب کنید.
php
1yum install bind bind-utils -y
گام ۱) تنظیمات سرور DNS
برای این منظور، فایل ‘/etc/named.conf’ را ویرایش کنید.
php
1vi /etc/named.conf
مواردی را که در زیر با فونت ضخیم نوشته شدهاند، اضافه کنید.
php
1//2// named.conf3//4// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS5// server as a caching only nameserver (as a localhost DNS resolver only).6//7// See /usr/share/doc/bind*/sample/ for example named configuration files.8//9options {10 listen-on port 53 { 127.0.0.1; <strong>192.168.1.101;</strong>}; <strong>### Master DNS IP ###</strong>11# listen-on-v6 port 53 { ::1; };12 directory "/var/named";13 dump-file "/var/named/data/cache_dump.db";14 statistics-file "/var/named/data/named_stats.txt";15 memstatistics-file "/var/named/data/named_mem_stats.txt";16 allow-query { localhost; <strong>192.168.1.0/24;</strong>}; <strong>### IP Range ###</strong>17 allow-transfer{ localhost; <strong>192.168.1.102;</strong> }; <strong>### Slave DNS IP ###</strong>18 /* 19 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.20 - If you are building a RECURSIVE (caching) DNS server, you need to enable 21 recursion. 22 - If your recursive DNS server has a public IP address, you MUST enable access 23 control to limit queries to your legitimate users. Failing to do so will24 cause your server to become part of large scale DNS amplification 25 attacks. Implementing BCP38 within your network would greatly26 reduce such attack surface 27 */28 recursion yes;2930 dnssec-enable yes;31 dnssec-validation yes;32 dnssec-lookaside auto;3334 /* Path to ISC DLV key */35 bindkeys-file "/etc/named.iscdlv.key";36 managed-keys-directory "/var/named/dynamic";37 pid-file "/run/named/named.pid";38 session-keyfile "/run/named/session.key";39};4041logging {42 channel default_debug {43 file "data/named.run";44 severity dynamic;45 };46};4748zone "." IN {49 type hint;50 file "named.ca";51};5253<strong>zone "unixmen.local" IN {54type master;55file "forward.unixmen";56allow-update { none; };57};58zone "1.168.192.in-addr.arpa" IN {59type master;60file "reverse.unixmen";61allow-update { none; };62};</strong>6364include "/etc/named.rfc1912.zones";65include "/etc/named.root.key";</pre>66<pre>
گام ۲) ساخت فایلهای Zone
در این مرحله میخواهیم Zoneهای فوروارد و ریورس را که در فایل ‘/etc/named.conf’ به آنها اشاره کرده بودیم، ایجاد کنیم.
ساخت Forward Zone
فایل forward.ariaservice را درون دایرکتوری ‘/var/named’ ایجاد کنید.
php
1vi /var/named/forward.ariaservice
خطوط زیر را اضافه کنید.
php
1$TTL 864002@ IN SOA masterdns.ariaservice.local. root.ariaservice.local. (3 2011071001 ;Serial4 3600 ;Refresh5 1800 ;Retry6 604800 ;Expire7 86400 ;Minimum TTL8)9@ IN NS masterdns.ariaservice.local.10@ IN NS secondarydns.ariaservice.local.11@ IN A 192.168.1.10112@ IN A 192.168.1.10213@ IN A 192.168.1.10314masterdns IN A 192.168.1.10115secondarydns IN A 192.168.1.10216client IN A 192.168.1.103
ساخت Reverse Zone
فایل reverse.ariaservice را درون دایرکتوری ‘/var/named’ ایجاد کنید.
php
1vi /var/named/reverse.ariaservice
حالا نوبت به اضافهکردن خطوط زیر است.
php
1</pre>2<pre>$TTL 864003@ IN SOA masterdns.unixmen.local. root.unixmen.local. (4 2011071001 ;Serial5 3600 ;Refresh6 1800 ;Retry7 604800 ;Expire8 86400 ;Minimum TTL9)10@ IN NS masterdns.unixmen.local.11@ IN NS secondarydns.unixmen.local.12@ IN A 192.168.1.10113@ IN A 192.168.1.10214@ IN A 192.168.1.10315masterdns IN A 192.168.1.10116secondarydns IN A 192.168.1.10217client IN A 192.168.1.103</pre>18<pre>
گام ۳) راهاندازی سرویس DNS
فعالسازی و شروع سرویس DNS را به صورت زیر انجام دهید.
php
1systemctl enable named2systemctl start named
گام ۴) تنظیمات فایروال
پورت پیشفرض شماره 53 سرویس DNS میبایست مجوّزهای لازم را در فایروال داشته باشد. برای این منظور، فرمانهای زیر به کمک شما خواهند آمد.
حالا سرور اصلی DNS آماده استفاده است و باید خودمان را برای تنظیمات نصب سرور ثانویه کنیم.
نصب سرور DNS ثانویه
با استفاده از فرمان زیر، بستههای bind را نصب کنید.
php
1yum install bind bind-utils -y
گام ۱) تنظیمات سرور DNS ثانویه
برای این منظور، باید فایل ‘/etc/named.conf’ را ویرایش کنید.
php
1vi /etc/named.conf
مطابق زیر و خطوطی که با فونت ضخیم مشخص شدهاند، تغییرات را انجام دهید.
php
1//2// named.conf3//4// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS5// server as a caching only nameserver (as a localhost DNS resolver only).6//7// See /usr/share/doc/bind*/sample/ for example named configuration files.8//9options {10listen-on port 53 { 127.0.0.1; 192.168.1.102; };11listen-on-v6 port 53 { ::1; };12directory "/var/named";13dump-file "/var/named/data/cache_dump.db";14statistics-file "/var/named/data/named_stats.txt";15memstatistics-file "/var/named/data/named_mem_stats.txt";16allow-query { localhost; 192.168.1.0/24; };17.18.19.20.21zone "." IN {22type hint;23file "named.ca";24};25zone "ariaservice.local" IN {26type slave;27file "slaves/ariaservice.fwd";28masters { 192.168.1.101; };29};30zone "1.168.192.in-addr.arpa" IN {31type slave;32file "slaves/ariaservice.rev";33masters { 192.168.1.101; };34};35include "/etc/named.rfc1912.zones";36include "/etc/named.root.key";
گام ۲) راهاندازی سرویس DNS
راهاندازی سرور DNS با کمک فرمانهای زیر صورت میگیرد.
php
1systemctl enable named2systemctl start named
حالا Zoneهای فوروارد و ریورس به صورت خودکار از سرور اصلی DNS به آدرس ‘/var/named/slaves/’ در سرور DNS ثانویه کپی میشوند.
php
1ls /var/named/slaves/
نمونه خروجی
php
1ariaservice.fwd ariaservice.rev
گام ۳) اضافهکردن جزئیات سرور DNS
در فایل تنظیمات رابط کاربری شبکه، جزئیات سرور را مطابق زیر وارد کنید.
کار ما در اینجا خاتمه یافت. در حال حاضر سرورهای DNS اصلی و ثانویه، آماده دسترسی و استفاده هستند.
جمعبندی
در این آموزش، نحوه نصب یک سرور DNS محلی را بر روی توزیع لینوکس CentOS 7 بررسی کردیم. امیدواریم که این مطلب نیز مورد توجه شما قرار گرفته باشد.
منبع: Unixmen.com