WLAN: Unterschied zwischen den Versionen
Boenki (Diskussion | Beiträge) formulierung und typos |
Boenki (Diskussion | Beiträge) K typo |
||
Zeile 153: | Zeile 153: | ||
<nowiki>* = bezieht sich auf die Nutzung des Tools ====>"ifplugd"</nowiki> | <nowiki>* = bezieht sich auf die Nutzung des Tools ====>"ifplugd"</nowiki> | ||
Ein weiteres Kriterium kann sein, ob direkt nach dem Booten eine WLan-Verbindung bestehen soll um z.B. NFS/Samba-Freigaben zu mounten oder Dienste anzubieten ohne | Ein weiteres Kriterium kann sein, ob direkt nach dem Booten eine WLan-Verbindung bestehen soll um z.B. NFS/Samba-Freigaben zu mounten oder Dienste anzubieten ohne dass ein User angemeldet ist. | ||
Legende:<br> | Legende:<br> | ||
Zeile 184: | Zeile 184: | ||
|} | |} | ||
<nowiki>* = eine kabelgebundene Ethernet-Verbindung ist nach dem Booten möglich, aber WLan-Verbindungen erfordern | <nowiki>* = eine kabelgebundene Ethernet-Verbindung ist nach dem Booten möglich, aber WLan-Verbindungen erfordern dass ein User angemeldet ist und ein Windowmanager läuft, da die Authentifizierungs-Daten aus dem Gnome-Keyring oder bei KDE über den kwallet-Schlüsselring benötigt werden.</nowiki> | ||
== Konzepte == | == Konzepte == |
Version vom 21. April 2008, 19:19 Uhr
(W)LAN und Arch Linux
Methoden der Authentifizierung - welches Tool für was?
Dieser Artikel beschreibt Möglichkeiten, sich teils automatisiert zu auswählbaren Netzwerken zu verbinden und diese dann zu nutzen. Hauptaugenmerk liegt dabei auf kabellosen WLAN-Verbindungen, aber etliche Konzepte/Tools lassen sich auch für kabelgebundene Verbindungen nutzen, teils gleichzeitig oder im Wechsel.
Überblick
Es wird in diesem Artikel davon ausgegangen, dass die Wireless-Netzkarte schon erkannt ist, das Modul(Treiber) für die Karte also geladen ist. Nützliche Befehle um das zu erkennen sind (als root ausführen):
ifconfig -a
zeigt alle Netzwerkgeräte
iwconfig
zeigt auch alle Netzwerkgeräte, prüft aber darauf, welches mit den kabellosen Erweiterungen (wireless extensions) umgehen kann, also wlan-fähig ist.
Wichtig zu wissen ist, welchen Namen die WLAN-Karte hat. Gebräuchlich sind z.B. wlan0, eth1, ath0 (üblich bei Atheros Chips), ra0 (üblich bei RaLink Chips). Die Nummern hinter den Textbezeichnern können varieren. Ich gehe in diesem Artikel von meiner WLAN-Cardbus-Karte aus, welche den Device-Namen ath0 hat. Ihr müßt das an euren Kartenbezeichner anpassen.
iwlist ath0 scan
Scannt die momentan erreichbaren WLAN-Netze bzw. AccessPoints.
Was wir jetzt wollen ist, uns kabellos mit einer Gegenstelle zu verbinden und über diese Verbindung den Netzwerkverkehr (hier TCP/IP) zu transportieren. Wichtig dabei: Es handelt sich um zwei separate Vorgänge.
Die Verbindung zu einer Gegenstelle herzustellen ist vergleichbar bei einer kabelgebundenen Verbindung mit dem Einstecken des Kabels in einen Hub/Switch. Ohne diese physikalische Teilnahme am LAN kann auf der logischen (Software)-Ebene kein Netzwerkprotokoll transportiert werden (hier TCP/IP, z.B. eine IP-Adresse beziehen).
Um nun kabellos diese "physikalische" Verbindung (den "Link") aufzubauen gibt es eigene Befehle und Konzepte, die sich aber je nach Art dieser Verbindung unterscheiden.Das Medium Funkübertragung bringt es mit sich, dass wir nicht bestimmen können - im Gegensatz zur kabelgebundenen Verbindung - wer ausschließlich unsere Daten bekommt bzw. von wem wir diese erhalten. Ähnlich wie Radio werden Signale in den Äther verschickt und jeder mit einem geeigneten Empfänger kann diese Daten nutzen.In der Regel bestimmt unsere Gegenstelle (meist ein AccessPoint), wie wir die Verbindung dahin aufbauen können. Meist gebraucht dabei sind:
Open (Offen)
Die Gegenstelle verlangt keinerlei Authentifizierung (Paßwort o.ä.), die Übertragung der Daten geschieht unverschlüsselt.
WEP
Die Gegenstelle verlangt ein Paßwort und die Daten werden verschlüsselt übertragen. Diese Art der Übertragung ist mittlerweile als sehr unsicher einzustufen, da durch Mithören der Funkdaten sehr einfach der Schlüssel (das Paßwort) errechenbar ist.
WPA/PSK
Die Gegenstelle verlangt ein Paßwort und die Daten werden verschlüsselt übertragen. Diese Art der Verschlüsselung macht es "Mithörern" wesentlich schwerer bis nahezu unmöglich, anhand der mitgehörten Daten den Schlüssel zu errechnen. Es ist die im Privatbereich bevorzugte Methode der Funkdaten-Verschlüsselung.
Welches Wlan-Konzept bei ArchLinux eignet sich für welche Übertragung:
rc.conf | |||
Netzwerk-Profile | |||
wpa_supplicant | |||
Networkmanager |
Weiterhin ist wichtig bei der Suche nach der geeigneten Methode zu wissen: Befinde ich mich immer/meist an einer Stelle (Zuhause oder Zuhause/Büro) oder bin ich oft/meist mobil in unterschiedlichen Netzen unterwegs ("road warrior"). Verbinde ich mich also meist zu festen, bekannten Netzwerken oder bewege ich mich oft in "unbekanntem" Gebiet (Hot-Spots, Service). Für die nachfolgend vorgestellten Konzepte ist es dabei auch meist unerheblich, ob die Verbindung kabelgebunden (Ethernet) oder kabellos (WLan) geschieht. Oder beides. Sowohl Ethernet als auch WLan können von dem einen oder anderen Konzept profitieren.
Legende:
Fest = immer die gleiche Verbindung zu EINER Gegenstelle
Mehrere = verschiedene Verbindungen wählbar, diese sind aber vordefiniert.
Mobil = verschiedene Verbindungen, die auch zeitnah erstellt werden können.
* = es gibt Einschränkungen
rc.conf | |||
Netzwerk-Profile | |||
wpa_supplicant | |||
Networkmanager |
*¹ = bezieht sich auf das händische Editieren einer Konfig-Datei
*² = bezieht sich auf das Tool ====>"wpa_gui"
Ein weiteres Kriterium für die bevorzugte Methode ist, ob das System selbständig prüfen soll, ob sich eine Netzwerkverbindung geändert hat und ggf. daraufhin bestimmte Aktionen auslösen soll. Oder ob diese Aufgabe der jeweilige Benutzer entscheiden will/muß.
Das kann z.B. der Wechsel von kabelgebundener Verbindung (Ethernet) zu WLan sein (Notebook aus der Docking-Station genommen). Oder ob per WLan automatisch eine Verbindung aufgebaut wird sobald eine bekannte Funkzelle gefunden wird.
Legende:
* = es gibt Einschränkungen
rc.conf | ||
Netzwerk-Profile | ||
wpa_supplicant | ||
Networkmanager |
* = bezieht sich auf die Nutzung des Tools ====>"ifplugd"
Ein weiteres Kriterium kann sein, ob direkt nach dem Booten eine WLan-Verbindung bestehen soll um z.B. NFS/Samba-Freigaben zu mounten oder Dienste anzubieten ohne dass ein User angemeldet ist.
Legende:
* = es gibt Einschränkungen
rc.conf | ||
Netzwerk-Profile | ||
wpa_supplicant | ||
Networkmanager |
* = eine kabelgebundene Ethernet-Verbindung ist nach dem Booten möglich, aber WLan-Verbindungen erfordern dass ein User angemeldet ist und ein Windowmanager läuft, da die Authentifizierungs-Daten aus dem Gnome-Keyring oder bei KDE über den kwallet-Schlüsselring benötigt werden.
Konzepte
rc.conf (Arch Linux WLan Einstellungen)
Diese Methode ist am geeignetsten, um sich immer zu einer vorgegebenen Gegenstelle zu verbinden, wobei diese Verbindung unverschlüsselt oder allerhöchstens durch WEP abgesichert ist.
Dazu wird das Netzdevice in der Datei /etc/rc.conf bekannt gemacht.
(Hier anhand meines Devices ath0)
Für eine dynamische IP-Vergabe, DHCP-Server im Netz:
ath0="dhcp"
Für eine statische IP:
ath0="ath0 192.168.1.100 ... "
Im Netzwerk-Bootscript bei Arch Linux gibt es einen Teil, der kabellose Netzwerkkarten besonders behandelt (den "Link" aufbaut). Das kabellose Device wird dabei genauso eingerichtet wie eine normale Ethernet-Karte. Über Zusatzeinstellungen in einer Extra-Datei /etc/conf.d/wireless wird dieses Device als WLan-Device eingerichtet.
Um sich also zum eigenen AccessPoint mit der Kennung(ESSID) "MyHome" zu verbinden und nach erfolgreicher Verbindung darüber eine IP dynamisch zugewiesen zu bekommen:
#/etc/rc.conf ath0="dhcp" INTERFACES=(lo eth0 '''ath0''') #/etc/conf.d/wireless wlan_ath0="ath0 essid MyHome" # Für eine WEP-Verbindung mit Paßwort: wlan_ath0="ath0 essid Myhome key 12345678" # bzw. der Schlüssel als Klartext: wlan_ath0="ath0 essid Myhome key s:klartextpasswort"
Testen und per Hand diese Verbindung aufbauen:
/etc/rc.d/network ifdown ath0 /etc/rc.d/network ifup ath0
Wenn alles funktioniert hat, dann sollte jetzt:
ifconfig ath0
die WLan-Karte als UP mit der zugewiesenen Ip-Adresse zeigen
route -n
sollte ein Default-Gateway (UG) mit der Destinantion 0.0.0.0 zeigen.
cat /etc/resolv.conf
sollte uns einen oder mehrere Nameserver zeigen.
ping www.google.de
sollte mit Antwortpaketen beantwortet werden.
Wenn es Probleme gibt:
Logdatei /var/log/everything.log auswerten
Siehe auch Wiki-Artikel Netzwerkprobleme
Netzwerk-Profile
Diese Methode erlaubt während des Bootvorgangs oder nachträglich das Wählen zwischen unterschiedlichen Netzwerkverbindungen (egal ob Ethernet oder Wlan). Hierbei kann für Wlan auch eine WPA-verschlüsselte Verbindung eingerichtet werde.
Für WPA wird gebraucht:
pacman -Sy wpa_supplicant
Die verschiedenen Profile liegen in /etc/network-profiles. Anfangs befindet sich nur eine Vorlage darin, die Datei template.
Anhand dieser Datei können jetzt unterschiedliche Profile erstellt werden. Profile können z.B. sein: ein Profil für Ethernet zuhause mit statischer IP-Adresse, eines für Ethernet mit DHCP für unterwegs, eines für die WLAN-Verbindung (verschlüsselt WPA), usw.
Ich stelle hier zwei Profile vor, um das Prinzip deutlich zu machen. Kommentare zu den einzelnen Parametern finden sich in der template Datei.
- Profil für Ethernet mit statischer IP-Adresse
- WPA-verschlüsselte kabellose Verbindung
#/etc/network-profiles/home-lan # Profil: LAN-Zuhause mit statischer IP # DESCRIPTION="Home LAN " # Network Settings INTERFACE=eth0 HOSTNAME=myhost # Interface Settings (use IFOPTS="dhcp" for DHCP) IFOPTS="192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255" GATEWAY=192.168.1.1 # DNS Settings (optional) DOMAIN=local.lan DNS1=192.168.1.1 DNS2=
#/etc/network-profiles/uni-wlan # Profil: Uni-Zugang mit WPA-Verschluesselung, IP ueber DHCP # DESCRIPTION="Uni WLAN" # Network Settings INTERFACE=ath0 HOSTNAME=myhost # Interface Settings (use IFOPTS="dhcp" for DHCP) IFOPTS="dhcp" # DNS Settings (optional) #DOMAIN=localdomain #DNS1=192.168.0.1 #DNS2= # Wireless Settings (optional) ESSID=UniESSID #KEY= #IWOPTS="mode managed essid $ESSID channel 11 key s:$KEY" WIFI_INTERFACE=ath0 #WIFI_WAIT=5 # seconds to wait for the wireless card to # associate before bringing the interface up USEWPA="yes" # start wpa_supplicant with the profile WPAOPTS="-D wext" # use "" for normal operation or specify additional # options (eg, "-D ipw") # see /etc/wpa_supplicant.conf for configuration #AUTOWPA="yes" # automatically configure WPA #PASSKEY="" # wpa passkey/phrase. for use with AUTOWPA
Bei diesem letzten Beispiel kommt nun erstmals das Tool wpa_supplicant mit ins Spiel, welches die Authentifizierung und Verschlüsselung mit WPA/PSK ermöglicht.
Durch den Parameter USEWPA=“yes“ ermöglichen wir das. Dieses Profil nutzt nun den Parameter ESSID um in der wpa_supplicant Konfigdatei /etc/wpa_supplicant.conf einen zu dieser ESSID passenden Eintrag zu finden.
Zur Konfiguration von wpa_supplicant siehe den entsprechenden Abschnitt in diesem Artikel.
Hinweis: die Parameter KEY= und IWOPTS= in den Profil-Dateien dienen bei einer Wlan-Verbindung den Angaben für offenes oder mit WEP-verschlüsselter Authentifizierung.
Wie können wir jetzt mit diesen Profilen arbeiten?
Voraussetzung dafür sind erstmal entsprechende Einträge in der /etc/rc.conf. Hinweis: da wir die Netzwerk-Verbindungen komplett durch die Profiles regeln wollen/können brauchen wir in der rc.conf keinen Einträge für Ethernet- oder WLAN-Devices. Bis auf loopback Device (lo) können wir alles auskommentieren bzw. löschen.
#/etc/rc.conf lo="lo 127.0.0.1" INTERFACES=(lo) # NET_PROFILES=(menu)
Durch den Parameter NET_PROFILES wird die Profilwahl gesteuert. Wir haben hier folgende Optionen:
- menu = bietet beim Bootvorgang ein Auswahl-Menü an. Dieses Menü wartet ca. 5 Sekunden auf eine Auswahl oder bootet danach das Profil, dessen Dateiname lexikalisch an erster Stelle kommt.
Hinweis: Das automatische Menu-ANGEBOT FUNKTIONIERT NICHT, wenn "network" als Daemon in der rc.conf mit einem vorangestellten "@" während des Bootvorgangs in den Hintergrund verbannt wurde!
- profildatei_name = Durch Angabe eines Profilnamens (z.B. obiges home-lan)
Eine weitere Möglichkeit ist, in der rc.conf den Parameter NET_PROFILES wegzulassen und das gewünschte Profil als Bootparameter anzugeben bzw. in den Bootmanager einzutragen. Dieser Parameter heißt NET=profildatei_name
Wir können auch nach dem Booten erstmal ganz ohne Netzwerk booten (also kein NET_PROFILES in der rc.conf und kein Bootparameter NET=), und dann später das gewünschte Profil per Hand aktivieren.
Dieses nachträgliche Aktivieren oder auch das spätere Wechseln der Profile außerhalb des Bootvorgangs geschieht durch das Tool netcfg.
netcfg --menu # ruft das Menü auf netcfg profil_name # startet das Profil profil_name netcfg --stopall # stoppt alle Netzwerkverbindungen # netcfg -h gibt noch weitere Optionen
Hinweis: bei Verwendung der Netzwerk-Profile kann immer nur ein Device aktiv sein, da jedes Profil genau ein Device regelt. Wenn analog unseren Beispielen oben Home-Lan aktiv ist und zu Uni-Wlan gewechselt wird, dann wird die Verbindung der aktiven Profiles beendet und das Device deaktiviert.
wpa_supplicant
wpa_supplicant ist zum einen eine Umgebung um verschlüsselte Wlan-Verbindungen zu ermöglichen, zum anderen ein Tool um diese Anmeldung auch durchführen zu können.
wpa_supplicant kommt mit den gebräuchlichsten Authentifizierungs-Standards zurecht.
wpa_supplicant wird installiert mit:
pacman -Sy wpa_supplicant
Die sehr ausführlich kommentierte Konfigurations-Datei liegt in /etc/wpa_supplicant.conf.
Davon sollte man sich erstmal eine Sicherung machen um dann seine eigenen Netzwerke einzutragen.
cp /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf.org
Unterhalb von „#example block“ sind jetzt Beispiel-Netze aufgeführt. Diese kann man als Grundlage für seine eigene Umgebung verwenden, sollte dann diese Beispiele aber löschen.
Hier soll ein Beispiel gezeigt werden für ein WLAN-Netz, welches mit WPA-PSK verschlüsselt ist.
Den Netzwerk-Namen „UniESSID“ und das Passwort anpassen.
network={ ssid="UniESSID" key_mgmt=WPA-PSK proto=WPA pairwise=TKIP group=TKIP psk="klartext-passwort" }
Für jedes verschlüsselte WLAN, mit dem man sich verbinden will, muss nun solch ein network Block in dieser Konfigdatei existieren. Man kann diese (als root) schnell mit einem Editor (copy&paste) einfügen bzw. ändern. Es gibt aber auch eine grafische Oberfläche. Dazu später mehr.
Starten als Daemon und Bedienung
Momentan starten wir alle Tools testweise per Hand im Vordergrund um uns vertraut zu machen. Wir brauchen zwei Textkonsolen, in denen wir beidemal root sind. Ich gehe hier wieder von meinem WLAN-Device ath0 aus.
wpa_supplicant:
ifconfig ath0 up wpa_supplicant -iath0 -c/etc/wpa_supplicant.conf -d
Das startet wpa_supplicant im Vordergrund im Debug-Modus (-d)
In der zweiten Konsole bedienen wir jetzt den Daemon:
wpa_cli
gibt uns eine Bedienungsumgebung, in der wir Netze suchen, verbinden, trennen und auch neue Netze in die Konfig-Datei eintragen können. Die Bedienung ist typisch spartanisch, aber es funktioniert. Bei den meisten Befehlen müssen nur die ersten Buchstaben eingegeben werden, wenn es mehrere Alternativen gibt bekommen wir das mitgeteilt.
help – zeigt uns alle möglichen Befehle scan – scannt nach verfügbaren Netzwerken scan_result – zeigt uns das Ergebniss des Scans (scan_r geht auch) list – zeigt uns unsere definierten Netzwerke aus der wpa_supplicant.conf select <nr> - wählt und aktiviert das bei list gezeigte Netzwerk mit der Nummer <nr>, select <ESSID> geht auch disconnect – trennt die Verbindung reassociate – nimmt die momentan gewählte Verbindung wieder auf. reconfigure – liest die Konfigdatei /etc/wpa_supplicant.conf neu ein. quit – beendet das wpa_cli Tool.
Neben dem Interface lasssen sich die wpa_cli Kommandos auch direkt aufrufen, z.B.
wpa_cli select 0
Wenn mit obigen Kommandos die verschlüsselte Verbindung nun erfolgreich war (wpa_cli meldet uns das mit: CTRL-EVENT-CONNECTED, das Status-Fenster des Daemons mit: WPA: Key negotiation completed with), dann ist das erst die halbe Miete.
Wie einleitend angeführt sind WLAN-Authentifizierung/Verbindung und TCP/IP zwei verschiedene Paar Schuhe. Um jetzt z.B. über einen WLAN-Router ins Internet zu kommen muss unser WLAN-Device noch eine IP bekommen und Routen und Nameserver angegeben werden.
Wenn der Router DHCP anbietet reduziert sich dieser Aufwand auf ein simples:
dhcpcd ath0
Um die Nutzung von wpa_supplicant zu automatisieren bietet sich an:
#/etc/rc.local wpa_supplicant -iath0 -c/etc/wpa_supplicant.conf -Dwext
Nach dem Boot wird der Daemon so automatisch gestartet und versucht sich automatisch mit dem am besten erreichbarem WLAN zu authentifizieren, welches entweder „offen“ ist oder in der Konfigdatei definiert ist.
Die GUI zu wpa_supplicant
Mit:
pacman -S wpa_supplicant_gui
installieren wir das Tool.
Gestartet wird es mit:
wpa_gui
Um wpa_gui auch als Nicht-Root benutzen zu können:
- start mittels kdesu/gksu und Eingabe des Root-Paßworts
- Über sudo und freischalten dieses Programms in /etc/sudoers
Mit dieser GUI kann sich komfortabel zu jedem beliebigen WLAN verbunden werden, Netze und Einstellungen hinzugefügt, bearbeitet werden u.v.m.
Lediglich die TCP/IP Netzwerkeinstellungen müssen ggf. von Hand jeweils angepasst werden.
(NB: hier muss sicher noch einiges ausführlicher/besser dargestellt werden.)
Networkmanager
Die Installation und Konfiguration von NetworkManager wird hier beschrieben.
Networkmanager ist ein sehr interessantes Konzept. Es kümmert sich um die komplette Netzanbindung des Rechners (v.a. interessant für Laptops in wechselnden Umgebungen).
- Es wird versucht, immer eine Netzverbindung aufrechtzuhalten bzw. aufzubauen.
- Die Reihenfolge dabei ist:
- Kabelgebundene Verbindung (Ethernet) vor WLan wegen der Geschwindigkeit.
- Bei WLan wird nach bekannten Netzen gesucht und damit verbunden, ansonsten wird versucht sich mit offenen Netzen zu verbinden.
- Wenn momentan keine WLan-Verbindung aufgebaut werden kann, wird permanent nach neuen Netzen gescannt.
Der größte Nachteil von Networkmanager ist, dass nach/während des Bootvorgangs maximal eine kabelgebundene Ethernet-Verbindung (mit DHCP) zur Verfügung steht. Eine andere Verbindung (v.a. verschlüsseltes WLan) steht erst nach Einloggen eines Users und dem Starten eines der FrontEnds(knetworkmanager, gnome-network-manager) zur Verfügung, da Verbindungsdaten (Essid, Paßwörter) per User geladen werden.
Wer also Networkmanager z.B. mit WLan nutzen möchte kann z.Zt. keine Netzwerk-Shares (nfs, samba) in der /etc/fstab beim Booten einbinden. Nach dem Start des Frontends durch den User ist das aber durch den Dispatcher (siehe weiter unten) sehr wohl möglich.
Nützliches rund um den Networkmanager
Mit nm-tool kann man sich den Status der momentanen Verbindung und der vom Networkmanager verwalteten Devices anschauen.
Das Start/Stop-Skript in /etc/rc.d bietet die Optionen alle Verbindungen zeitweilig zu stoppen und wieder aufzunehmen.
- /etc/rc.d/networkmanager sleep trennt alle aktiven Verbindungen (die Devices werden auf Down gesetzt)
- /etc/rc.d/networkmanager wake nimmt die Verbindung wieder auf bzw. initiert das Suchen nach einer Verbindung neu.
Das kann man sich z.B. zu Nutze machen, wenn man nach dem Booten/Einloggen erstmal kein Netzwerk haben, sondern es später zuschalten möchte. Dazu kann man folgendes konfigurieren:
#/etc/rc.local /etc/rc.d/networkmanager sleep
Zum Aktivieren des Networkmanagers kann dann o.a. Startskript-Befehl mit wake genutzt werden. Oder im grafischen Frontend die Option "In Online-Modus wechseln".
Ein wenig bekannter Zusatz ist der Networkmanager-Dispatcher. Durch Start dieses Daemons kann der Networkmanager Vorgänge auslösen, je nachdem ob ein Device (eth0, ath0, wlan0) UP oder DOWN gemeldet wird. Also z.B. auf das An-/Ab-Stöpseln des Ethernet-Kabels reagieren oder ob eine WLan-Verbindung aufgebaut wurde.
Damit ist es z.B. möglich, nach dem Start NFS-Freigaben einzumounten - auch bei WLan-Verbindungen.
Aktiviert wird der Dispatcher so:
#/etc/rc.conf DAEMONS=(... dhcdbd networkmanager networkmanager-dispatcher ...)
Skripte die, je nachdem ob ein Device UP oder DOWN ist, abgearbeitet werden, liegen in
/etc/NetworkManager/dispatcher.d
Nach der Installation liegen dort bereits zwei Skripte:
- netfs
- ntpdate
Das Erste kümmert sich um die Einbindung aller Arten von Netzwerk-Mounts, die in der Datei /etc/fstab definiert sind. Es startet/stoppt dazu den ArchLinux-Mechanismus um die fstab-Datei gezielt nach Netzwerk-Mounts zu durchsuchen.
Das zweite Skript würde die Uhrzeit anhand eines NTP(Zeit)-Servers angleichen, sofern das Paket ntp installiert ist.
Eigene Skripte könnten z.B. so aufgebaut sein:
#/etc/NetworkManager/dispatcher.d/1-test #!/bin/sh # arping -c 3 192.168.1.2 | grep 00:12:8B:38:A0:74 > /dev/null AT_HOME_LAN=$? nm-tool | grep UniEssid > /dev/null AT_HOME_WLAN=$? case "$2" in up) if [ $AT_HOME_LAN == 0 ]; then echo "Home LAN verfügbar" >> /tmp/t.log else echo "Home LAN nicht verfügbar" >> /tmp/t.log fi if [ $AT_HOME_WLAN == 0 ]; then echo "Home WLAN verfügbar" >> /tmp/t.log else echo "Home WLAN nicht verfügbar" >> /tmp/t.log fi ;; down) ;; esac
Dazu sollte installiert sein:
pacman -S arping
Als IP-Adresse setzt man die ein, welche zu dem Rechner gehört auf dessen Verfügbarkeit man prüfen möchte. Damit jetzt nicht ein beliebiger Rechner mit dieser IP-Adresse irrtümlich für den Rechner zuhause gehalten wird, prüft man auch auf die MAC-Adresse. Das ist diese zwölfstellige Hexadezimal-Zahl, die durch Dopelpunkte getrennt wird.
Die MAC-Adresse eines Rechners kann man z.B. so rauskriegen:
ping -c 5 <ip_addr_des_testrechners> arp -n
Die Ausgabe des Arp-Caches zeigt uns nun auch die MAC/HW-Adresse, die wir zum Identifizieren "unseres" Rechners nehmen können.
Ob "unser" WLAN verfügbar ist können wir leicht testen, indem wir nach der Essid in der Ausgabe von nm-tool suchen. Das Beispiel UniEssid durch die eigene ersetzen, bei Verwendung von Leerstellen in der Essid mit Anführungsstriche (") umhüllen.
Das Skript macht jetzt nicht mehr als beim Zustandekommen einer Verbindung zu prüfen, ob LAN und WLAN "zuhause" sind und schreibt dieses Ergebniss in ein Logfile /tmp/t.log.
Mit ein bisschen Shellprogrammierung-Kenntnisse kann das aber sehr leicht an eigene Bedürfnisse angepasst werden. Noch ein Hinweis: Networkmanager übergibt im Parameter $1 den Interface-Namen (z.B. eth0), im zweiten den Zustand (up, down). Damit ließe sich gezielt Aktionen basierend auf der Art der Netzwerkverbindung und dem Zustand erstellen.
Sonstige hilfreiche Tools
In Arbeit
- ifplugd
- wlassistant
- wifi-radar