Netctl: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Dings (Diskussion | Beiträge)
Netctl, Vorlagen für die Repositorien müssten da noch irgendwie reingesohlert werden und die BinnenMajuskeln sind zwar ein schönes Wort, aber da gibt's sicher was handlicheres...
 
Henrikx (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(19 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Netctl ist ein neues Arch Projekt, das dafür vorgesehen ist [[netcfg]] zu ersetzen. Es soll als das zukünftige CLI-basierte Netzwerk Management in Arch Linux betrachtet werden.
{{SEITENTITEL:netctl}}
netctl ist ein Programm zur Konfiguration und Verwaltung von Netzwerkprofilen. Das bisher genutzte netcfg wird durch netctl ersetzt. Alle Installationen, die netcfg verwenden, sollten auf netctl umgestellt werden.


==Installation==
{{Installation|repo=core|paket=netctl}}
Das {{Paket|netctl}} Paket ist in [[Official Repositories#[core]|[core]]] erhältlich. Das Installieren von netctl ersetzt netcfg.
Optionale Abhängigkeiten für netctl in der Version 0.7 beinhalten:


*{{Paket|dialog}}, für menubasierte WIFI Unterstützung ({{ic|wifi-menu}})
Es liegen Manpages in hoher Qualität vor. Nutzern wird daher vor der Nutzung von netctl die Lektüre der Manpages {{ic|netctl}}, {{ic|netctl.profile}} und {{ic|netctl.special}} empfohlen.
*{{Paket|dhclient}}, für DHCP Unterstützung
*{{Paket|dhcpcd}}, für DHCP Unterstützung (Anstelle von dhclient)
*{{Paket|wpa_supplicant}}, für wireless Netzwerkunterstützung
*{{Paket|ifplugd}}, für automatische Kabelverbingungen via {{ic|netctl-ifplugd}}
*{{Paket|ifenslaved}}, für Bond Verbindungen
*{{Paket|bridge-utils}}, für Bridge Verbindungen
*{{Paket|ppp}}, für pppoe Verbindung


==Empfohlene Lektüre==
Achtung: es kann (ggf. auf älteren Arch-Installationen) sein, dass auch ohne Installation des netctl-Pakets bereits Teile davon verfügbar sind, beispielsweise wifi-menu. Es kann ferner sein, dass das netctl-paket sich nicht wie angegeben installieren lässt, weil es offenbar mit dem netcfg-Paket kollidiert. Es empfiehlt sich, das netcfg-Paket zunächst manuell zu entfernen, bevor man netctl installiert, natürlich ggf. nach Sicherung eventueller Konfigurationsdateien, die (bzw. deren Inhalt) man weiterverwenden möchte.
Es liegen Manpages in hoher Qualität vor. Nutzern wird daher vor der Nutztung von netctl die Lektüre der folgenden Manpages empfohlen:
*netctl
*netctl.profile
*netctl.special


==Konfiguration==
== Konfiguration ==
Beispielkonfigurationen die den Nutzer bei der Konfiguration der Netzwerkverbindung unterstützen sind in {{ic|/etc/netctl/examples/}} zu finden. Um ein Beispielprofil zu nutzen, kopiert man es einfach von {{ic|/etc/netctl/examples/<profile>}} nach {{ic|/etc/netctl/<profile>}} und passt es den eigenen Bedürfnissen an. Für wireless Einstellungen kann man mit {{ic|wifi-menu -o}} ein Profil in {{ic|/etc/netctl/}} erstellen.


{{ic|netctl}} kann genutzt werden um den Zustand network profile manager betreffender systemd services zu prüfen und zu kontrollieren. Beispielkonfigurationen die den Nutzer bei der Konfiguration der Netzwerkverbindung unterstützen sind in {{ic|/etc/netctl/examples/}} zufinden. Die gängigen Konfigurationen beinhalten:
{{hinweis|die Namen der Profile dürfen keine Bindestriche enthalten!}}
*ethernet-dhcp
*ethernet-static
*wireless-wpa
*wireless-wpa-static


Um ein Beispielprofil zu nutzen kopiert man es einfach von {{ic|/etc/netctl/examples/<profile>}} nach {{ic|/etc/netctl/<profile>}} und passt es den eigenen Bedürfnissen an.
Hat man das Profil bearbeitet, prüft man dessen Funktionalität indem man mittels {{ic|netctl start <profile>}} eine Verbindung herstellt. Schlägt dieses Kommando fehl, nutzt man {{ic|journalctl -xn}} und {{ic|netctl status <profile>}}, um eine Beschreibung des Problems zu erhalten. Nach dem Korrigieren der fehlerhaften Konfiguration erfolgt dann ein weiterer Test in beschriebener Art und Weise.
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/my-wireless-wpa


Hat man sein Profil erstellt, prüft man dessen Funktionalität indem man eine Verbindung herstellt:
Startet das Profil fehlerfrei, kann man es aktivieren, indem man {{ic|netctl enable <profile>}} verwendet. Hiermit wird der entsprechende [[ln|Symlink]] für das Profil erstellt, so dass [[systemd]] diese Netzwerkverbindung beim nächsten Boot-Vorgang wiederherstellt. Das ist die einfachste Art, mit netctl eine Netzwerkverbindung aufzubauen.
# netctl start <profile>


Schlägt dieses Kommando fehl, nutzt man {{ic|journalctl -xn}} und {{ic|netctl status <profile>}} um eine tifergründige Beschreibung des Problems zu erhalten. Nach dem Korrigieren der fehlerhaften Konfiguration erfolgt dann ein weiterer Test in beschriebener Art und Weise.
Besteht die Notwendigkeit ein gegenwärtig aktiviertes Profil zu ändern, muss man {{ic|netctl reenable <profile>}} absetzen, um die Änderungen wirksam zu machen.


Startet das Profil fehlerfrei, kann man es aktivieren {{ic|enabled}} indem man {{ic|netctl enable <profile>}} verwendet. Hiermit wird der entsprechende symlink für das Profil erstellt, der dann von {{ic|netctl-auto@.service}} genutzt wird.
{{hinweis|der Aufruf von netctl erfordert root-Rechte. Wer das als normaler Benutzer machen will, kann [[sudo]] konfigurieren und benutzen.}}


{{Hinweis| Der systemd service {{ic|netctl-auto@<interface>.service}} muss aktiviert werden damit automatische wireless Verbindungen beim Booten funktionieren .}}
===Tipps===
'''Kabelbasierte Verbindungen''' (eth0) haben das Problem, dass die Verbindung durch Herausziehen des Kabels notgedrungen abbricht, beim Hereinstecken des Kabels aber idealerweise wieder zustandekommen soll. Diese Aufgabe löst man durch den zusätzlichen Dämon: ''ifplugd'', der manuell mit [[pacman]] installiert werden muss. Hat man das getan, so kann mit {{ic|systemctl enable netctl-ifplugd@<interface>.service}} ein Symlink installiert werden, der zu Netzwerkverbindungen führt, die das Herausziehen und Hineinstecken des Kabels erkennen.


{{Hinweis| Besteht die Notwendigkeit ein gegenwärtig aktiviertes Profil zu ändern, muss man {{ic|netctl reenable <profile>}} absetzen, um die Änderungen wirksam zu machen.}}
Ferner möchte man oft kabelbasierten Verbindungen den '''Vorrang''' gegenüber WLAN-Verbindungen geben. Zu diesem Zweck kann in den Profildateien der Verbindungen je eine Priorität angegeben werden. Die implizite default-Priorität aller Verbindungen ist 0. Definiert man mit z.B. Priority=10 explizit eine höhere, so wird diese Verbindung gegenüber allen niedrigeren bevorzugt. Je höher die Priorität, umso größer die Bevorzugung. Die Reihenfolge wird aber nur beim Start des Dämons ausgewertet, d.h. die Verbindung wird nicht automatisch gewechselt, wenn später eine höher priorisierte dazukommt o.ä.


===Migration von netcfg zu netctl===
Damit automatische '''WLAN-Verbindungen''' beim Booten funktionieren, ist der zusätzliche Dämon ''wpa_actiond'' manuell zu installieren. Danach ist ein Symlink wie folgt anzulegen: {{ic|systemctl enable netctl-auto@<interface>.service}}.


{{ic|netctl}} legt Profile in {{ic|/etc/netctl}} ab, ''nicht'' in {{ic|/etc/network.d}} wie ({{ic|netcfg}}.
=== Migration von netcfg zu netctl ===
{{ic|netctl}} legt Profile in {{ic|/etc/netctl}} ab, ''nicht'' in {{ic|/etc/network.d}} wie {{ic|netcfg}}.


Um von netcfg zu migrieren sind wenigstens folgende Schritte nötig:
Um von netcfg zu migrieren sind folgende Schritte nötig:
*Verschieben der Profile ins neue Verzeichnis.
 
*Variablen im Profil gemäss netctl.profile(5) umbenennen. (Die meisten wurden lediglich zu BinnenMajuskeln [CamelCase]. CONNECTION= wird zu Connection=).
* Verschieben der Profile ins neue Verzeichnis.
*Bei Interface- und anderen Variablen die nicht zwingend Anführungszeichen benötigen, diese Entfernen (hauptsächlich kosmetischer natur).
* Variablen im Profil gemäß netctl.profile(5) umbenennen. {{ic|1=CONNECTION=}} wird zum Beispiel zu {{ic|1=Connection=}}.
*{{ic|netctl enable <profile>}} für jedes Profil im alten NETWORKS array ausführen. 'last' funktioniert so nicht, siehe netctl.special(7).
* Bei Interface- und anderen Variablen die nicht zwingend Anführungszeichen benötigen, können sie entfernt werden.
*{{ic|netctl enable <profile>}} für jedes Profil im alten NETWORKS array ausführen. 'last' funktioniert so nicht, siehe [[Manpage]] netctl.special(7).
*{{ic|netctl list}} / {{ic|netctl start <profile>}} anstelle von netcfg-menu verwenden. Wifi-menu bleibt verfügbar.
*{{ic|netctl list}} / {{ic|netctl start <profile>}} anstelle von netcfg-menu verwenden. Wifi-menu bleibt verfügbar.


===Passwort Verschlüsselung (256-bit PSK)===
== Passwort-Verschlüsselung (256-bit PSK) ==
Damit das WLAN-Passwort dem Zugriff der Benutzer entzogen wird sind die Dateirechte der Profil Datei passend
{{ic|# chmod 600 /etc/netctl/config_file}} zu setzen.


Nutzer, die ihr Passwort ''nicht'' in ''plain text'' speichern wollen, haben die Möglichkeit 256-bit verschlüsseltes PSK zu generieren.
Nutzer, die ihr Passwort nicht im Klartext speichern wollen, haben die Möglichkeit einen 256-bit-verschlüsselten PSK aus der SSID und der Passphrase zu generieren und dieses in die Profile Datei einzutragen. Das dafür erforderliche Programm {{ic|wpa_passphrase}} wird mit dem Paket {{Paket|wpa_supplicant}} installiert. Anschließend wird der 256-bit-verschlüsselte PSK generiert:


Falls noch nicht geschehen, installiert man  {{Paket|wpa_actiond}} aus dem [[Official Repositories#&#91;core&#93;|&#91;core&#93;]] Repository mit hilfe von [[pacman]]
{{hc|$ wpa_passphrase netzwerkname passphrase|
  # pacman -S wpa_actiond
2=network={
 
   ssid="netzwerkname"
Anschliessend erstellt man das 256-bit verschlüsselte PSK mittels [[WPA_supplicant#Configuration_file|wpa_passphrase]]:
   #psk="passphrase"
{{hc|Usage: wpa_passphrase [ssid] [passphrase]|
   psk=64cf3ced850ecef391973esd1b301fc39437a6aa6c6a599d05354124578e04a
2=$ wpa_passphrase archlinux freenode|
  network={
   ssid="archlinux"
   #psk="freenode"
   psk=64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
}
}
{{Hinweis|Diese Information wird im Profil benötigt, also das terminal nicht schliessen.}}
}}
}}


In einem zweiten Terminalfenster kopiert man die Beispieldatei {{ic|wireless-wpa}} von {{ic|/etc/netctl/examples}} nach {{ic|/etc/netctl}}.
In einem zweiten Terminalfenster kopiert man die Beispieldatei {{ic|wireless-wpa}} von {{ic|/etc/netctl/examples}} nach {{ic|/etc/netctl}}. Nun öffnet man mit einem Texteditor {{ic|/etc/netctl/wireless-wpa}} und fügt den ''Encrypted Pre-shared Key'', der zuvor generiert wurde, in die {{ic|Key}}-Variable des Profils ein.
# cp /etc/netctl/examples/wireless-wpa /etc/netctl/wireless-wpa


Nun öffnet man mit einem Texteditor {{ic|/etc/netctl/wireless-wpa}} und fügt den ''Encrypted Pre-shared Key'', der zuvor generiert wurde, in die {ic|'''Key'''}} Variable des Profils ein.
Am Ende sollte das network Profil {{ic|wireless-wpa}} mit dem 256-bit-verschlüsselten PSK wie folgt aussehen:


Am Ende sollte das network Profil {{ic|wireless-wpa}} mit dem 256-bit verschlüsselten PSK wie folgt aussehen:
{{hc|/etc/netctl/wireless-wpa|2=
{{hc|/etc/netctl/wireless-wpa|2=
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Zeile 86: Zeile 66:
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a
}}
}}
{{Hinweis|1=Sicherstellen, dass man die '''special non-quoted rules''' für Key= wie am Ende von [https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile(5)] verwendet}}


Sicherstellen, dass man die {{ic|special non-quoted rules}} für {{ic|1=Key=}} wie am Ende von [https://github.com/joukewitteveen/netctl/blob/master/docs/netctl.profile.5.txt netctl.profile(5)] beschrieben verwendet.
== Weblinks ==
* [https://bbs.archlinux.org/viewtopic.php?id=157670 Offizielle Bekanntgabe] {{sprache|en}}
* [https://projects.archlinux.org/netctl.git/ Git-Quellen] {{sprache|en}}


==Support==
[[Kategorie:Netzwerk]]
Offizielle Bekanntgabe: https://bbs.archlinux.org/viewtopic.php?id=157670
[[en:netctl]]

Aktuelle Version vom 30. Juni 2017, 14:49 Uhr

netctl ist ein Programm zur Konfiguration und Verwaltung von Netzwerkprofilen. Das bisher genutzte netcfg wird durch netctl ersetzt. Alle Installationen, die netcfg verwenden, sollten auf netctl umgestellt werden.

Installation

Das Programm ist als netctl in core verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S netctl

Es liegen Manpages in hoher Qualität vor. Nutzern wird daher vor der Nutzung von netctl die Lektüre der Manpages netctl, netctl.profile und netctl.special empfohlen.

Achtung: es kann (ggf. auf älteren Arch-Installationen) sein, dass auch ohne Installation des netctl-Pakets bereits Teile davon verfügbar sind, beispielsweise wifi-menu. Es kann ferner sein, dass das netctl-paket sich nicht wie angegeben installieren lässt, weil es offenbar mit dem netcfg-Paket kollidiert. Es empfiehlt sich, das netcfg-Paket zunächst manuell zu entfernen, bevor man netctl installiert, natürlich ggf. nach Sicherung eventueller Konfigurationsdateien, die (bzw. deren Inhalt) man weiterverwenden möchte.

Konfiguration

Beispielkonfigurationen die den Nutzer bei der Konfiguration der Netzwerkverbindung unterstützen sind in /etc/netctl/examples/ zu finden. Um ein Beispielprofil zu nutzen, kopiert man es einfach von /etc/netctl/examples/<profile> nach /etc/netctl/<profile> und passt es den eigenen Bedürfnissen an. Für wireless Einstellungen kann man mit wifi-menu -o ein Profil in /etc/netctl/ erstellen.

Hinweis: die Namen der Profile dürfen keine Bindestriche enthalten!

Hat man das Profil bearbeitet, prüft man dessen Funktionalität indem man mittels netctl start <profile> eine Verbindung herstellt. Schlägt dieses Kommando fehl, nutzt man journalctl -xn und netctl status <profile>, um eine Beschreibung des Problems zu erhalten. Nach dem Korrigieren der fehlerhaften Konfiguration erfolgt dann ein weiterer Test in beschriebener Art und Weise.

Startet das Profil fehlerfrei, kann man es aktivieren, indem man netctl enable <profile> verwendet. Hiermit wird der entsprechende Symlink für das Profil erstellt, so dass systemd diese Netzwerkverbindung beim nächsten Boot-Vorgang wiederherstellt. Das ist die einfachste Art, mit netctl eine Netzwerkverbindung aufzubauen.

Besteht die Notwendigkeit ein gegenwärtig aktiviertes Profil zu ändern, muss man netctl reenable <profile> absetzen, um die Änderungen wirksam zu machen.

Hinweis: der Aufruf von netctl erfordert root-Rechte. Wer das als normaler Benutzer machen will, kann sudo konfigurieren und benutzen.

Tipps

Kabelbasierte Verbindungen (eth0) haben das Problem, dass die Verbindung durch Herausziehen des Kabels notgedrungen abbricht, beim Hereinstecken des Kabels aber idealerweise wieder zustandekommen soll. Diese Aufgabe löst man durch den zusätzlichen Dämon: ifplugd, der manuell mit pacman installiert werden muss. Hat man das getan, so kann mit systemctl enable netctl-ifplugd@<interface>.service ein Symlink installiert werden, der zu Netzwerkverbindungen führt, die das Herausziehen und Hineinstecken des Kabels erkennen.

Ferner möchte man oft kabelbasierten Verbindungen den Vorrang gegenüber WLAN-Verbindungen geben. Zu diesem Zweck kann in den Profildateien der Verbindungen je eine Priorität angegeben werden. Die implizite default-Priorität aller Verbindungen ist 0. Definiert man mit z.B. Priority=10 explizit eine höhere, so wird diese Verbindung gegenüber allen niedrigeren bevorzugt. Je höher die Priorität, umso größer die Bevorzugung. Die Reihenfolge wird aber nur beim Start des Dämons ausgewertet, d.h. die Verbindung wird nicht automatisch gewechselt, wenn später eine höher priorisierte dazukommt o.ä.

Damit automatische WLAN-Verbindungen beim Booten funktionieren, ist der zusätzliche Dämon wpa_actiond manuell zu installieren. Danach ist ein Symlink wie folgt anzulegen: systemctl enable netctl-auto@<interface>.service.

Migration von netcfg zu netctl

netctl legt Profile in /etc/netctl ab, nicht in /etc/network.d wie netcfg.

Um von netcfg zu migrieren sind folgende Schritte nötig:

  • Verschieben der Profile ins neue Verzeichnis.
  • Variablen im Profil gemäß netctl.profile(5) umbenennen. CONNECTION= wird zum Beispiel zu Connection=.
  • Bei Interface- und anderen Variablen die nicht zwingend Anführungszeichen benötigen, können sie entfernt werden.
  • netctl enable <profile> für jedes Profil im alten NETWORKS array ausführen. 'last' funktioniert so nicht, siehe Manpage netctl.special(7).
  • netctl list / netctl start <profile> anstelle von netcfg-menu verwenden. Wifi-menu bleibt verfügbar.

Passwort-Verschlüsselung (256-bit PSK)

Damit das WLAN-Passwort dem Zugriff der Benutzer entzogen wird sind die Dateirechte der Profil Datei passend # chmod 600 /etc/netctl/config_file zu setzen.

Nutzer, die ihr Passwort nicht im Klartext speichern wollen, haben die Möglichkeit einen 256-bit-verschlüsselten PSK aus der SSID und der Passphrase zu generieren und dieses in die Profile Datei einzutragen. Das dafür erforderliche Programm wpa_passphrase wird mit dem Paket wpa_supplicant installiert. Anschließend wird der 256-bit-verschlüsselte PSK generiert:

$ wpa_passphrase netzwerkname passphrase
network={
  ssid="netzwerkname"
  #psk="passphrase"
  psk=64cf3ced850ecef391973esd1b301fc39437a6aa6c6a599d05354124578e04a
}

In einem zweiten Terminalfenster kopiert man die Beispieldatei wireless-wpa von /etc/netctl/examples nach /etc/netctl. Nun öffnet man mit einem Texteditor /etc/netctl/wireless-wpa und fügt den Encrypted Pre-shared Key, der zuvor generiert wurde, in die Key-Variable des Profils ein.

Am Ende sollte das network Profil wireless-wpa mit dem 256-bit-verschlüsselten PSK wie folgt aussehen:

/etc/netctl/wireless-wpa
Description='A simple WPA encrypted wireless connection using 256-bit Encrypted PSK'
Interface=wlp2s2
Connection=wireless
Security=wpa
IP=dhcp
ESSID=archlinux
Key=\"64cf3ced850ecef39197bb7b7b301fc39437a6aa6c6a599d0534b16af578e04a

Sicherstellen, dass man die special non-quoted rules für Key= wie am Ende von netctl.profile(5) beschrieben verwendet.

Weblinks