Będąc w akademiku jesteśmy zazwyczaj skazani na jednego dostawcę internetu szerokopasmowego i w tym przypadku jest to Eduroam jako sieć WiFi lub tylko gniazdka Ethernet.
Podłączenie do sieci zwykłego urządzenia jest problematyczne dla większości użytkowników, więc stworzenie routera WiFi tak aby rozsyłał sygnał bez zbędnych certyfikatów i haseł jest jeszcze trudniejsze 🙂
Na szczęście po kilku godzinnych zmaganiach mogę podzielić się empirycznym poradnikiem jak zrobić to w znacznie krótszym czasie.
*poniższy tutorial jest dla osób, które chcą stworzyć WiFi podłączając router do gniazdka Ethernet Eduroam. Konfiguracja Access Pointa Eduroam WiFi --> WiFi
wygląda trochę inaczej.
Wymagania:
- Router z OpenWRT lub inny unixowy sytem jak np. dd-wrt.
- klient SSH
- certyfikat .pem jeżeli jest wymagany przez sieć
- umiejętność zapisu i wyjścia z
vim
Kroki:
SSH
Pierwszym krokiem jest podłączenie się przez ssh do routera. Jeżeli tego wcześniej nie robiliśmy to musimy skonfigurować hasło root poprzez panel administracyjny (zazwyczaj znajduje się pod 192.168.1.1).
Jeżeli mamy już skonfigurowane hasło możemy podłączyć się do routera komendą:
ssh [email protected]
Usuwanie wpad-mini
Po podłączeniu do ssh będziemy musieli usunąć mini wersję wpad
(wpad = wpa_supplicant + hostapd). Jest ona niewystarczająca do autoryzacji z protokołem 802.1X czyli takim jaki używa Eduroam.
Instalowanie wpad
Można to uznać za najtrudniejszą część, ponieważ musisz znaleźć odpowiednią wersję paczki wpad
dla twojego routera. Zainstalowanie nieodpowiedniej wersji może zakończyć się problemem z uruchomieniem interfejsu WiFi = brak dostępu do ssh i interfejsu (chyba, że macie kabel ethernet). Jeżeli jednak tak się zdarzy to możesz zawsze przywrócić router do ustawień fabrycznych.
Zbiór wszystkich paczek można znaleźć tutaj:
https://archive.openwrt.org/
Przykład: dla routera TP-Link z OpenWRT w wersji 15 i opartego o SoC AR9130 będzie to:
https://archive.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/packages/base/wpad_2015-03-25-1_ar71xx.ipk
Po pobraniu paczki ipk
na komputer przechodzimy do wysłania jej przez protokół scp do routera (można użyć WinSCP na Windowsie) lub użyć terminala:
scp wpad_2015-03-25-1_ar71xx.ipx [email protected]:/tmp/
Następnie zainstalować paczkę:
opkg install wpad_2015-03-25-1_ar71xx.ipk
Jeżeli macie dostęp do internetu na routerze (zakładam, że jednak nie :D) to cały ten krok możecie streścić do wykonania:
opkg update
opkg install wpad
Konfiguracja OpenWRT
Kolejnym krokiem jest dodanie interfejsu WAN w panelu administratora jeżeli go nie macie:
Zakładka Network -> Interfaces
i klikamy na „Add new interface”
Name of the new interface: WAN
Protocol of the new interface: DHCP
W podglądzie edycji wygląda to następująco:
Przechodzimy teraz do konfiguracji interfejsu LAN:
Zapisujemy wszystkie zmiany i restartujemy router.
Należy pamiętać, że w takiej konfiguracji port Ethernet będzie zablokowany, więc jedynym połączeniem z komputerem będzie WiFi.
wpa_supplicant
Przechodzimy teraz do autoryzacji protokołem IEEE 802.1X. Użyjemy do tego modułu wpa_supplicant
.
W terminalu otwieramy edytor vim:vim /etc/config/wpa.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
eapol_version=1
ap_scan=0
fast_reauth=1
network={
key_mgmt=IEEE8021X
eap=MSCHAPV2
identity="TWOJA NAZWA UZYTKOWNIKA"
password="HASLO"
eapol_flags=0
ca_cert="/etc/certs/certyfikat.pem"
phase1="peaplabel=1"
phase2="auth=MSCHAPV2"
}
Jeżeli nasza sieć nie potrzebuje dodatkowego certyfikatu to linijkę z ca_cert
można usunąć. W innym przypadku musimy dodać nasz certyfikat przez scp do folderu /etc/certs/
.
Połączenie z internetem – Autoryzacja
Zbliżamy się do końca! Odłączamy kabel Ethernet od routera i wykonujemy poniższe komendy:
killall wpa_supplicant
wpa_supplicant -D wired -i eth1 -c /etc/config/wpa.conf &
Gdy otrzymamy komunikat EAP authentication started możemy podłączyć kabel Ethernet. Jeżeli zrobiliśmy wszystko poprawnie powinniśmy uzyskać taki rezultat:
W przypadku, gdy otrzymacie Authentication failed
może się okazać, że:
- podaliście nieprawidłowe dane użytkownika
- wasz router używa jednak
eth0
zamiasteth1
- po stworzeniu bridge’a wasz interfejs nazywa się tak naprawdę
br-wan
😀
Po około minucie powinniście uzyskać dostęp do internetu! 🙂
Autostart
Niektórzy pomimo przypływu endorfin zadadzą pytanie:
Zgadza się! Jest to małe uniedogodnienie, ale możemy stworzyć na szybko skrypt, który będzie się uruchamiał po każdym restarcie.
vi /etc/init.d/wpa
Dodajemy skrypt:
#!/bin/sh /etc/rc.common
#
# Based on Example script
# Copyright (C) 2007 OpenWrt.org
#
START=99
STOP=15
EXTRA_COMMANDS="status"
EXTRA_HELP="Output should contain one line with: [...] wpa_supplicant [...]"
start() {
echo "start"
sleep 10
echo "Starting authentication using wpa_supplicant"
wpa_supplicant -i br-wan -D wired -c /etc/config/wpa.conf &
sleep 15
}
stop() {
# commands to kill application
echo "stopping wpa_supplicant"
killall wpa_supplicant && echo "wpa_supplicant was terminated"
sleep 2
}
status() {
echo Status of wpa_supplicant
ps |grep wpa_supplicant
}
Zapisujemy wszystko i wykonujemy ostatnie komendy:
chmod +x /etc/init.d/wpa
chmod 755 /etc/init.d/wpa
/etc/init.d/wpa enable
Po restarcie routera, skrypt powinien uruchomić się automatycznie i połączyć się z internetem.
Poradnik przetestowany na routerach TP-Link: TL-WR842ND i TL-WR-703N.
You are so awesome! I do not think I have read something like this before.
So good to find someone with a few genuine thoughts on this topic.
Really.. thanks for starting this up. This website is something
that is required on the web, someone with a little originality!
Pouczająca lektura! Doceniam szczegółowość i dokładność. Szkoda tylko, że niektóre fragmenty są zbyt techniczne dla laików. Mimo to, świetne źródło wiedzy!