Hootan Alghaspour
Hootan Alghaspour
خواندن ۳ دقیقه·۵ سال پیش

راه اندازی DNS Server و DHCP Server و فیلترینگ مبتنی بر دامنه با Pi-hole

ابتدا می خواستم چند خط درباره سناریوهای کاربرد این ابزار بنویسم. بعد حساب کردم کسی که می خواهد DNS و DHCP و فیلترینگ مبتنی بر دامنه راه بیندازد حتماً خودش آگاه است چه چیزی می خواهد و چه و کجا باید استفاده شود.

پس سریع و مستقیم سر اصل مطلب برویم. Pi-hole برای شما کارهای زیر را می کند و مزایای ذیل را دارد :

  • بسیار ساده نصب و استفاده می شود
  • رابط کاربری تحت وب (Web GUI) و تحت خط فرمان (CLI) خوب و کاملی دارد.
  • به شما DNS Server و DHCP Server خوب و نسبتاً کاملی می دهد.
  • قابلیت فیلترکردن ترافیک را به روش DNS sinkhole فراهم می کند.
  • خودش از مراجع معروف و معتبر لیست دامنه های تبلیغاتی یا آلوده را بروزرسانی می کند.
  • می توان دامنه های تبلیغاتی یا آلوده را دستی و دسته ای به آن اضافه کرد.
  • سبک و سریع و ساده است.
  • قابلیت کارکرد روی IPv4 و IPv6 را دارد.
  • رایگان و سورس باز است.
  • امکان استفاده از آن روی معماری arm هم هست و مثلاً بخوبی روی raspberry pi کار می کند.
  • امکانات گزارش گیری دارد.

روی سیستم های ذیل می توانید Pi-hole را با در اختیار داشتن حداقل حدود 52مگابایت فضا و 512مگابایت RAM نصب کنید:

برای روش One-Step Automated Install آن تنها نیاز دارید روی یک لینوکس که آماده کرده اید این دستور را اجرا نمایید:

#curl -sSL https://install.pi-hole.net | bash

سپس تعدادی سئوال و مرحله ساده را باید تایید کنید. اینکه چه مراجعی برای پرس و جوی DNS استفاده کند، کدام منابع ارائه دامنه های blacklist فعال باشند یا روی IPv4 و IPv6 فعال باشد یا برای رابط تحت وب خود lighttpd را نصب کند یا نه و ...

مراحل ساده ای هستند که بعداً نیز قابل تنظیم و تغییر است و برای تخلیص متن و با توجه به اینکه مخاطب خودش فنی است و اطلاع دارد نیازی به ذکر آن ها نیست. تنها دقت کنید در پایان یک پسورد برای ورود به شما می دهد که آن را نیز بعداً می توانید تغییر دهید.

* دقت بفرمایید نسخه docker container هم دارد.

پس از نصب باید آدرس DNS Server کلاینت ها را به آدرس IP سیستمی که Pi-hole روی آن نصب شده تنظیم کنیم. خودش DHCP Server هم دارد و می توان تخصیص آدرس DNS به کلاینت ها را در DHCP Server خودش یا DHCP Server جاری در شبکه تعیین کرد.

به رابط مدیریتی تحت وب آن می توان به یکی از روش های ذیل متصل شد :

  • http://<IP_ADDPRESS_OF_YOUR_PI_HOLE>/admin/
  • http://pi.hole/admin/ (when using Pi-hole as your DNS server)
  • http://pi.hole/ (when using Pi-hole as your DNS server)

خود Pi-hole روی قابلیت Network-wide ad blocking از همان روش DNS sinkhole تاکید دارد. همانطور که احتمالاً مطلع هستید امروزه دیگر اکثر سایت ها و آگهی دهندگان برای دریافت و درج تبلیغات از آژانس ها تبلیغات اینترنتی استفاده می کنند و تبلیغات روی سایت از یک یا تعدادی دامنه این آژانس ها بصورت دینامیک بارگذاری می شود. بنابراین با بستن این دامنه ها دیگر تبلیغات در وب سایت های بازدید شده بارگذاری نمی شوند و در نتیجه معمولاً پهنای باند کمتری مصرف می شود، صفحه سریعتر باز می شود و مزاحمت های تبلیغاتی ندارد.

از این قابلیت می توان برای فیلتر کردن دامنه های آلوده و Malware Domains و بستن DDNSهای شناخته شده و مشهور نیز استفاده کرد. لیست این دامنه ها را می توانید مثلاً از آدرس های ذیل دریافت کنید :

خود Pi-hole هم البته بصورت پیش فرض از سرویس های ذیل برای بروزرسانی دامنه های blacklist استفاده می کند:

برای بروزرسانی لیست دامنه هایی که باید بسته شوند از update gravity استفاده بفرمایید.

این قابلیت بروزرسانی و فیلتر دامنه های آلوده یا ... می تواند نقش مهمی در سناریو امنیت شما بازی کند. البته همانطور که مستحضر هستید برای استفاده های جدی، حساس و گسترده سازمانی معمولاً UTM ها خودشان چنین قابلیتی را بصورت کامل تر دارند.

فایل ها و لیست های Pi-hole را نیز می توانید در /etc/pihole ببینید و تغییر دهید.

مشاهده تعداد دامنه ها در لیست ها با wc -l
مشاهده تعداد دامنه ها در لیست ها با wc -l

با کمی کار و جستجو خیلی سریع با روش ها و ابزارهای Pi-hole آشنا می شوید و دیگر نیازی به توضیحات بیشتر برای یک مطلب بلاگی نیست.

وب سایت : https://pi-hole.net

گیت هاب : https://github.com/pi-hole/pi-hole

مستندات : https://docs.pi-hole.net

raspberry piلینوکسdnsDHCPDNS sinkhole
هوتن القاس پور
شاید از این پست‌ها خوشتان بیاید