התקנה ושימוש ב-pi hole כשרת DNS

אם נמאס לכם מפרסומות ביוטיוב בנייד ואתם רוצים לשדרג את אבטחת המידע שלכם משמעותית - לכו על הפתרון של pi hole.

עד כה למדנו להתקין רספברי פיי ולהשתמש בו כדי לפתח עליו דברים ולהשתמש בו כשרת אינטרנט נוח. אבל אפשר לעשות איתו עוד המון. אחד מהדברים הפופולריים שאפשר לעשות איתו זה להשתמש בו כשרת 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 רגיל – זה מה שהוא עושה:

  1. בודק אם יש הכתובת שיש נמצאת ב-cache שלו – אם כן – מחזיר את התוצאה (שזו כתובת IP). אם לא, עוברים לשלב הבא.
  2. בודק אם הכתובת נמצאת ברשימת החסימה העצומה שלו. אם כן – חוסם. אם לא, עוברים לשלב הבא.
  3. השלב הבא הוא משלוח הבקשה לשרת ה-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
תוצאת בקשת dig דרך שרת DNS מקומי מוצלחת

עובד? מעולה. זה הזמן להודיע ל-pi hole להפסיק להשתמש בשירותיו של שרת DNS חיצוני ולהשתמש ב-unbound שלנו. נכנס להגדרות של ה-DNS ונכניס את 127.0.0.1#5335 אל ההגדרות באופן הזה:

הגדרות DNS ב-pi hole

מהנקודה הזו כל בדיקת 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 או בלעדיו, עם תוספים שונים או בלעדיהם, מדובר בתוספת מאוד מאוד כדאית לרשת הביתית שלכם, אם אתם מבינים. גם פרויקט מעניין אם יש לכם בנות או בני נוער שמתעניינים ברשתות. מה שכן, הוא מאפשר לכם לראות בדיוק מי עוקב אחריכם (סונוס?!? תתביישו לעצמכם) ומי לא.

פוסטים נוספים שכדאי לקרוא

רספברי פיי

הרצת גו על רספברי פיי

עולם הרספברי פיי והמייקרים ניתן לתפעול בכל שפה – לא רק פייתון או C – כאן אני מסביר על גו

גלילה לראש העמוד