Linux PC WLAN AP

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Manchmal kommt es vor, dass man zum Testen von WLAN-Clients mal eben schnell einen AccessPoint nutzen muss. Um nicht die Zugangsparameter im HeimWLAN anpassen zu muessen, empfiehlt es sich einen LINUX-PC als WLAN-ACCESS-PONIT arbeiten zu lassen. In einem konkreten Fall will sich das WLAN-Modul der RD6006 automatisch mit dem stärksten WLAN-AP verbinden. Da hilft es auch nix irgendwo irgendeinen AP zu aktivieren, wenn ein "falscher" AP naeher dran ist. Man will ja auch mit dem Geraffel nicht den Standort wechseln, nur um einen Client dazu zu bewegen, sich endlich mit dem gewuenschten AP zu verbinden. Ein ganz schlechte Idee ist dafuer einen ausgedienten AP (siehe WRT54GL Revival) verwenden zu wollen. Spaetestens bei der Analyse mittels tcpdump oder gar wireshark ist der Oldie ueberfordert.

Einstieg

Ein brauchbaren Einstieg bietet folgender Artikel: PCWelt

Die Anleitung fuer Ubuntu mit dem NetworkManager und den Raspi mit Debian und hostapd deckt ein breites Spektrum von Anforderungen ab. Leider sind ein paar Abweichungen zu OpenSuSE (15.3) festzustellen.

Da ich ein Kind der Console bin, fand ich diesen Artikel ganz hilfreich.

Inbetriebnahme

Erst habe ich es, wie im PCWelt-Artikel beschrieben, ueber die grafische Oberflaeche (Grrrr!) mit dem Menuepunkt "Create New Wi-Fi Network..." probiert. Allerdings ohne Erfolg.

Die Datei des neu eingerichteten APs befand sich zwar in /etc/NetworkManager/system-connections aber sonst tat sich nichts.

Der Befehl aus dem zweiten Artikel

nmcli dev wifi hotspot ifname wlan0 ssid RIDEN_NM [password "test1234"]

fuehrte dagegen direkt zum Erfolg. Beim ersten Versuch habe ich den Passwortteil weggelassen.

Ein Verbinden mit einem Client (Smartphone) war mir allerdings nicht gegoennt. Trotz des folgenden Tasks wurde dem Smartphone keine IP-Adresse zuteil.

ps aux|grep dnsmasq|grep -v grep

ALternativ kann man auch

ps aux| grep "[v]i"

benutzen, damit grep sich nicht selbst findet.

Der erste Befehl hat den Vorteil, dass man ihn leicht, z.B. als psgrep als Alias anlegen kann.

alias psgrep='ps ax|grep -v grep|grep'

Dauerhaft bekommt man den Alias, in dem man den o.g. Befehl in die Datei Ressourcen-Datei der Shell eintraegt. Bei der Bash in .bashrc, oder die .bash_aliases benutzen/anlegen. Bei xfce (xfce-terminal) befindet sich die Datei unter ~/inst-sys und nennt sich .profile.

localhost:~ # psgrep Netwo
 1077 ?        Ssl    3:24 /usr/sbin/NetworkManager --no-daemon
11710 ?        S      0:02 /usr/sbin/dnsmasq --conf-file=/dev/null --no-hosts --keep-in-foreground --bind-interfaces --except-interface=lo --clear-on-reload --strict-order --listen-address=192.168.1.254 --dhcp-range=192.168.1.1,192.168.1.245,60m --dhcp-option=option:router,192.168.1.254 --dhcp-lease-max=50 --dhcp-leasefile=/var/lib/NetworkManager/dnsmasq-wlan0.leases --pid-file=/var/run/nm-dnsmasq-wlan0.pid
localhost:~ #

Mit

nmcli device wifi show-password

Nmcli wifi qrcode.png

localhost:~ # nmcli dev wifi list
IN-USE  BSSID              SSID      MODE   CHAN  RATE      SIGNAL  BARS  SECURITY 
*       18:F4:6A:XX:XX:XX  RIDEN_NM  Infra  1     0 Mbit/s  0       ____  --       
localhost:~ # 


localhost:~ # nmcli dev show wlan0
GENERAL.DEVICE:                         wlan0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         18:F4:6A:XX:XX:XX
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     RIDEN_NM
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/8
IP4.ADDRESS[1]:                         192.168.1.254/24
IP4.GATEWAY:                            192.168.178.14
IP4.ROUTE[1]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                           dst = 192.168.178.14/32, nh = 0.0.0.0, mt = 20600
IP4.ROUTE[3]:                           dst = 0.0.0.0/0, nh = 192.168.178.14, mt = 20600
IP6.GATEWAY:                            --


Mit

nmcli con up RIDEN_NM

und

nmcli con down RIDEN_NM

kann man den AP an- und ausschalten.

Um noch Einfluss auf die Konfiguration zu nehmen ist die Kenntnis aller nmcli Optionen hilfreich. Im Zweifel kann man in der Manualpage von nmcli die genaue Syntax, bzw. die Funktion eines Befehls in 'mna nmcli' nachschlagen.

nmcli ist hierarchisch aufgebaut. Das heiszt man hangelt sich Stufe fuer Stufem aehnlich dem Datei-Verzeichnisbaum, zum gesuchten Parameter.

Um das besser zu erkennen, habe ich die Bereiche in den Kommandos von nmcli wirken einmal hervorgehoben.

  • help kann hinter jedes Kommando angehaengt werden, um weitere Optionen zu erkennen.
  • general {status | hostname | permissions | logging} genereller Status/Operationen
  • networking {on | off | connectivity} umfassende Netzwerkeinstellungen
  • radio {all | wifi | wwan} wireless-Schalter
  • connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} alle (Netzwerk-)Verbindungen handhaben
  • device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} alle (Netzwerk-)Geraete handhaben
  • agent {secret | polkit | all} Networkmanager als Secret-/Polkit-Agent
  • monitor siehe auch nmcli connection monitor and nmcli device monitor


nmcli accepts abbreviations, as long as they are a unique prefix in the set of possible options. As new options get added, these abbreviations are not guaranteed to stay unique. For scripting and long term compatibility it is therefore strongly advised to spell out the full option names.

Das heiszt fuer die o.g. Kommandos, dasz sie sich abkuerzen lassen. Im extremsten Fall zu:

  • nmcli h
  • nmcli g
  • nmcli n
  • nmcli r
  • nmcli c
  • nmcli d
  • nmcli a
  • nmcli m

Aber auch nmcli con oder nmcli dev sind oft anzutreffen.