List

سرویس DNS یا Domain Name System همانظور که میدانیم سرویس اینترنتی است که ترجمه دامنه را به IP انجام میدهد.با استفاده از DNS نه تنها میتوانیم دامنه را به IP ترجمه کنیم بلکه میتوانیم IP را نیز به دامنه ترجمه کنیم.

در این آموزش نصب و تنظیمات DNS Server بر پایه BIND را روی Ubuntu بررسی خواهیم کرد.

عبارت BIND = Berkeley Internet Name Domain تقریباً برای همه توزیع های لینوکس در دسترس میباشد و این امکان را به ما میدهد که اطلاعات DNS را در اینترنت منتشر کنیم.

این آموزش بر اساس اطلاعات زیر پیش خواهد رفت :

Bind Server IP : 192.168.1.100 
Domain Name : 4nix.local
Private Network : 192.168.1.0/24

نصب BIND9 روی Ubuntu :

برای نصب BIND به این ابزار های نیاز داریم : bind9 bind9utils bind9-doc dnsutils

دستور زیر را در ترمینال وارد نمایید :

sudo apt-get install bind9 bind9utils bind9-doc dnsutils

بعد از اینکه تمام بسته های نصب شد به سراغ کانفیگ کردن BIND میریم.

ابتدا Bind رو برای IPv4 تنظیم میکنیم، برای انجام این کار فایل “etc/default/bind9” را ویرایش و “۴-” را به OPTIONS اضافه میکنیم.فایل نهایی باید شبیه زیر باشد.

تمام فایل های کانفیگی در دایرکتوری etc/bind/ قرار دارند.

یکی از فایل های کانفیگی مهم برای bind فایل “/etc/bind/named.conf.options“ هست، در این فایل میتوانیم مشخص کنیم :

  • درخواست ها از Private Network به سمت سرور ارسال شوند
  • سرور recursive یا Non-recursive عمل کند
  • پورت DNS را مشخص کنیم (53)
  • Forwarders ها را مشخص کنیم ( زمانی که DNS سرور قادر به پیدا کردن جواب درسخواست نباشد درخواست را به سمت Forwarders ها ارسال میکند)

بر اساس شبکه داخلی خودم پارامتر های زیر را در نظر گرفتم :

sudo vim /etc/bind/named.conf.options
options {
directory “/var/cache/bind”;
auth-nxdomain no;    # conform to RFC1035
// listen-on-v6 { any; };
listen-on port 53 { localhost; 192.168.1.0/24; };
allow-query { localhost; 192.168.1.0/24; };
forwarders { 8.8.8.8; };
recursion yes; };

فایل کانفیگ مهم بعدی “/etc/bind/named.conf.local“ هست، در این فایل ما zone های مربوط به دامنه  را تعریف میکنیم.فایل را باز کنید و موارد زیر را به فایل اضافه کنید :

sudo vim named.conf.local
zone    “4nix.local” {
type master;
file    “/etc/bind/forward.4nix.local”;
};
zone   “1.168.192.in-addr.arpa”  {
type master;
file    “/etc/bind/reverse.4nix.local”;
};

فایل را ذخیره کنید و از آن خارج شوید.

ما در اینجا محل فایل forward lookup zone و reverse lookup zone را مشخص کردیم، قدم بعدی ساخت این فایل ها میباشد.

اول فایل forward lookup zone را ایجاد میکنیم، فایل db.local به عنوان فایل نمونه zone در آدرس ‘/etc/bind folder‘ موجود میباشد، فایل نمونه را کپی و با توجه به نیاز تغییر میدهیم استفاده کنیم.

sudo cp db.local forward.4nix.local
sudo vim forward.4nix.local
$TTL    604800 
@       IN      SOA     primary.4nix.local. root.primary.4nix.local. (
6         ; Serial
604820         ; Refresh
86600         ; Retry
2419600         ; Expire
604600 )   
; Negative Cache TTL ;
Name Server Information
@       IN      NS      primary.4nix.local.
;IP address of Your Domain Name Server(DNS)
primary IN       A      192.168.1.100
;Mail Server MX (Mail exchanger) Record
4nix.local. IN  MX  10  mail.4nix.local.
;A Record for Host names
www     IN       A      192.168.1.50
mail    IN       A       192.168.1.60
;CNAME Record
ftp     IN      CNAME    www.4nix.local.

مطمئن شوید که این فایل را بر اساس شبکه خود تغییر داده اید.

قدم بعدی ساخت فایل reverse lookup zone در همان دایرکتوری است که فایل forward lookup zone را ایجاد کردیم.فایل نمونه کانفیگ reverse lookup zone در دایرکتوری ‘/etc/bind‘ با نام db.127 قرار دارد.

sudo cp db.127 reverse.4nix.local
sudo vim /etc/bind/reverse.4nix.local
$TTL    604800 
@       IN      SOA     4nix.local. root.4nix.local. (
21         ; Serial
604820         ; Refresh
864500        ; Retry
2419270        ; Expire
604880 )       ; Negative Cache TTL
;Your Name Server Info
@       IN      NS      primary.4nix.local.
primary IN      A       192.168.1.100 ;
Reverse Lookup for Your DNS Server
100      IN      PTR     primary.4nix.local.
;PTR Record IP address to HostName
50      IN      PTR     www.4nix.local.
60      IN      PTR     mail.4nix.local.

فایل را ذخیره کنید و از آن خارج شوید.

حالا میبایست سرویس را restart کنیم تا تغییرات اعمال شوند.

sudo systemctl restart bind9
sudo systemctl enable bind9

نکته : در صورتی که فایروال فعال هست دستور زیر را وارد نمایید:

sudo ufw allow 53

اگر میخواهید syntax فایل کانفیگ bind9 را بررسی کنید (named.conf.local) میتوانید از دستور “named-checkconf” استفاده کنید.به عنوان مثال :

sudo named-checkconf /etc/bind/named.conf.local

اگر هیچ خطایی وجود نداشته باشد بدون هیچ خروجی مجدداً shell در اختیار شما قرار خواهد گرفت.

برای چک کردن syntax در فایل های  forward و reverse lookup zone از دستور زیر “named-checkzone” استفاده میکنیم.مثال :

sudo named-checkzone nix.local /etc/bind/forward.nix.local
zone nix.local/IN: loaded serial 6 
OK
nix@bind-server:~$
nix@bind-server:~$ sudo named-checkzone nix.local /etc/bind/reverse.nix.local
zone nix.local/IN: loaded serial 21
OK

تست DNS Server :

برای تست کردن DNS Server از ابزار های dig و nslookup استفاده میکنیم.

برای انجام این تست در یک سیستم لینوکسی به نحو زیر میتوانیم این کار را انجام دهیم.برای تغییر DNS Server فایل ‘/etc/resol.conf‘  را باز میکنیم و تغییر را اعمال میکنیم :

nix@joke:~$ sudo vi /etc/resolv.conf
search 4nix.local
nameserver 192.168.1.100

فایل را ذخیره و خارج شوید.

سوال : خط اول این فایل توضیح داده که نباید این فایل را ادیت کنیم.تغییر این فایل چه ریسک هایی میتواند داشته باشد و اه کار اصولی تغییر DNS چی هست ؟

حالا با استفاده از ابزار dig می توانیم اطلاعات مربوط به DNS را بدست آوریم :

dig primary.4nix.local

باید اطلاعاتی شبیه به زیر را در هروجی دستور مشاهده نماییم.

این اطلاعات نشان میدهد که dns ما به خوبی کار میکند.

با استفاده از دستور زیر  reverse lookup query(PTR) را تست کنیم :

dig -x 192.168.1.100

خروجی دستور باید چیزی شبیه به عکس زیر باشد

نکته : در صورتی که در زمان اجرای دستور dig با خطای  ‘command not found’ روبه رو شدید باید پکیج dnsutils را نصب نمایید.

sudo apt-get install dnsutils -y

همچنین میتوانیم از ابزار nslookup استفاده کنیم.

nslookup primary.4nix.local

خب DNS Server ما به خوبی کار میکند و میتوانید بقیه سرور ها مثل mail,ftp,web و … را DNS اضافه کنید.

ما در این آموزش نصب local DNS server را داشتیم، اگر میخواهید public DNS server داشته باشید شما به IP Public نیاز خواهید داشت.

  Posts

November 20th, 2018

بهترین شبیه ساز اندروید برای لینوکس

چرا به شبیه‌ساز نیاز دارید ؟
بعضی وقت ها به برنامه ای نیاز دارید که نسخه مخصوص دسکتاپ لینوکس ندارد، بعضی وقت ها می خواهید بازی کنید یا محیط یک نرم‌افزار رو بررسی کنید و بعضی وقت ها میخواهید برنامه‌ی خودتان رو توسعه دهید.

September 19th, 2018

پشتیبان گیری از لینوکس سرور با BitTorrent Sync

.BitTorrent Sync با استفاده از پروتکل BitTorrent به شما این امکان را میدهد که محتوا را بین سرورها همگام سازی کنید.همچنین بصورت مستقیم میتوانید بین کامپیوتر و گوشی هوشمند خود این همگام سازی را انجام دهید بدون اینکه نیاز باشد محتوا را به سرور third-party ارسال کنید.

September 13th, 2018

نصب Let’s Encrypt روی Nginx

گواهینامه های SSL ارتباطات امن و رمزگذاری شده بین یک وب سایت و یک مرورگر اینترنتی را فراهم می کند. SSL مخفف Secure Sockets Layer است و پروتکلی است که رمزگذاری را فراهم می کند. گواهینامه های SSL به طور معمول در صفحاتی که کاربران نهایی نیاز به ارسال اطلاعات حساس در اینترنت مانند جزئیات کارت اعتباری یا کلمه عبور دارند استفاده میشود.

September 3rd, 2018

بازیابی رمز عبور ESXi

در شرایط مختلفی این امکان وجود دارد که نیاز داشته باشید پسورد ESXi را بازیابی کنید که برای انجام این کار روش های متفاوتی وجود دارد اما نکته ی مهمی که در بازیابی رمز عبور وجود دارد حفظ اطلاعاتی است که روی سرور وجود دارد!

August 28th, 2018

HTTPS چگونه کار میکند ؟

HTTPS بطور ساده همان پروتکل استاندارد HTTP میباشد که از لایه ی رمزنگاری /SSLTLS استفاده میکند.

August 19th, 2018

نصب و پیکر بندی Samba Server روی Ubuntu 16.04

Samba نرم افزار رایگان و متن باز پروتکل SMB/CIFS است که برای سیستم های UNIX/LINUX توسعه داده شده و امکان اشتراک گذاری فایل و پرینتر ها را بین سیستم های UNIX/LINUX و همچنین Windows را در یک شبکه local فراهم میکند.

August 4th, 2018

نحوه‌ی عضویت ESXi در Active Directory

ESXi از روش های مختلف احراز هویت پشتیبانی میکند که یکی از آنها Active Directory است. در واقع شما میتوانید AD را به عنوان مکانیزم احراز هویت به vSphere اضافه کنید.

July 25th, 2018

نصب و کانفیگ Bind9 در Ubuntu/Debian

سرویس DNS یا Domain Name System همانظور که میدانیم سرویس اینترنتی است که ترجمه دامنه را به IP انجام میدهد.با استفاده از DNS نه تنها میتوانیم دامنه را به IP ترجمه کنیم بلکه میتوانیم IP را نیز به دامنه ترجمه کنیم.

July 18th, 2018

راه اندازی NFS Share در Ubuntu 16.04

عبارت NFS کوتاه شده Network File System میباشد و در اینجا قصد داریم نحوه نصب و پیگربندی NFS Share در Ubuntu 16.04 را آموزش دهیم که با استفاده از آن سایر کامپیوتر هایی که در شبکه local شما قرار دارند میتوانند به فایل ها و دایرکتوری های شما دسترسی داشته باشند.

November 19th, 2017

نصب نرم افزار مانیتورینگ Cacti در Ubuntu 16.04

یکی از نرم‌افزارهای متن‌باز(Open Source) و رایگان مانیتورینگ شبکه نرم‌افزار Cacti است.