نوشته شده توسط تایماز اسمعلی.
DNS سرنام Domain Name System سرویسی است که وظیفه ترجمه نام یا آدرس اینترنتی را به آی پی دارد برای مثال هنگامی که شما آدرس google.com را در مرورگر خود مورد پیمایش قرار می دهید این آدرس به آدرس آی پی ۱۷۳٫۱۹۴٫۴۵٫۳۶ توسط سرور DNS ترجمه می شود برای نصب سرویس DNS دستور زیر را اجرا کنید.
[root@dns ~]# yum install bind bind-utils
توجه داشته باشید که در این نوشته اسم دامین ما domain.com اسم DNS سرور ما dns.domain.com و آدرس آی پی سرور ۱۹۲٫۱۶۸٫۲۰٫۲۰ می باشد.
پس از نصب سرویس dns فایل پیکربندی آن در مسیر /etc/named.comf ایجاد می شود این فایل شامل یکسری پیکربندی های این سرویس می باشد و باید بعد از نصب تنظیم شود در این نوشته بخش های مهم که باید تغییر داده شود مورد بررسی قرار می دهیم.
// // named.conf // // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS // server as a caching only nameserver (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // options { listen-on port 53 { 127.0.0.1; 192.168.20.20}; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; 192.168.20.0/24}; /* - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion. - If you are building a RECURSIVE (caching) DNS server, you need to enable recursion. - If your recursive DNS server has a public IP address, you MUST enable access control to limit queries to your legitimate users. Failing to do so will cause your server to become part of large scale DNS amplification attacks. Implementing BCP38 within your network would greatly reduce such attack surface */ recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "domain.com" IN{ type master; file "forward.domain"; allow-update{none;}; }; zone "20.168.192.in-addr.arpa" IN{ type master; file "reverse.domain"; allow-update{none;}; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
۱-آدرس آی پی سرور DNS: مقدار ۱۹۲٫۱۶۸٫۲۰٫۲۰
listen-on port 53 { 127.0.0.1; 192.168.20.20};
۲-دایرکتوری حاوی فایل های سرویس DNS: مقدار /var/named
directory "/var/named";
۳-آدرس شبکه ای که اجازه پرس و جو کردن از این سرور را داراست: مقدار ۱۹۲٫۱۶۸٫۲۰٫۰/۲۴
allow-query { localhost; 192.168.20.0/24};
۴-Zone مربوط به ترجمه آدرس(نام) به آی پی: Forward Zone
zone "domain.com" IN{ type master; file "forward.domain"; allow-update{none;}; };
domain.com: نام دامنه
forward.domain: نام فایل مربوط به Zone که در مسیر /var/named باید ایجاد شود.
۵- Zone مربوط به ترجمه آی پی به آدرس(نام): Reverse Zone
zone "20.168.192.in-addr.arpa" IN{ type master; file "reverse.domain"; allow-update{none;}; };
۲۰٫۱۶۸٫۱۹۲: آدرس شبکه
reverse.domain: نام فایل مربوط به Zone که در مسیر /var/named باید ایجاد شود.
بعد از پیکربندی فایل named.conf باید فایل های مربوط به Forward Zone و Reverse Zone را در مسیر مشخص شده ایجاد کنید ابتدا فایل مربوط به Forward Zone و سپس Reverse Zone را ایجاد و محتویات آنها را به طور خلاصه مورد بررسی قرار می دهیم.
Forward Zone:
فایل مربوط به این Zone را با بایدبا توجه به مقادیری که در فایل named.conf وارد کردید ایجاد کنید ما در این نوشته نام forward.domain را در دایرکتوری /var/named مشخص کردیم این فایل را ایجاد کرده و محتویات آن را به شکل زیر وارد کنید.
$TTL 86400 @ IN SOA dns.domain.com. root.domain.com( 2011071001 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 94800 ;Minimum TTL ) @ IN NS dns.domain.com. @ IN A 192.168.20.20 @ IN A 192.168.20.21 @ IN A 192.168.20.22 dns IN A 192.168.20.20 fs IN A 192.168.20.21 dhcp IN A 192.168.20.22
۱-نام سرور DNS: مقدار dns.domain.com
@ IN SOA dns.domain.com. root.domain.com @ IN NS dns.domain.com.
۲-رکورد: نحوه ایجاد رکورد(آی پی:۱۹۲٫۱۶۸٫۲۰٫۲۰، آدرس dns)
@ IN A 192.168.20.20 dns IN A 192.168.20.20
Reverse Zone:
فایل مربوط به این Zone را با بایدبا توجه به مقادیری که در فایل named.conf وارد کردید ایجاد کنید ما در این نوشته نام reverse.domain را در دایرکتوری /var/named مشخص کردیم این فایل را ایجاد کرده و محتویات آن را به شکل زیر وارد کنید.
$TTL 86400 @ IN SOA dns.domain.com. root.domain.com( 2011071001 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 94800 ;Minimum TTL ) @ IN NS dns.domain.com. @ IN PTR domain.com. dns IN A 192.168.20.20 fs IN A 192.168.20.21 dhcp IN A 192.168.20.22 20 IN PTR dns.domain.com. 21 IN PTR fs.domain.com. 22 IN PTR dhcp.domain.com.
۱-نام سرور DNS: مقدار dns.domain.com
@ IN SOA dns.domain.com. root.domain.com @ IN NS dns.domain.com.
۲-نام دامنه: مقدار domain.com
@ IN PTR domain.com.
۳-رکورد: نحوه ایجاد رکورد(آی پی: ۲۰ و ۱۹۲٫۱۶۸٫۲۰٫۲۰، آدرس dns و dns.domain.com)
dns IN A 192.168.20.20 20 IN PTR dns.domain.com.
بعد از ایجاد فایل ها برای اجرای سرویس DNS دستور زیر را اجرا کنید.
[root@dns ~]# systemctl start named
برای اینکه سرویس DNS به هنگام راه اندازی مجدد به صورت خودکار اجرا شود دستور زیر را اجرا کنید.
[root@dns ~]# systemctl enable named
برای اینکه مطمین شوید فایل های پیکربندی مربوط به سرویس DNS یه درستی مقدار دهی شده است دستورات زیر را به ترتیب اجرا کنید تا در صورت وجود مشکل برای شما نمایش داده شود.
[root@dns ~]# named-checkconf /etc/named.conf [root@dns ~]# named-checkzone domain.com /var/named/forward.domain zone domain.com/IN: loaded serial 2011071001 OK [root@dns ~]# named-checkzone domain.com /var/named/reverse.domain zone domain.com/IN: loaded serial 2011071001 OK
بعد از پیکربندی کامل سرویس DNS و اجرای آن نیاز است تا پورت ۵۳ در فایروال باز شود برای این منظور دستورات زیر را به ترتیب اجرا کنید.
[root@dns ~]# firewall-cmd --zone=public --add-port=53/tcp --permanent success [root@dns ~]# firewall-cmd --zone=public --add-port=53/udp --permanent success [root@dns ~]# firewall-cmd --reload success
برای پرس و جو از سرور DNS و بررسی صحت کارکرد آن می توانید از دستور nslookup به شکل زیر استفاده کنید.
[root@cl011 ~]# nslookup dhcp.domain.com Server: 127.0.0.1 Address: 127.0.0.1#53 Name: dhcp.domain.com Address: 192.168.20.22
همان طور که در کد بالا می بینید آی پی ۱۹۲٫۱۶۸٫۲۰٫۲۲ که مربوط به dhcp.domain.com می باشد توسط سرور DNS ترجمه شده است.
نوشته نصب و راه اندازی DNS اولین بار در لینوکس سیزن پدیدار شد.