WLAN Access Point unter Linux einrichten

Wer gerne für andere, die keinen kabelgebundenen Zugang zum Internet haben und daher auf WLAN angewiesen sind, fix einen Access Point am Laptop einrichten möchte oder einfach nur daran interessiert ist, wie das Konzept des „rogue access point“ funktioniert, der kann mit den folgenden paar Befehlen einen WLAN Access Point konfigurieren.

Da ich zur Zeit ohnehin Kali Linux teste und Kali Linux alle benötigten Programme an Bord hat, kann ich die entsprechende Distribution nur für diese Beispiel empfehlen. Jede andere Linux-Distribution ist aber ebenso gut zu verwenden.

Um einen funktionsfähigen Access Point zu konfigurieren, benötigen wir 3 Schritte zum Erfolg:

  1. Die WLAN-Konfiguration
  2. Einen DHCP-Server
  3. Routing mit NAT

Im folgenden Beispiel werde ich zwei WLAN-Interfaces zum Testen verwenden:

  1. wlan0 (Zugang zum Internet): 192.168.2.63/24
  2. wlan1 (Interface des neuen AP): 10.10.10.1/24

1. WLAN-Konfiguration

Die Tools der Wahl sind hier airmon-ng und airbase-ng.
Zunächst setzen wir mit airmon-ng das wlan1-Interface in den Monitor-Modus:

root@kali:~# airmon-ng start wlan1
Found 3 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!
-e
PID    Name
2420    NetworkManager
2522    wpa_supplicant
2743    dhclient
Process with PID 2743 (dhclient) is running on interface wlan0

Interface    Chipset        Driver

wlan0        Intel 3945ABG    iwl3945 – [phy0]
wlan1        Unknown     rtl8192cu – [phy1]
(monitor mode enabled on mon0)

root@kali:~#

Nun kann man sehen, dass wlan1 im Monitor-Modus arbeitet („monitor mode enabled on mon0“).

Da wir jetzt das Monitor-Interface haben, schauen wir nach, welche WLANs auf welchen Kanälen in der Nähe operieren:

root@kali:~# airodump-ng mon0

Wir suchen uns einen nicht benutzten Kanal (in diesem Beispiel Kanal 6) und setzen die SSID – in diesem Beispiel ohne weitere Verschlüsselung – unseres Access Points auf „test hotspot“

root@kali:~# airbase-ng –essid „test hotspot“ -c 6 mon0
20:14:24  Created tap interface at0
20:14:24  Trying to set MTU on at0 to 1500
20:14:24  Trying to set MTU on mon0 to 1800
20:14:24  Access Point with BSSID 80:1F:02:87:4A:E3 started.

Hier sieht man nun, dass das neue Interface at0 kreiert wurde, was für den Benutzer die physische Verbindung herstellt.

Auf diesem Interface können wir nun unsere IP konfigurieren:

root@kali:~# ifconfig at0 10.10.10.1/24

Damit das Routing auch zweifelsfrei funktioniert, setzen wir noch eine explizite Route:

route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.1

2. DHCP-Server-Konfiguration

Falls noch kein DHCP-Server auf dem Rechner installiert ist, sollte er fix nachinstalliert werden:

root@kali:~# apt-get install isc-dhcp-server

Bevor wir loslegen, machen wir eine Kopie der alten Konfiguration:

root@kali:~# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bu

und editieren nun mit dem Editor unserer Wahl die Datei /etc/dhcp/dhcpd.conf, sodass sie folgenden Inhalt besitzt:

default-lease-time 600;
max-lease-time 7200;
subnet 10.10.10.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 10.10.10.255;
option routers 10.10.10.1;
option domain-name-servers 8.8.8.8;
range 10.10.10.10 10.10.10.110;
}

Nun sagen wir dem DHCP-Server nur noch, dass er auf dem Interface at0 operieren soll und starten ihn anschließend:

root@kali:~# dhcpd -cf /etc/dhcp/dhcpd.conf at0
root@kali:~# /etc/init.d/isc-dhcp-server start
[ ok ] Starting ISC DHCP server: dhcpd.
root@kali:~#

Damit nun jeder verbundene Client auch mit dem Internet kommunizieren kann, müssen wir noch das Routing entsprechend setzen.

3. Routing-Konfiguration

Dazu löschen wir erst alle vorhandenen Regeln, um eventuelle Probleme zu vermeiden. Danach aktivieren wir NAT für die Kommunikation über das wlan0-Interface:

root@kali:~# iptables –flush
root@kali:~# iptables –table nat –flush
root@kali:~# iptables –delete-chain
root@kali:~# iptables –table nat –delete-chain
root@kali:~# iptables –table nat –append POSTROUTING –out-interface wlan0 -j MASQUERADE
root@kali:~# iptables –append FORWARD –in-interface at0 -j ACCEPT

Jetzt nur noch das Routing aktivieren:

root@kali:~# echo 1 > /proc/sys/net/ipv4/ip_forward

Und schon ist der WLAN Access Point aufgesetzt.

Wenn ich mich jetzt mit meinem Handy mit dem neu aufgesetzten WLAN verbinde, erhalte ich die IP 10.10.10.10. Um zu testen, ob die Verbindung – zu z.B. heise.de – auch wirklich durch unseren neuen AP läuft, schauen wir uns einfach die durchrauschenden Pakete an:

root@kali:~# tcpdump -i at0 ‚host 10.10.10.10 and host 193.99.144.80‘
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on at0, link-type EN10MB (Ethernet), capture size 65535 bytes
20:27:57.231738 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [S], seq 2714025136, win 65535, options [mss 1460,sackOK,TS val 15501168 ecr 0,nop,wscale 6], length 0
20:27:57.248565 IP redirector.heise.de.http > 10.10.10.10.45070: Flags [S.], seq 3481183783, ack 2714025137, win 4356, options [mss 1452,nop,wscale 0,nop,nop,TS val 3584185413 ecr 15501168,sackOK,eol], length 0
20:27:57.253489 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [.], ack 1, win 1024, options [nop,nop,TS val 15501170 ecr 3584185413], length 0
20:28:02.257511 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [F.], seq 1, ack 1, win 1024, options [nop,nop,TS val 15501670 ecr 3584185413], length 0
20:28:02.274339 IP redirector.heise.de.http > 10.10.10.10.45070: Flags [.], ack 2, win 4356, options [nop,nop,TS val 3584190438 ecr 15501670], length 0
20:28:02.274872 IP redirector.heise.de.http > 10.10.10.10.45070: Flags [F.], seq 1, ack 2, win 4356, options [nop,nop,TS val 3584190438 ecr 15501670], length 0
20:28:02.467992 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [F.], seq 1, ack 1, win 1024, options [nop,nop,TS val 15501692 ecr 3584185413], length 0
20:28:02.909116 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [F.], seq 1, ack 1, win 1024, options [nop,nop,TS val 15501736 ecr 3584185413], length 0
20:28:03.021242 IP 10.10.10.10.45070 > redirector.heise.de.http: Flags [.], ack 2, win 1024, options [nop,nop,TS val 15501747 ecr 3584190438], length 0

Das sieht doch ganz gut aus.

3 Antworten auf „WLAN Access Point unter Linux einrichten“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.