Spisu treści:

Mostek WiFi Raspberry Pi Enterprise Network: 9 kroków
Mostek WiFi Raspberry Pi Enterprise Network: 9 kroków

Wideo: Mostek WiFi Raspberry Pi Enterprise Network: 9 kroków

Wideo: Mostek WiFi Raspberry Pi Enterprise Network: 9 kroków
Wideo: {88} F8 Mostek 3870 F8 Clock / Development Board First "Hello World" 2024, Grudzień
Anonim
Mostek Wi-Fi do sieci korporacyjnej Raspberry Pi
Mostek Wi-Fi do sieci korporacyjnej Raspberry Pi

Autorzy: Riley Barrett i Dylan Halland

Celem tego projektu jest umożliwienie urządzeniu IoT, takiemu jak Weemo Smart Plug, Amazon Echo, konsola do gier lub dowolne inne urządzenie obsługujące Wi-Fi, łączenie się z siecią WPA_EAP Enterprise Network za pomocą Raspberry Pi Zero W jako pakietu urządzenie przekazujące. W przypadku urządzeń łączących się z siecią firmową wymagane są dodatkowe czynności konfiguracyjne, a wiele urządzeń w ogóle nie jest zgodnych. Korzystając z mostka Wi-Fi, każde urządzenie może łatwo uzyskać dostęp do Internetu, łącząc się z Pi.

System może być zaimplementowany na jednej karcie bezprzewodowej lub dwóch osobnych kartach w zależności od wymagań użytkownika. W przypadku systemów wymagających większej siły sygnału i większych prędkości wysyłania/pobierania najlepiej jest użyć dedykowanej karty bezprzewodowej do obsługi punktu dostępowego. Jednak w przypadku systemów, w których siła sygnału i przepustowość są mniej ważne lub gdzie pożądane jest bardziej ekonomiczne rozwiązanie, punkt dostępowy i połączenie sieciowe mogą współdzielić pojedynczą kartę.

Kieszonkowe dzieci

Raspberry Pi Zero W

Dostęp do klawiatury i monitora

Trochę wiedzy o programowaniu (do celów debugowania, konfiguracji Raspberry Pi)

Zewnętrzny adapter/klucz sprzętowy WiFi (opcjonalnie)

Krok 1: Konfiguracja Raspberry Pi

Konfiguracja Raspberry Pi
Konfiguracja Raspberry Pi

Zacznij od podłączenia Pi do klawiatury i monitora (może wymagać adaptera HDMI).

Następnie możesz zacząć od wpisania polecenia:

sudo su

Zapewni to posiadanie niezbędnych uprawnień do modyfikowania plików na pi.

Teraz będziesz chciał zainstalować dnsmasq i hostapd za pomocą polecenia:

apt-get install dnsmasq hostapd

Możesz teraz rozpocząć konfigurację mostka WiFi.

UWAGA - Poniższy samouczek będzie zawierał informacje dla osób korzystających z pojedynczej wbudowanej karty bezprzewodowej zarówno dla punktu dostępowego, jak i do łączenia się z siecią. Możliwe jest również skonfigurowanie systemu do pracy na dwóch oddzielnych kartach. Aby to zrobić, po prostu poszukaj zakomentowanych linii "wlan1" w dostarczonych plikach i zastąp je sąsiednimi liniami "ap0".

Krok 2: 70-persistent-net.rules

Zacznij od znalezienia adresu MAC swojego pi, wpisując:

iw dev

Utwórz następujący plik:

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

i edytuj go tak, aby zawierał następujące elementy

PODSYSTEM=="ieee80211", ACTION=="dodaj|zmień", ATTR{adres mac}=="b8:27:eb:c0:38:40", KERNEL=="phy0", / RUN+="/sbin/ iw phy interfejs phy0 dodaj ap0 type _ap", / RUN+="/bin/ip link ustaw adres ap0 b8:27:eb:c0:38:40"

Ten plik informuje system o przydzieleniu urządzenia dla punktu dostępu podczas rozruchu. Tutaj adres MAC powinien zostać zastąpiony adresem twojego własnego pi, które właśnie znalazłeś.

(Dwie karty bezprzewodowe) Ten plik nie jest wymagany w przypadku korzystania z dwóch kart bezprzewodowych.

Krok 3: Hostapd.conf

Następnie edytujesz plik hostapd.conf, wpisując:

nano /etc/hostapd/hostapd.conf

Zmodyfikuj plik tak, aby był zgodny z następującą konfiguracją:

ctrl_interface=/var/run/hostapd

ctrl_interface_group=0 #interface=ap0 interface=wlan1 driver=nl80211 ssid=testnet hw_mode=g channel=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 wpa=2 wpa_passphrase=0123456789 wpa_keypair_mgmt_wpa_wise CCWPArs=

Zauważ, że chociaż mój kanał jest tutaj ustawiony na 6, być może będziesz musiał zmienić tę wartość, aby pasowała do kanału, na którym jest włączony wlan0. W niektórych sieciach kanał zostanie automatycznie zmieniony, aby punkt dostępu pasował do wlan0, ale nie było to moje doświadczenie w sieci korporacyjnej. Możesz sprawdzić, które kanały są aktualnie używane i przez które interfejsy, wpisując

na liście kanałów

(Dwie karty bezprzewodowe) Po prostu odkomentuj linię zawierającą wlan1 i skomentuj linię zawierającą ap0.

Krok 4: Dnsmasq.conf

Teraz wyedytujesz plik dnsmasq.conf:

nano /etc/dnsmasq.conf

Odkomentuj lub dodaj następujące wiersze:

interfejs=lo, ap0

#interface=lo, wlan1 no-dhcp-interface=lo bind-interfaces server=8.8.8.8 domena-potrzebna fałszywy-priv dhcp-range=192.168.2.100, 192.168.2.200, 12h

Możesz tutaj użyć własnej podsieci, jeśli chcesz, tylko upewnij się, że jesteś spójny.

(Dwie karty WirelessCcards) Odkomentuj wiersz zawierający wlan1 i skomentuj ten zawierający ap0.

Krok 5: Interfejsy

Następnie musisz zmodyfikować plik interfejsów:

nano /etc/sieć/interfejsy

auto lo

auto ap0 #auto wlan1 auto wlan0 iface lo inet loopback iface eth0 inet dhcp allow-hotplug ap0 #allow-hotplug wlan1 iface ap0 inet static #iface wlan1 inet adres statyczny 192.168.2.1 maska sieci 255.255.255.0 hostapd /etc/hostapd/hostapd.conf allow-hotplug wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf post-down killall -q wpa_supplicant

Warto zauważyć, że interfejs wlan0 MUSI nadejść po dowolnym interfejsie, który do niego przekazujesz, w przeciwnym razie system nie będzie działał poprawnie.

(Dwie karty bezprzewodowe) Odkomentuj wszystkie linie zawierające wlan1 i skomentuj wszystkie zawierające ap0.

Krok 6: Wpa_supplicant.conf

Teraz zmodyfikujesz plik wpa_supplicant.conf znajdujący się pod adresem:

nano /etc/wpa_supplicant/wpa_supplicant.conf

Niektóre sieci są skonfigurowane inaczej niż inne, więc ta część może wymagać trochę majsterkowania, oto plik wpa_supplicant.conf, który pozwolił mi połączyć się z siecią w 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="nazwa użytkownika@ calpoly.edu" password="twoje_hasło" phase1="peapver=0" phase2="MSCHAPV2" }

Ten plik służy do konfigurowania wlan0 do łączenia się z siecią firmową. Niektóre sieci korporacyjne wymagają certyfikatu CA do nawiązania połączenia. Sieć kampusowa Cal Poly nie wymaga certyfikatu, więc pominąłem tę część, ale możesz łatwo pobrać odpowiednie certyfikaty i dodać je do swojego pliku wpa_supplicant z linijką

ca_cert="/ścieżka/do/cert.pem"

Krok 7: Skrypt Hostapdstart

Ostatnią rzeczą do zrobienia jest napisanie skryptu, który uruchamia oba interfejsy i konfiguruje przekazywanie pakietów podczas startu systemu. Utwórz plik o nazwie hostapdstart, wpisując:

nano /usr/local/bin/hostapdstart

Dodaj następujące elementy do pliku

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 restart dnsmasq

Ten skrypt wyłącza oba interfejsy, a następnie przywraca je z powrotem we właściwej kolejności, mówi pi, że chcesz przekazywać pakiety z jednego interfejsu do drugiego, a na koniec ponownie uruchamia dnsmasq, aby zmiany odniosły skutek.

(Dwie karty bezprzewodowe) odkomentuj linię za pomocą wlan1 i skomentuj linię za pomocą ap0.

Krok 8: Rc.local

Na koniec chcemy, aby system uruchamiał się podczas startu systemu, więc zmodyfikujemy plik rc.local, który jest uruchamiany podczas startu:

nano /etc/rc.local

Po prostu dodaj następujący wiersz na końcu pliku:

hostapdstart>1&

Twój plik powinien wyglądać mniej więcej tak:

_IP=$(nazwa hosta -I) || trueif ["$_IP"]; then printf "Mój adres IP to %s\n" "$_IP" fi

hostapdstart>1&

wyjście 0

Krok 9: Uruchom ponownie

I to wszystko! Teraz, zakładając, że wszystko jest poprawnie skonfigurowane, a twój klucz WiFi jest podłączony (jeśli go używasz), wystarczy zrestartować Raspberry Pi za pomocą polecenia:

restart

Po pomyślnym ponownym uruchomieniu Pi powinieneś być w stanie zobaczyć nazwę swojego punktu dostępu na dowolnym urządzeniu (telefonie, laptopie itp.). Po połączeniu się przy użyciu określonego hasła, powinno połączyć się bezpośrednio z wybraną siecią Enterprise!

Specjalne podziękowania dla poniższych linków za dostarczenie nam pomysłu, jak podejść do tego projektu:

  • 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…

Daj nam znać, jeśli masz jakieś pytania, komentarze lub sugestie!

Wyzwanie IoT
Wyzwanie IoT
Wyzwanie IoT
Wyzwanie IoT

Drugie miejsce w wyzwaniu IoT

Zalecana: