linux:kali-linux:kali-linux-access-point

Vytvoření Wi-Fi access pointu v Kali Linuxu

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:

  • hostapd vytvoří samotný access point, nastaví SSID, kanál a případné zabezpečení
  • dnsmasq zajistí DHCP a DNS pro klienty připojené do nové Wi-Fi sítě

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:

  • nastavit IP adresu na Wi-Fi rozhraní
  • zapnout routování
  • přeložit provoz z Wi-Fi do ethernetu pomocí NAT
  • povolit forward provozu přes iptables
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

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:

kali-tmux.jpg

V původním kontextu slouží tento setup hlavně k tomu, aby bylo možné:

  • připojit testované zařízení do vlastní Wi-Fi sítě
  • sledovat přidělování adres přes dnsmasq
  • ověřit připojené klienty přes iw
  • zachytávat a analyzovat provoz například ve Wiresharku

Pokud 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čů.

  • linux/kali-linux/kali-linux-access-point.txt
  • Poslední úprava: 23.04.2026 12:33
  • autor: Petr Nosek