יצירת Access point עם רספברי פיי

רספברי פיי כנקודה אלחוטית שמאפשרת wifi עם אינטרנט ובסיס נהדר לכל מיני תעלולים נוספים

כיוון שלרספברי פיי יש גם חיבור רשת וגם חיבור wi fi (לפחות מגרסה 3 ומעלה), הוא מעולה ליצירת access point. מה זה? זה בעצם מכשיר שמקבל אינטרנט דרך כבל רשת ומשדר אינטרנט החוצה באמצעות wifi. ממש כמו נתב. למה זה שימושי? זה שימושי אם יש לנו ממ"ד מרוחק שאליו מגיע רק כבל ואנו רוצים שתהיה שם גם רשת טובה, או – יותר נכון – אם אנו רוצים להעמיס כל מיני שירותים מעניינים על הרשת. כמו למשל VPN או TOR או man in the middle שעליו כתבתי.

כתבתי על רספברי פיי לא מעט, כולל הסבר מקיף עליו. אני יודע שזה נשמע מרתיע ובמיוחד לאנשים שכמוני, אולי מבינים בתוכנה, אבל בחומרה הידע שלהם דל עם בכלל. בקישור הזה יש ממש את כל המאמרים שמומלץ לקרוא, אבל אביא גם פה הסברים וסרטונים.

הכנת הרספברי פיי

אנו לוקחים רספברי פיי, מרכיבים ומחברים אותו. לאלו שלא מורגלים בזה זה נשמע ממש מלחיץ. אבל אם אני הצלחתי לעשות את זה בשלוש דקות עם הידיים השמאליות שלי, גם אתם תצליחו.

אנו מחברים אותו לכבל רשת. כבל הרשת נדרש פה למרות שלרספברי פיי 3 ומעלה יש כרטיס רשת מובנה כי אנו בונים רשת אלחוטית וכרטיס הרשת אמור להפעיל את הרשת. ניקח כרטיס זכרון, נצרוב עליו מערכת הפעלה של רספברי פיי ונאפשר אותה מראש ל-SSH.

נוציא את כרטיס הזכרון ונכניס אותו לרספברי פיי. נחבר את הכל לחשמל ונתחיל.

אנו נתחבר עם SSH לרספברי פיי.

נקליד sudo raspi-config נבחר ב-System options, אחרי כן ב-Wireless LAN ונכניס את פרטי הרשת האלחוטית. אפשר להתחיל לעבוד.

התקנת תוכנות העזר

לפני הכל נבצע שדרוג ועדכון של מאגר התוכנות:

sudo apt-get update
sudo apt-get upgrade

אנו מתקינים את התוכנות האלו שיצרו את הרשת האלחוטית שלנו:

sudo apt-get install hostapd dnsmasq -y

תוכנה שימושית (שגיליתי לא מזמן) שנתקין היא netfilter-persistent והתוסף שלה – iptables-persistent.

sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent

כרגע נעצור את dnsmasq ואת hostapd כי אנו משנים את ההגדרות שלהם ולא נרצה שההגדרות של ברירת המחדל יפריעו:

sudo systemctl stop dnsmasq
sudo systemctl unmask hostapd
sudo systemctl enable hostapd

הגדרת הרשת הפנימית

אנו צריכים לבצע הגדרה של כתובות ה-IP של הרשת האלחוטית שלנו. כאשר מכשירים מתחברים לרשת האלחוטית, הם מקבלים כתובת IP פנימית. למשל 192.168.4.45 או 192.168.4.123 וזו הכתובת שמשמשת אותם בתוך הרשת הפנימית. לנתב שלנו אמורה להיות כתובת סטטית וזה נקבע ב-DHCP. אנו נכנס להגדרות שלו עם עורך הטקסט nano:

sudo nano /etc/dhcpcd.conf

ונכניס בתחתיתו את הטקסט הבא שקובע שהכתובת הסטטית שלנו תהיה 192.168.4.1.

interface wlan0
    static ip_address=192.168.4.1/24
    nohook wpa_supplicant

נאתחל את השירות כך:

sudo systemctl restart dhcpcd

החיבור בין ה-wifi לכבל הרשת

השלב הבא הוא לבצע את החיבור בין ה-wireless לחיבור הקווי. אנו ניצור את קובץ ההגדרות:

sudo nano /etc/sysctl.d/routed-ap.conf

ונכניס אליו את ההגדרה הזו שאומרת שמבחינת אבטחה אנו מבצעים העברת תנועה.

# Enable IPv4 routing
net.ipv4.ip_forward=1

השלב הבא הוא הגדרת הפיירוול הפנימי של הרספברי פיי, שקוראים לו iptables (הוא הפיירוול שנמצא גם במערכות לינוקס אחרות). אנו מוסיפים לו חוק שמבצע העברת תנועה מהאינטרנט הקווי אל ה-wifi כאשר אנו מחליפים את כתובת ה-IP של התנועה הנכנסת. מה זה אומר? זה אומר שתנועה שנכנסת מרשת ה-wifi תצא עם הכתובת של האינטרנט הקווי. כל זה נעשה באמצעות שורה אחת בלבד:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

שינוי ההגדרות טוב עד לריסטרט הבא. כדי לקבע את ההגדרות, אנו נשתמש ב-netfilter-persisten כך:

sudo netfilter-persistent save

יצירת הרשת האלחוטית

עכשיו, אחרי שסיימנו עם הנטוורקטינג, אנו נגדיר את הרשת שלנו באמצעות dnsmasq. אנו ניצור ונכנס לקובץ ההגדרות כך:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

ונכניס אליו את הטקסט הזה:

interface=wlan0 # Listening interface
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
                # Pool of IP addresses served via DHCP
domain=wlan     # Local wireless DNS domain
address=/gw.wlan/192.168.4.1
                # Alias for this router

זה אומר שהרשת הפנימית תעבוד עם 192.168.4.2 וצפונה. בנוסף, הכינוי הפנימי ברשת של הרספברי פיי (אם נרצה לעשות אליו SSH מהרשת הפנימית) יהיה gw.wlan.

עכשיו ניצור את רשת ה-wifi. מסיבות שלא אכנס אליהן כאן, מומלץ להקליד את הפקודה הבאה:

sudo rfkill unblock wlan

ניצור את קובץ ההגדרות:

sudo nano /etc/hostapd/hostapd.conf

ונכניס אליו את ההגדרות. שימו לב לסיסמה ול-ssid! זה שם הרשת.

country_code=IL
interface=wlan0
ssid=PiAccessPoint
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Password!_Safe!
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ו… זהו! נעשה ריסטארט.

sudo systemctl reboot

קחו את הטלפון ונסו להתחבר. עובד? מעולה!

לא עובד? השאלה מה לא עובד:

אין רשת – אם אין רשת בכלל, ודאו ששלב יצירת הרשת האלחוטית עבר כהלכה. עיברו עליו שוב במידת הצורך.

יש רשת אבל מכשיר שמנסה להתקבל נכשל בשלב קבלת ה-IP? לא עשיתם כהלכה את שלב ה-dnsmasq.

אין אינטרנט? חיזרו שוב על החלק של חיבור ה-wifi לכבל הרשת.

עכשיו אפשר להמשיך הלאה. ולמשל לחבר את ה-access point ל-Tor.

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

פתרונות ומאמרים על פיתוח אינטרנט

רינדור של קליינט סייד עם SSR

הסבר קצר על SSR מול רינדור קלאסי ולא. לא תמיד זה טוב להשתמש בו. אין כדור כסף שיכול לפתור הכל.

פייתון

קבצי קונפיגורציה בפואטרי

הגדרות שמשנות את ההתנהגות של פואטרי באמצעות קבצי הגדרות גלובליים, לוקליים ואפילו משתני סביבה.

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