چگونه با سرور مجازی Ubuntu، سرویس‌ های DNS خود را مدیریت کنیم؟

۲۳ بهمن ۱۴۰۳ مطالعه ۱۷ دقیقه

سیستم نام دامنه (Domain Name System) یا DNS، یک سیستم سلسله مراتبی و توزیع شده برای ترجمه نام‌ های دامنه قابل فهم برای انسان (مانند google.com) به آدرس‌ های IP عددی (مانند 172.217.160.142) است که کامپیوترها از آن‌ها برای برقراری ارتباط استفاده می‌ کنند. مدیریت سرویس‌ های DNS برای اطمینان از دسترسی صحیح به وب‌ سایت‌ ها و سایر خدمات آنلاین ضروری است.

با استفاده از یک سرور مجازی (VPS) با سیستم عامل Ubuntu، می‌ توانید سرویس‌ های DNS خود را به طور کامل کنترل کنید و انعطاف‌ پذیری و قابلیت اطمینان بیشتری نسبت به استفاده از سرویس‌ های DNS ارائه شده توسط ثبت‌ کنندگان دامنه یا سایر ارائه دهندگان خدمات داشته باشید. در این مقاله، به بررسی گام به گام نحوه  مدیریت سرویس‌ های DNS خود با استفاده از یک سرور مجازی Ubuntu می‌ پردازیم.

1. انتخاب یک سرور مجازی Ubuntu

اولین قدم برای مدیریت سرویس‌ های DNS، انتخاب یک سرور مجازی (VPS) با سیستم عامل Ubuntu است. در هنگام انتخاب VPS، به عوامل زیر توجه کنید:

  • منابع: میزان CPU، RAM و فضای ذخیره سازی مورد نیاز خود را برآورد کنید. برای یک سرور DNS کوچک، معمولاً یک VPS با 1 گیگابایت RAM و 20 گیگابایت فضای ذخیره سازی کافی است. با افزایش تعداد دامنه‌ها و حجم ترافیک، ممکن است نیاز به ارتقاء منابع VPS خود داشته باشید.
  • موقعیت مکانی: موقعیت مکانی VPS خود را با توجه به محل جغرافیایی مخاطبان خود انتخاب کنید. انتخاب VPS در نزدیکی مخاطبان شما می‌تواند تاخیر را کاهش دهد و سرعت دسترسی به وب‌سایت‌های شما را افزایش دهد.
  • قیمت: تعرفه‌ های مختلف ارائه دهندگان VPS را مقایسه کنید و یک VPS با قیمت مناسب و با کیفیت انتخاب کنید.
  • پشتیبانی: از کیفیت پشتیبانی ارائه شده توسط ارائه دهنده VPS اطمینان حاصل کنید. در صورت بروز مشکل در سرور، نیاز به یک پشتیبانی فنی قوی و پاسخگو خواهید داشت.

پس از انتخاب VPS، آن را تهیه و سیستم عامل Ubuntu را بر روی آن نصب کنید.

2. نصب Bind9

Bind9 یک نرم‌ افزار سرور DNS منبع باز و بسیار محبوب است که به شما امکان می‌ دهد DNS server خود را بر روی سرور Ubuntu خود اجرا کنید. برای نصب Bind9، دستورات زیر را در ترمینال سرور خود اجرا کنید:

0-1
 sudo apt update
sudo apt install bind9 bind9utils bind9-doc
  

این دستورات ابتدا لیست بسته‌ های نرم‌ افزاری را به روز می‌ کنند و سپس Bind9، ابزارهای مربوطه و مستندات آن را نصب می‌ کنند.

پیکربندی Bind9

پس از نصب Bind9، باید آن را پیکربندی کنید تا بتواند به عنوان DNS server شما عمل کند. فایل‌ های اصلی پیکربندی Bind9 در دایرکتوری /etc/bind/ قرار دارند.

فایل named.conf.options: این فایل شامل تنظیمات کلی Bind9 است، از جمله تنظیمات مربوط به فورواردرها (forwarders) و (ACL (Access Control Lists.

برای پیکربندی فورواردرها، فایل named.conf.options را با استفاده از یک ویرایشگر متن باز کنید (به عنوان مثال، sudo nano /etc/bind/named.conf.options) و بخش options { را ویرایش کنید. فورواردرها به Bind9 کمک می‌ کنند تا نام‌ هایی را که نمی‌ تواند به طور مستقیم حل کند، به سرورهای DNS دیگر (مانند سرورهای DNS گوگل یا Cloudflare) ارسال کند.

0-1
 options {
    directory "/var/cache/bind";

    recursion yes; # enables recursive queries
    allow-recursion { any; }; # allows queries from any address

    forwarders {
        8.8.8.8;
        8.8.4.4;
        1.1.1.1;
        1.0.0.1;
    };

    dnssec-validation auto;

    listen-on { any; };
    listen-on-v6 { any; };
};
  

در این مثال، سرورهای DNS گوگل (8.8.8.8 و 8.8.4.4) و (Cloudflare (1.1.1.1 & 1.0.0.1 به عنوان فورواردرهای Bind9 تنظیم شده‌ اند. ;{ ;allow-recursion { any به معنای اجازه دادن به هر آدرسی برای پرس و جوهای بازگشتی است. در یک محیط تولید، باید این قسمت را محدودتر کنید تا از سوء استفاده جلوگیری شود. ;{ ;listen-on { any و ;{ ;listen-on-v6 { any به Bind9 اجازه می‌ دهند تا بر روی تمامی آدرس‌ های IPv4 و IPv6 گوش دهد.

فایل named.conf.local: این فایل برای تعریف Zone های DNS مورد استفاده قرار می‌ گیرد. Zone ها مجموعه‌ ای از رکوردهای DNS هستند که مربوط به یک دامنه خاص هستند.

برای ایجاد یک Zone جدید، فایل named.conf.local را با استفاده از یک ویرایشگر متن باز کنید (به عنوان مثال، sudo nano /etc/bind/named.conf.local) و Zone های مورد نظر خود را اضافه کنید.

0-1
 zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};

zone "192.168.1.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.1";
};
  

در این مثال، دو Zone تعریف شده است:

"Zone "example.com برای دامنه‌ ی example.com است. این Zone به عنوان Zone Master تعریف شده است، به این معنی که اطلاعات DNS برای این دامنه در این سرور نگهداری می‌ شود. فایل /etc/bind/db.example.com حاوی رکوردهای DNS برای این دامنه است.

"Zone "192.168.1.in-addr.arpa برای ترجمه آدرس‌ های IP به نام‌ های دامنه (Reverse DNS) برای شبکه 192.168.1.0/24 است.

فایل‌های Zone (مانند db.example.com و db.192.168.1): این فایل‌ ها حاوی رکوردهای DNS برای هر Zone هستند.

برای ایجاد فایل Zone برای دامنه example.com، یک فایل جدید با نام /etc/bind/db.example.com ایجاد کنید (به عنوان مثال، sudo nano /etc/bind/db.example.com) و رکوردهای DNS مورد نظر خود را در آن اضافه کنید.

0-1
 ;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns1.example.com. admin.example.com. (
                              2          ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.
@       IN      A       192.168.1.10
ns1     IN      A       192.168.1.10
www     IN      A       192.168.1.11
mail    IN      A       192.168.1.12
@       IN      MX 10   mail.example.com.
  
Bind9

توضیحات رکوردهای موجود در این فایل:

  • $TTL: زمان اعتبار (Time To Live) پیش فرض برای تمام رکوردهای DNS در این Zone است.
  • SOA: رکورد شروع اقتدار (Start of Authority) که اطلاعات مربوط به سرور DNS اصلی برای این Zone را مشخص می‌ کند.
  • NS: رکورد نام سرور (Name Server) که نام سرور DNS برای این Zone را مشخص می‌ کند.
  • b: رکورد آدرس (Address) که نام دامنه را به آدرس IP ترجمه می‌ کند.
  • MX: رکورد تبادل ایمیل (Mail Exchange) که سرور ایمیل برای این دامنه را مشخص می‌ کند.

به طور مشابه، می‌ توانید فایل Zone برای Reverse DNS (مانند /etc/bind/db.192.168.1) را ایجاد و رکوردهای (PTR (Pointer را در آن اضافه کنید.

4. بررسی و اعمال تغییرات:

پس از پیکربندی فایل‌ های Bind9، باید نحو فایل‌ های پیکربندی را بررسی کنید و تغییرات را اعمال کنید.

برای بررسی نحو فایل‌ های پیکربندی، دستور زیر را اجرا کنید:

0-1
 sudo named-checkconf
  

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

برای اعمال تغییرات، سرویس Bind9 را ری‌ استارت کنید:

0-1
 sudo systemctl restart bind9
  

5. پیکربندی فایروال:

برای اینکه سرور DNS شما بتواند به درخواست‌ های DNS از سایر کامپیوترها پاسخ دهد، باید پورت 53 (UDP و TCP) را در فایروال خود باز کنید.

0-1
 sudo ufw allow 53/udp
sudo ufw allow 53/tcp
sudo ufw reload
  

6. تنظیم DNS Server در تنظیمات دامنه:

پس از پیکربندی سرور DNS، باید تنظیمات DNS Server را در تنظیمات دامنه خود تغییر دهید تا از سرور DNS شما برای ترجمه نام‌ های دامنه به آدرس‌های IP استفاده شود.

برای این کار، وارد پنل مدیریت دامنه خود شوید و تنظیمات DNS Server را به آدرس IP سرور DNS خود تغییر دهید.

7. تست DNS Server:

پس از تنظیم DNS Server در تنظیمات دامنه، باید DNS Server خود را تست کنید تا مطمئن شوید که به درستی کار می‌ کند.

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

0-1
 dig example.com
nslookup example.com
  

این ابزارها اطلاعات مربوط به DNS Record های دامنه example.com را نمایش می‌ دهند. اگر اطلاعات نمایش داده شده صحیح باشد، DNS Server شما به درستی کار می‌ کند.

بهینه سازی و امنیت

8. بهینه سازی و امنیت:

پس از راه‌ اندازی اولیه، بهینه سازی و تامین امنیت DNS server شما ضروری است:

  • به روز رسانی: به طور منظم Bind9 و سایر بسته‌ های نرم‌ افزاری را به روز نگه دارید تا از آخرین وصله‌ های امنیتی بهره مند شوید.
  • مانیتورینگ: مانیتورینگ DNS server خود را با استفاده از ابزارهایی مانند dnstop یا zabbix راه‌اندازی کنید تا از عملکرد صحیح و شناسایی مشکلات احتمالی آگاه شوید.
  • محدود کردن دسترسی: استفاده از ACL ها در فایل named.conf.options برای محدود کردن دسترسی به DNS server شما و جلوگیری از حملات DDoS.
  • DNSSEC: پیاده‌ سازی DNSSEC برای امضای دیجیتال رکوردهای DNS و جلوگیری از جعل اطلاعات DNS.

نتیجه‌گیری:

مدیریت سرویس‌های DNS با استفاده از یک سرور مجازی Ubuntu، به شما کنترل کامل بر روی زیرساخت DNS خود می‌دهد و انعطاف‌ پذیری و قابلیت اطمینان بیشتری را فراهم می‌ کند. با پیروی از مراحل ذکر شده در این مقاله، می‌ توانید DNS server خود را راه‌اندازی، پیکربندی و مدیریت کنید و از دسترسی صحیح و پایدار به وب‌ سایت‌ ها و سایر خدمات آنلاین خود اطمینان حاصل کنید. به یاد داشته باشید که امنیت و بهینه سازی DNS server شما برای عملکرد صحیح و جلوگیری از حملات سایبری بسیار مهم است.

همیشه پیشگام با صفر و یک!

شرکت صفر و یک با ارائه خدمات سرور مجازی و سرور اختصاصی، راه‌ حل‌ های انعطاف‌ پذیری برای کسب‌ و کار شما فراهم می‌ کند. با زیرساخت‌ های قدرتمند و پشتیبانی ۲۴ ساعته، می‌ توانید به راحتی به نیازهای خود پاسخ دهید. سرورهای ما با امنیت بالا و عملکرد بهینه، اطمینان خاطر را برای پروژه‌ های شما به ارمغان می‌ آورند. همین امروز با ما تماس بگیرید و از خدمات ما بهره‌ مند شوید. با صفر و یک، به آینده‌ ای روشن و مطمئن دست پیدا کنید!


داغ‌ترین مطالب روز

بهترین DNSهای گیمینگ 🎮

بهترین DNSهای گیمینگ 🎮

DNS یکی از مهم ترین مواردی است که سبب می شود تا تجربه شما از بازی کردن بهبود یافته و اتصال شما به سرورها پایداری و ثبات پیدا کند. اما پیدا کردن دی ان اس خوب برای بازی ها آنلاین به خصوص بازی هایی نظیر Valorant، Call of Duty و … همواره چالش محسوب شده […]

۱۶ خرداد ۱۴۰۱ ۹

رفع مشکل وصل نشدن اینترنت در ویندوز 7🌐

رفع مشکل وصل نشدن اینترنت در ویندوز 7🌐

اینترنت یکی از مهم ترین عناصر زندگی در عصر امروز است. اما اگر نتوانیم با ویندوز به اینترنت وصل شویم چه؟ مشکل وصل نشدن اینترنت در ویندوز 7 چیست؟ در این مقاله به آموزش رفع مشکل وصل نشدن اینترنت در ویندوز 7 می پردازیم تا با بررسی راه حل های آن بتوانید به صورت اصولی […]

۲۸ اردیبهشت ۱۴۰۱ ۸

سرور ابری

سرور ابری

سرور ابری و یا سرویس ابری از اصطلاحاتی هستند که امروزه به آن زیاد بر می خوریم. اما شاید تا کنون درک درستی در خصوص خدمات مبتنی بر ابر و سرور ابری (سرور رایانش ابری) نداشته باشیم. انتخاب خدمات مرکز داده مناسب ، می تواند تاثیر به سزایی در هزینه های یک کسب و کار […]

۲ تیر ۱۳۹۹ ۵

آموزش دانلود از اینترنت📥

آموزش دانلود از اینترنت📥

دانلود کردن بخش جدایی ناپذیر این روزهای زندگی شده است. هر روز حجم عظیمی از اطلاعات دانلود و آپلود شده و به زندگی مجازی جان می بخشد. اما نحوه دانلود اصولی و حرفه ای از اینترنت به چه صورت است؟ چطور دانلود کنیم که از سالم بودن فایل اطمینان بالایی داشته باشیم؟ در این مقاله […]

۱۱ بهمن ۱۴۰۰ ۴

فیلتر کردن یعنی چه؟🤚

فیلتر کردن یعنی چه؟🤚

فیلتر کردن یکی از پرکاربردترین عبارت های این روزهاست که در گوشه و کنار فضای مجازی از آن زیاد می شنویم. اما فیلتر کردن یعنی چه ؟ فیلتر کردن به معنای بستن سایت به روی کاربران تعیین شده است. به صورتی که این کاربران نتوانند به راحتی به برنامه ها و سایت های مورد نظر […]

۱۱ خرداد ۱۴۰۱ ۴

دیدگاه‌ها

comment symbol

برای این مقاله ۰ دیدگاه نوشته شده است. دیدگاه شما چیست؟

شما نیز، دیدگاه خود را از طریق دکمه زیر به اشتراک بگذارید.

نوشتن دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *