สารบัญ:

Raspberry Pi Enterprise Network WiFi Bridge: 9 ขั้นตอน
Raspberry Pi Enterprise Network WiFi Bridge: 9 ขั้นตอน

วีดีโอ: Raspberry Pi Enterprise Network WiFi Bridge: 9 ขั้นตอน

วีดีโอ: Raspberry Pi Enterprise Network WiFi Bridge: 9 ขั้นตอน
วีดีโอ: my SUPER secure Raspberry Pi Router (wifi VPN travel router) 2024, ธันวาคม
Anonim
Raspberry Pi Enterprise Network WiFi Bridge
Raspberry Pi Enterprise Network WiFi Bridge

โดย: Riley Barrett และ Dylan Halland

เป้าหมายของโครงการนี้คืออนุญาตให้อุปกรณ์ IoT เช่น Weemo Smart Plug, Amazon Echo, Gaming Console หรืออุปกรณ์ที่เปิดใช้งาน Wi-Fi อื่นๆ เชื่อมต่อกับเครือข่ายองค์กร WPA_EAP โดยใช้ Raspberry Pi Zero W เป็นแพ็กเก็ต อุปกรณ์ส่งต่อ จำเป็นต้องมีขั้นตอนการกำหนดค่าเพิ่มเติมสำหรับอุปกรณ์ที่เชื่อมต่อกับเครือข่ายขององค์กร และอุปกรณ์จำนวนมากเข้ากันไม่ได้เลย การใช้ Wi-Fi Bridge ทำให้อุปกรณ์ใดๆ สามารถเข้าถึงอินเทอร์เน็ตได้อย่างง่ายดายโดยเชื่อมต่อกับ Pi

ระบบสามารถใช้งานได้กับการ์ดไร้สายหนึ่งใบหรือการ์ดแยกสองใบขึ้นอยู่กับความต้องการของผู้ใช้ สำหรับระบบที่ต้องการความแรงของสัญญาณที่สูงขึ้นและความเร็วในการอัพโหลด/ดาวน์โหลดที่เร็วขึ้น ควรใช้การ์ดไร้สายเฉพาะเพื่อโฮสต์จุดเชื่อมต่อ อย่างไรก็ตาม สำหรับระบบที่ความแรงของสัญญาณและแบนด์วิดท์มีความสำคัญน้อยกว่า หรือต้องการโซลูชันที่คุ้มค่ากว่า การ์ดเดียวสามารถใช้ร่วมกันโดยจุดเชื่อมต่อและการเชื่อมต่อเครือข่าย

เสบียง

Raspberry Pi Zero W

เข้าถึงแป้นพิมพ์และจอภาพ

ความรู้เกี่ยวกับการเขียนโปรแกรม (เพื่อจุดประสงค์ในการดีบัก การตั้งค่า Raspberry Pi)

อแด็ปเตอร์/ดองเกิล WiFi ภายนอก (อุปกรณ์เสริม)

ขั้นตอนที่ 1: การตั้งค่า Raspberry Pi

การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi

เริ่มต้นด้วยการเชื่อมต่อ Pi ของคุณกับแป้นพิมพ์และจอภาพ (อาจต้องใช้อะแดปเตอร์ HDMI)

จากนั้น คุณสามารถเริ่มต้นด้วยการพิมพ์คำสั่ง:

ซูโด ซู

เพื่อให้แน่ใจว่าคุณมีสิทธิ์ที่จำเป็นในการแก้ไขไฟล์บน pi

ตอนนี้คุณจะต้องการติดตั้ง dnsmasq และ hostapd โดยใช้คำสั่ง:

apt-get ติดตั้ง dnsmasq hostapd

ตอนนี้คุณสามารถเริ่มตั้งค่าบริดจ์ WiFi ได้แล้ว

หมายเหตุ - บทช่วยสอนต่อไปนี้จะมีข้อมูลสำหรับผู้ที่ใช้การ์ดไร้สายออนบอร์ดเดียวสำหรับทั้งจุดเชื่อมต่อและสำหรับการเชื่อมต่อกับเครือข่าย นอกจากนี้ยังสามารถกำหนดค่าระบบให้ทำงานบนการ์ดสองใบแยกกันได้ ในการดำเนินการนี้ ให้มองหาบรรทัด "wlan1" ที่ใส่ความคิดเห็นไว้ในไฟล์ที่ให้มา และแทนที่ด้วยบรรทัด "ap0" ที่อยู่ใกล้เคียง

ขั้นตอนที่ 2: 70-persistent-net.rules

เริ่มต้นด้วยการค้นหาที่อยู่ MAC ของ pi ของคุณโดยพิมพ์:

iw dev

สร้างไฟล์ต่อไปนี้:

nano /etc/udev/rules.d/70-persistent-net.rules

และแก้ไขให้มีดังต่อไปนี้

SUBSYSTEM=="ieee80211", ACTION=="add|change", ATTR{macaddress}=="b8:27:eb:c0:38:40", KERNEL=="phy0", / RUN+="/sbin/ อินเทอร์เฟซ iw phy phy0 เพิ่ม ap0 ประเภท _ap", / RUN+="/bin/ip link set ap0 address b8:27:eb:c0:38:40"

ไฟล์นี้บอกให้ระบบจัดสรรอุปกรณ์สำหรับจุดเชื่อมต่อเมื่อบู๊ต ที่นี่ควรแทนที่ที่อยู่ MAC ด้วยที่อยู่ของ pi ของคุณเองซึ่งคุณเพิ่งพบ

(การ์ดไร้สายสองใบ) ไฟล์นี้ไม่จำเป็นต้องใช้เมื่อใช้การ์ดไร้สายสองใบ

ขั้นตอนที่ 3: Hostapd.conf

ถัดไป คุณจะแก้ไขไฟล์ hostapd.conf โดยป้อนข้อมูลต่อไปนี้:

นาโน /etc/hostapd/hostapd.conf

แก้ไขไฟล์เพื่อให้ตรงกับการกำหนดค่าต่อไปนี้:

ctrl_interface=/var/run/hostapd

ctrl_interface_group=0 #interface=ap0 อินเตอร์เฟส=wlan1 ไดรเวอร์=nl80211 ssid=testnet hw_mode=g ช่อง=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 wpa=2 wpa_passphrase=0123456789 wpa_key_CCmgmt=WPA=PSKMPrs

โปรดทราบว่าในขณะที่ตั้งค่าช่องของฉันเป็น 6 คุณอาจต้องเปลี่ยนค่านี้เพื่อให้ตรงกับช่องที่ wlan0 เปิดอยู่ ในบางเครือข่าย ช่องจะมีการเปลี่ยนแปลงโดยอัตโนมัติสำหรับจุดเชื่อมต่อเพื่อให้ตรงกับ wlan0 แต่นี่ไม่ใช่ประสบการณ์ของฉันในเครือข่ายองค์กร คุณสามารถตรวจสอบได้ว่าช่องใดใช้งานอยู่และอินเทอร์เฟซใดโดยพิมพ์

ช่อง iwlist

(การ์ดไร้สายสองใบ) เพียงยกเลิกการใส่เครื่องหมายในบรรทัดที่มี wlan1 และแสดงความคิดเห็นในบรรทัดที่มี ap0

ขั้นตอนที่ 4: Dnsmasq.conf

ตอนนี้คุณจะแก้ไขไฟล์ dnsmasq.conf:

นาโน /etc/dnsmasq.conf

Uncomment หรือเพิ่มบรรทัดต่อไปนี้:

interface=lo, ap0

#interface=lo, wlan1 no-dhcp-interface=lo เซิร์ฟเวอร์ bind-interfaces=8.8.8.8 โดเมนที่ต้องการ bogus-priv dhcp-range=192.168.2.100, 192.168.2.200, 12h

คุณสามารถใช้ซับเน็ตของคุณเองได้หากต้องการ เพียงแน่ใจว่าคุณมีความสอดคล้อง

(WirelessCcard สองอัน) ยกเลิกการใส่เครื่องหมายบรรทัดที่มี wlan1 และใส่ความคิดเห็นในบรรทัดที่มี ap0

ขั้นตอนที่ 5: อินเทอร์เฟซ

ถัดไป คุณจะต้องแก้ไขไฟล์อินเตอร์เฟส:

nano /etc/network/interfaces

รถยนต์

auto ap0 #auto wlan1 อัตโนมัติ wlan0 iface lo inet loopback iface eth0 inet dhcp allow-hotplug ap0 #allow-hotplug wlan1 iface ap0 inet คงที่ #iface wlan1 inet ที่อยู่คงที่ 192.168.2.1 netmask 255.255.255.0 hostapd /etc/hostapd/hostapd. allow-hotplug wlan0 iface wlan0 inet dhcp ล่วงหน้า wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf post-down killall -q wpa_supplicant

เป็นที่น่าสังเกตว่าอินเทอร์เฟซ wlan0 ต้องมาหลังอินเทอร์เฟซที่คุณส่งต่อ มิฉะนั้นระบบจะไม่ทำงานอย่างถูกต้อง

(การ์ดไร้สายสองใบ) ยกเลิกหมายเหตุบรรทัดใด ๆ ที่มี wlan1 และแสดงความคิดเห็นว่ามี ap0

ขั้นตอนที่ 6: Wpa_supplicant.conf

ตอนนี้ คุณจะแก้ไขไฟล์ wpa_supplicant.conf ได้ที่:

nano /etc/wpa_supplicant/wpa_supplicant.conf

บางเครือข่ายมีการกำหนดค่าแตกต่างจากเครือข่ายอื่น ดังนั้นส่วนนี้อาจต้องมีการแก้ไข นี่คือไฟล์ wpa_supplicant.conf ที่อนุญาตให้ฉันเชื่อมต่อกับเครือข่ายที่ Cal Poly:

country=USctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="SecureMustangWireless" scan_ssid=1 key_mgmt=WPA-EAP pairwise=CCMP TKIP group=CCMP TKIP eap=PEAP identity="ชื่อผู้ใช้@ calpoly.edu" password="your_password" phase1="peapver=0" phase2="MSCHAPV2" }

ไฟล์นี้ใช้เพื่อกำหนดค่า wlan0 เพื่อเชื่อมต่อกับเครือข่ายองค์กรของคุณ เครือข่ายองค์กรบางแห่งต้องการใบรับรอง CA เพื่อเชื่อมต่อ เครือข่ายวิทยาเขตของ Cal Poly ไม่ต้องการใบรับรอง ดังนั้นฉันจึงข้ามส่วนนี้ไป แต่คุณสามารถดาวน์โหลดใบรับรองที่เหมาะสมและเพิ่มลงในไฟล์ wpa_supplicant ของคุณด้วยบรรทัด

ca_cert="/path/to/cert.pem"

ขั้นตอนที่ 7: Hostapdstart Script

สิ่งสุดท้ายที่ต้องทำคือเขียนสคริปต์ที่เริ่มต้นทั้งสองอินเทอร์เฟซและตั้งค่าการส่งต่อแพ็กเก็ตเมื่อระบบบู๊ต สร้างไฟล์ชื่อ hostapdstart โดยพิมพ์:

nano /usr/local/bin/hostapdstart

เพิ่มสิ่งต่อไปนี้ในไฟล์

sudo ifdown --force wlan0 && sudo ifdown --force ap0 && sudo ifup ap0 && sudo ifup wlan0

#sudo ifdown --force wlan0 && sudo ifdown --force wlan1 && sudo ifup wlan1 && sudo ifup wlan0 sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j MASQUERADEsudo systemctl รีสตาร์ท dnsmasq

สคริปต์นี้ทำให้ทั้งสองอินเทอร์เฟซลดลง จากนั้นจึงนำกลับมาตามลำดับที่เหมาะสม บอก pi ว่าคุณต้องการส่งต่อแพ็กเก็ตจากอินเทอร์เฟซหนึ่งไปยังอีกอินเทอร์เฟซหนึ่ง และสุดท้ายรีสตาร์ท dnsmasq เพื่อให้การเปลี่ยนแปลงมีผล

(การ์ดไร้สายสองใบ) uncomment บรรทัดด้วย wlan1 และแสดงความคิดเห็นในบรรทัดด้วย ap0

ขั้นตอนที่ 8: Rc.local

สุดท้าย เราต้องการให้ระบบเริ่มทำงานเมื่อระบบบู๊ต ดังนั้นเราจะแก้ไขไฟล์ rc.local ซึ่งทำงานเมื่อบู๊ต:

นาโน /etc/rc.local

เพียงเพิ่มบรรทัดต่อไปนี้ที่ส่วนท้ายของไฟล์:

hostapdstart>1&

ไฟล์ของคุณควรมีลักษณะดังนี้:

_IP=$(ชื่อโฮสต์ -I) || จริงถ้า ["$_IP"]; จากนั้น printf "ที่อยู่ IP ของฉันคือ %s\n" "$_IP" fi

hostapdstart>1&

ทางออก 0

ขั้นตอนที่ 9: รีบูต

และนั่นแหล่ะ! ตอนนี้ สมมติว่าคุณมีทุกอย่างที่ตั้งค่าอย่างถูกต้อง และเชื่อมต่อดองเกิล WiFi ของคุณแล้ว (หากคุณใช้อยู่) คุณเพียงแค่ต้องรีบูต Raspberry Pi ด้วยคำสั่ง:

รีบูต

เมื่อรีบูต Pi สำเร็จแล้ว คุณจะสามารถเห็นชื่อจุดเข้าใช้งานบนอุปกรณ์ใดก็ได้ (โทรศัพท์ แล็ปท็อป ฯลฯ) เมื่อคุณเชื่อมต่อโดยใช้รหัสผ่านที่ระบุ คุณควรเชื่อมต่อคุณโดยตรงกับเครือข่ายองค์กรที่คุณต้องการ!

ขอขอบคุณเป็นพิเศษสำหรับลิงก์ต่อไปนี้ที่ให้แนวคิดเกี่ยวกับวิธีการเข้าถึงโครงการนี้:

  • https://blog.thewalr.us/2017/09/26/raspberry-pi-ze…
  • https://www.raspberrypi.org/forums/viewtopic.php?p…
  • https://www.raspberrypi.org/forums/viewtopic.php?f…

แจ้งให้เราทราบหากคุณมีคำถาม ความคิดเห็น หรือข้อเสนอแนะ!

IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

รองชนะเลิศใน IoT Challenge

แนะนำ: