Vytvořeno: 17.5.2020
Poznámka k aktuálnosti: Toto je dobový článek. Postup, názvy rozhraní, dostupné balíčky i doporučené konfigurace nemusí odpovídat aktuálním verzím Kali Linuxu a současné praxi.
Tento postup se hodí ve chvíli, kdy je potřeba vytvořit vlastní Wi-Fi access point a přes něj analyzovat provoz připojených zařízení. Typický scénář je připojení telefonu do vlastní sítě, zachytávání komunikace například ve Wiresharku a následná analýza přenášených dat. Praktickým předpokladem je správně zprovozněná USB Wi-Fi karta v režimu AP nebo monitoring, viz navazující článek Kali Linux ve VirtualBoxu a připojení USB Wi-Fi karty.
Základ tvoří dva balíčky:
Bez běžícího DHCP klient obvykle skončí chybou, že mu nebyla přidělena IP adresa.
apt install hostapd dnsmasq
Před spuštěním access pointu je v původním postupu Wi-Fi karta přepnuta do režimu monitor.
ifconfig wlan0 down iwconfig wlan0 mode monitor ifconfig wlan0 up
Je potřeba připravit konfigurační soubor hostapd.conf. Níže jsou tři varianty podle původního článku.
interface=wlan0 driver=nl80211 ssid=FREEWIFI hw_mode=g channel=11 macaddr_acl=0 ignore_broadcast_ssid=0 ieee80211n=1 wme_enabled=1
interface=wlan0 driver=nl80211 ssid=WIFINETWORK5 channel=40 macaddr_acl=0 ignore_broadcast_ssid=0 auth_algs=1 wpa=2 wpa_passphrase=password@!945 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP wpa_pairwise=CCMP wpa_group_rekey=86400 ieee80211n=1 wme_enabled=1 logger_syslog=0 logger_syslog_level=0 preamble=1 ## IEEE 802.11n ieee80211n=1 country_code=CZ ieee80211d=1 ## IEEE 802.11a hw_mode=a ## IEEE 802.11ac ieee80211ac=1
interface=wlan0 driver=nl80211 ssid=WIFINETWORK2 channel=9 macaddr_acl=0 ignore_broadcast_ssid=0 auth_algs=1 wpa=2 wpa_passphrase=password@!945 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP wpa_pairwise=CCMP wpa_group_rekey=86400 ieee80211n=1 wme_enabled=1 logger_syslog=0 logger_syslog_level=0 preamble=1 ## IEEE 802.11n ieee80211n=1 country_code=CZ ieee80211d=1 ## IEEE 802.11g hw_mode=g
Po výběru vhodné varianty lze hostapd spustit přímo nad připraveným konfiguračním souborem.
hostapd hostapd.conf
Soubor dnsmasq.conf může podle původního postupu vypadat takto:
interface=wlan0 dhcp-range=192.168.1.2,192.168.1.100,255.255.255.0,12h dhcp-option=3,192.168.1.1 dhcp-option=6,192.168.1.1 server=8.8.8.8 log-queries log-dhcp listen-address=127.0.0.1
Spuštění démona:
dnsmasq -C dnsmasq.conf -d
V této fázi už běží hostapd i dnsmasq, ale je ještě potřeba:
iptablesifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0 route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i wlan0 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward
Tím se vytvoří jednoduchý NAT mezi wlan0 a eth0, takže klienti připojení do Wi-Fi mohou komunikovat dál do sítě.
Pro zjednodušení lze celý postup spojit do jednoho skriptu. Původní řešení používá tmux, přičemž rozložení oken vychází i z ukázek Ask Ubuntu a Stack Overflow.
#!/bin/bash # prepare wlan0 for monitoring mode ifconfig wlan0 down iwconfig wlan0 mode monitor ifconfig wlan0 up ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0 route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 iptables -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i wlan0 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward tmux new-session \; \ send-keys 'hostapd -d '"\"$1\"" C-m \; \ split-window -h \; \ send-keys 'dnsmasq -C dnsmasq.conf -d' C-m \; \ split-window -v \; \ send-keys 'iw dev wlan0 station dump' C-m \;
Skript může být uložen například jako createAP. Jako povinný parametr dostává cestu ke konfiguraci hostapd.conf. Předpokládá také, že dnsmasq.conf je ve stejném adresáři jako skript.
./createAP hostapd.conf
Pro rychlou kontrolu právě připojených klientů lze použít příkaz iw dev wlan0 station dump. Praktické ukázky k iw jsou dostupné v dokumentaci About iw - examples.
iw dev wlan0 station dump
Ukázka rozložení terminálů v tmux:
V původním kontextu slouží tento setup hlavně k tomu, aby bylo možné:
dnsmasqiwPokud konkrétní USB Wi-Fi karta nefunguje korektně v režimu AP, může být potřeba dořešit ovladače. V původních zdrojích je uveden i repozitář Zdrojový kód pro kompilaci ovladačů.