עד כה למדנו להתקין רספברי פיי ולהשתמש בו כדי לפתח עליו דברים ולהשתמש בו כשרת אינטרנט נוח. אבל אפשר לעשות איתו עוד המון. אחד מהדברים הפופולריים שאפשר לעשות איתו זה להשתמש בו כשרת DNS ביתי.
למה צריך להשתמש בשרת DNS ביתי? אני יוצא מנקודת הנחה שאתם מבינים מה זה שרת DNS. אם לא, יש פה הסבר שכתבתי. שרת ה-DNS הוא נקודה מאוד בעייתית בחיבור שלכם ואתם חשופים לכמה בעיות במהלך השימוש בו:
בעיית הצנזורה – המדינה מצנזרת אתרים כל הזמן. בין אם מדובר באתרי הימורים, אתרי סדרות או אתרים אחרים. ואם ההצעולת של מיקי זוהר יתקבלו נראה צנזורה מקיפה יותר שממש עלולה לשבש את האינטרנט שלכם או להאט אותו דרמטית. נכון, אפשר להשתמש בשרת ה-DNS הזר, שלא כפוף לחוק הישראלי, כמו גוגל, קלאודפלייר או קוואד9, אבל שימוש בשרת DNS שונה מזה של הספקית חושף אתכם לבעיות של פרטיות. אפילו קשה.
אבטחת מידע – הרעלה של שרתי DNS הם בעייה מוכרת. תוקף שמצליח בהתקפה מוצלחת על שרת DNS עולמי או פה בארץ יכולים להפיל אתכם.
בעיית הפרטיות – האזנה לתקשורת בין שרת ה-DNS לבינכם חושפת אתכם והמדינה כבר עושה את זה. אם אתם משתמשים ב-DOH – אתם חושפים את עצמכם בפני גוגל, קלאודפלייר או קוואד9.
בעיית השליטה – אם אתם רוצים לחסום או לבצע ניטור של המערכות שלכם ברמת הרשת אתם לא יכולים לעשות את זה. למשל לחסום פרסומות כך שגם אם תגלשו בנייד שלכם, לא תראו את הדר אשוח ממלמל בפעם המיליון על איך נהיים מיליארדרים בגיל 16 או ילדים בוכים בבקשה לתרומות.
אבל אפשר לפתור חלק מהבעיות או את רובן עם Pi hole. שרת DNS חמוד משלכם שיושב על הרספברי פיי, עם ממשק ניהול והכל. מתקינים אותו ואפשר לפתור את בעיית השליטה והצנזורה. פרסומות ומעקבים? לא אצכם.
אם נושא הפרטיות ואבטחת המידע מטרידים אתכם ואתם מוכנים לשלם בכמה מילישניות של ביצועים, אפשר לבנות לידו שרת DNS כך ולאבטח דרמטית את הרשת שלכם ולשמור על פרטיות מקסימלית. מיקי זוהר ושולי מעולם? ימשיכו לצווח על הצנזורה שלהם. השב"כ? יכול לחפש את החברים שלו. בכל הנושא של שאילתות DNS אתם תהיו מוגנים.
אנו נתחיל עם pi hole, שההתקנה שלו היא פשוטה מאוד. נתחבר עם SSH לרספברי פיי ונקליד:
curl -sSL https://install.pi-hole.net | bash
מה זה עושה? מוריד את סקריפט ההתקנה ומריץ אותו. הסקריפט הזה, שכל אחד יכול לראות, הוא ארוך ומוריד את חלקי התוכנה השונים – הממשק הגרפי, שרת הקבצים וכו' וכו'. במהלך ההתקנה אנו נשאלים כמה וכמה שאלות פשוטות. השאלה החשובה ביותר שנשאל היא אם אנו רוצים שהשרת יעבוד דרך eth0 או wlan0 – הראשון הוא כבל הרשת והשני הוא החיבור האלחוטי. ביחרו לפי החיבור שבו הרספברי פיי עובד.
כל שאר ההגדרות ניתנות לשינוי אחר כך. את הסיסמה אין צורך להעתיק, אנו נשנה אותה שוב.
אם יש בעיה בהתקנה, בחרתם משהו לא מתאים, פתאום נחתך האינטרנט – תמיד אפשר להתקין שוב. עם אותה פקודה. אחרי ההצלחה של ההתקנה, אם תפנו את הדפדפן שלכם אל: http://raspberrypi.local תוכלו להגיע אל ממשק הניהול שמציג לכם דשבורד יפה. רוצים גישה להגדרות? צריך לבצע לוגין. אני ממליץ בחום לשנות את הסיסמה לסיסמה משלכם. שימו לב שלא לבחור סיסמה קלה מדי! את הסיסמה משנים עם הרצה של הפקודה הזו ב-SSH:
pihole -a -p
אחרי הלוגין, אפשר להכנס למערכת ולראות נתונים ולשנות הגדרות.
אחרי שיש לנו את שרת ה-DNS, נכניס את כתובת ה-IP שלו כשרת DNS. זה יכול להיות ברמת הרשת דרך הנתב או על כל מכשיר בנפרד, אני ממליץ, לפחות בהתחלה, לשים אותו בנפרד על מכשיר הקצה. זה קל בכל טלפון נייד ומחשב.
מהרגע שמתקינים אותו על נקודת הקצה, הוא יכול לעבוד. והוא עובד. טלפון נייד שישתמש בו לא יראה פרסומות, מחשבים לא ישגרו נתוני טלמטריה מתוכנות. אתם מחוץ לרשת הפרסומית.
מצפייה בלוח הבקרה אפשר לראות את הבקשות שנבלמות על ידי ה-pi hole. וזו כמות עצומה של טלמטריה שנבלמת. חלק ממנה לא מגיע מהדפדפן אלא מכל מיני אפליקציות שיש על המחשב או הנייד. הנה משהו שג'ינרטתי ממחשב עבודה בלבד (!)
מחשב או טלפון נייד שמותקן בו שרת DNS של pi hole יהיה מוגן בחומת הגנה נהדרת. לא עוד הדר אשוח צווח, לא עוד פרסומות בתוך אפליקציות, לא סקריפטים של מעקב. תגלו שיפורים במהירות שנובעים פשוט מכך שסקריפטים לא נטענים. וכן, זה בולם גם אתרים זדוניים וסקריפטים זדוניים.
הקשחה נוספת לפרנואידים
פיי הול מעולה, הוא חוסם ברמת הרשת, מאפשר לכם שליטה ובקרה מלאה על מה שקורה. אבל יש לו בעיה אחת מבחינת פרטיות – הוא חושף אתכם אל מול ה upstream, שרת ה-DNS שמולו אתם מסתנכרנים. על מנת להבין איך לשפר את חומת ההגנה, אנחנו צריכים לצלול יותר עמוק אל הבנת ה-DNS וה-pi hole.
כשנשלחת בקשת תקשורת ל-pi hole רגיל – זה מה שהוא עושה:
- בודק אם יש הכתובת שיש נמצאת ב-cache שלו – אם כן – מחזיר את התוצאה (שזו כתובת IP). אם לא, עוברים לשלב הבא.
- בודק אם הכתובת נמצאת ברשימת החסימה העצומה שלו. אם כן – חוסם. אם לא, עוברים לשלב הבא.
- השלב הבא הוא משלוח הבקשה לשרת ה-DNS שהגדרנו. זה יכול להיות גוגל (8.8.8.8), קלאודפלייר (1.1.1.1), קוואד9 (9.9.9.9) או אחר. שרת ה-DNS הזה מתחיל לבצע את בדיקת ה-DNS לפי הכללים המוגדרים. איך זה עובד? כשאני שואל את שרת ה-DNS איפה זה foo.bar.net, ה-DNS ניגש לשרת האחראי על ה-net ושואל אותו איפה זה bar.net. הוא מפנה אותו לכתובת של שרת. ה-DNS הולך אליו ושואל אותו איפה זה ה foo.bar.net והוא נותן לו תשובה. ה-DNS מכניס ל-cache שלו ומחזיר ל-pi hole את התשובה. pi hole מחזיר למחשב את התשובה ושומר את זה ב-cache שלו. בפעם הבאה לא נצטרך לפנות שוב לשרת ה-DNS.
מה הבעיה? ששרת ה-DNS יודע לאן אנחנו גולשים במקרה הזה. כלומר בפעם הראשונה שאנחנו נכנסים לאתר כלשהו, לפני שה-pi hole שלנו שומר אותו בזכרונו, שרת ה-DNS ידע לאן אנחנו נכנסים וגם לא בטוח שהתוצאה שהוא יתן תהיה אמיתית. אולי מיקי זוהר יוציא צו ויוכיח שנכנסת לאתר פורנו ויאיים לפרסם את זה. אי אפשר לדעת. נכון, חברות הענק כבולות בהסכמים שאסור להן להשתמש במידע הזה. קוואד9 היא חברה ללא מטרת רווח. אבל אי אפשר לדעת.
בנוסף, אם תוקף יצליח לתקוף את שרת ה-DNS שאנו משתמשים בו, הנזק יכול להיות אדיר. כי השרת יחזיר לנו תוצאה לא אמיתית.
הפתרון הפרטי ביותר הוא לבצע את העבודה של שרת ה-DNS בעצמנו לחלוטין. כלומר, במקום לגשת אל שרת DNS כלשהו כמו גוגל (8.8.8.8) או קלאודפלייר (1.1.1.1) או קוואד9 (9.9.9.9) – כדי שהוא יתחיל לבצע את הטיולים או יחזיר לנו את התוצאה מה-cache שלו. אנו נתקין שרת DNS משלנו, וככה לא נהיה תלויים באף אחד. נכון, הביצועים ייפגעו במעט, כי בכל זאת שאילתת DNS לוקחת זמן. אבל השדרוג לפרטיות ולאבטחה יהיו משמעותיים.
אנחנו יכולים להשתמש בכל מערכת DNS, אבל הדוקומנטציה של pi ממליצה על unbound. שרת DNS פשוט. אנו מתקינים אותו על הרספברי פיי, ואז בהגדרות מכוונים את שרת ה-DNS ש-pi hole משתמש בו אל השרת המקומי. לא גוגל, לא קלאודפלייר ולא אף אחד אחר.
הוראות ההתקנה הפשוטות והסברים נוספים מופיעים גם בדוקומנטציה של pi hole, אבל גם פה.
אנחנו נכנס שוב עם SSH לרספברי פיי שלנו ונתקין את bound עם:
sudo apt install unbound
אחרי ההתקנה (4 מגהבייט!) ממליצים לנו ליצור קובץ ההגדרות באמצעות nano כך:
sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf
ולהכניס אליו את ההגדרות המיוחדות ל-pi hole
אחרי שינוי ההגדרות, אנחנו נעשה ריסטרט ל-unbound כדי שהן ייכנסו לפעולה:
sudo service unbound restart
ועכשיו… זה הזמן לבדוק! אנחנו עושים פקודת dig לאתר pie-hole.net באמצעות 127.0.0.1 פורט 5335 שזה בדיוק הכתובת של שרת ה-unbound שלנו! אם הכל תקין, נקבל תוצאה.
dig pi-hole.net @127.0.0.1 -p 5335
עובד? מעולה. זה הזמן להודיע ל-pi hole להפסיק להשתמש בשירותיו של שרת DNS חיצוני ולהשתמש ב-unbound שלנו. נכנס להגדרות של ה-DNS ונכניס את 127.0.0.1#5335 אל ההגדרות באופן הזה:
מהנקודה הזו כל בדיקת DNS נעשית דרך ה-unbound. לא עוד שירותים חיצוניים, לא גוגל, לא קוואד9. לא אף אחד אחר יכול להתערב לכם בתשתית. הקשחתם את התשתית, חיזקתם את הפרטיות.
כמובן שיש הבדל דרמטי בביצועים. כשאני מבצע שאילתה לאתר שאני לא מכיר, ההבדל יכול להיות אפילו שניה. כך למשל, שביצעתי שאילתה לאתר שלא ביקרתי בו מעולם (השגרירות של גוינה בכתובת gn.usembassy.gov). השרת של גוגל נתן לי את התוצאה תוך 110 מילישניות. ברגע שעברתי ל-unbound, קיבלתי את התוצאה תוך 1600 מילישניות. שזה הפרש אדיר. קחו בחשבון. מצד שני, הבקשה השניה היתה הרבה יותר מהירה כיוון שכבר התוצאה נמצאת ב-cache של pi hole וקיבלתי את התוצאה תוך 10 מילישניות. כיוון שרוב התנועה שלנו נעשית לאתרים שאנחנו מכירים, אני לא חושב שהאימפקט יהיה גבוה – אבל, כפי שכתבתי קודם – לשיקולכם. ככה עושים את בדיקת הביצועים.
time dig @8.8.8.8 gn.usembassy.gov | grep "Query time"
עם unbound מקבלים גמישות מאוד גבוהה באיך שפיי הול מתנהג. למשל, אנחנו יכולים (וצריכים) להגדיר שהוא יעבוד באופן מאובטח מול שרתי ה-TLD. או לחלופין, אפשר לדלג על ה-resolving העצמאי ולהנחות אותו לעבוד מול כל שרתי ה-DNS שהזכרתי – תוך כדי שהוא בוחר אחד באופן עצמאי. יש המון ואני אכסה את זה במאמר נפרד.
לסיכום – עם unbound או בלעדיו, עם תוספים שונים או בלעדיהם, מדובר בתוספת מאוד מאוד כדאית לרשת הביתית שלכם, אם אתם מבינים. גם פרויקט מעניין אם יש לכם בנות או בני נוער שמתעניינים ברשתות. מה שכן, הוא מאפשר לכם לראות בדיוק מי עוקב אחריכם (סונוס?!? תתביישו לעצמכם) ומי לא.
22 תגובות
א. מגניב
ב. ממש לא מומלץ להוריד קובץ וישר להפנות אותו ל-bash להרצה עם piping, לך תדע מה ירוץ.
ג. pi עדיין משתמש ב-service? לא עברו ל-systemd?
לגבי ב' – אלו ההוראות בדף בגיטהאב הרשמי של pihole https://github.com/pi-hole/pi-hole/#one-step-automated-install
מומלץ מאוד לבדוק מה מכיל הסקריפט של ההתקנה, לפני שמתקינים אותו באופן עיוור עם
|באש
כן, זה חזרה על ההודעה הראשונה, אבל זה עד כדי כך חשוב.
תודה רבה על המדריך!
מאז שהתקנתי את הכל (גם את השרת DNS הפרטי) האינטרנט במחשב העבודה של אשתי לא עובד.
ראיתי שבהגדרות אצלה הוא מוסיף DNS suffix של העבודה, יכול להיות שזה מה שמשבש את העבודה?
ואם כן- איך אפשר לעקוף את זה?
תודה על המדריכים.
הפי הול לא חוסם לי פרסומות ביוטיוב. בינתיים אני מקבל פרסומות לנטפליקס.
האם הוספת רשימות חסימה לשם כך?
היי ארז,
מסתבר ש YouTube משתמשים בשרתי פרסומות מקומיים לישראל על מנת להאכיל אותנו בפרסומות בעברית המיועדות לקהל הישראלי.
אני מצליח לאתר את השמות שלהם אבל לחסום אחד או שניים ממש לא עוזר.
האם מישהו מכיר רשימה שמכילה את שרתי הפרסומות הישראליים של YouTube ?
בסלולרי אני עם ADGUARD ואחד הפילטרים הוא Easylist
https://github.com/easylist/EasyListHebrew
הי קובי, איך אפשר להוסיף את הרשימה הזו לפיי-הול?
וכיצד ניתן להשתמש בשרת DNS ביתי לשירות דומה כמו SmartDNSPRoxy?
הכל מותקן ועובד מצוין. שאלה: היייתי מצפה ש-90% מהבקשות יחזרו מה-cache אחרי זמן קצר. בפועל אני רואה שבערך 15% מהבקשות חוזרות מ-cache. גם אם נוסיף לזה את ה-Blocked אז זה עוד 15%.
זה לא קצת מוזר?
התקנתי את הpi hole לפני חודשיים ומאז בממוצע הוא חסם כ30% מהשאילתות.
אתמול הוספתי את הunbound ואחוז החסימה עלה ל 50%.
מאוד מומלץ.
כמו כן אין ניתן להוסיף עוד רשימות בליקה כדי שיחסמו גם כל הפרסומות ביוטיוב למשל? פשוט הלינק לרשימה בגיטהאב?
מצטרף לשאלה
יש לעדכן את המדריך – הפקודה אותה יש להריץ היא
curl -sSL https://install.pi-hole.net | sudo bash
כלומר להוסיף sudo ולא כפי שכתוב
למה עכשיו אחרי שאני משתמש בdns הפרטי שלי, אז כשאני נכנס לאתרי בדיקות dns הם רואים שאני מגיע מספק האינטרנט שלי? כשכיוונתי ל8.8.8.8 לדוגמא אז זה זיהה לי את גוגל בתור שרת הdns.
כנראה שאני מגדיר לא נכון את הDNS
בראוטר כשאני מעדכן בשרת DNS את הכתובת של ה PI אין לי אינטרנט בבית
אפשר הסבר קצת יותר מפורט בנושא הזה?
האם כלי העדכון הסטנדרטיים של RPi מעדכנים את הרכיבים השונים של המערכת,
אש מותקנים באמצעות הסקריפט מעלה?
תודה!
תודה רבה! מדריך מהמשובחים ביותר שיש בנושא. למרות שלא התקנתי עדיין אבל למדתי המון חידושים.
אני מחפש מדריך מפורט (וקל להבנה למי שאינם מפתחים) כיצד להגדיר בשרת את ה-DNS שיפנה אל הPiHole.
כשאני מנסה להכניס את כתובת ה-PiHole לתוך שורת ה-DNS בראוטר, אני מקבל הודעה:
DNS server IP address and LAN IP address cannot be in the same subnet
הבעיה שלי היא שבזמן שכל המכשירים כולל הmac עובדים טוב, iPhone-ים לא מצליחים לעבוד דרכו ומדווחיים כאילו אין אינטרנט.
עברתי על כמה מדריכים ולא מצאתי פתרון עובד
תודה על המדריך רן!
הערה חשובה למי שהגדיר את כתובת ה-DNS על הנתב הביתי – נראה שיש צורך לאתחל אותו כדי שהעסק יעבוד ופרסומות באמת יחסמו. בנוסף, ככל שזה אפשרי, כתובת ה-IP של הRP צריכה להיות הכתובת היחידה של שרת DNS.
ראו עוד מידע כאן: https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245
תודה על המדריך המצויין רן בר זיק! אתה אדם זהב!
שתי הערות:
1)אני מניח שלרוב האנשים אין רסברי פאי בבית אבל כן יש להם מגירה מלאה בסמארטפונים ישנים. מצאתי את המדריך הבא להתקנת פי-הול על אנדרואיד והוא פעל לי היטב:
https://github.com/DesktopECHO/Pi-hole-for-Android
2)נראה שהפי-הול לא מצליח לחסום פרסומות ביוטיוב (לא באפליקציה ולא בדפדפן) 🙁
בפורום של פי-הול טוענים שבאמת אי אפשר לחסום פרסומות ביוטיוב:
https://discourse.pi-hole.net/t/how-do-i-block-ads-on-youtube/253
יש פתרון לזה? אני שומע את הדר אשוח צועק עליי בתחילת כל סרטון…
ולכמה זמן ה cache נשמר בשרת ה dns?