הקדמה
עבור המיני פרוייקט הזה אני אשתמש במוצר מ-FriendlyElec מסדרת NanoPi, גרסת R1. אני משער שאפשר לעשות שימוש במוצרים אחרים (לדוגמה Raspberry Pi), את ההחלטה כבר אשאיר לכם, אבל כנראה שתצטרכו לבצע מיני התאמות לפקודות בכדי שיעבדו לכם. אם כן החלטתם להשתמש באותה חומרה, ניתן לרכוש NanoPi R1 מאמזון.
כשלונות
FriendiyElec מספקים 2 גרסאות של מערכות הפעלה, אחת מבוססת Ubuntu ושניה מבוססת OepnWRT. עם שתיהן היו לי בעיות להגיע ליעד שקבעתי, עם OpenWRT שברתי את ההתקנה מספר פעמים מה שמאוד האט את ההתקדמות. בגרסת Ubuntu היו חסרים לי ההאדרים של הקרנל, מה שמנע ממני לבנות את Wireguard. לבסוף החלטתי להשתמש ב-DietPi.
מטרה
יצירת נקודה חמה מאובטחת (WPA2 או WPA3), שמאפשרת גישה לאינטרנט עם חיבור סלולרי (באמצעות מודם), החיבור בנוסף יהיה מוגן בעזרת VPN שיתעל את כל התעבורה דרכו.
ציוד
- NanoPi R1.
- כרטיס מיקרו SD, בנפח של 8 גיגה לפחות.
- LTE Modem (דונגל), עם סים דאטה.
- סוללה 12,000mAh.
אז כמו שציינתי בהקדמה, אני אשתמש ב-NanoPi R1, על המיקרו SD מותקן לי DietPi 7. בדונגל יש לי סים של פלאפון עם 1TB תעבורה שהוגדר מראש (לא נכנס להגדרות של המודם, יתכן והמודם שלכם יהיה מסוגל לקלוט את ההגדרות לבד, אף לפעמים יש צורך להכניס אותם ידנית). ואני אשתמש בסוללה כלשהי של 12,000mAh, מה שחשוב בסוללה שיש לה יציאה שמסוגלת לספק 5V 2A (10W) לפחות (הצריכה תלויה בחומרה שאתם משתמשים בה).
הכנות
“צריבה”
אזהרה! הפקודה תמחק את כל התוכן שקיים ביעד.
למרות ש-FriendyElec מספקים מערכות הפעלה יעודיות, בחרתי להשתמש ב-DietPi, הורדתי את הגרסה שתואמת לחומרה שיש לי, חילצתי את התמונה והעתקתי אותה אל ה-SD בעזרת הפקודה dd
:
dd bs=1M if=<path_to_image> of=<block_device_to_overwrite>
בסיום מומלץ להריץ את הפקודה sync
בכדי לוודא כי הכתיבה הסתיימה ולא נשאר משהו ב-buffer לפני שמחלצים את ההתקן SD.
אתחול ראשוני
הכניסו את הכרטיס SD להתקן, חברו כבל רשת לכניסת WAN של האמצעי וחברו שנאי 5V 2A בכדי להפעילו. תבדקו בנתב שלכם איזה כתובת ההתקן או שתנסו לתחבר ל-dietpi
(אם זה לא עובד, תאלצו לבדוק בנתב איזה כתובת ההתקן קיבל).
ההתחברות הראשונית היא עם השם משתמש root
וססמה dietpi
. בהתחברות זו יקפוץ לכם חלון להגדרות ראשוניות (עדכונים, שינוי ססמה).
יצירת נקודה חמה
אפשר גם לעקוב אחר המדריך
הריצו את הפקודה dietpi-config
, בתפריט בחרו Network Options: Adapters
והפעילו את הממשק רשת.
לאחר שהפעלנו את הממשק רשת נצטרך להתקין את התוכנה שתאפשר ליצור נקודה חמה, אז נריץ dietpi-software
נבחר באופציה browse
ונמצא את החבילה WiFi Hotspot: turn your device into a wifi hotspot
ונתקין אותה.
לאחר בדיקה קצרה (שישנם 2 אמצעי רשת לפחות, ואחד מהם הוא אלחוטי), נצטרך לחזור למסך הראשי ולבחור ב-Install. לאחר ההתקנה נחזור שוב ל-dietpi-config
ול-Network Options: Adapters
ונגדיר את הנקודה החמה שלנו.
ההגדרות ברירת מחדל מייצרים רשת WPA2 שתומכת ב-TKIP/CCMP, אם הינכם מעוניינים לבטל את התמיכה באלגוריתם TKIP, תוכלו לערוך את הקובץ /etc/hostapd/hostapd.conf
ישירות.
אינטרנט סלולרי
בכדי לעבוד עם הדונגל’ שברשותי, אני צריך להתקין את modeswitch
apt update && apt install usb-modeswitch usb-modeswitch-data
עכשיו, כאשר אחבר את הדונגל’, אראה אמצעי eth2
. שכן, אנחנו עדיין מחוברים לרשת המקומית, נצטרך לבצע מספר שינויים בכדי שהאינטרנט יתקבל מהדונגל’. ערכו את הקובץ /etc/network/interfaces
והוסיפו את השורות הבאות מעל להערה # WiFi
# LTE Dongle
allow-hotplug eth2
iface eth2 inet dhcp
החליפו את שם ההתקן eth2
בהתאם למערכת שלכם
לאחר מכן ערכו את הקובץ /etc/iptables.ipv4.nat
ושנו את כל ההופעות של eth0
עם eth2
. וזהו, לאחר אתחול, האינטרנט יגיע מהדונגל’.
Wireguard VPN
אזהרה! לא ניתן לבצע את ההתקנה של Wireguard אוטומטית מעל חיבור Wifi בגלל שהמנהל חבילות מוריד את הרשת האלחוטית בזמן ההתקנה וישנם תפריטים אינטרקטיבים לענות עליהם, אז עשו זאת כאשר האמצעי מחובר לרשת מקומית.
כעת נותר לנו להגדיר את ה-VPN, אם אין לכם שרת VPN, תרגישו חופשי לדלג על שלב זה. חזרו למנהל חבילות dietpi-software
, בחרו ב-Browse Software
ותתקינו את החבילה WireGuard: an extremely simple yet fast and modern VPN
. לא לשכוח שצריך לסמן את החבילה ואז לבחור ב-Install
.
לאחר שהתקנתם את Wireguard, פשוט העתיקו את הקובץ הגדרות של הלקוח שלכם ל-/etc/wireguard/wg0.conf
, לדוגמה
[Interface]
Address = REDUCTED
PrivateKey = REDUCTED
DNS = 8.8.8.8
MTU = 1438
#PostUp = iptables -A FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT ; iptables -A FORWARD -i wlan0 -o wg0 -j ACCEPT ; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
#PostDown = iptables -D FORWARD -i wg0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT ; iptables -D FORWARD -i wlan0 -o wg0 -j ACCEPT ; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
[Peer]
PublicKey = REDUCTED
Endpoint = REDUCTED
AllowedIPs = 0.0.0.0/0, ::/0
תוכלו להשתמש ב-systemctl start wg-quick@wg0.service
בכדי להפעיל את ה-VPN, ואם אתם רוצים שהשירות יעלה אוטומטית, תחליפו את start
בהוראה enable
.
בעיית קישוריות
כאשר הייתי מחובר ל-VPN, האמצעים שהיו מחוברים לרשת האלחוטית לא היו מצליחים להשלים חיבורים. הייתי צריך להקטין את ה-MTU. לדוגמה
ip link set mtu 1400 dev <dev_name>