Manchmal braucht man einen konfigurierbare Access Point auf Ihrem Fedora-Desktop. Dies kann in ein paar einfachen Schritten durchgeführt werden:

WARNUNG: Jetzt kommt eine Menge Code!


1. Installieren Sie die erforderliche Software:

yum install hostapd dnsmasq

 

2. Konfigurieren Sie Ihren WLAN-Adapter

Zunächst prüfen, ob Ihr Adapter online ist:

[root@seger~]# iwconfig
wlan0 IEEE 802.11bgn ESSID: off/any
Mode: Managed Access Point: Not-Associated Tx-Power=0 dBm
Retry short limit: 7 RTS thr:off Fragment thr:off
Encryption key: off
Power Management: off
lo no wireless extensions.
eth0 no wireless extensions.

 

Jetzt prüfen, ob der Network Manager die Kontrolle über Ihr device hat:

[root@seger~] # nmcli -p r
======================================
Radio switches
======================================
WIFI-HW WIFI WWAN-HW WWAN
--------------------------------------
enabled enabled enabled disabled 

 

Wenn es aktiviert ist, deaktivieren Sie es mit der nmcli:

[root@seger~] # nmcli r wifi off


Der Network Manager setzt den Killswitch auf "on", also müssen wir ihn wieder auf off setzen, um wifi außerhalb des NM wieder zu aktivieren.

[root@seger~] # rfkill unblock wlan

Nach diesem Schritt haben wir eine aktive WiFi-Karte ohne Störung durch den Networkmanager.
 
Konfigurieren des hostapd

Die Konfigurationsdatei befindet sich in /etc/hostapd/hostapd.conf. Hier sind nützliche Einstellungen, um WPA2 mit TKIP-CCMP zu aktivieren:

# Einige verwendbare Standardeinstellungen ...
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
# Kommentieren Sie diese für Basis WPA & WPA2-Unterstützung mit einem Pre-Shared Key
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
# NICHT VERGESSEN EIN WPA-PASSPHRASE EINZURICHTEN!!
wpa_passphrase=<Passphrase>
# Die meisten modernen WLAN-Treiber im Kernel benötigen driver=nl80211
driver=nl80211
# Passen Sie diese Einstellungen für Ihre lokale Konfiguration an...
interface=wlan0
hw_mode=g
channel=<CHANNEL>
ssid=<SID des AP>
ieee80211n=1

 

Danach kann das Ganze gestartet werden:

[root@seger ~] # systemctl start hostapd.service
[root@seger~] # systemctl status hostapd.service
hostapd.service - Hostapd IEEE 802.11 AP, IEEE 802.1X / WPA / WPA2 / EAP / RADIUS Authenticator
Loaded: geladene (/usr/lib/systemd/system/hostapd.service; disabled)
Aktiv: aktiv (läuft), da Fr 2014.08.01 13.24.08 CEST; Vor 4s
Prozess: 12208 ExecStart=/usr/sbin/hostapd/etc/hostapd/hostapd.conf -P /run/hostapd.pid -B (code=exited, status=0/SUCCESS)
Haupt PID: 12209 (hostapd)
CGroup: /system.slice/hostapd.service
└─12209 /usr/sbin/hostapd/etc/hostapd/hostapd.conf -P /run/hostapd.pid -B
1. August 13.24.08 seger systemd[1]: Gestartet Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator.

 

Konfigurieren DNSMASQ

Dnsmasq ist eine Kombination aus DHCP / DNS-Server mit einem geringen Speicherbedarf. Die Konfiguration ist in /etc/dnsmasq/dnsmasq.conf.
Die wichtigsten Konfigurationsoptionen:

server=10.159.14.14 # Upstream DNS
interface=wlan0
dhcp-range=192.168.23.50,192.168.23.150,12h
no-resolv
no-Umfrage

 

Konfigurieren Sie die Firewall

Fedora 20 kommt mit firewalld, die dynamisch die iptables-Regeln anpassen können. Für unser Setup müssen wir von wlan0 aus auf das außen liegende Netzwerk, DNS und DHCP Access und IP-Forwarding zugreifen können:

# Setzen Sie die Schnittstelle in einer Zone
firewall-cmd --zone=public --add-interface=wlan0
# MASQ Aktivieren für diese Zone
firewall-cmd --zone=public --add-masquerade
# Lassen Sie DHCP
firewall-cmd --zone=public --add-service=dhcp
# Zulassen DNS
firewall-cmd --zone=public --add-service=dns

 

Jetzt alle miteinander verbinden:

Nachdem alle Dienste konfiguriert sind, genügt ein kleines Script um das Ganze auszuführen:

#!/bin/bash

# WLAN sollte nicht mehr von Network Manager verwaltet werden
nmcli r wifi off
# WLAN Entblocken 
rfkill unblock wlan
# Rufen Sie die Schnittstelle auf
ifconfig wlan0 192.168.23.1 Netzmaske 255.255.255.0 up
# IP forward aktivieren
## -> bereits aktiviert!
# Setzen Sie die Schnittstelle in einer Zone
firewall-cmd --zone=public --add-interface=wlan0
# MASQ für diese Zone aktivieren
firewall-cmd --zone=public --add-masquerade
# DHCP erlauben
firewall-cmd --zone=public --add-service=dhcp
# DNS erlauben
firewall-cmd --zone=public --add-service=dns
# hostapd und dnsmasq starten
systemctl start hostapd.service
systemctl start dnsmasq.service

 

Das wars, viel Spass mit Ihrem WLAN Access Point!