aosus.org
خادم pi-hole

حجب جميع أنواع الإعلانات بخادم Pi-Hole

ما هو pi-hole

يعتبر Pi-hole خادم DNS/Web مانعا للإعلانات pi-hole ويطلق على نفسه “ثقب أسود لإعلانات الإنترنت”، وهو يعمل عن طريق تشغيل جميع طلبات الخادم التي تخرج بالمقارنة مع القائمة السوداء الداخلية ولتحقيق ذلك، ستحتاج إلى تعيين Pi-Hole كخادم DNS.

وهذا يعني أن Pi-Hole هو المسؤول عن توجيه جميع حركة المرور على الإنترنت داخل وخارج الشبكة المحلية. ونتيجة لذلك، لديه القدرة على كتم انتقائي لبعض الطلبات الصادرة. إذا قام Pi-Hole برصد طلب اتصال يطابق قائمته السوداء.

فإنه يمنع هذا الطلب من الوصول إلى خادم الإعلانات أو الوجهة النهائية له. أكثر من 10،000 من النطاقات على القائمة السوداء، وهذا يعني عدم تحميل أي إعلانات، لذلك يتم حفظ عرض النطاق الترددي وتحسين سرعة الاتصال. كما اننا سنقوم بجعله يحمي من المواقع الاباحية وكما الضارة.

Pi-Hole ليس مجرد مانع للإعلانات، على حد سواء. يمكنه أيضا حماية الشبكة ضد جميع أنواع ناقلات الهجوم على شبكة الإنترنت. ويشمل النظام أيضا بوابة قوية على شبكة الإنترنت لرصد وتدقيق عملية Pi-Hole.

والأفضل من ذلك كله، هو أن كل هذا مجاني ومفتوح المصدر، الجزء الوحيد الذي ليس مفتوح المصدر هو الاسم والشعار، والتي تم تسجيلها كعلامات تجارية.

  • مانع إعلانات على مستوى الشبكة من خلال أجهزة Linux الخاصة بك
  • ®Pi-hole عبارة عن برنامج لنظام أسماء النطاقات يحمي أجهزتك من المحتوى غير المرغوب فيه، دون تثبيت أي برنامج من جانب العميل
  • سهل التثبيت: يرشدك المثبت متعدد الاستخدامات خلال العملية ويستغرق أقل من عشر دقائق
  • حازم: يتم حظر المحتوى في مواقع لا توجد بها مستعرضات، مثل تطبيقات الهاتف المحمول المحملة بالإعلانات وأجهزة التلفزيون الذكية
  • متجاوب: يعمل على تسريع التصفح اليومي عن طريق تخزين استعلامات DNS مؤقتًا (caching DNS queries)
  • يعمل بسلاسة مع الحد الأدنى من متطلبات الأجهزة والبرامج
  • متين: واجهة سطر أوامر مضمونة الجودة لإمكانية التشغيل البيني
  • سلس: لوحة معلومات جميلة وواجهة ويب سريعة الاستجابة لعرض Pi-hole والتحكم فيه
  • متعدد الاستخدامات: يمكن أن يعمل اختياريًا كخادم DHCP، مما يضمن حماية جميع أجهزتك تلقائيًا
  • قوي: قادرة على التعامل مع مئات الملايين من الاستعلامات عند تثبيتها على أجهزة من فئة الخادم
  • حديث: يحظر الإعلانات عبر كل من IPv4 وIPv6
  • مجاني: برنامج مفتوح المصدر يساعد على ضمان أنك الشخص الوحيد الذي يتحكم في خصوصيتك
pi-hole

يستخدم التقنيات التالية:

  • خادم DNS و DHCP خفيف الوزن – dnsmasq
  • أداة سطر أوامر لنقل البيانات عبر رابط – curl
  • خادم الويب مصمم ومُحسَّن لتحقيق أداء عالٍ – lighttpd
  • لغة برمجة نصية على الويب متعددة الاستعمال – php
  • لوحة تحكم إدارية متميزة تعتمد على AdminLTE Dashboard -Bootstrap 3.x –
  • محرك قاعدة بيانات SQL – sqlite3

متطلبات التشغيل

  • Pi-hole خفيف الوزن جدًا ولا يتطلب طاقة معالجة كبيرة (CPU).
  • أدنى مستوى مساحة خالية تقدر ب 2 جيجا بايت، يوصى بـ 4 جيجا بايت مساحة التخزين (HDD/SSD).
  • 512 ميجا رام (RAM)
  • يتم دعم Pi-hole في التوزيعات باستخدام systemd أو sysvinit!

أنظمة التشغيل المدعومة رسميًا:

التوزيعةالاصدارمعمارية
Ubuntu16.xx 18.xx 20.xx 21.xx 22.xxARM / x86_64
DebianStretch / Buster / BullseyeARM / x86_64
Fedora33/ 34 / 35 / 36ARM / x86_64
CentOS7 / 8ARM / x86_64

الخدمات:

الخدماتالمنفذبروتوكولملاحظة
pihole-FTL53 (DNS)TCP/UDPإذا كان لديك خادم DNS آخر قيد التشغيل، مثل BIND، فستحتاج إلى إيقاف تشغيله حتى يتمكن Pi-hole من الرد على استفسارات DNS.
pihole-FTL67 (DHCP)IPv4 UDPخادم DHCP هو ميزة اختيارية تتطلب منافذ إضافية
pihole-FTL547 (DHCPv6)IPv6 UDPخادم DHCP هو ميزة اختيارية تتطلب منافذ إضافية
lighttpd80 (HTTP)TCPإذا كان لديك خادم ويب آخر قيد التشغيل بالفعل، مثل Apache ، فلن يعمل خادم الويب الخاص بـ Pi-hole. يمكنك إما تعطيل خادم الويب الآخر أو تغيير المنفذ الذي يستمع lighttpd عليه، مما يسمح لك بالحفاظ على خادمي الويب قيد التشغيل.
pihole-FTL4711TCPFTL هو محرك API الخاص بنا ويستخدم المنفذ 4711 على واجهة المضيف المحلي. يجب ألا يكون هذا المنفذ قابلاً للوصول من أي واجهة أخرى.

التثبيت:

سأستعرض التتبيت بعدة طرق واختر ما يناسبك.

يلزمك مستخدم الجذر root أو صلاحية sudo

  • التثبيت الآلي بخطوة واحدة
curl -sSL https://install.pi-hole.net | bash
  • البديل 1: استنساخ المستودع وتشغيله
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd "Pi-hole/automated install/"
sudo bash basic-install.sh
  • البديل 2: تنزيل برنامج التثبيت وتشغيله يدويًا
wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh
  • البديل 3: استخدم #docker لنشر Pi-hole¶
[GitHub – pi-hole/docker-pi-hole: Pi-hole in a docker container](https://مستودع docker-pihole)
version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    #بالنسبة لـ DHCP ، يوصى بإزالة هذه المنافذ وإضافتها 
network_mode: "host"
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      #مطلوب فقط إذا كنت تستخدم Pi-hole كخادم DHCP الخاص بك
      - "80:80/tcp"
    environment:
      TZ: 'Africa/Casablanca'
     #WEBPASSWORD: "ضع كلمة مرور آمنة هنا وإلا ستكون عشوائية"
    volumes: 
    #تخزن الأحجام بياناتك بين ترقيات الحاوية
      - './etc-pihole:/etc/pihole'
      - './etc-dnsmasq.d:/etc/dnsmasq.d'    
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN #موصى به ولكنه غير مطلوب (يحتاج DHCP إلى NET_ADMIN) 
    restart: unless-stopped
  • البديل 4: استخدم #docker لنشر Pi-hole عبر شيلسكريبت
    قم بنسخ السكريبت وأعطه صلاحية التنفيذ وشغله للتثبيت
#!/bin/bash

# https://github.com/pi-hole/docker-pi-hole/blob/master/README.md

PIHOLE_BASE="${PIHOLE_BASE:-$(pwd)}"
[[ -d "$PIHOLE_BASE" ]] || mkdir -p "$PIHOLE_BASE" || { echo "Couldn't create storage directory: $PIHOLE_BASE"; exit 1; }

# Note: ServerIP should be replaced with your external ip.
docker run -d \
    --name pihole \
    -p 53:53/tcp -p 53:53/udp \
    -p 80:80 \
    -e TZ="Africa/Casablanca" \
    -e WEBPASSWORD:"password" \
    -v "${PIHOLE_BASE}/etc-pihole/:/etc/pihole/" \
    -v "${PIHOLE_BASE}/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
    --dns=127.0.0.1 --dns=1.1.1.1 \
    --restart=unless-stopped \
    --hostname pi.hole \
    -e VIRTUAL_HOST="pi.hole" \
    -e PROXY_LOCATION="pi.hole" \
    -e ServerIP="127.0.0.1" \
    pihole/pihole:latest

printf 'Starting up pihole container '
for i in $(seq 1 20); do
    if [ "$(docker inspect -f "{{.State.Health.Status}}" pihole)" == "healthy" ] ; then
        printf ' OK'
        echo -e "\n$(docker logs pihole 2> /dev/null | grep 'password:') for your pi-hole: https://${IP}/admin/"
        exit 0
    else
        sleep 3
        printf '.'
    fi

    if [ $i -eq 20 ] ; then
        echo -e "\nTimed out waiting for Pi-hole start, consult your container logs for more info (\`docker logs pihole\`)"
        exit 1
    fi
done;

هذا الموضوع فائز بجائزة أسس للكتابة

هذا الموضوع أحد المواضيع الفائزة بجائزة أسس للكتابة، الجائزة الأولى في العالم العربي للتحفيز الكتابة عن البرمجيات الحرة.
تفاصيل أكثر عن الجائزة

المواضيع الفائزة لشهر أغسطس 2022

Abdelilah Hmidani
Website |  + مقالات

‏‏‏‏متخصص في الصيانة والدعم و ادارة السيرفرات والشبكات وحمايتها

 

Aosus