گاهی اوقات ممکن است کاربرانی از کنترل پنل استفاده نکنند و در سرور های لینوکسی خود نیاز به DNS server داشته باشند. در این مواقع اصولا با سختی های زیادی مواجه هستند. اول از همه عدم وجود UI در فضای لینوکسی گاهی برای کاربران سخت جلوه می کند و ارتباط چندانی با سرور برقرار نمی کند و دوم این در تنظیم نیم سرور ها می بایست از تمامی جوانب کانفیگ انجام شود تا ارتباط سرور و دامنه برقرار شود. در مقالات پیشین در خصوص Bind در سرور های ویندوزی صحبت کرده ایم. در این مقاله در خصوص نصب Bind در سرور های لینوکسی صحبت خواهیم کرد.
برای این که شفاف تر بتوانیم با مقاله و جایگذاری های آن آشنا شوید، توضیحاتی در خصوص نیم سرور و دامنه هایی که در کدها استفاده شده است که می توانید آنها را مطالعه نمایید:
دامنه:
domain.com
نیم سرور اول:
ns1.domain.com
نیم سرور دوم:
ns2.domain.com
برای این که بتوانید ارتباط بین سرور و دامنه را برقرار کنیم، اول از همه Bind را نصب می کنیم. برای انجام این مورد نیز از کامند زیر استفاده نمایید:
yum install bind bind-utils -y
پس از نصب Bind می توانید برای کانفیگ آن اقدام نمایید. در اولین اقدام می بایست /etc/named.conf را بررسی و ویرایش نمایید:
vi /etc/named.conf
پس ورود به این بخش با کد هایی همانند زیر مواجه می شوید:
در این بخش می بایست اطلاعات را به شکل زیر وارد نمایید و قسمت های زیر را ویرایش نمایید:
listen-on port 53
allow-query
و بخش zone را به شکل زیر اضافه نمایید:
zone “ns1.domain.com” {type master;file “/var/named/ns1.domain.com.db”;};
zone “ns2.domain.com” {type master;file “/var/named/ns2.domain.com.db”;};
که به صورت کلی کامند های این بخش به شکل زیر می شود:
//
// 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.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
listen-on port 53 { any; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
/*
- 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 no;
dnssec-enable yes;
dnssec-validation yes;
/* 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 "ns1.domain.com" {type master;file "/var/named/ns1.domain.com.db";};
zone "ns2.domain.com" {type master;file "/var/named/ns2.domain.com.db";};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
پس از کانفیگ این بخش آن را save می کنیم. حال می بایست zone ها را به صورت جداگانه برای هر نیم سرور ایجاد کنیم. برای این کامند های هر کدام از نیم سرور ها را به صورت جداگانه در مقاله برای شما قرار می دهیم. برای نیم سرور ns1.domain.com ابتدا فولدر ns1.domain.com.db را ایجاد می کنیم (که داخل آن خالی می باشد) و کامند ها را وارد می کنیم.برای ایجاد آن نیز از کامند زیر استفاده نمایید:
vi /var/named/ns1.domain.com.db
در نظر داشته باشید که به جای IP در کامند ها IP خود را وارد نمایید. برای انجام این مورد کامند های زیر را بررسی نمایید:
; Zone file for ns1.domain.com
$TTL 14400
@ IN SOA ns1.domain.com. root.domain.com. (
2013071600 ;serial, todays date+todays
86400 ;refresh, seconds
7200 ;retry, seconds
3600000 ;expire, seconds
86400 ;minimum, seconds
)
@ IN NS ns1.domain.com.
@ IN NS ns2.domain.com.
@ IN A IP
@ IN NS ns1.domain.com.
@ IN NS ns2.domain.com.
@ IN A IP
@ IN A IP
@ IN A IP
ns1 IN A IP
ns2 IN A IP
client IN A IP
پس از کانفیگ نیم سرور اول، حال می بایست نیم سرور دوم را ایجاد نمایید. مانند مراحل نیم سرور اول، ابتدا فولدر ns2.domain.com.db را ایجاد نمایید و برای این کار نیز از کامند زیر استفاده نمایید:
vi /var/named/ns2.domain.com.db
پس از انجام این مورد حال کامند های زیر را وارد می کنیم و در بخش IP نیز مجدد آیپی خود را وارد نمایید:
; Panel %version%
; Zone file for ns2.domain.com
$TTL 14400
@ SOA ns1.domain.com. root.domain.com. (
2013071600 ;serial, todays date+todays
86400 ;refresh, seconds
7200 ;retry, seconds
3600000 ;expire, seconds
86400 ;minimum, seconds
)
@ IN NS ns1.domain.com.
@ IN NS ns2.domain.com.
@ IN A IP
@ IN NS ns1.domain.com.
@ IN NS ns2.domain.com.
@ IN A IP
@ IN A IP
@ IN A IP
ns1 IN A IP
ns2 IN A IP
client IN A IP
پس از انجام تمامی این موارد می توانید سرویس های زیر را فعال نمایید:
systemctl enable named
systemctl start named
به جهت کانفیگ های نهایی می بایست کامند های زیر را وارد نمایید:
chgrp named -R /var/named
chown -v root:named /etc/named.conf
restorecon -rv /var/named
restorecon /etc/named.conf
در این مرحله می بایست وارد آدرس زیر شوید:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
یکی از نتورک ها را باز می کنید و DNS را با نام آیپی خود به این بخش اضافه نمایید. به صورت زیر:
DNS=IP
در نهایت می بایست که وارد بخش vi /etc/resolv.conf شوید و name server را به آیپی خود تغییر دهید.
حال تمامی مراحل Bind به درستی انجام شده است و در صورتی که از نیم سرور ها پینگ بگیرید به سرور شما resolve می شود.
امیدواریم این مقاله برای شما عزیزان مفید واقع شده باشد. ما را در بخش مقالات دنبال کنید.