Hostapd

Sdílení připojení – WiFi

Následující článek je motivován praktickým problémem, kdy se čas od času stane, že máme kabelové připojení, ale chtěli bychom se připojit k internetu z mobilu nebo podobného zařízení. Jednou z variant v případě, že máme připojený notebook je sdílení připojení přes WiFi.

V případě, že používáme linux je situace vcelku jednoduchá. Stačí nainstalovat a správně nastavit aplikaci (balík) hostapd. Hostapd je aplikace běžící jako démon v userspace, implementuje v sobě autentizační server a management pro access point (přístupový bod). Nás bude zajímat především druhá funkce aplikace a to přepnutí WiFi adaptéru z přijímacího stavu do vysílacího.

Je několik požadavků, které musí být splněny k tomu, aby WiFi adaptér šel přepnout. Prvním z požadavků je hardwarové a softwarové zapnutí WiFi adaptéru. Aktuální nakonfigurovaný stav v systému lze zjistit pomocí linuxového nástroje rfkill. Požadovaná konfigurace je vidět na ukázce níže:

$ rfkill list
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

Pokud máte problém se Soft částí adaptéru, většinou pomůže aktivace adaptéru tak, jak jste zvyklí, když se chcete připojit k nějaké veřejné WiFi síti. Pokud problém nastane v Hard části adaptéru, znamená to, že přepnutí do AP módu bude blokováno něčím hardwarovým – často bývá zablokován přepínač v BIOSu.

Pokud je tedy všechno v pořádku a bezdrátové sítě nejsou blokovány, je na čase nainstalovat hostapd. V závislosti na distribuci je několik možností, jak nainstalovat novou aplikaci/balík. Doufám, že toto každý nějakým způsobem zvládne sám, po nainstalování se můžete vrhnout na další krok.

Nyní je potřeba vytvořit konfigurační soubor, ve kterém provedeme základní nastavení nově vytvořené WiFi sítě. Různých parametrů, které je možné do konfigurace zapsat je velké množství, všechny jsou popsány v konfiguraci na domovských stránkách projektu. My si uvedeme několik základních parametrů, které jsou dostatečné pro dostatečnou funkčnost WiFi sítě.

interface=wlan0
driver=nl80211
ssid=my-wifi
hw_mode=g
channel=7
wpa=1
wpa_passphrase=******
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_ptk_rekey=600

Jednotlivé parametry jsou myslím dostatečně sebevysvětlující. Jeden z důležitých parametrů je ale hodnota driver. Seznam WiFi karet (ovladačů) podporovaných ovladačem nl80211 je dostupný na stránkách projektu. Pokud nyní spustíte hostapd a jako parametr mu zadáte konfigurační soubor s předchozím obsahem, měli byste už vidět novou WiFi síť s ssid podle konfigurace.

$ sudo hostapd /etc/hostapd/hostapd.conf

Jako poslední krok, k tomu, abychom se mohli z připojeného zařízení dostat do sítě internet, musíme nastavit IP adresu WiFi adaptéru a přesměrování paketů z rozhraní wlan0 na rozhraní eth0. Základní a potenciálně nebezpečné nastavení přesměrování lze provést následující sekvencí příkazů.

$ sudo ifconfig wlan0 10.0.0.1 up
$ sudo ifconfig wlan0 netmask 255.255.255.0
$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Toto už byl poslední krok potřebný pro nastavení WiFi sítě. Nyní stačí připojit se k nově vytvořené síti a nastavit v zařízení libovolnou adresu ze stejného rozsahu jako je adresa v konfiguraci.


Posted

in

by

Tags: