<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gehrke</id>
	<title>Linupedia.org - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gehrke"/>
	<link rel="alternate" type="text/html" href="https://linupedia.org/opensuse/Spezial:Beitr%C3%A4ge/Gehrke"/>
	<updated>2026-05-11T19:35:55Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Gehrke&amp;diff=33109</id>
		<title>Benutzer:Gehrke</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Gehrke&amp;diff=33109"/>
		<updated>2022-02-21T10:38:29Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: test&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Sed&amp;diff=33066</id>
		<title>Diskussion:Sed</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Sed&amp;diff=33066"/>
		<updated>2019-12-14T18:15:46Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Layout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Layout ==&lt;br /&gt;
&lt;br /&gt;
Wie kann man es machen dass der Text in den Tabellenfeldern nicht so hart an Anfang klebt? nbsp's reinhauen wäre eher unschön für den Quelltext, geht das  besser? --[[Benutzer:Itu|Itu]] ([[Benutzer Diskussion:Itu|Diskussion]]) 13:08, 14. Dez. 2019 (CET)&lt;br /&gt;
&lt;br /&gt;
: Hhmm, Du könntest mit den Formatierungselementen von Mediawiki experimentieren:&lt;br /&gt;
: https://www.mediawiki.org/wiki/Help:Tables&lt;br /&gt;
: Aber eigentlich hätte ich gedacht, dass die Form an dieser Stelle nicht so wichtig ist.&lt;br /&gt;
: --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 19:15, 14. Dez. 2019 (CET)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Einrichten_von_public_keys_mit_ssh&amp;diff=32891</id>
		<title>Diskussion:Einrichten von public keys mit ssh</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Einrichten_von_public_keys_mit_ssh&amp;diff=32891"/>
		<updated>2016-11-23T16:14:45Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Sicherheitsinfo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=ssh-agent fehlend / key ohne passphrase?=&lt;br /&gt;
Das Verfahren beschreibt die Erzeugung eines Schlüsselpaares '''ohne''' Passphrase. Ich denke, man sollte hier darauf hinweisen, dass eine Passphrase nochmals deutlich mehr an Sicherheit bringt und dass man die unbequemen Abfragen nach derselben bei jeder Verwendung mittels [[ssh-agent]] auf eine einmalige Eingabe reduzieren kann. Das kann auch gerne ich übernehmen. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 14:16, 26. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
:Warnhinweis und Referenz auf ssh-agent hinzugefügt. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:48, 27. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
=Struktur des Artikels=&lt;br /&gt;
Die Kapitel-Struktur scheint mir nicht korrekt. Sollte die Kapitel nach dem Sicherheitshinweis nicht Überschriften 1. Ordnung sein? --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 14:22, 26. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
:Done. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:48, 27. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
=Sicherheitsinfo=&lt;br /&gt;
Dieser Abschnitt warnt vor einem schweren Sicherheitsproblem von OpenSSH unter Debian, welches 2008 aufgedeckt wurde und auf 2006 zurückgeht. Nun ist fast 2014 und ich denke, dass das Thema mittlerweile soweit behandelt sein sollte, dass es nicht mehr auf dieser Seite an erster Stelle stehen muss. Daher schlage ich vor, das hier zu entfernen. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 11:06, 6. Dez. 2013 (CET)&lt;br /&gt;
::: und Tschüß [[Benutzer:Robi|Robi]] ([[Benutzer Diskussion:Robi|Diskussion]]) 20:48, 8. Dez. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
=Public Schlüssel auf dem Server installieren=&lt;br /&gt;
Hinweis von User 'Sauerland': alternativ oder stattdessen ''ssh-copy-id'' --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 17:56, 7. Dez. 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32882</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32882"/>
		<updated>2016-10-29T13:11:41Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* NetworkManager */ CLI: ausführliche Parametrisierungsform&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlauben. In anderen Netzen dagegen soll nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Dabei enthält die Definition der Zone eine vollständige Beschreibung, welche Netzwerkdienste von oder zu dem jeweiligen System zulässig sind. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'.&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /etc/firewalld/zones&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection modify 8c1c5b53-0c80-44df-8c49-678b6d122d42 connection.zone work&lt;br /&gt;
# nmcli connection modify 1e906b64-4909-4dbe-8d81-705ea64767b4 connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli connection up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32881</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32881"/>
		<updated>2016-10-29T12:51:31Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* firewalld */ mkdir&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlauben. In anderen Netzen dagegen soll nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Dabei enthält die Definition der Zone eine vollständige Beschreibung, welche Netzwerkdienste von oder zu dem jeweiligen System zulässig sind. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'.&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir /etc/firewalld/zones&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32879</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32879"/>
		<updated>2016-10-25T19:59:29Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Konfiguration */ CLI entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlauben. In anderen Netzen dagegen soll nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Dabei enthält die Definition der Zone eine vollständige Beschreibung, welche Netzwerkdienste von oder zu dem jeweiligen System zulässig sind. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'.&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32878</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32878"/>
		<updated>2016-10-25T19:56:37Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Definition der Zone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlauben. In anderen Netzen dagegen soll nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Dabei enthält die Definition der Zone eine vollständige Beschreibung, welche Netzwerkdienste von oder zu dem jeweiligen System zulässig sind. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32877</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32877"/>
		<updated>2016-10-25T19:48:19Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: allgemeineres Intro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlauben. In anderen Netzen dagegen soll nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt sein.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32876</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32876"/>
		<updated>2016-10-25T19:44:47Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: firewalld&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Der Dienst [[firewalld]] kennt für die Gruppierung von Sicherheitsanforderungen das Konzept der ''Zonen''. Es werden von der Distribution eine Reihe von Zonen-Definitionen mitgeliefert, welche sich im Grad der Netzwerk-Freigibigkeit unterscheiden. Für das vorliegende Beispiel werden 2 vorgefertigte Zonen-Definitionen (''work'' und ''public'') kopiert und entsprechend der Anforderungen angepasst.&lt;br /&gt;
&lt;br /&gt;
Die gewünschten Eigenschaften der Zonen sind:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32875</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32875"/>
		<updated>2016-10-25T18:21:46Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
*[https://www.certdepot.net/rhel7-get-started-firewalld/ RHEL7: How to get started with Firewalld] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32874</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32874"/>
		<updated>2016-10-25T18:02:22Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.firewalld.org/ firewalld.org] {{englisch}}&lt;br /&gt;
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7 How To Set Up a Firewall Using FirewallD on CentOS 7] {{englisch}}&lt;br /&gt;
*[https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html redhat Security Guide] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32873</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32873"/>
		<updated>2016-10-25T17:49:07Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Überprüfung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all&lt;br /&gt;
work (active)&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&amp;lt;ToDo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32872</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32872"/>
		<updated>2016-10-25T14:47:51Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
&amp;lt;ToDo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32871</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32871"/>
		<updated>2016-10-25T14:42:43Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Bereinigung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise darzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32870</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32870"/>
		<updated>2016-10-25T14:40:46Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Bereinigung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist.&lt;br /&gt;
&lt;br /&gt;
Dieses System soll in vertrauenswürdigen Netzen (wie beispielsweise dem eigenen LAN oder WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise herzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend ist die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32869</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32869"/>
		<updated>2016-10-25T05:51:28Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Command Line Interface (CLI)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7. Um eine effektive und eindeutig dokumentierbare Vorgehensweise herzustellen, soll für alle administrativen Zugriffe auf die verwendeten Tools das jeweilige ''Command Line Interface (CLI)'' verwendet werden.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32868</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32868"/>
		<updated>2016-10-25T05:43:57Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) heimischen LANs in ein unsicheres öffentliches WLAN nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32867</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32867"/>
		<updated>2016-10-24T21:32:49Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Category:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) Heim-WLAN in ein unsicheres öffentliches Netz nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]] [[Category:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32866</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32866"/>
		<updated>2016-10-24T21:26:52Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Formatierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche bei bekannten Netzen in der Regel '''automatisch''' durchgeführt wird. Beispielsweise beim Wechsel vom (als sicher eingestuften) Heim-WLAN in ein unsicheres öffentliches Netz nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32865</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32865"/>
		<updated>2016-10-24T21:16:21Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Formatierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in '''Netzwerken mit unterschiedlichen Sicherheitsanforderungen''' eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche in der Regel automatisch erfolgt. Beispielsweise beim Wechsel vom (als sicher eingestuften) Heim-WLAN in ein unsicheres öffentliches Netz nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32864</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32864"/>
		<updated>2016-10-24T21:11:50Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
Im Folgenden soll eine Beispielkonfiguration für ein Notebook gezeigt werden, welches auf den Einsatz in Netzwerken mit unterschiedlichen Sicherheitsanforderungen eingerichtet ist. Dieses System soll im eigenen Netz (LAN und WLAN) mit der Zone 'work' laufen, welche eine bestimmte Netzwerkfunktionalität wie [[SSH]] oder den File-Daemon von [[Bacula]] auf diesem Notebook erlaubt. In anderen Netzen dagegen soll die Default-Zone 'public' verwendet werden, welche nur eine sehr eingeschränkte Netzwerk-Konnektivität erlaubt.&lt;br /&gt;
&lt;br /&gt;
Dabei soll die Zuordnung anhand der Auswahl des Netzwerkes im [[NetworkManager]] erfolgen, welche in der Regel automatisch erfolgt. Beispielsweise beim Wechsel vom (als sicher eingestuften) Heim-WLAN in ein unsicheres öffentliches Netz nach einem Ruhezustand des Notebooks.&lt;br /&gt;
&lt;br /&gt;
Gewünschte Eigenschaften der Zonen:&lt;br /&gt;
*work: [[SSH]] und bacula-fd nur vom [[bacula]]-Server (172.16.21.10)&lt;br /&gt;
*public: Keinerlei Zugriff (auch kein SSH)&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf der Distribution [[CentOS]] 7.&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
Um dieses Ziel zu erreichen, sind zwei Subsysteme zu konfigurieren:&lt;br /&gt;
*[[firewalld]]: Dieser Dienst übernimmt die dynamische Konfiguration und Steuerung der lokalen Firewall. Die von der Distribution vorgegebenen Templates (XML) für die beiden Zonen werden kopiert und angepasst, so dass die Konfiguration persistent zur Verfügung steht.&lt;br /&gt;
*[[NetworkManager]]: Der Dienst konfiguriert und steuert die Netzwerkanbindung dynamisch. Bekannten Netzen soll anhand der UUID die Zone 'work' zugewiesen werden. Andere Netze behalten die Default-Zone 'public'. Die Konfiguration erfolgt über das CLI auf der Kommandozeile.&lt;br /&gt;
&lt;br /&gt;
==firewalld==&lt;br /&gt;
Im ersten Schritt werden die durch die Distribution vorgegebenen Zonen-Definitionen kopiert. Die folgenden Änderungen erfolgen auf den hier erzeugten Kopien:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp /usr/lib/firewalld/zones/public.xml /etc/firewalld/zones/&lt;br /&gt;
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die geänderten Definitionen enthalten die Umsetzung für die oben genannten Anforderungen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/work.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Work&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;service name=&amp;quot;ssh&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;rule family=&amp;quot;ipv4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;source address=&amp;quot;172.16.21.10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;service name=&amp;quot;bacula&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;accept/&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /etc/firewalld/zones/public.xml &lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;zone&amp;gt;&lt;br /&gt;
  &amp;lt;short&amp;gt;Public&amp;lt;/short&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/zone&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Neustart der Firewall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# systemctl restart firewalld.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==NetworkManager==&lt;br /&gt;
Vorhandene Netze anzeigen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   enp2s0 &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  wlp8s0 &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man erkennt, dass das Notebook kabelgebunden über das Interface ''enp2s0'' am Netzwerk ''enp2s0'' und per WLAN über wlp8s0 am eigenen Funk-Netzwerk ''WLAN2'' hängt.&lt;br /&gt;
&lt;br /&gt;
Die Zuordnung der Zone 'work' an beide Netze erfolgt über die UUID der Netze im [[NetworkManager]]. Hierzu wird das CLI anstatt der GUI verwendet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con mod &amp;quot;8c1c5b53-0c80-44df-8c49-678b6d122d42&amp;quot; connection.zone work&lt;br /&gt;
# nmcli con mod &amp;quot;1e906b64-4909-4dbe-8d81-705ea64767b4&amp;quot; connection.zone work&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend werden die Verbindungen noch aktiviert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli con up uuid 8c1c5b53-0c80-44df-8c49-678b6d122d42&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/38)&lt;br /&gt;
# nmcli con up uuid 1e906b64-4909-4dbe-8d81-705ea64767b4&lt;br /&gt;
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/39)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Überprüfung=&lt;br /&gt;
Abschließend die Konfiguration zu überprüfen.&lt;br /&gt;
&lt;br /&gt;
Die Anzeige im Falle der Verbindung in den heimischen Netzen zeigt, dass die beiden Interfaces ''enp2s0'' und ''wlp8s0'' der Zone 'work' zugeordnet sind:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
work&lt;br /&gt;
  interfaces: enp2s0 wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anzeige der Konfiguration dieser Zone:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=work --list-all --permanent&lt;br /&gt;
work&lt;br /&gt;
  interfaces: &lt;br /&gt;
  sources: &lt;br /&gt;
  services: ssh&lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports: &lt;br /&gt;
  icmp-blocks: &lt;br /&gt;
  rich rules: &lt;br /&gt;
        rule family=&amp;quot;ipv4&amp;quot; source address=&amp;quot;172.16.21.10&amp;quot; service name=&amp;quot;bacula&amp;quot; accept&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dagegen sollte bei einer Verbindung zu einem anderen Netzwerk die Default-Zone 'public' zugeordnet sein. Im folgenden Beispiel besteht ausschließlich eine Verbindung zum WLAN 'Freifunk':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# nmcli connection show&lt;br /&gt;
NAME                                        UUID                                  TYP              GERÄT  &lt;br /&gt;
Freifunk                                    fec93f72-3488-4008-abfc-ec372d6f8806  802-11-wireless  wlp8s0 &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   --     &lt;br /&gt;
WLAN1                                       82be9628-2709-495f-a389-d209b74fcd05  802-11-wireless  --     &lt;br /&gt;
VPN1                                        ec0aa457-d3ec-4089-8c8f-1a53a8a33374  vpn              --     &lt;br /&gt;
LAN1                                        ee9ee0aa-57b9-4c5d-9c76-d2722986c5d8  802-3-ethernet   --     &lt;br /&gt;
enp2s0                                      8c1c5b53-0c80-44df-8c49-678b6d122d42  802-3-ethernet   -- &lt;br /&gt;
WLAN2                                       1e906b64-4909-4dbe-8d81-705ea64767b4  802-11-wireless  -- &lt;br /&gt;
VPN2                                        23c0b2c5-b5a6-4e82-95b2-9b198074391d  vpn              --&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dementsprechend zeigt die Prüfung, dass für das WLAN-Interface ''wlp8s0'' die Zone 'public' gesetzt wurde und das derzeit nicht verbundene ''enp2s0'' ohne Zuordnung verbleibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --get-active-zones&lt;br /&gt;
public&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Es ist zu erkennen, dass [[SSH]] im Bereich ''services'' nicht zugelassen ist:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# firewall-cmd --zone=public --list-all&lt;br /&gt;
public (default, active)&lt;br /&gt;
  interfaces: wlp8s0&lt;br /&gt;
  sources: &lt;br /&gt;
  services: &lt;br /&gt;
  ports: &lt;br /&gt;
  masquerade: no&lt;br /&gt;
  forward-ports:&lt;br /&gt;
  icmp-blocks:&lt;br /&gt;
  rich rules:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei erfolgt die Zuordnung der Zonen automatisch in Reaktion auf die Auswahl des Netzwerkes im [[NetworkManger]]. Eine manuelle Auswahl der Zone ist hierfür nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32863</id>
		<title>Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager'</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Konfigurationsbeispiel_eines_Notebooks_f%C3%BCr_den_Einsatz_in_unterschiedlichen_Netzen_mit_%27firewalld%27_und_%27NetworkManager%27&amp;diff=32863"/>
		<updated>2016-10-24T20:09:42Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Initial&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:09, 24. Okt. 2016 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]] [[Category:Netzwerk]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Security&amp;diff=32862</id>
		<title>Security</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Security&amp;diff=32862"/>
		<updated>2016-10-24T20:00:25Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Sicherheit im Netzwerk */ Konfigurationsbeispiel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Allgemeine und Lokale Sicherheit ==&lt;br /&gt;
* [[Absichern des eigenen Servers ]] - Tips welche Dinge zu tun sind um einen Server sicher zu machen.&lt;br /&gt;
* [[Kontrolliertes Ausfuehren von Befehlen als root]] - Wie kann man normale User berechtigen kontrolliert root Befehle abzusetzen? sudo oder ssh ist die Loesung. &lt;br /&gt;
* [[Festplatten verschlüsselt mit Linux und Windows nutzen]] &lt;br /&gt;
* [[Verschluesselung: dm-crypt/luks unter openSUSE|Verschlüsselung: dm-crypt/luks unter openSUSE]] - Mit cryptsetup (inkl. LUKS-Erweiterung) verschlüsselte Partitionen beim Systemstart einbinden.&lt;br /&gt;
* [[Mit dm-crypt/luks verschluesselte Home-Partition beim Login einbinden|Mit dm-crypt/luks verschlüsselte Home-Partition beim Login einbinden]]&lt;br /&gt;
* [[Partitionierung eines komplett verschlüsselten Linux-Systems]] - Über die Problematik von unverschlüsselten boot-Partitionen&lt;br /&gt;
* [[E-Mailverschluesselung und Signierung]]  - Alles zum Verschlüsseln von eMails &lt;br /&gt;
* [[Wie eine Platte unwiederherstellbar und sicher loeschen]]  - Immer wieder möchte man eine Platte absolut sicher löschen. Mit etwas Zeit ist das nahezu moeglich.&lt;br /&gt;
* [[Dateien aus dem Kontextmenue sicher loeschen|Dateien aus dem Kontextmenü sicher löschen]]  - Neuer Eintrag im Kontextmenü des Konqueror&lt;br /&gt;
* [[AntiVir und Dazuko-On-Access Scanning]]  - Anleitung wie man beim Zugriff auf Dateien eine automatischen Virenscan vornehmen lassen kann &lt;br /&gt;
* [[Literatur zu Security]] - Für alle die, die sich mit einem Thema intensiver befassen wollen&lt;br /&gt;
* [[Sichere Passwoerter erstellen|Sichere Passwörter erstellen]] - Wie erzeugen und handhaben die LC Mitglieder sichere Passwörter?&lt;br /&gt;
&lt;br /&gt;
== Sicherheit im Netzwerk ==&lt;br /&gt;
* [[Top 100 Network Security Tools]]  - Liste der 100 meistgenutzten Netzwerk Security Tools &lt;br /&gt;
* [[Welche Ports sind an meinem Server offen]]  - Befehle und Webseiten, mit denen offene Ports am eigenen Server aufgespürt werden. &lt;br /&gt;
* [[SuSEfirewall2]]  - inofficial Documentation&lt;br /&gt;
* [[Firewalleinstellungen fuer NFS]] - Was ist nötig um NFS durch Firewalls zu schleusen. &lt;br /&gt;
* [[Sicheres tunneln von unsicheren Protokollen mit ssh]]  - Wie kann man mit ssh unsichere Protokolle (pop, smtp, ...) absichern? &lt;br /&gt;
* [[Erklärung der netfilter Firewall Meldungen online]] &lt;br /&gt;
* [[Wie sichere ich meinen ssh Server]]  - Beschreibung von Möglichkeiten wie man eine ssh Server sicher ins Internet stellen kann sowie eine Liste wichtiger sshd_config Parameter. &lt;br /&gt;
* [[Einrichten von public keys mit ssh]]  - Anleitung, wie ein asymmetischer key beim ssh erzeugt werden kann&lt;br /&gt;
* [[Mit putty und ssh key auf einen sicheren Linux Server zugreifen]]  - Beschreibung wie ein putty unter Windows mit einem ssh key so einzurichten ist, dass Zugriffe auf einen Linux Server nur noch mit asymetrischem key moeglich sind. Gleichzeitig wird beschrieben, wie man den Linux Server sshd daemon konfigurieren muss um nur noch per key zugreifen zu können.&lt;br /&gt;
* [[Einrichten von shorewall mit Webmin ]] &lt;br /&gt;
* [[Kleines Howto IPsec mit racoon]]  - Anleitung, wie ipsec aufzusetzen ist mit racoon&lt;br /&gt;
* [[Die Peter Huth Lücke in PHP Scripten vermeiden]] - Beschreibung, wie man relativ schnell seinen Webserver mittels PHP unsicher machen kann.&lt;br /&gt;
* [[Snort]]&lt;br /&gt;
* [[Firewall]]&lt;br /&gt;
* [[Konfigurationsbeispiel eines Notebooks für den Einsatz in unterschiedlichen Netzen mit 'firewalld' und 'NetworkManager']]&lt;br /&gt;
&lt;br /&gt;
== Sicherheit der Daten ==&lt;br /&gt;
* [[Wie eine Platte unwiederherstellbar und sicher loeschen|Sicheres Löschen von Platten]] - Wie lösche ich meine Platten so dass niemand mehr die Daten lesen kann?&lt;br /&gt;
&lt;br /&gt;
== Sicherheit &amp;amp; Anonymität ==&lt;br /&gt;
* [[Tor Netzwerk]] - Anonymes Surfen im Internet wie auch im Tor Netzwerk.&lt;br /&gt;
* [[I2p Projekt|i2p Projekt]] - Ein anonymes.- und pseudonymes Netzwerk.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Security]]&lt;br /&gt;
[[Kategorie:Übersicht]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Amazon_MP3_herunterladen&amp;diff=32826</id>
		<title>Diskussion:Amazon MP3 herunterladen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Amazon_MP3_herunterladen&amp;diff=32826"/>
		<updated>2016-03-20T10:28:01Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Aktualisierung/Update 19. März 2016&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aktualisierung/Update 19. März 2016=&lt;br /&gt;
@tomm.fa: Hatte die Tage ebenfalls dort ein paar MP3s gekauft und das amz-File für ''clamz'' vergeblich gesucht.&lt;br /&gt;
Gut, dass Du an diese Artikel gedacht hast...&lt;br /&gt;
--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 11:28, 20. Mär. 2016 (CET)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Umgang_mit_redundanten_Laufwerken_unter_OpenSUSE_13.1_(GRUB2)&amp;diff=32822</id>
		<title>Umgang mit redundanten Laufwerken unter OpenSUSE 13.1 (GRUB2)</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Umgang_mit_redundanten_Laufwerken_unter_OpenSUSE_13.1_(GRUB2)&amp;diff=32822"/>
		<updated>2016-03-19T14:19:53Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Fall 2: Nur Festplatte 2 im System */ Leserzuschrift - grub2-install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|Kompletter Artikel}}--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:22, 19. Dez. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
Diese Seite gehört zum Kontext [[Umgang mit redundanten Laufwerken (GRUB2)]].&lt;br /&gt;
&lt;br /&gt;
=Systembeschreibung=&lt;br /&gt;
&lt;br /&gt;
Partitionierung:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # lsblk&lt;br /&gt;
NAME                MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda                   8:0    0    8G  0 disk  &lt;br /&gt;
├─sda1                8:1    0  509M  0 part  &lt;br /&gt;
│ └─md0               9:0    0  509M  0 raid1 /boot&lt;br /&gt;
└─sda2                8:2    0  7.5G  0 part  &lt;br /&gt;
  └─md1               9:1    0  7.5G  0 raid1 &lt;br /&gt;
    └─cr_md1        253:0    0  7.5G  0 crypt &lt;br /&gt;
      ├─system-root 253:1    0  6.5G  0 lvm   /&lt;br /&gt;
      └─system-swap 253:2    0    1G  0 lvm   [SWAP]&lt;br /&gt;
sdb                   8:16   0    8G  0 disk  &lt;br /&gt;
├─sdb1                8:17   0  509M  0 part  &lt;br /&gt;
│ └─md0               9:0    0  509M  0 raid1 /boot&lt;br /&gt;
└─sdb2                8:18   0  7.5G  0 part  &lt;br /&gt;
  └─md1               9:1    0  7.5G  0 raid1 &lt;br /&gt;
    └─cr_md1        253:0    0  7.5G  0 crypt &lt;br /&gt;
      ├─system-root 253:1    0  6.5G  0 lvm   /&lt;br /&gt;
      └─system-swap 253:2    0    1G  0 lvm   [SWAP]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zustand des Arrays:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # cat /proc/mdstat&lt;br /&gt;
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear] &lt;br /&gt;
md0 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
      521152 blocks super 1.0 [2/2] [UU]&lt;br /&gt;
      bitmap: 0/1 pages [0KB], 65536KB chunk&lt;br /&gt;
&lt;br /&gt;
md1 : active raid1 sda2[0] sdb2[1]&lt;br /&gt;
      7866304 blocks super 1.0 [2/2] [UU]&lt;br /&gt;
      bitmap: 1/1 pages [4KB], 65536KB chunk&lt;br /&gt;
&lt;br /&gt;
unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Details zum RAID:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # mdadm -Evvs&lt;br /&gt;
mdadm: No md superblock detected on /dev/sr0.&lt;br /&gt;
mdadm: No md superblock detected on /dev/md0.&lt;br /&gt;
mdadm: No md superblock detected on /dev/dm-2.&lt;br /&gt;
mdadm: No md superblock detected on /dev/dm-1.&lt;br /&gt;
mdadm: No md superblock detected on /dev/dm-0.&lt;br /&gt;
mdadm: No md superblock detected on /dev/md1.&lt;br /&gt;
/dev/sdb2:&lt;br /&gt;
          Magic : a92b4efc&lt;br /&gt;
        Version : 1.0&lt;br /&gt;
    Feature Map : 0x1&lt;br /&gt;
     Array UUID : cbb0a19a:3ab9c866:a55c498b:dad77155&lt;br /&gt;
           Name : linux:1&lt;br /&gt;
  Creation Time : Thu Dec 12 21:41:51 2013&lt;br /&gt;
     Raid Level : raid1&lt;br /&gt;
   Raid Devices : 2&lt;br /&gt;
&lt;br /&gt;
 Avail Dev Size : 15732704 (7.50 GiB 8.06 GB)&lt;br /&gt;
     Array Size : 7866304 (7.50 GiB 8.06 GB)&lt;br /&gt;
  Used Dev Size : 15732608 (7.50 GiB 8.06 GB)&lt;br /&gt;
   Super Offset : 15732720 sectors&lt;br /&gt;
   Unused Space : before=0 sectors, after=96 sectors&lt;br /&gt;
          State : clean&lt;br /&gt;
    Device UUID : 3643b447:54e45c14:3ffbebc4:47a1727e&lt;br /&gt;
&lt;br /&gt;
Internal Bitmap : -16 sectors from superblock&lt;br /&gt;
    Update Time : Fri Dec 13 19:37:03 2013&lt;br /&gt;
  Bad Block Log : 512 entries available at offset -8 sectors&lt;br /&gt;
       Checksum : 484ff8f3 - correct&lt;br /&gt;
         Events : 155&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Device Role : Active device 1&lt;br /&gt;
   Array State : AA ('A' == active, '.' == missing, 'R' == replacing)&lt;br /&gt;
/dev/sdb1:&lt;br /&gt;
          Magic : a92b4efc&lt;br /&gt;
        Version : 1.0&lt;br /&gt;
    Feature Map : 0x1&lt;br /&gt;
     Array UUID : ce6547f1:6bcb31bc:02c20a67:2587a62a&lt;br /&gt;
           Name : linux:0&lt;br /&gt;
  Creation Time : Thu Dec 12 21:41:50 2013&lt;br /&gt;
     Raid Level : raid1&lt;br /&gt;
   Raid Devices : 2&lt;br /&gt;
&lt;br /&gt;
 Avail Dev Size : 1042400 (509.07 MiB 533.71 MB)&lt;br /&gt;
     Array Size : 521152 (509.02 MiB 533.66 MB)&lt;br /&gt;
  Used Dev Size : 1042304 (509.02 MiB 533.66 MB)&lt;br /&gt;
   Super Offset : 1042416 sectors&lt;br /&gt;
   Unused Space : before=0 sectors, after=96 sectors&lt;br /&gt;
          State : clean&lt;br /&gt;
    Device UUID : c37e1f95:4d6611e3:a7046773:e84fa160&lt;br /&gt;
&lt;br /&gt;
Internal Bitmap : -16 sectors from superblock&lt;br /&gt;
    Update Time : Fri Dec 13 19:17:35 2013&lt;br /&gt;
  Bad Block Log : 512 entries available at offset -8 sectors&lt;br /&gt;
       Checksum : 4f7ccd48 - correct&lt;br /&gt;
         Events : 21&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Device Role : Active device 1&lt;br /&gt;
   Array State : AA ('A' == active, '.' == missing, 'R' == replacing)&lt;br /&gt;
/dev/sdb:&lt;br /&gt;
   MBR Magic : aa55&lt;br /&gt;
Partition[0] :      1042432 sectors at         2048 (type fd)&lt;br /&gt;
Partition[1] :     15732736 sectors at      1044480 (type fd)&lt;br /&gt;
/dev/sda2:&lt;br /&gt;
          Magic : a92b4efc&lt;br /&gt;
        Version : 1.0&lt;br /&gt;
    Feature Map : 0x1&lt;br /&gt;
     Array UUID : cbb0a19a:3ab9c866:a55c498b:dad77155&lt;br /&gt;
           Name : linux:1&lt;br /&gt;
  Creation Time : Thu Dec 12 21:41:51 2013&lt;br /&gt;
     Raid Level : raid1&lt;br /&gt;
   Raid Devices : 2&lt;br /&gt;
&lt;br /&gt;
 Avail Dev Size : 15732704 (7.50 GiB 8.06 GB)&lt;br /&gt;
     Array Size : 7866304 (7.50 GiB 8.06 GB)&lt;br /&gt;
  Used Dev Size : 15732608 (7.50 GiB 8.06 GB)&lt;br /&gt;
   Super Offset : 15732720 sectors&lt;br /&gt;
   Unused Space : before=0 sectors, after=96 sectors&lt;br /&gt;
          State : clean&lt;br /&gt;
    Device UUID : 3a81e6b4:ea6a410b:cc3668e9:26fc95dc&lt;br /&gt;
&lt;br /&gt;
Internal Bitmap : -16 sectors from superblock&lt;br /&gt;
    Update Time : Fri Dec 13 19:37:03 2013&lt;br /&gt;
  Bad Block Log : 512 entries available at offset -8 sectors&lt;br /&gt;
       Checksum : 2f0653f9 - correct&lt;br /&gt;
         Events : 155&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Device Role : Active device 0&lt;br /&gt;
   Array State : AA ('A' == active, '.' == missing, 'R' == replacing)&lt;br /&gt;
/dev/sda1:&lt;br /&gt;
          Magic : a92b4efc&lt;br /&gt;
        Version : 1.0&lt;br /&gt;
    Feature Map : 0x1&lt;br /&gt;
     Array UUID : ce6547f1:6bcb31bc:02c20a67:2587a62a&lt;br /&gt;
           Name : linux:0&lt;br /&gt;
  Creation Time : Thu Dec 12 21:41:50 2013&lt;br /&gt;
     Raid Level : raid1&lt;br /&gt;
   Raid Devices : 2&lt;br /&gt;
&lt;br /&gt;
 Avail Dev Size : 1042400 (509.07 MiB 533.71 MB)&lt;br /&gt;
     Array Size : 521152 (509.02 MiB 533.66 MB)&lt;br /&gt;
  Used Dev Size : 1042304 (509.02 MiB 533.66 MB)&lt;br /&gt;
   Super Offset : 1042416 sectors&lt;br /&gt;
   Unused Space : before=0 sectors, after=96 sectors&lt;br /&gt;
          State : clean&lt;br /&gt;
    Device UUID : d3a6b43b:ec7adf57:042686a4:f665aa63&lt;br /&gt;
&lt;br /&gt;
Internal Bitmap : -16 sectors from superblock&lt;br /&gt;
    Update Time : Fri Dec 13 19:17:35 2013&lt;br /&gt;
  Bad Block Log : 512 entries available at offset -8 sectors&lt;br /&gt;
       Checksum : 9f084160 - correct&lt;br /&gt;
         Events : 21&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Device Role : Active device 0&lt;br /&gt;
   Array State : AA ('A' == active, '.' == missing, 'R' == replacing)&lt;br /&gt;
/dev/sda:&lt;br /&gt;
   MBR Magic : aa55&lt;br /&gt;
Partition[0] :      1042432 sectors at         2048 (type fd)&lt;br /&gt;
Partition[1] :     15732736 sectors at      1044480 (type fd)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese grub.cfg wurde bei der Installation geschrieben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DO NOT EDIT THIS FILE&lt;br /&gt;
#&lt;br /&gt;
# It is automatically generated by grub2-mkconfig using templates&lt;br /&gt;
# from /etc/grub.d and settings from /etc/default/grub&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/00_header ###&lt;br /&gt;
if [ -s $prefix/grubenv ]; then&lt;br /&gt;
  load_env&lt;br /&gt;
fi&lt;br /&gt;
if [ &amp;quot;${next_entry}&amp;quot; ] ; then&lt;br /&gt;
   set default=&amp;quot;${next_entry}&amp;quot;&lt;br /&gt;
   set next_entry=&lt;br /&gt;
   save_env next_entry&lt;br /&gt;
   set boot_once=true&lt;br /&gt;
else&lt;br /&gt;
   set default=&amp;quot;${saved_entry}&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ x&amp;quot;${feature_menuentry_id}&amp;quot; = xy ]; then&lt;br /&gt;
  menuentry_id_option=&amp;quot;--id&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
  menuentry_id_option=&amp;quot;&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
export menuentry_id_option&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;${prev_saved_entry}&amp;quot; ]; then&lt;br /&gt;
  set saved_entry=&amp;quot;${prev_saved_entry}&amp;quot;&lt;br /&gt;
  save_env saved_entry&lt;br /&gt;
  set prev_saved_entry=&lt;br /&gt;
  save_env prev_saved_entry&lt;br /&gt;
  set boot_once=true&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
function savedefault {&lt;br /&gt;
  if [ -z &amp;quot;${boot_once}&amp;quot; ]; then&lt;br /&gt;
    saved_entry=&amp;quot;${chosen}&amp;quot;&lt;br /&gt;
    save_env saved_entry&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function load_video {&lt;br /&gt;
  if [ x$feature_all_video_module = xy ]; then&lt;br /&gt;
    insmod all_video&lt;br /&gt;
  else&lt;br /&gt;
    insmod efi_gop&lt;br /&gt;
    insmod efi_uga&lt;br /&gt;
    insmod ieee1275_fb&lt;br /&gt;
    insmod vbe&lt;br /&gt;
    insmod vga&lt;br /&gt;
    insmod video_bochs&lt;br /&gt;
    insmod video_cirrus&lt;br /&gt;
  fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if loadfont unicode ; then&lt;br /&gt;
  set gfxmode=auto&lt;br /&gt;
  load_video&lt;br /&gt;
  insmod gfxterm&lt;br /&gt;
  set locale_dir=$prefix/locale&lt;br /&gt;
  set lang=&lt;br /&gt;
  insmod gettext&lt;br /&gt;
fi&lt;br /&gt;
terminal_output gfxterm&lt;br /&gt;
insmod part_msdos&lt;br /&gt;
insmod part_msdos&lt;br /&gt;
insmod diskfilter&lt;br /&gt;
insmod mdraid1x&lt;br /&gt;
insmod ext2&lt;br /&gt;
set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'&lt;br /&gt;
if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
else&lt;br /&gt;
  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
fi&lt;br /&gt;
insmod gfxmenu&lt;br /&gt;
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2&lt;br /&gt;
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans10.pf2&lt;br /&gt;
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans12.pf2&lt;br /&gt;
loadfont ($root)/grub2/themes/openSUSE/ascii.pf2&lt;br /&gt;
insmod png&lt;br /&gt;
set theme=($root)/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
export theme&lt;br /&gt;
if [ x${boot_once} = xtrue ]; then&lt;br /&gt;
  set timeout=0&lt;br /&gt;
elif sleep --interruptible 0 ; then&lt;br /&gt;
  set timeout=8&lt;br /&gt;
fi&lt;br /&gt;
### END /etc/grub.d/00_header ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/10_linux ###&lt;br /&gt;
menuentry 'openSUSE 13.1' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {&lt;br /&gt;
	load_video&lt;br /&gt;
	set gfxpayload=keep&lt;br /&gt;
	insmod gzio&lt;br /&gt;
	insmod part_msdos&lt;br /&gt;
	insmod part_msdos&lt;br /&gt;
	insmod diskfilter&lt;br /&gt;
	insmod mdraid1x&lt;br /&gt;
	insmod ext2&lt;br /&gt;
	set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'&lt;br /&gt;
	if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
	  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
	else&lt;br /&gt;
	  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
	fi&lt;br /&gt;
	echo	'Loading Linux 3.11.6-4-desktop ...'&lt;br /&gt;
	linux	/vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root   resume=/dev/system/swap splash=silent quiet showopts&lt;br /&gt;
	echo	'Loading initial ramdisk ...'&lt;br /&gt;
	initrd	/initrd-3.11.6-4-desktop&lt;br /&gt;
}&lt;br /&gt;
submenu 'Advanced options for openSUSE 13.1' $menuentry_id_option 'gnulinux-advanced-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {&lt;br /&gt;
	menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-advanced-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {&lt;br /&gt;
		load_video&lt;br /&gt;
		set gfxpayload=keep&lt;br /&gt;
		insmod gzio&lt;br /&gt;
		insmod part_msdos&lt;br /&gt;
		insmod part_msdos&lt;br /&gt;
		insmod diskfilter&lt;br /&gt;
		insmod mdraid1x&lt;br /&gt;
		insmod ext2&lt;br /&gt;
		set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'&lt;br /&gt;
		if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
		  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
		else&lt;br /&gt;
		  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
		fi&lt;br /&gt;
		echo	'Loading Linux 3.11.6-4-desktop ...'&lt;br /&gt;
		linux	/vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root   resume=/dev/system/swap splash=silent quiet showopts&lt;br /&gt;
		echo	'Loading initial ramdisk ...'&lt;br /&gt;
		initrd	/initrd-3.11.6-4-desktop&lt;br /&gt;
	}&lt;br /&gt;
	menuentry 'openSUSE 13.1, with Linux 3.11.6-4-desktop (recovery mode)' --class 'opensuse-13-1' --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.11.6-4-desktop-recovery-9ca3c62f-d5b8-46a7-a494-8ce2270e2f47' {&lt;br /&gt;
		load_video&lt;br /&gt;
		set gfxpayload=keep&lt;br /&gt;
		insmod gzio&lt;br /&gt;
		insmod part_msdos&lt;br /&gt;
		insmod part_msdos&lt;br /&gt;
		insmod diskfilter&lt;br /&gt;
		insmod mdraid1x&lt;br /&gt;
		insmod ext2&lt;br /&gt;
		set root='mduuid/ce6547f16bcb31bc02c20a672587a62a'&lt;br /&gt;
		if [ x$feature_platform_search_hint = xy ]; then&lt;br /&gt;
		  search --no-floppy --fs-uuid --set=root --hint='mduuid/ce6547f16bcb31bc02c20a672587a62a'  f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
		else&lt;br /&gt;
		  search --no-floppy --fs-uuid --set=root f19541aa-6e4a-4954-8c29-2ac69b9a4e21&lt;br /&gt;
		fi&lt;br /&gt;
		echo	'Loading Linux 3.11.6-4-desktop ...'&lt;br /&gt;
		linux	/vmlinuz-3.11.6-4-desktop root=/dev/mapper/system-root  showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe&lt;br /&gt;
		echo	'Loading initial ramdisk ...'&lt;br /&gt;
		initrd	/initrd-3.11.6-4-desktop&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
### END /etc/grub.d/10_linux ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/20_linux_xen ###&lt;br /&gt;
### END /etc/grub.d/20_linux_xen ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/20_memtest86+ ###&lt;br /&gt;
### END /etc/grub.d/20_memtest86+ ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/20_ppc_terminfo ###&lt;br /&gt;
### END /etc/grub.d/20_ppc_terminfo ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/30_os-prober ###&lt;br /&gt;
### END /etc/grub.d/30_os-prober ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/40_custom ###&lt;br /&gt;
# This file provides an easy way to add custom menu entries.  Simply type the&lt;br /&gt;
# menu entries you want to add after this comment.  Be careful not to change&lt;br /&gt;
# the 'exec tail' line above.&lt;br /&gt;
### END /etc/grub.d/40_custom ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/41_custom ###&lt;br /&gt;
if [ -f  ${config_directory}/custom.cfg ]; then&lt;br /&gt;
  source ${config_directory}/custom.cfg&lt;br /&gt;
elif [ -z &amp;quot;${config_directory}&amp;quot; -a -f  $prefix/custom.cfg ]; then&lt;br /&gt;
  source $prefix/custom.cfg;&lt;br /&gt;
fi&lt;br /&gt;
### END /etc/grub.d/41_custom ###&lt;br /&gt;
&lt;br /&gt;
### BEGIN /etc/grub.d/90_persistent ###&lt;br /&gt;
### END /etc/grub.d/90_persistent ###&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Funktionale Tests=&lt;br /&gt;
==Test 1: Boot-Partitionen im RAID abschalten==&lt;br /&gt;
Mit diesem Test wird der Ausfall jeweils einer Partition simuliert. Das System sollte dank der Redundanz fehlerfrei booten.&lt;br /&gt;
&lt;br /&gt;
Eine Boot-Partition aus dem RAID entfernen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # mdadm --set-faulty /dev/md0 /dev/sda1&lt;br /&gt;
mdadm: set /dev/sda1 faulty in /dev/md0&lt;br /&gt;
localhost:~ # cat /proc/mdstat&lt;br /&gt;
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear] &lt;br /&gt;
md0 : active raid1 sda1[0](F) sdb1[1]&lt;br /&gt;
      521152 blocks super 1.0 [2/1] [_U]&lt;br /&gt;
      bitmap: 0/1 pages [0KB], 65536KB chunk&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
localhost:~ # reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot funktionierte problemlos.&lt;br /&gt;
&lt;br /&gt;
Partition hinzufügen (etwas warten bis Recovery-Prozess abgeschlossen ist) und andere entfernen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # mdadm --re-add /dev/md0 /dev/sda1&lt;br /&gt;
mdadm: re-added /dev/sda1&lt;br /&gt;
&lt;br /&gt;
localhost:~ # mdadm --set-faulty /dev/md0 /dev/sdb1&lt;br /&gt;
mdadm: set /dev/sdb1 faulty in /dev/md0                                                               &lt;br /&gt;
localhost:~ # cat /proc/mdstat                                                   &lt;br /&gt;
Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [linear]                             &lt;br /&gt;
md0 : active raid1 sda1[0] sdb1[1](F)                                                                 &lt;br /&gt;
      521152 blocks super 1.0 [2/1] [U_]                                                              &lt;br /&gt;
      bitmap: 0/1 pages [0KB], 65536KB chunk &lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
localhost:~ # reboot                                                 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot funktionierte problemlos. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # mdadm --re-add /dev/md0 /dev/sdb1&lt;br /&gt;
mdadm: re-added /dev/sdb1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Fazit:''' OK&lt;br /&gt;
&lt;br /&gt;
==Test 2: Festplatten entfernen==&lt;br /&gt;
Zur Simulation einer ausgefallenen Festplatte wurde vor dem Start die Festplatte aus der Konfiguration von [[VirtualBox]] entfernt.&lt;br /&gt;
&lt;br /&gt;
===Fall 1: Nur Festplatte 1 im System===&lt;br /&gt;
Beobachtung: Das Menü von GRUB erscheint. Bei Start des Systems kommt es zu einer Endlosschleife, ohne dass die Passphrase für [[dm-crypt]] eingegeben werden kann:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PARTIAL MODE. Incomplete logical volumes will be processed.&lt;br /&gt;
Volume group &amp;quot;system&amp;quot; not found&lt;br /&gt;
No volume groups found&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fall 2: Nur Festplatte 2 im System===&lt;br /&gt;
Beobachtung: Das Menü von GRUB erscheint '''nicht'''.&lt;br /&gt;
&lt;br /&gt;
Vermutung: GRUB-Installation fehlt im [[MBR]] auf zweiter Festplatte.&lt;br /&gt;
&lt;br /&gt;
Lösungsversuch 1: Installation nachgeholt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # grub-install.unsupported /dev/sda&lt;br /&gt;
Probing devices to guess BIOS drives. This may take a long time.&lt;br /&gt;
/dev/md0 does not have any corresponding BIOS drive.&lt;br /&gt;
localhost:~ # grub-install.unsupported /dev/sdb&lt;br /&gt;
/dev/md0 does not have any corresponding BIOS drive.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ergebnis: Bootet nicht.&lt;br /&gt;
&lt;br /&gt;
Fehlermeldung: keine (alles schwarz, Cursor blinkt nicht)&lt;br /&gt;
&lt;br /&gt;
''Nachtrag 19.03.2016:'' Einer Leserzuschrift zufolge funktioniert hier der folgende Ansatz:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # grub2-install /dev/sda&lt;br /&gt;
localhost:~ # grub2-install /dev/sdb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Leider besteht heute das zum Zeitpunkt der Erstellung dieses Artikels verwendete Systemsetup nicht mehr, so dass dies nicht mehr geprüft werden kann.&lt;br /&gt;
&lt;br /&gt;
Lösungsversuch 2: Per [[YaST]] nach sda und sdb schreiben&lt;br /&gt;
&lt;br /&gt;
Beim Start von Yast gibt es schon diesen Hinweis:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
localhost:~ # yast2 bootloader &lt;br /&gt;
Perl-Bootloader: 2013-12-13 22:53:57 &amp;lt;3&amp;gt; yast-1572.1 MBRTools::examineMBR.189: Error: Examine MBR cannot open /dev/md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das explizite Schreiben über &lt;br /&gt;
*Boot Loader Location&lt;br /&gt;
**Custom Boot Partiton =&amp;gt; /dev/sdb &lt;br /&gt;
sowie das ganze zusätzlich nach ''/dev/sda'' brachte nichts. Ohne die erste Disk bootete das System nicht.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
*[http://lists.opensuse.org/opensuse/2013-03/msg00221.html Root and boot partitions on a sw raid volume (opensuse 12.2 - 12.3 rc1 64bit)]&lt;br /&gt;
*[https://bugzilla.novell.com/show_bug.cgi?id=811830 Bug 811830 - Root and boot partitions on a sw raid volume, system cannot boot]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Einfache_Sambafreigabe_%C3%BCber_YaST&amp;diff=32821</id>
		<title>Diskussion:Einfache Sambafreigabe über YaST</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Einfache_Sambafreigabe_%C3%BCber_YaST&amp;diff=32821"/>
		<updated>2016-01-17T04:57:06Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Quoting / Einrückung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Aktualisieren oder Löschen?=&lt;br /&gt;
Diese Seite besteht visuell zum Großteil aus völlig veralteten Bildern (welche Release war das?). Selbst wenn das heute noch ähnlich funktioniert, wird wohl jeder User hier gleich weiter klicken. Aktualisieren oder Löschen??? Ich bin für Löschen, denn so einmalig sind diese Informationen nicht. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 22:39, 25. Nov. 2013 (CET)&lt;br /&gt;
:Die Seite auf die der Redirect nun zeigt nach der Umlautsalatbereinigung hat Bilder drin die eben ein anderes Desktopdesign oder einen ganz anderen Windowmanager als den Standard nutzt (wenns ein anderer Windowmanager war tippe ich mal auf Sawfish ;) )...müsste zur Zeit der Erstellung wohl ein 9er SuSE gewesen sein.Löschen muss man das nicht da die Infos ja im Grunde noch immer stimmen, aber mal paar neue Bilder wär wohl nicht verkehrt..am besten mit der Defaultoptik von YaST. Hab selbst allerdings auch keine Defaultoptik hier am Start sondern Mac OSX artigen Style, sonst würd ich das mal eben machen und die Bilder aktualisieren ;)  (ohne den Redirect hätten wir jetzt wohl mal wieder eine Diskussion ohne zugehörige Seite nach dem Verschieben dank der Überschneidung *G*)--[[Benutzer:TomcatMJ|TomcatMJ]] ([[Benutzer Diskussion:TomcatMJ|Diskussion]]) 22:47, 25. Nov. 2013 (CET)&lt;br /&gt;
&lt;br /&gt;
:Habe das gerade Eben mit OpenSUSE Tumbleweed benutzt. Passt einwandfrei. Das alter der Screenshots hat mich nicht gestört. Bitte nicht Löschen. :) ::::--[[Benutzer:revealed|revealed]] ([[Benutzer Diskussion:revealed|revealed]]) 22:09, 16. Jan. 2016 (CEST)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Bootloader_wiederherstellen&amp;diff=32819</id>
		<title>Bootloader wiederherstellen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Bootloader_wiederherstellen&amp;diff=32819"/>
		<updated>2016-01-14T18:03:22Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Review-Tag entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Im Falle eines nicht mehr funktionierenden Boot-Prozesses ist es manchmal notwendig, den [[Bootmanager]] neu zu installieren. In solchen Fällen erscheint möglicherweise nach dem Start des Rechners nur die lapidare Anzeige:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Vorgang kann prinzipiell mit einem beliebigen bootbaren Linux von USB-Stick oder CD geschehen, allerdings ist es wichtig, dass die Systemarchitektur passt (i386 vs. x86_64). &lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel erfolgt die Reparatur von [[GRUB 2]] eines installierten [[OpenSUSE]] 13.1 mit einer KDE-Live-Version der selben Release. Analog dazu sollte die Vorgehensweise aber auch für andere Systeme und andere Bootloader funktionieren.&lt;br /&gt;
&lt;br /&gt;
=System mit Live-Version booten=&lt;br /&gt;
Zuerst wird das System über den USB-Stick gebootet. Je nach [[BIOS|BIOS-Einstellungen]] muss man hierfür noch eine Tastenkombination (oft F2) drücken, um den Stick als Boot-Medium auswählen zu können. Nach dem Start öffnet man eine Shell und wird root-User:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux@linux:~&amp;gt; su -&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Oftmals starten Live-Systeme mit einem amerikanischen [[Tastaturlayout]]. Hier ist es für deutschsprachige Anwender hilfreich, eine passende Tastaturbelegung einzustellen. Dies kann beispielsweise so erreicht werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux@linux:~ #loadkeys de-latin1.map&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Partitionierungslayout=&lt;br /&gt;
Für die folgenden Schritte ist es wichtig, das Partitionierungslayout des Zielsystems verstanden zu haben. Eine übersichtliche Darstellung erreicht man über den Befehl ''lsblk'':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # lsblk&lt;br /&gt;
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
sda      8:0    0   1.8T  0 disk &lt;br /&gt;
├─sda1   8:1    0   156M  0 part &lt;br /&gt;
└─sda2   8:2    0   1.8T  0 part &lt;br /&gt;
sdb      8:16   1   1.9G  0 disk &lt;br /&gt;
├─sdb1   8:17   1     4M  0 part &lt;br /&gt;
├─sdb2   8:18   1   936M  0 part /livecd&lt;br /&gt;
└─sdb3   8:19   1   970M  0 part /read-write&lt;br /&gt;
loop7    7:7    0 826.1M  1 loop /read-only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In diesem Beispiel steht 'sda' für die Festplatte und 'sdb' für den USB-Stick. Die Partition '/boot' liegt unverschlüsselt in 'sda1', der ersten primären Partition.&lt;br /&gt;
&lt;br /&gt;
Die anderen Teile des Dateisystems liegen in einem mit [[dm-crypt]] verschlüsselten Bereich auf 'sda2', welches die Bezeichnung der zweiten primären Partition ist. Darin befindet sich ein auf [[LVM]] basierendes Partitionierungsschema. Zuerst müssen alle Bereiche nacheinander zugreifbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
''Hinweis:'' Nicht alle Systeme sind so konfiguriert wie in diesem Beispiel. Oftmals findet man weder Verschlüsselung noch LVM vor, sondern nur primäre oder erweiterte Partitionen. Insofern sind die folgenden Abschnitte als '''optional''' anzusehen und werden bei Nicht-Verwendung ausgelassen:&lt;br /&gt;
*[[#Cryptbereich entschlüsseln|Cryptbereich entschlüsseln]]&lt;br /&gt;
*[[#LVM-Partitionierung einlesen|LVM-Partitionierung einlesen]]&lt;br /&gt;
&lt;br /&gt;
=Cryptbereich entschlüsseln=&lt;br /&gt;
Zuerst muss der [[dm-crypt]]-Container entschlüsselt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # cryptsetup luksOpen /dev/sda2 crypted&lt;br /&gt;
Enter passphrase for /dev/sda2: &lt;br /&gt;
&lt;br /&gt;
linux:~ # lsblk&lt;br /&gt;
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda           8:0    0   1.8T  0 disk  &lt;br /&gt;
├─sda1        8:1    0   156M  0 part  &lt;br /&gt;
└─sda2        8:2    0   1.8T  0 part  &lt;br /&gt;
  └─crypted 253:0    0   1.8T  0 crypt &lt;br /&gt;
sdb           8:16   1   1.9G  0 disk  &lt;br /&gt;
├─sdb1        8:17   1     4M  0 part  &lt;br /&gt;
├─sdb2        8:18   1   936M  0 part  /livecd&lt;br /&gt;
└─sdb3        8:19   1   970M  0 part  /read-write&lt;br /&gt;
loop7         7:7    0 826.1M  1 loop  /read-only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Man beachte das neu erzeugte Device 'crypted'.&lt;br /&gt;
&lt;br /&gt;
=LVM-Partitionierung einlesen=&lt;br /&gt;
Die LVM-Partitionierung wird wie folgt eingelesen und verfügbar gemacht:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # lvs&lt;br /&gt;
  LV   VG     Attr      LSize  Pool Origin Data%  Move Log Copy%  Convert&lt;br /&gt;
  home system -wi------  1.66t                                           &lt;br /&gt;
  os2  system -wi------ 10.00g                                           &lt;br /&gt;
  root system -wi------ 10.00g                                           &lt;br /&gt;
  swap system -wi------  2.00g                                           &lt;br /&gt;
&lt;br /&gt;
linux:~ # vgchange -a y&lt;br /&gt;
&lt;br /&gt;
linux:~ # lsblk&lt;br /&gt;
NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT&lt;br /&gt;
sda                 8:0    0   1.8T  0 disk  &lt;br /&gt;
├─sda1              8:1    0   156M  0 part  &lt;br /&gt;
└─sda2              8:2    0   1.8T  0 part  &lt;br /&gt;
  └─crypted       253:0    0   1.8T  0 crypt &lt;br /&gt;
    ├─system-home 253:1    0   1.7T  0 lvm   &lt;br /&gt;
    ├─system-root 253:2    0    10G  0 lvm   &lt;br /&gt;
    ├─system-swap 253:3    0     2G  0 lvm   &lt;br /&gt;
    └─system-os2  253:4    0    10G  0 lvm   &lt;br /&gt;
sdb                 8:16   1   1.9G  0 disk  &lt;br /&gt;
├─sdb1              8:17   1     4M  0 part  &lt;br /&gt;
├─sdb2              8:18   1   936M  0 part  /livecd&lt;br /&gt;
└─sdb3              8:19   1   970M  0 part  /read-write&lt;br /&gt;
loop7               7:7    0 826.1M  1 loop  /read-only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im vorliegenden Beispiel liegt die 'root'-Partition in der Volume Group (VG) 'system' in der Logical Volume (LV) 'root'. Diese wird unter /dev/system/root bereitgestellt.&lt;br /&gt;
&lt;br /&gt;
=chroot=&lt;br /&gt;
Nun stehen alle notwendigen Bereiche zur Verfügung. Im Folgenden werden sie im Dateisystem zu einer Struktur verbunden, um dann via 'chroot' temporär in diese Systemumgebung zu wechseln.&lt;br /&gt;
&lt;br /&gt;
Zuerst die echten Dateisysteme '/' und '/boot':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # mount /dev/system/root /mnt/&lt;br /&gt;
linux:~ # mount /dev/sda1 /mnt/boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anschließend die virtuellen Dateisysteme:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
linux:~ # mount -o bind /dev /mnt/dev&lt;br /&gt;
linux:~ # mount -o bind /sys /mnt/sys&lt;br /&gt;
linux:~ # mount -t proc /proc /mnt/proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Abschließend wird das 'chroot' durchgeführt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # chroot /mnt/ /bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Hinweis: Wenn hierbei ein Fehler auftritt wie der folgende, dann stimmen möglicherweise die Systemarchitekturen der Live-Version einerseits und des Zielsystems anderseits nicht überein (i386 vs. x86_64):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chroot: failed to run command ‘/bin/bash’: Exec format error&lt;br /&gt;
&lt;br /&gt;
linux:/ # uname -i&lt;br /&gt;
x86_64&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Bootloader neu installieren=&lt;br /&gt;
Nachdem nun die gewünschte Systemumgebung vollständig aktiv ist, kann der Bootloader neu geschrieben werden. Im Falle von [[GRUB 2]] wird diese erneute Installation so durchgeführt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:/ # grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dabei wird der [[MBR]] der Festplatte 'sda' als Ziel verwendet.&lt;br /&gt;
&lt;br /&gt;
=Systemressourcen freigeben=&lt;br /&gt;
Um den sauberen Neustart vorzubereiten, sollten alle Schritte in umgekehrter Reihenfolge wieder aufgelöst werden.&lt;br /&gt;
&lt;br /&gt;
chroot beenden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:/ # exit&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dateisysteme lösen (umount):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # umount /mnt/proc&lt;br /&gt;
linux:~ # umount /mnt/sys&lt;br /&gt;
linux:~ # umount /mnt/dev&lt;br /&gt;
linux:~ # umount /mnt/boot&lt;br /&gt;
linux:~ # umount /mnt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die LVM-Struktur auflösen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # vgchange -a n&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Crypt-Device schliessen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # cryptsetup luksClose crypted&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Abschliessend sollte die Block-Struktur wieder wie zu Anfang aussehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # lsblk&lt;br /&gt;
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT&lt;br /&gt;
sda      8:0    0   1.8T  0 disk &lt;br /&gt;
├─sda1   8:1    0   156M  0 part &lt;br /&gt;
└─sda2   8:2    0   1.8T  0 part &lt;br /&gt;
sdb      8:16   1   1.9G  0 disk &lt;br /&gt;
├─sdb1   8:17   1     4M  0 part &lt;br /&gt;
├─sdb2   8:18   1   936M  0 part /livecd&lt;br /&gt;
└─sdb3   8:19   1   970M  0 part /read-write&lt;br /&gt;
loop7    7:7    0 826.1M  1 loop /read-only&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nun sollte nach einem Reboot der Bootmanager wieder funktionieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
linux:~ # reboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.rootz.de/2012/05/grub2-bootloader-mittels-linux-boot-cd-reparieren/ Grub2-Bootloader mittels Linux-Boot-CD reparieren (rootz)]&lt;br /&gt;
*[https://de.wikipedia.org/wiki/Chroot chroot (Wikipedia)]&lt;br /&gt;
*[[Bootmanager]]&lt;br /&gt;
*[[GRUB 2]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Bootloader_wiederherstellen&amp;diff=32818</id>
		<title>Diskussion:Bootloader wiederherstellen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Bootloader_wiederherstellen&amp;diff=32818"/>
		<updated>2016-01-14T18:02:38Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Review&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Review=&lt;br /&gt;
Der Bitte um Review ist scheinbar seit Februar 2014 keiner nachgekommen. Nachdem ich der Anleitung hier soeben auch noch einmal erfolgreich gefolgt bin, entferne ich dieses Tag nun von der Seite. --[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 19:02, 14. Jan. 2016 (CET)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32816</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32816"/>
		<updated>2015-11-20T19:22:53Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Fähigkeiten */ externe Verlinkung korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|Kompletter Artikel}}&lt;br /&gt;
{{Achtung|'''Aus technischen Gründen ist es leider nicht Möglich der korrekten Schreibweise von &amp;quot;systemd&amp;quot; in der Überschrift dieses Artikels gerecht zu werden.'''}}&lt;br /&gt;
&lt;br /&gt;
= Was ist systemd? =&lt;br /&gt;
Systemd ist ein Dienst oder Daemon und bietet einige grundlegende Werkzeuge für Linux Systeme. Er wird zur System- und Diensteverwaltung eingesetzt. Er läuft mit [[https://de.wikipedia.org/wiki/Process_identifier PID1]] und startet dann alle weiteren Prozesse des Betriebssystems. Des weiteren wird er als freie Software unter der [[LGPL |LGPL 2.1+]] veröffentlicht und wurde in [[Programmierung|C geschrieben]].&lt;br /&gt;
&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
&lt;br /&gt;
''Er startet also als erstes ([[https://de.wikipedia.org/wiki/Process_identifier PID1]]), regelt und steuert dabei alle weiteren Dienste. Er beendet sich beim Herunterfahren als letztes. Der daemon systemd ist damit also tief im Ablauf eines Systemstarts verwurzelt.''&lt;br /&gt;
&lt;br /&gt;
'''Wichtiges dazu:'''&lt;br /&gt;
* [[Bootmanager]]&lt;br /&gt;
* [[Bootvorgang]]&lt;br /&gt;
* [[YaST2_Dienste-Verwaltung|YaST2 Dienste-Verwaltung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SUSE wechsel zu systemd =&lt;br /&gt;
Mit unter liebevoll vollzieht sich der Wechsel zu systemd als Init-System in SUSE mit Sätzen, zitert aus den Releasenotes und dem Adminguide zu [[https://www.suse.com/ SUSE Linux Enterprise Server 12]], wie:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;New core technologies like systemd (replacing the time honored System V based init process) &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:''' ''Neue Kerntechnologien wie systemd (ersetzen den durch lange Dienstzeit geehrten System V basierten init prozess).''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Starting with SUSE Linux Enterprise Server 12 systemd is a replacement for the popular System V init daemon. systemd is fully compatible with System V init (by supporting init scripts). &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:'''  ''Beginnend mit [[https://www.suse.com/ SUSE Linux Enterprise Server 12]] ist systemd ein Ersatz für den populären System V init daemon. Er ist voll kompatibel mit dem System V Init-Vorgang, indem er Init Skripte unterstützt.''&lt;br /&gt;
&lt;br /&gt;
= Integration in [[YaST]] =&lt;br /&gt;
{|&lt;br /&gt;
|rowspan=2|[[Bild:Yast.png]] &lt;br /&gt;
|colspan=3|Wie sich systemd im grafischen Konfigurationstool für [[openSUSE]] integriert, könnt ihr hier sehen:&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| ----------&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|[[YaST2_Dienste-Verwaltung|YaST2: Diensteverwaltung]]&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| &amp;lt;----------&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Kompatibilität=&lt;br /&gt;
Als sogenanntes &amp;quot;drop-in replacement&amp;quot;. Bietet systemd Kompatibilität zu seinen Vorgängern:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* kompatibel mit [https://de.wikipedia.org/wiki/Linux_Standard_Base LSB] init Skripten&lt;br /&gt;
* kompatibel mit SysV&lt;br /&gt;
Hier gibt es zu beachten, dass systemd nicht vollständig rückwärts kompatibel ist.&lt;br /&gt;
Einige Einschränkungen können hier nachgelesen werden: http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/&lt;br /&gt;
&lt;br /&gt;
=Kritik=&lt;br /&gt;
Da ich nicht unnötig falsches sagen möchte, was Kritik gegenüber systemd angeht. Und da ich nur einige Grundlagen objektiv darstellen will, kann ich dazu nicht viel sagen. Allerdings kann ich folgendes berichten:&lt;br /&gt;
* Bei Linux Entwicklern als auch Benutzern steht systemd im Mittelpunkt der Kritik, da es im Ansatz sehr wichtige Kernfunktionen steuert und auch das alt eingefahrene SysV-Init ersetzen kann, bzw. kompatibel ist.&lt;br /&gt;
* Zu diesem Thema gibt es massenweise Informationen im Internet.&lt;br /&gt;
'''Ein besonders wichtiger Punkt:'''&lt;br /&gt;
* Es gibt viele Gegner als auch Befürworter.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|'''Wer möchte informiert sich darüber bitte detaillierter mithilfe einer Suchmaschine eigener Wahl.'''}}&lt;br /&gt;
{{Hinweis|'''Das Forum würde sich hierfür als Diskussionsplatform anbieten, wer möchte. Es gibt sicher einige die an dieser Thematik interesse haben. http://forum.linux-club.de/'''}}&amp;lt;br&amp;gt;&lt;br /&gt;
---------&lt;br /&gt;
'''Meine Meinung zur Kritik:'''&amp;lt;br&amp;gt;&lt;br /&gt;
(Wer mir diesen Raum nicht lassen möchte: Bitte &amp;quot;skipping&amp;quot;).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''Ich finde es wichtig, dass derart grundlegende Kernstrukturen im Betriebssystem kritisiert werden, solange es zielführend und im Sinne eines sicheren und korrekten Funktionierens und damit im Sinne des Endverbrauchers als auch der Entwickler ist. Was ich nicht verstehen kann, wenn Leute nur sagen &amp;quot;systemd ist mist ich will wieder das alte SysV-Init, weil ich mit systemd nicht umgehen kann.&amp;quot; Deswegen möchte ich hier sagen:''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;''Bitte ich gebe euch Gelegenheit, euch zu informieren. Und ich hoffe dies halbwegs richtig zu machen.''&amp;quot;&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
=Fähigkeiten=&lt;br /&gt;
Als Verwaltungsinstrument bringt systemd einige Neuerungen und Verbesserungen, setzt dabei allerdings auch stark auf alt bewährtes. Um nur einiges an Neuerungen und Fähigkeiten zu nennen:&lt;br /&gt;
&lt;br /&gt;
* Fähigkeit zur aggressiven Parallelisierung&lt;br /&gt;
* Nutzt Socket und [[https://en.wikipedia.org/wiki/D-Bus D-Bus]] Aktivierung um Prozesse zu starten&lt;br /&gt;
* Bietet ein &amp;quot;auf Bedarf&amp;quot;-basiertes starten von Diensten&lt;br /&gt;
* Überwacht Prozesse die [[https://en.wikipedia.org/wiki/Cgroups cgroups]] verwenden&lt;br /&gt;
* unterstützt [[https://de.opensuse.org/SDB:Snapper Schnappschüsse]] und deren Wiederherstellung&lt;br /&gt;
* Verwaltet [[Zugriffsrechte#mount|mount und automount]] Einhängepunkte&lt;br /&gt;
* Implementiert abhängigkeitsbasierte Logik für Dienste&lt;br /&gt;
* Kann SysV-Init als drop-in ersetzen.&lt;br /&gt;
* uvm.&lt;br /&gt;
{{Hinweis|Mit Parallelisierung ist das Resultat dieser Prinzipien: [https://de.wikipedia.org/wiki/Nebenläufigkeit Nebenläufigkeit] bzw. [https://de.wikipedia.org/wiki/Parallele_Programmierung Parallele Programmierung] gemeint. &amp;lt;br&amp;gt;Die wörter [https://de.wikipedia.org/wiki/Bedarf Bedarf] und [[Systemd#Abhängigkeit_darstellen:|Abhängigkeit]] müssen in der Auflistung differenziert werden.}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd Steuern=&lt;br /&gt;
Es gibt verschiedene Wege, wie systemd gesteuert werden kann. Einmal gibt es grafische Tools, wie die  [[YaST2_Dienste-Verwaltung|Dienste-Verwaltung]] in [[YaST]]. Das ehemals benannte Menü: &amp;quot;Runlevel-Editor&amp;quot; nennt sich heute bei Migration zu systemd &amp;quot;Dienste-Verwaltung&amp;quot;. Dann gibt es noch die Möglichkeit mit der [[Shell]]. Eine vollständige auflistung der Steuerungsmöglichkeiten, würde den Rahmen dieser Doku total sprengen. Ich nenne hier einige aus Nutzersicht durchaus wichtige Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mitgelieferte Tools:&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemctl|systemctl]]'''&lt;br /&gt;
|''(Den System- und Dienstmanager steuern.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_journalctl|journalctl]]'''&lt;br /&gt;
|''(Das systemd journal abfragen. Also logs.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Tipp: systemd-tmpfiles|systemd-tmpfiles]]'''&lt;br /&gt;
|''(Erstellt und löscht temporäre Strukturen.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemd-analyze|systemd-analyze]]'''&lt;br /&gt;
|''(Analysiert die boot Geschwindigkeit.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_loginctl|loginctl]]'''&lt;br /&gt;
|''(Anbindung an die Sitzungsverwaltung)''&lt;br /&gt;
|-&lt;br /&gt;
|'''.. uvm.'''&lt;br /&gt;
|''(Alle die ich nicht nennen konnte)''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemctl=&lt;br /&gt;
Bitte zum detaillierten Umgang mit systemctl die [[Man_pages|manpage]] lesen. Oder beispielsweise im (Achtung externer Link): [https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_boot_systemd_basics.html Adminguide] nachschlagen.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;man systemctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nachfolgend einige einfache Befehle, die empfehlungsweise bekannt sein sollten.&lt;br /&gt;
&lt;br /&gt;
==Dienste Starten und Beenden==&lt;br /&gt;
'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beenden'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl stop mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatischen Start De-/Aktivieren==&lt;br /&gt;
'''Automatischen Start aktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Automatischen Start deaktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl disable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Status eines Dienstes abfragen==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
In der Ausgabe würde das bei einem erfolgreich gestarteten und für den automatischen Start konfigurierten Dienst in etwa so aussehen:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mein_dienst.service - mein_dienst Daemon&lt;br /&gt;
   Loaded: loaded (/usr/lib/systemd/system/mein_dienst.service; enabled)&lt;br /&gt;
   Active: active (running) since Sa 2015-08-22 02:17:01 CEST; 1s ago&lt;br /&gt;
  Process: 6717 ExecStartPre=/usr/sbin/mein_dienst (code=exited, status=0/SUCCESS)&lt;br /&gt;
 Main PID: 6721 (mein_dienst)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==systemd neu laden==&lt;br /&gt;
Angenommen, es wurden beispielsweise Änderungen an mein_dienst.service Dateien vorgenommen, muss systemd neu geladen werden, damit sie sofort wirksam werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wo sind meine Logs hin?=&lt;br /&gt;
{{Hinweis|'''Umsteigern von SysV-Init auf systemd empfehle ich zum Thema Log´s dies:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;less /var/log/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Darin steht in etwa (versuchsweise frei übersetzt):'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
Sie suchen die traditionellen text log Dateien in /var/log, und diese sind verschwunden?&lt;br /&gt;
&lt;br /&gt;
Hier eine erklärung, was vor sich geht:&lt;br /&gt;
&lt;br /&gt;
Sie betreiben ein systemd basiertes BS in dem syslog durch das Journal ersetzt wurde. Das Journal speichert die selben (und mehr) Informationen wie das klassische syslog. Um das Journal zu nutzen und auf die Logdaten zuzugreifen, führen Sie einfach &amp;quot;journalctl&amp;quot; aus, welches die Logdaten in dem identischen textbasierten Format ausgeben wird, wie es auch mit syslog der Fall war. Für weitere Details, sehen Sie bitte journalctl(1) ein.&lt;br /&gt;
...&lt;br /&gt;
Thank you!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das heisst, es bietet sich hier die Gelegenheit mit dem neuen Journal vertraut zu werden. &lt;br /&gt;
In folgenden Abschnitten möchte ich deswegen eine kurze Einleitung zum Umgang anbieten.&lt;br /&gt;
&lt;br /&gt;
=Umgang mit journalctl=&lt;br /&gt;
Der Dienst systemd beinhaltet seinen eigenen Dienst zur Systemprotokollierung. Die Sammlung all dieser Informationen wird als journal bezeichnet. Diese Instanz sammelt wichtige Informationen und stellt diese wiederum zur Abfrage bereit. Das ist insbesondere zur Systemüberwachung von Nutzen. Es kann beispielsweise mit Hilfe von journalctl ein fehlerhafter Systemstart diagnostiziert werden. Angenommen dies wäre der Fall, so wird spätestens an dieser Stelle ein gewisses Grundwissen zum Umgang mit journalctl erforderlich, wenn es darum geht konkrete Fehlermeldungen bereitzustellen.&lt;br /&gt;
{{Hinweis|'''Generell erfolgt die Ansicht der Protokolle automatisch in einem Pager.'''}}&lt;br /&gt;
==Das journal betrachten:==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn einfach nur 'journalctl' ausgeführt wird, zeigt ein pager das komplette journal, beginnend mit dem ältesten Eintrag.&lt;br /&gt;
&lt;br /&gt;
==Nützliche Schalter==&lt;br /&gt;
Es gibt viele weitere wichtige Filter. Hier einige wenige, die bekannt sein sollten:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-k&amp;quot;&lt;br /&gt;
|dmesg betrachten&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Bootvorgänge&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-u&amp;quot;&lt;br /&gt;
|Nach Unit bzw. Dienst&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-f&amp;quot;&lt;br /&gt;
|aktualisiert den Pager mit neuen Einträgen&lt;br /&gt;
|}&lt;br /&gt;
Für mehr Details bitte die [[Man_pages|manpage]] lesen.&lt;br /&gt;
&lt;br /&gt;
==Das Startprotokoll==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Schalter '-b' sagt journalctl, dass das  gesamte Startprotokoll gezeigt werden soll.&lt;br /&gt;
&lt;br /&gt;
===Das Startprotokoll filtern===&lt;br /&gt;
Angenommen, es möchte nur ein bestimmtes Startprotokoll eingesehen werden. Etwa vom vorhergehenden Systemstart:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl --list-boots&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Gibt eine Liste vorangegangener Protokolle in einer Übersicht aus). Die erste Spalte kann als Indikator herangezogen werden. Beispielausgabe:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt; ..&lt;br /&gt;
 ...&lt;br /&gt;
 -2 9daa81e2ec374cb1b6adba8d96896605 Sa 2015-08-29 23:26:53 CEST—Sa 2015-08-29 23:49:17 CEST&lt;br /&gt;
 -1 c430ed034607494ba2a3bc1ded4e4972 Sa 2015-08-29 23:49:35 CEST—Sa 2015-08-29 23:54:27 CEST&lt;br /&gt;
  0 1f3a7894d0f34f4392c5517b83279c4d Sa 2015-08-29 23:54:53 CEST—So 2015-08-30 16:22:40 CEST&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das gewünschte Startprotokoll wird durch Übergabe des jeweiligen Indikator im Pager dargestellt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===journalctl -xb===&lt;br /&gt;
Wenn der Computer beispielsweise aufgrund eines Stromausfall im Emergency Mode startet, wird in der Shell statt dem grafischen Modus ein Login angeboten. Hier schlägt der Rechner oft vor, es solle die Ausgabe von 'journalctl -xb' zu Rate gezogen werden. Also das Startprotokoll prüfen:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xb&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Das Bootprotokoll anzeigen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==journalctl -xn==&lt;br /&gt;
Duch den Schalter -n kann man die Ausgabe auf eine bestimmte Anzahl Zeilen beschränken. Wenn keine Zahl übergeben wird, werden die letzten 10 Zeilen ausgegeben. Beispielsweise die letzten 25 Zeilen ausgeben und Hilfstexte einblenden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xn 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-n&amp;quot;&lt;br /&gt;
|Ausgabe auf bestimmte Zeilenanzahl beschränken.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filtern nach Unit==&lt;br /&gt;
Angenommen es sollen nur Logeinträge zum Unit oder Dienst &amp;quot;sshd&amp;quot; in der Ausgabe angezeigt werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -u sshd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eigener Filter==&lt;br /&gt;
Die Ausgabe von journalctl kann auch umgeleitet werden. So wird im folgenden Beispiel das ganze Systemprotokoll unter zuhilfenahme von 'egrep' nach Vorkommnissen von &amp;quot;Error&amp;quot; und &amp;quot;Failed&amp;quot; durchsucht. Die Ausgabe wird dann an einen Pager (less) umgeleitet:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl | egrep &amp;quot;Error|Failed&amp;quot; | less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Speicherplatzbelegung==&lt;br /&gt;
Jedes Log wird für eine gewisse Dauer aufbewahrt. Das ist besonders für Systemadministratoren von besonderer Bedeutung, da Computer oft über einen längeren Zeitraum überwacht werden müssen. Einige Daten werden also permanent auf der Festplatte abgelegt. Von Haus aus sind seitens systemd für diese Informationen 10 Prozent des betroffenen Dateisystems vorgesehen. Bei einem Dateisystem mit 1 TiB Speicherplatz wären dies also 100 GiB logdaten, die von systemd angesammelt würden. Das Journal wird allerdings auch noch komprimiert.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter für journalctl&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;--disk-usage&amp;quot;&lt;br /&gt;
|Speicherplatzbelegung des Journal auf dem Datenträger zeigen.&lt;br /&gt;
|}&lt;br /&gt;
Wer auf die voreingestellten Limits und den dafür vorgesehenen Speicherplatz Einfluss haben möchte, kann dies in der Konfigurationsdatei tun:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/systemd/journald.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
So liesse sich beispielsweise mit diesem Schalter das Journal auf eine Größe von 100M beschränken. Ich fände auch einen Wert bis 300M noch sinnvoll wieviel hier eingestellt wird, liegt an der eigenen Nutzenvorstellung:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;SystemMaxUse=100M&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zum Verständnis der Grössenrelation: [[Megabyte |Megabyte/Mibibyte]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und Achtung externer Link: https://de.wikipedia.org/wiki/Datenmenge&lt;br /&gt;
{{Hinweis|'''Die Daten werden im Journal in anderer Form und komprimiert abgelegt. Dennoch, um eine Vorstellung zu haben: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Eine Textdatei gefüllt mit Rautezeichen, die ein A4 Brief ausfüllen würden, hat ca. 4,1 KiB. Eine Ansammlung von 100 GiB mit solchen Dateien entspräche in etwa 261 888 249 Dokumente oder Seiten. Eine Packung Schreibmaschinenpapier hat ca 100 Blatt.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemd-analyze=&lt;br /&gt;
Der Befehl systemd-analyze kann dazu genutzt werden, die Leistung eines Systemstarts zu messen. Beispielsweise wie lange es dauert, bis ein bestimmtes festgelegtes Ziel beim Boot erreicht wurde. Ich möchte hier nur Kleinigkeiten zeigen, damit Verständnis erlangt werden kann, was denn bei einem Systemstart von gerade mal 20 Sekunden so alles abgeht. Auch hier bitte ich darum, zu Details wieder die manpage heranzuziehen.&lt;br /&gt;
&lt;br /&gt;
==Startzeitanalyse==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Einfach ohne Zusätzliche Schalter:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemd-analyze&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beispielausgabe:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Startup finished in 1.433s (kernel) + 493ms (initrd) + 17.842s (userspace) = 19.769s&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Die Ausgabe sollte weitestgehend selbsterklärend sein. Angegebene Messwerte sind an diesem Beispiel in Sekunden und Millisekunden.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Messung grafisch darstellen==&lt;br /&gt;
Es kann eine SVG Grafik als sog. &amp;quot;plot&amp;quot; erstellt werden, der in Details aufzeigt welche Systemdienste zu welcher Zeit gestartet wurden. Dabei wird visuell hervorgehoben, wie viel Zeit alle Dienste zur Initialisierung benötigten.&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
==='''Startzeiten aller Prozesse:'''===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Hinweis|'''Ich leite Die Ausgabe gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze plot &amp;gt; /tmp/plot.svg | gwenview /tmp/plot.svg&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Achtung|Die SVG Datei ist zwar - nur - ca. 140k groß, das darstellen dieser Grafik kann aber sehr aufwendig für den Computer sein. Nachfolgend nur ein kleiner Ausschnitt aus so einer Grafik als GIF.}}&lt;br /&gt;
[[Bild:systemd-analyze_plot.gif|center|'''Plot als Grafik''']] &lt;br /&gt;
Hier kann man sehr schön sehen, was systemd beim Startvorgang so alles anstellen muss. Und was denn eigentlich so alles in diesen 20 Sekunden passiert bis am Beispielsystem ein vollständiger Systemstart abgeschlossen ist.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--------&lt;br /&gt;
==='''Abhängigkeit darstellen:'''&amp;lt;br&amp;gt;===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Wer das interessant fand, möchte eventuell die Möglichkeit nutzen sich grafisch darstellen zu lassen in welchen Abhängigkeiten ein Dienst gestartet wurde.&lt;br /&gt;
{{Hinweis|'''Ich leite Die Ausgabe am Beispiel &amp;quot;avahi-daemon&amp;quot; gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg &amp;gt; /tmp/avahi.svg | gwenview /tmp/avahi.svg&amp;lt;/pre&amp;gt;{{Achtung|'''Das ist ein Einzeiler!'''}}&lt;br /&gt;
Das Ergebnis präsentiert sich dann so (zu .gif umgewandelt): &lt;br /&gt;
[[Bild:Systemd-analyze_avahi.gif|center|'''Prozessabhängigkeit als Grafik''']]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit loginctl=&lt;br /&gt;
Als wichtiger Systemdienst bindet sich systemd auch an den Anmeldevorgang im Betriebssystem. Dafür stellt er einen extra Dienst &amp;quot;systemd-login&amp;quot; zur Verfügung. Der Dienst bietet an dieser Stelle ein Anbindung an die D-Bus Schnittstelle. Wichtige Grundlagen betreffend Zugriffsberechtigungen: [[Zugriffsrechte]]&lt;br /&gt;
&lt;br /&gt;
Das Tool loginctl kann dazu verwendet werden, Einblicke in den Status von Benutzeranmeldungen zu erlangen. Ausserdem kann es verwendet werden Veränderungen am Systemstatus vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
So können [[https://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]] kompatible Signale an Benutzersitzungen gesendet werden, wie beispielsweise [[https://de.wikipedia.org/wiki/SIGTERM SIGTERM]]. Das ist ein Signal zum Terminieren von Programmprozessen.&lt;br /&gt;
{{Warnung|'''Dieses Werkzeug sollte nur von erfahrenen Benutzern verwendet werden.'''}}&lt;br /&gt;
'''Hier nur ein ganz einfaches ungefährliches Anwendungsbeispiel:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;loginctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Listet laufende Benutzersitzungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;   SESSION        UID USER             SEAT            &lt;br /&gt;
         1       1000 user             seat0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd-tmpfiles=&lt;br /&gt;
'''Grundlegendes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Dienst systemd-tmpfiles ist im System für die Verwaltung temporärer Dateisystemstrukturen zuständig. Er erstellt und löscht diese kann sie aber auch bereinigen. ..usw. Einige dieser Strukturen bestehen bei einem Linux Betriebssystem als persistenter bzw. weniger persistenter Ablagebereich. Gedacht ist das für Dateien, die entweder vorübergehend bzw. begrenzt oder längerfristig vorhanden sein müssen.&lt;br /&gt;
&lt;br /&gt;
'''Interessant und erwähnenswert an dieser Stelle:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Systemd hängt einige Dateisystemstrukturen automatisch als &amp;quot;tmpfs&amp;quot; ein. Dazu gehört beispielsweise auch der Pfad &amp;quot;/tmp&amp;quot;. Wie dies geschieht, kann anhand des betreffenden tmp.mount units eingesehen werden. Aus dem Inhalt ergibt sich:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;[Mount]&lt;br /&gt;
What=tmpfs&lt;br /&gt;
Where=/tmp&lt;br /&gt;
Type=tmpfs&lt;br /&gt;
Options=mode=1777,strictatime&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Ein zu SysV-Init zeiten nötiger [[fstab|fstab Eintrag]] hätte so ausgesehen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;tmpfs                /tmp                 tmpfs      defaults,strictatime,mode=1777 0 0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Der Pfad '/var/tmp/' wird hingegen beispielsweise nicht als tmpfs eingehängt. Ist dafür auch nicht bestimmt.'''}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Der Tipp dazu: [[Tipp: systemd-tmpfiles]]'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tipp: weekly trim durch systemd=&lt;br /&gt;
Das Paket 'util-linux-systemd' bringt einen Dienst mit, der es ermöglicht seine SSD wöchentlich trimmen zu lassen. Es gibt zu beachten, dass trim auf unterschiedlichem Weg im Betriebssystem zur [[SSD_Optimierungen|Optimierung von SSD's]] realisiert werden kann:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Trim&lt;br /&gt;
|-&lt;br /&gt;
|Online discard (trim)&lt;br /&gt;
|moutoption &amp;quot;discard&amp;quot;&lt;br /&gt;
|Ersetzt batched trim und Skripte sowie manuelle Ausführung.&lt;br /&gt;
|-&lt;br /&gt;
|Manuell&lt;br /&gt;
|Durch ausführen des 'fstrim' Kommando in der Shell.&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Batched trim bzw. Mitgelieferte Skripte&lt;br /&gt;
|(eigener Skript) Bsp.: [[http://linux-club.de/wiki/opensuse/Batched-trim.sh ext4-trim.sh]]&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|openSUSE bringt beispielsweise für [[https://de.wikipedia.org/wiki/Btrfs btrfs]] einen durch sysconfig steuerbaren trim Skript mit. ('btrfs-trim.sh');&lt;br /&gt;
|Funktioniert zum Stand von openSUSE 13.2 nur beim Einsatz von [[https://de.wikipedia.org/wiki/Btrfs btrfs]].&lt;br /&gt;
|-&lt;br /&gt;
|systemd bringt diese Möglichkeit als Dienst oder unit. ('fstrim.timer') - ('fstrim.service')&lt;br /&gt;
|Keine Einschränkung durch &amp;quot;automatik&amp;quot;. &amp;quot;fstrim -a&amp;quot; beispielsweise bei ext4.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Wichtig ist zu beachten dass diese Kommandos nicht unnötig mehrfach ausgeführt werden oder vermischt zum Einsatz kommen. Einmal die Woche sollte bei batched trim völlig ausreichend sein. Wenn also die in openSUSE integrierte Trimfunktion nicht genutzt werden möchte, kann diese durch die von systemd durchaus ersetzt werden. Wenn beispielsweise Online discard verwendet wird, werden andere Skripte obsolet.&lt;br /&gt;
{{Achtung|'''Ich möchte hier nochmal darauf hinweisen, dass andere Skripte bei Nutzung von systemd zu diesem Zweck deaktiviert werden sollten! Und bei der mount option discard wird batched trim obsolet.'''}}&lt;br /&gt;
'''Folgendes genügt zum aktivieren der systemd variante:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable fstrim.timer&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''Der zugehörige fstrim.service wird vom Timer automatisch zur Ausführung aktiviert.'')&lt;br /&gt;
{{Hinweis|'''Es wird eine Datei mit einem Zeitstempel erstellt anhand dessen die letzte und nächste Ausführung nach dem ersten Aufruf abgehandelt wird.'''}}&lt;br /&gt;
'''Der eigentliche Dienst heisst:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;fstrim.service&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Eine Steuerungsmöglichkeit hierfür ist auch:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rcfstrim&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Der Stempel befindet sich dann hier:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/fstrim.timer&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Der Dienst führt zurzeit wöchentlich folgendes Kommando aus:'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Dies behandelt schlicht und automatisch alle eingehängten Dateisysteme mit trim.''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;fstrim -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Warnung|'''Nicht jede SSD und SATA controller unterstützen jede TRIM Funktionalität. D.h. einige Geräte sind auf batched-discard angewiesen. Einige können mit Online-discard arbeiten, andere nicht. Einige haben wiederum Schwierigkeiten bei trim in Verbindung mit NCQ.'''}}&lt;br /&gt;
{{Hinweis|'''Es bietet sich auch an, dieses unit manuell durch einen eigenen Skript aufzurüsten.'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen / Links:=&lt;br /&gt;
* https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
* https://www.suse.com/documentation/sles-12/book_sle_admin/data/cha_systemd.html&lt;br /&gt;
* https://de.wikipedia.org&lt;br /&gt;
* http://man7.org/&lt;br /&gt;
*[https://fedoraproject.org/wiki/Systemd fedoraproject.org wiki] {{englisch}}&lt;br /&gt;
*[http://cre.fm/cre209-das-linux-system CRE209 Das Linux System - systemd leitet die neue Generation der Linux Systemarchitektur ein] Tim Pritlove im Gespräch mit Lennart Poetering (Veröffentlicht am 10. November 2015)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager‏‎]] [[Kategorie:systemd]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32815</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32815"/>
		<updated>2015-11-20T19:21:03Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Kompatibilität */ externe Verlinkung korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|Kompletter Artikel}}&lt;br /&gt;
{{Achtung|'''Aus technischen Gründen ist es leider nicht Möglich der korrekten Schreibweise von &amp;quot;systemd&amp;quot; in der Überschrift dieses Artikels gerecht zu werden.'''}}&lt;br /&gt;
&lt;br /&gt;
= Was ist systemd? =&lt;br /&gt;
Systemd ist ein Dienst oder Daemon und bietet einige grundlegende Werkzeuge für Linux Systeme. Er wird zur System- und Diensteverwaltung eingesetzt. Er läuft mit [[https://de.wikipedia.org/wiki/Process_identifier PID1]] und startet dann alle weiteren Prozesse des Betriebssystems. Des weiteren wird er als freie Software unter der [[LGPL |LGPL 2.1+]] veröffentlicht und wurde in [[Programmierung|C geschrieben]].&lt;br /&gt;
&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
&lt;br /&gt;
''Er startet also als erstes ([[https://de.wikipedia.org/wiki/Process_identifier PID1]]), regelt und steuert dabei alle weiteren Dienste. Er beendet sich beim Herunterfahren als letztes. Der daemon systemd ist damit also tief im Ablauf eines Systemstarts verwurzelt.''&lt;br /&gt;
&lt;br /&gt;
'''Wichtiges dazu:'''&lt;br /&gt;
* [[Bootmanager]]&lt;br /&gt;
* [[Bootvorgang]]&lt;br /&gt;
* [[YaST2_Dienste-Verwaltung|YaST2 Dienste-Verwaltung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SUSE wechsel zu systemd =&lt;br /&gt;
Mit unter liebevoll vollzieht sich der Wechsel zu systemd als Init-System in SUSE mit Sätzen, zitert aus den Releasenotes und dem Adminguide zu [[https://www.suse.com/ SUSE Linux Enterprise Server 12]], wie:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;New core technologies like systemd (replacing the time honored System V based init process) &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:''' ''Neue Kerntechnologien wie systemd (ersetzen den durch lange Dienstzeit geehrten System V basierten init prozess).''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Starting with SUSE Linux Enterprise Server 12 systemd is a replacement for the popular System V init daemon. systemd is fully compatible with System V init (by supporting init scripts). &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:'''  ''Beginnend mit [[https://www.suse.com/ SUSE Linux Enterprise Server 12]] ist systemd ein Ersatz für den populären System V init daemon. Er ist voll kompatibel mit dem System V Init-Vorgang, indem er Init Skripte unterstützt.''&lt;br /&gt;
&lt;br /&gt;
= Integration in [[YaST]] =&lt;br /&gt;
{|&lt;br /&gt;
|rowspan=2|[[Bild:Yast.png]] &lt;br /&gt;
|colspan=3|Wie sich systemd im grafischen Konfigurationstool für [[openSUSE]] integriert, könnt ihr hier sehen:&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| ----------&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|[[YaST2_Dienste-Verwaltung|YaST2: Diensteverwaltung]]&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| &amp;lt;----------&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Kompatibilität=&lt;br /&gt;
Als sogenanntes &amp;quot;drop-in replacement&amp;quot;. Bietet systemd Kompatibilität zu seinen Vorgängern:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* kompatibel mit [https://de.wikipedia.org/wiki/Linux_Standard_Base LSB] init Skripten&lt;br /&gt;
* kompatibel mit SysV&lt;br /&gt;
Hier gibt es zu beachten, dass systemd nicht vollständig rückwärts kompatibel ist.&lt;br /&gt;
Einige Einschränkungen können hier nachgelesen werden: http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/&lt;br /&gt;
&lt;br /&gt;
=Kritik=&lt;br /&gt;
Da ich nicht unnötig falsches sagen möchte, was Kritik gegenüber systemd angeht. Und da ich nur einige Grundlagen objektiv darstellen will, kann ich dazu nicht viel sagen. Allerdings kann ich folgendes berichten:&lt;br /&gt;
* Bei Linux Entwicklern als auch Benutzern steht systemd im Mittelpunkt der Kritik, da es im Ansatz sehr wichtige Kernfunktionen steuert und auch das alt eingefahrene SysV-Init ersetzen kann, bzw. kompatibel ist.&lt;br /&gt;
* Zu diesem Thema gibt es massenweise Informationen im Internet.&lt;br /&gt;
'''Ein besonders wichtiger Punkt:'''&lt;br /&gt;
* Es gibt viele Gegner als auch Befürworter.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|'''Wer möchte informiert sich darüber bitte detaillierter mithilfe einer Suchmaschine eigener Wahl.'''}}&lt;br /&gt;
{{Hinweis|'''Das Forum würde sich hierfür als Diskussionsplatform anbieten, wer möchte. Es gibt sicher einige die an dieser Thematik interesse haben. http://forum.linux-club.de/'''}}&amp;lt;br&amp;gt;&lt;br /&gt;
---------&lt;br /&gt;
'''Meine Meinung zur Kritik:'''&amp;lt;br&amp;gt;&lt;br /&gt;
(Wer mir diesen Raum nicht lassen möchte: Bitte &amp;quot;skipping&amp;quot;).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''Ich finde es wichtig, dass derart grundlegende Kernstrukturen im Betriebssystem kritisiert werden, solange es zielführend und im Sinne eines sicheren und korrekten Funktionierens und damit im Sinne des Endverbrauchers als auch der Entwickler ist. Was ich nicht verstehen kann, wenn Leute nur sagen &amp;quot;systemd ist mist ich will wieder das alte SysV-Init, weil ich mit systemd nicht umgehen kann.&amp;quot; Deswegen möchte ich hier sagen:''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;''Bitte ich gebe euch Gelegenheit, euch zu informieren. Und ich hoffe dies halbwegs richtig zu machen.''&amp;quot;&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
=Fähigkeiten=&lt;br /&gt;
Als Verwaltungsinstrument bringt systemd einige Neuerungen und Verbesserungen, setzt dabei allerdings auch stark auf alt bewährtes. Um nur einiges an Neuerungen und Fähigkeiten zu nennen:&lt;br /&gt;
&lt;br /&gt;
* Fähigkeit zur aggressiven Parallelisierung&lt;br /&gt;
* Nutzt Socket und [[https://en.wikipedia.org/wiki/D-Bus D-Bus]] Aktivierung um Prozesse zu starten&lt;br /&gt;
* Bietet ein &amp;quot;auf Bedarf&amp;quot;-basiertes starten von Diensten&lt;br /&gt;
* Überwacht Prozesse die [[https://en.wikipedia.org/wiki/Cgroups cgroups]] verwenden&lt;br /&gt;
* unterstützt [[https://de.opensuse.org/SDB:Snapper Schnappschüsse]] und deren Wiederherstellung&lt;br /&gt;
* Verwaltet [[Zugriffsrechte#mount|mount und automount]] Einhängepunkte&lt;br /&gt;
* Implementiert abhängigkeitsbasierte Logik für Dienste&lt;br /&gt;
* Kann SysV-Init als drop-in ersetzen.&lt;br /&gt;
* uvm.&lt;br /&gt;
{{Hinweis|Mit Parallelisierung ist das Resultat dieser Prinzipien: [[https://de.wikipedia.org/wiki/Nebenläufigkeit Nebenläufigkeit]] bzw. [[https://de.wikipedia.org/wiki/Parallele_Programmierung Parallele Programmierung]] gemeint. &amp;lt;br&amp;gt;Die wörter [[https://de.wikipedia.org/wiki/Bedarf Bedarf]] und [[Systemd#Abhängigkeit_darstellen:|Abhängigkeit]] müssen in der Auflistung differenziert werden.}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd Steuern=&lt;br /&gt;
Es gibt verschiedene Wege, wie systemd gesteuert werden kann. Einmal gibt es grafische Tools, wie die  [[YaST2_Dienste-Verwaltung|Dienste-Verwaltung]] in [[YaST]]. Das ehemals benannte Menü: &amp;quot;Runlevel-Editor&amp;quot; nennt sich heute bei Migration zu systemd &amp;quot;Dienste-Verwaltung&amp;quot;. Dann gibt es noch die Möglichkeit mit der [[Shell]]. Eine vollständige auflistung der Steuerungsmöglichkeiten, würde den Rahmen dieser Doku total sprengen. Ich nenne hier einige aus Nutzersicht durchaus wichtige Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mitgelieferte Tools:&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemctl|systemctl]]'''&lt;br /&gt;
|''(Den System- und Dienstmanager steuern.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_journalctl|journalctl]]'''&lt;br /&gt;
|''(Das systemd journal abfragen. Also logs.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Tipp: systemd-tmpfiles|systemd-tmpfiles]]'''&lt;br /&gt;
|''(Erstellt und löscht temporäre Strukturen.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemd-analyze|systemd-analyze]]'''&lt;br /&gt;
|''(Analysiert die boot Geschwindigkeit.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_loginctl|loginctl]]'''&lt;br /&gt;
|''(Anbindung an die Sitzungsverwaltung)''&lt;br /&gt;
|-&lt;br /&gt;
|'''.. uvm.'''&lt;br /&gt;
|''(Alle die ich nicht nennen konnte)''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemctl=&lt;br /&gt;
Bitte zum detaillierten Umgang mit systemctl die [[Man_pages|manpage]] lesen. Oder beispielsweise im (Achtung externer Link): [https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_boot_systemd_basics.html Adminguide] nachschlagen.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;man systemctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nachfolgend einige einfache Befehle, die empfehlungsweise bekannt sein sollten.&lt;br /&gt;
&lt;br /&gt;
==Dienste Starten und Beenden==&lt;br /&gt;
'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beenden'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl stop mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatischen Start De-/Aktivieren==&lt;br /&gt;
'''Automatischen Start aktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Automatischen Start deaktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl disable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Status eines Dienstes abfragen==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
In der Ausgabe würde das bei einem erfolgreich gestarteten und für den automatischen Start konfigurierten Dienst in etwa so aussehen:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mein_dienst.service - mein_dienst Daemon&lt;br /&gt;
   Loaded: loaded (/usr/lib/systemd/system/mein_dienst.service; enabled)&lt;br /&gt;
   Active: active (running) since Sa 2015-08-22 02:17:01 CEST; 1s ago&lt;br /&gt;
  Process: 6717 ExecStartPre=/usr/sbin/mein_dienst (code=exited, status=0/SUCCESS)&lt;br /&gt;
 Main PID: 6721 (mein_dienst)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==systemd neu laden==&lt;br /&gt;
Angenommen, es wurden beispielsweise Änderungen an mein_dienst.service Dateien vorgenommen, muss systemd neu geladen werden, damit sie sofort wirksam werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wo sind meine Logs hin?=&lt;br /&gt;
{{Hinweis|'''Umsteigern von SysV-Init auf systemd empfehle ich zum Thema Log´s dies:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;less /var/log/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Darin steht in etwa (versuchsweise frei übersetzt):'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
Sie suchen die traditionellen text log Dateien in /var/log, und diese sind verschwunden?&lt;br /&gt;
&lt;br /&gt;
Hier eine erklärung, was vor sich geht:&lt;br /&gt;
&lt;br /&gt;
Sie betreiben ein systemd basiertes BS in dem syslog durch das Journal ersetzt wurde. Das Journal speichert die selben (und mehr) Informationen wie das klassische syslog. Um das Journal zu nutzen und auf die Logdaten zuzugreifen, führen Sie einfach &amp;quot;journalctl&amp;quot; aus, welches die Logdaten in dem identischen textbasierten Format ausgeben wird, wie es auch mit syslog der Fall war. Für weitere Details, sehen Sie bitte journalctl(1) ein.&lt;br /&gt;
...&lt;br /&gt;
Thank you!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das heisst, es bietet sich hier die Gelegenheit mit dem neuen Journal vertraut zu werden. &lt;br /&gt;
In folgenden Abschnitten möchte ich deswegen eine kurze Einleitung zum Umgang anbieten.&lt;br /&gt;
&lt;br /&gt;
=Umgang mit journalctl=&lt;br /&gt;
Der Dienst systemd beinhaltet seinen eigenen Dienst zur Systemprotokollierung. Die Sammlung all dieser Informationen wird als journal bezeichnet. Diese Instanz sammelt wichtige Informationen und stellt diese wiederum zur Abfrage bereit. Das ist insbesondere zur Systemüberwachung von Nutzen. Es kann beispielsweise mit Hilfe von journalctl ein fehlerhafter Systemstart diagnostiziert werden. Angenommen dies wäre der Fall, so wird spätestens an dieser Stelle ein gewisses Grundwissen zum Umgang mit journalctl erforderlich, wenn es darum geht konkrete Fehlermeldungen bereitzustellen.&lt;br /&gt;
{{Hinweis|'''Generell erfolgt die Ansicht der Protokolle automatisch in einem Pager.'''}}&lt;br /&gt;
==Das journal betrachten:==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn einfach nur 'journalctl' ausgeführt wird, zeigt ein pager das komplette journal, beginnend mit dem ältesten Eintrag.&lt;br /&gt;
&lt;br /&gt;
==Nützliche Schalter==&lt;br /&gt;
Es gibt viele weitere wichtige Filter. Hier einige wenige, die bekannt sein sollten:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-k&amp;quot;&lt;br /&gt;
|dmesg betrachten&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Bootvorgänge&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-u&amp;quot;&lt;br /&gt;
|Nach Unit bzw. Dienst&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-f&amp;quot;&lt;br /&gt;
|aktualisiert den Pager mit neuen Einträgen&lt;br /&gt;
|}&lt;br /&gt;
Für mehr Details bitte die [[Man_pages|manpage]] lesen.&lt;br /&gt;
&lt;br /&gt;
==Das Startprotokoll==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Schalter '-b' sagt journalctl, dass das  gesamte Startprotokoll gezeigt werden soll.&lt;br /&gt;
&lt;br /&gt;
===Das Startprotokoll filtern===&lt;br /&gt;
Angenommen, es möchte nur ein bestimmtes Startprotokoll eingesehen werden. Etwa vom vorhergehenden Systemstart:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl --list-boots&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Gibt eine Liste vorangegangener Protokolle in einer Übersicht aus). Die erste Spalte kann als Indikator herangezogen werden. Beispielausgabe:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt; ..&lt;br /&gt;
 ...&lt;br /&gt;
 -2 9daa81e2ec374cb1b6adba8d96896605 Sa 2015-08-29 23:26:53 CEST—Sa 2015-08-29 23:49:17 CEST&lt;br /&gt;
 -1 c430ed034607494ba2a3bc1ded4e4972 Sa 2015-08-29 23:49:35 CEST—Sa 2015-08-29 23:54:27 CEST&lt;br /&gt;
  0 1f3a7894d0f34f4392c5517b83279c4d Sa 2015-08-29 23:54:53 CEST—So 2015-08-30 16:22:40 CEST&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das gewünschte Startprotokoll wird durch Übergabe des jeweiligen Indikator im Pager dargestellt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===journalctl -xb===&lt;br /&gt;
Wenn der Computer beispielsweise aufgrund eines Stromausfall im Emergency Mode startet, wird in der Shell statt dem grafischen Modus ein Login angeboten. Hier schlägt der Rechner oft vor, es solle die Ausgabe von 'journalctl -xb' zu Rate gezogen werden. Also das Startprotokoll prüfen:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xb&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Das Bootprotokoll anzeigen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==journalctl -xn==&lt;br /&gt;
Duch den Schalter -n kann man die Ausgabe auf eine bestimmte Anzahl Zeilen beschränken. Wenn keine Zahl übergeben wird, werden die letzten 10 Zeilen ausgegeben. Beispielsweise die letzten 25 Zeilen ausgeben und Hilfstexte einblenden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xn 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-n&amp;quot;&lt;br /&gt;
|Ausgabe auf bestimmte Zeilenanzahl beschränken.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filtern nach Unit==&lt;br /&gt;
Angenommen es sollen nur Logeinträge zum Unit oder Dienst &amp;quot;sshd&amp;quot; in der Ausgabe angezeigt werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -u sshd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eigener Filter==&lt;br /&gt;
Die Ausgabe von journalctl kann auch umgeleitet werden. So wird im folgenden Beispiel das ganze Systemprotokoll unter zuhilfenahme von 'egrep' nach Vorkommnissen von &amp;quot;Error&amp;quot; und &amp;quot;Failed&amp;quot; durchsucht. Die Ausgabe wird dann an einen Pager (less) umgeleitet:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl | egrep &amp;quot;Error|Failed&amp;quot; | less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Speicherplatzbelegung==&lt;br /&gt;
Jedes Log wird für eine gewisse Dauer aufbewahrt. Das ist besonders für Systemadministratoren von besonderer Bedeutung, da Computer oft über einen längeren Zeitraum überwacht werden müssen. Einige Daten werden also permanent auf der Festplatte abgelegt. Von Haus aus sind seitens systemd für diese Informationen 10 Prozent des betroffenen Dateisystems vorgesehen. Bei einem Dateisystem mit 1 TiB Speicherplatz wären dies also 100 GiB logdaten, die von systemd angesammelt würden. Das Journal wird allerdings auch noch komprimiert.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter für journalctl&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;--disk-usage&amp;quot;&lt;br /&gt;
|Speicherplatzbelegung des Journal auf dem Datenträger zeigen.&lt;br /&gt;
|}&lt;br /&gt;
Wer auf die voreingestellten Limits und den dafür vorgesehenen Speicherplatz Einfluss haben möchte, kann dies in der Konfigurationsdatei tun:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/systemd/journald.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
So liesse sich beispielsweise mit diesem Schalter das Journal auf eine Größe von 100M beschränken. Ich fände auch einen Wert bis 300M noch sinnvoll wieviel hier eingestellt wird, liegt an der eigenen Nutzenvorstellung:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;SystemMaxUse=100M&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zum Verständnis der Grössenrelation: [[Megabyte |Megabyte/Mibibyte]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und Achtung externer Link: https://de.wikipedia.org/wiki/Datenmenge&lt;br /&gt;
{{Hinweis|'''Die Daten werden im Journal in anderer Form und komprimiert abgelegt. Dennoch, um eine Vorstellung zu haben: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Eine Textdatei gefüllt mit Rautezeichen, die ein A4 Brief ausfüllen würden, hat ca. 4,1 KiB. Eine Ansammlung von 100 GiB mit solchen Dateien entspräche in etwa 261 888 249 Dokumente oder Seiten. Eine Packung Schreibmaschinenpapier hat ca 100 Blatt.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemd-analyze=&lt;br /&gt;
Der Befehl systemd-analyze kann dazu genutzt werden, die Leistung eines Systemstarts zu messen. Beispielsweise wie lange es dauert, bis ein bestimmtes festgelegtes Ziel beim Boot erreicht wurde. Ich möchte hier nur Kleinigkeiten zeigen, damit Verständnis erlangt werden kann, was denn bei einem Systemstart von gerade mal 20 Sekunden so alles abgeht. Auch hier bitte ich darum, zu Details wieder die manpage heranzuziehen.&lt;br /&gt;
&lt;br /&gt;
==Startzeitanalyse==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Einfach ohne Zusätzliche Schalter:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemd-analyze&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beispielausgabe:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Startup finished in 1.433s (kernel) + 493ms (initrd) + 17.842s (userspace) = 19.769s&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Die Ausgabe sollte weitestgehend selbsterklärend sein. Angegebene Messwerte sind an diesem Beispiel in Sekunden und Millisekunden.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Messung grafisch darstellen==&lt;br /&gt;
Es kann eine SVG Grafik als sog. &amp;quot;plot&amp;quot; erstellt werden, der in Details aufzeigt welche Systemdienste zu welcher Zeit gestartet wurden. Dabei wird visuell hervorgehoben, wie viel Zeit alle Dienste zur Initialisierung benötigten.&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
==='''Startzeiten aller Prozesse:'''===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Hinweis|'''Ich leite Die Ausgabe gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze plot &amp;gt; /tmp/plot.svg | gwenview /tmp/plot.svg&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Achtung|Die SVG Datei ist zwar - nur - ca. 140k groß, das darstellen dieser Grafik kann aber sehr aufwendig für den Computer sein. Nachfolgend nur ein kleiner Ausschnitt aus so einer Grafik als GIF.}}&lt;br /&gt;
[[Bild:systemd-analyze_plot.gif|center|'''Plot als Grafik''']] &lt;br /&gt;
Hier kann man sehr schön sehen, was systemd beim Startvorgang so alles anstellen muss. Und was denn eigentlich so alles in diesen 20 Sekunden passiert bis am Beispielsystem ein vollständiger Systemstart abgeschlossen ist.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--------&lt;br /&gt;
==='''Abhängigkeit darstellen:'''&amp;lt;br&amp;gt;===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Wer das interessant fand, möchte eventuell die Möglichkeit nutzen sich grafisch darstellen zu lassen in welchen Abhängigkeiten ein Dienst gestartet wurde.&lt;br /&gt;
{{Hinweis|'''Ich leite Die Ausgabe am Beispiel &amp;quot;avahi-daemon&amp;quot; gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg &amp;gt; /tmp/avahi.svg | gwenview /tmp/avahi.svg&amp;lt;/pre&amp;gt;{{Achtung|'''Das ist ein Einzeiler!'''}}&lt;br /&gt;
Das Ergebnis präsentiert sich dann so (zu .gif umgewandelt): &lt;br /&gt;
[[Bild:Systemd-analyze_avahi.gif|center|'''Prozessabhängigkeit als Grafik''']]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit loginctl=&lt;br /&gt;
Als wichtiger Systemdienst bindet sich systemd auch an den Anmeldevorgang im Betriebssystem. Dafür stellt er einen extra Dienst &amp;quot;systemd-login&amp;quot; zur Verfügung. Der Dienst bietet an dieser Stelle ein Anbindung an die D-Bus Schnittstelle. Wichtige Grundlagen betreffend Zugriffsberechtigungen: [[Zugriffsrechte]]&lt;br /&gt;
&lt;br /&gt;
Das Tool loginctl kann dazu verwendet werden, Einblicke in den Status von Benutzeranmeldungen zu erlangen. Ausserdem kann es verwendet werden Veränderungen am Systemstatus vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
So können [[https://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]] kompatible Signale an Benutzersitzungen gesendet werden, wie beispielsweise [[https://de.wikipedia.org/wiki/SIGTERM SIGTERM]]. Das ist ein Signal zum Terminieren von Programmprozessen.&lt;br /&gt;
{{Warnung|'''Dieses Werkzeug sollte nur von erfahrenen Benutzern verwendet werden.'''}}&lt;br /&gt;
'''Hier nur ein ganz einfaches ungefährliches Anwendungsbeispiel:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;loginctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Listet laufende Benutzersitzungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;   SESSION        UID USER             SEAT            &lt;br /&gt;
         1       1000 user             seat0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd-tmpfiles=&lt;br /&gt;
'''Grundlegendes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Dienst systemd-tmpfiles ist im System für die Verwaltung temporärer Dateisystemstrukturen zuständig. Er erstellt und löscht diese kann sie aber auch bereinigen. ..usw. Einige dieser Strukturen bestehen bei einem Linux Betriebssystem als persistenter bzw. weniger persistenter Ablagebereich. Gedacht ist das für Dateien, die entweder vorübergehend bzw. begrenzt oder längerfristig vorhanden sein müssen.&lt;br /&gt;
&lt;br /&gt;
'''Interessant und erwähnenswert an dieser Stelle:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Systemd hängt einige Dateisystemstrukturen automatisch als &amp;quot;tmpfs&amp;quot; ein. Dazu gehört beispielsweise auch der Pfad &amp;quot;/tmp&amp;quot;. Wie dies geschieht, kann anhand des betreffenden tmp.mount units eingesehen werden. Aus dem Inhalt ergibt sich:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;[Mount]&lt;br /&gt;
What=tmpfs&lt;br /&gt;
Where=/tmp&lt;br /&gt;
Type=tmpfs&lt;br /&gt;
Options=mode=1777,strictatime&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Ein zu SysV-Init zeiten nötiger [[fstab|fstab Eintrag]] hätte so ausgesehen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;tmpfs                /tmp                 tmpfs      defaults,strictatime,mode=1777 0 0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Der Pfad '/var/tmp/' wird hingegen beispielsweise nicht als tmpfs eingehängt. Ist dafür auch nicht bestimmt.'''}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Der Tipp dazu: [[Tipp: systemd-tmpfiles]]'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tipp: weekly trim durch systemd=&lt;br /&gt;
Das Paket 'util-linux-systemd' bringt einen Dienst mit, der es ermöglicht seine SSD wöchentlich trimmen zu lassen. Es gibt zu beachten, dass trim auf unterschiedlichem Weg im Betriebssystem zur [[SSD_Optimierungen|Optimierung von SSD's]] realisiert werden kann:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Trim&lt;br /&gt;
|-&lt;br /&gt;
|Online discard (trim)&lt;br /&gt;
|moutoption &amp;quot;discard&amp;quot;&lt;br /&gt;
|Ersetzt batched trim und Skripte sowie manuelle Ausführung.&lt;br /&gt;
|-&lt;br /&gt;
|Manuell&lt;br /&gt;
|Durch ausführen des 'fstrim' Kommando in der Shell.&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Batched trim bzw. Mitgelieferte Skripte&lt;br /&gt;
|(eigener Skript) Bsp.: [[http://linux-club.de/wiki/opensuse/Batched-trim.sh ext4-trim.sh]]&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|openSUSE bringt beispielsweise für [[https://de.wikipedia.org/wiki/Btrfs btrfs]] einen durch sysconfig steuerbaren trim Skript mit. ('btrfs-trim.sh');&lt;br /&gt;
|Funktioniert zum Stand von openSUSE 13.2 nur beim Einsatz von [[https://de.wikipedia.org/wiki/Btrfs btrfs]].&lt;br /&gt;
|-&lt;br /&gt;
|systemd bringt diese Möglichkeit als Dienst oder unit. ('fstrim.timer') - ('fstrim.service')&lt;br /&gt;
|Keine Einschränkung durch &amp;quot;automatik&amp;quot;. &amp;quot;fstrim -a&amp;quot; beispielsweise bei ext4.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Wichtig ist zu beachten dass diese Kommandos nicht unnötig mehrfach ausgeführt werden oder vermischt zum Einsatz kommen. Einmal die Woche sollte bei batched trim völlig ausreichend sein. Wenn also die in openSUSE integrierte Trimfunktion nicht genutzt werden möchte, kann diese durch die von systemd durchaus ersetzt werden. Wenn beispielsweise Online discard verwendet wird, werden andere Skripte obsolet.&lt;br /&gt;
{{Achtung|'''Ich möchte hier nochmal darauf hinweisen, dass andere Skripte bei Nutzung von systemd zu diesem Zweck deaktiviert werden sollten! Und bei der mount option discard wird batched trim obsolet.'''}}&lt;br /&gt;
'''Folgendes genügt zum aktivieren der systemd variante:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable fstrim.timer&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''Der zugehörige fstrim.service wird vom Timer automatisch zur Ausführung aktiviert.'')&lt;br /&gt;
{{Hinweis|'''Es wird eine Datei mit einem Zeitstempel erstellt anhand dessen die letzte und nächste Ausführung nach dem ersten Aufruf abgehandelt wird.'''}}&lt;br /&gt;
'''Der eigentliche Dienst heisst:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;fstrim.service&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Eine Steuerungsmöglichkeit hierfür ist auch:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rcfstrim&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Der Stempel befindet sich dann hier:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/fstrim.timer&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Der Dienst führt zurzeit wöchentlich folgendes Kommando aus:'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Dies behandelt schlicht und automatisch alle eingehängten Dateisysteme mit trim.''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;fstrim -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Warnung|'''Nicht jede SSD und SATA controller unterstützen jede TRIM Funktionalität. D.h. einige Geräte sind auf batched-discard angewiesen. Einige können mit Online-discard arbeiten, andere nicht. Einige haben wiederum Schwierigkeiten bei trim in Verbindung mit NCQ.'''}}&lt;br /&gt;
{{Hinweis|'''Es bietet sich auch an, dieses unit manuell durch einen eigenen Skript aufzurüsten.'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen / Links:=&lt;br /&gt;
* https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
* https://www.suse.com/documentation/sles-12/book_sle_admin/data/cha_systemd.html&lt;br /&gt;
* https://de.wikipedia.org&lt;br /&gt;
* http://man7.org/&lt;br /&gt;
*[https://fedoraproject.org/wiki/Systemd fedoraproject.org wiki] {{englisch}}&lt;br /&gt;
*[http://cre.fm/cre209-das-linux-system CRE209 Das Linux System - systemd leitet die neue Generation der Linux Systemarchitektur ein] Tim Pritlove im Gespräch mit Lennart Poetering (Veröffentlicht am 10. November 2015)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager‏‎]] [[Kategorie:systemd]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32814</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32814"/>
		<updated>2015-11-20T16:17:11Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Quellen / Links: */ CRE209 Das Linux System&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|Kompletter Artikel}}&lt;br /&gt;
{{Achtung|'''Aus technischen Gründen ist es leider nicht Möglich der korrekten Schreibweise von &amp;quot;systemd&amp;quot; in der Überschrift dieses Artikels gerecht zu werden.'''}}&lt;br /&gt;
&lt;br /&gt;
= Was ist systemd? =&lt;br /&gt;
Systemd ist ein Dienst oder Daemon und bietet einige grundlegende Werkzeuge für Linux Systeme. Er wird zur System- und Diensteverwaltung eingesetzt. Er läuft mit [[https://de.wikipedia.org/wiki/Process_identifier PID1]] und startet dann alle weiteren Prozesse des Betriebssystems. Des weiteren wird er als freie Software unter der [[LGPL |LGPL 2.1+]] veröffentlicht und wurde in [[Programmierung|C geschrieben]].&lt;br /&gt;
&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
&lt;br /&gt;
''Er startet also als erstes ([[https://de.wikipedia.org/wiki/Process_identifier PID1]]), regelt und steuert dabei alle weiteren Dienste. Er beendet sich beim Herunterfahren als letztes. Der daemon systemd ist damit also tief im Ablauf eines Systemstarts verwurzelt.''&lt;br /&gt;
&lt;br /&gt;
'''Wichtiges dazu:'''&lt;br /&gt;
* [[Bootmanager]]&lt;br /&gt;
* [[Bootvorgang]]&lt;br /&gt;
* [[YaST2_Dienste-Verwaltung|YaST2 Dienste-Verwaltung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SUSE wechsel zu systemd =&lt;br /&gt;
Mit unter liebevoll vollzieht sich der Wechsel zu systemd als Init-System in SUSE mit Sätzen, zitert aus den Releasenotes und dem Adminguide zu [[https://www.suse.com/ SUSE Linux Enterprise Server 12]], wie:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;New core technologies like systemd (replacing the time honored System V based init process) &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:''' ''Neue Kerntechnologien wie systemd (ersetzen den durch lange Dienstzeit geehrten System V basierten init prozess).''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Starting with SUSE Linux Enterprise Server 12 systemd is a replacement for the popular System V init daemon. systemd is fully compatible with System V init (by supporting init scripts). &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:'''  ''Beginnend mit [[https://www.suse.com/ SUSE Linux Enterprise Server 12]] ist systemd ein Ersatz für den populären System V init daemon. Er ist voll kompatibel mit dem System V Init-Vorgang, indem er Init Skripte unterstützt.''&lt;br /&gt;
&lt;br /&gt;
= Integration in [[YaST]] =&lt;br /&gt;
{|&lt;br /&gt;
|rowspan=2|[[Bild:Yast.png]] &lt;br /&gt;
|colspan=3|Wie sich systemd im grafischen Konfigurationstool für [[openSUSE]] integriert, könnt ihr hier sehen:&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| ----------&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|[[YaST2_Dienste-Verwaltung|YaST2: Diensteverwaltung]]&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| &amp;lt;----------&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Kompatibilität=&lt;br /&gt;
Als sogenanntes &amp;quot;drop-in replacement&amp;quot;. Bietet systemd Kompatibilität zu seinen Vorgängern:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* kompatibel mit [[https://de.wikipedia.org/wiki/Linux_Standard_Base LSB]] init Skripten&lt;br /&gt;
* kompatibel mit SysV&lt;br /&gt;
Hier gibt es zu beachten, dass systemd nicht vollständig rückwärts kompatibel ist.&lt;br /&gt;
Einige Einschränkungen können hier nachgelesen werden: http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/&lt;br /&gt;
&lt;br /&gt;
=Kritik=&lt;br /&gt;
Da ich nicht unnötig falsches sagen möchte, was Kritik gegenüber systemd angeht. Und da ich nur einige Grundlagen objektiv darstellen will, kann ich dazu nicht viel sagen. Allerdings kann ich folgendes berichten:&lt;br /&gt;
* Bei Linux Entwicklern als auch Benutzern steht systemd im Mittelpunkt der Kritik, da es im Ansatz sehr wichtige Kernfunktionen steuert und auch das alt eingefahrene SysV-Init ersetzen kann, bzw. kompatibel ist.&lt;br /&gt;
* Zu diesem Thema gibt es massenweise Informationen im Internet.&lt;br /&gt;
'''Ein besonders wichtiger Punkt:'''&lt;br /&gt;
* Es gibt viele Gegner als auch Befürworter.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|'''Wer möchte informiert sich darüber bitte detaillierter mithilfe einer Suchmaschine eigener Wahl.'''}}&lt;br /&gt;
{{Hinweis|'''Das Forum würde sich hierfür als Diskussionsplatform anbieten, wer möchte. Es gibt sicher einige die an dieser Thematik interesse haben. http://forum.linux-club.de/'''}}&amp;lt;br&amp;gt;&lt;br /&gt;
---------&lt;br /&gt;
'''Meine Meinung zur Kritik:'''&amp;lt;br&amp;gt;&lt;br /&gt;
(Wer mir diesen Raum nicht lassen möchte: Bitte &amp;quot;skipping&amp;quot;).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''Ich finde es wichtig, dass derart grundlegende Kernstrukturen im Betriebssystem kritisiert werden, solange es zielführend und im Sinne eines sicheren und korrekten Funktionierens und damit im Sinne des Endverbrauchers als auch der Entwickler ist. Was ich nicht verstehen kann, wenn Leute nur sagen &amp;quot;systemd ist mist ich will wieder das alte SysV-Init, weil ich mit systemd nicht umgehen kann.&amp;quot; Deswegen möchte ich hier sagen:''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;''Bitte ich gebe euch Gelegenheit, euch zu informieren. Und ich hoffe dies halbwegs richtig zu machen.''&amp;quot;&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
=Fähigkeiten=&lt;br /&gt;
Als Verwaltungsinstrument bringt systemd einige Neuerungen und Verbesserungen, setzt dabei allerdings auch stark auf alt bewährtes. Um nur einiges an Neuerungen und Fähigkeiten zu nennen:&lt;br /&gt;
&lt;br /&gt;
* Fähigkeit zur aggressiven Parallelisierung&lt;br /&gt;
* Nutzt Socket und [[https://en.wikipedia.org/wiki/D-Bus D-Bus]] Aktivierung um Prozesse zu starten&lt;br /&gt;
* Bietet ein &amp;quot;auf Bedarf&amp;quot;-basiertes starten von Diensten&lt;br /&gt;
* Überwacht Prozesse die [[https://en.wikipedia.org/wiki/Cgroups cgroups]] verwenden&lt;br /&gt;
* unterstützt [[https://de.opensuse.org/SDB:Snapper Schnappschüsse]] und deren Wiederherstellung&lt;br /&gt;
* Verwaltet [[Zugriffsrechte#mount|mount und automount]] Einhängepunkte&lt;br /&gt;
* Implementiert abhängigkeitsbasierte Logik für Dienste&lt;br /&gt;
* Kann SysV-Init als drop-in ersetzen.&lt;br /&gt;
* uvm.&lt;br /&gt;
{{Hinweis|Mit Parallelisierung ist das Resultat dieser Prinzipien: [[https://de.wikipedia.org/wiki/Nebenläufigkeit Nebenläufigkeit]] bzw. [[https://de.wikipedia.org/wiki/Parallele_Programmierung Parallele Programmierung]] gemeint. &amp;lt;br&amp;gt;Die wörter [[https://de.wikipedia.org/wiki/Bedarf Bedarf]] und [[Systemd#Abhängigkeit_darstellen:|Abhängigkeit]] müssen in der Auflistung differenziert werden.}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd Steuern=&lt;br /&gt;
Es gibt verschiedene Wege, wie systemd gesteuert werden kann. Einmal gibt es grafische Tools, wie die  [[YaST2_Dienste-Verwaltung|Dienste-Verwaltung]] in [[YaST]]. Das ehemals benannte Menü: &amp;quot;Runlevel-Editor&amp;quot; nennt sich heute bei Migration zu systemd &amp;quot;Dienste-Verwaltung&amp;quot;. Dann gibt es noch die Möglichkeit mit der [[Shell]]. Eine vollständige auflistung der Steuerungsmöglichkeiten, würde den Rahmen dieser Doku total sprengen. Ich nenne hier einige aus Nutzersicht durchaus wichtige Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mitgelieferte Tools:&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemctl|systemctl]]'''&lt;br /&gt;
|''(Den System- und Dienstmanager steuern.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_journalctl|journalctl]]'''&lt;br /&gt;
|''(Das systemd journal abfragen. Also logs.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Tipp: systemd-tmpfiles|systemd-tmpfiles]]'''&lt;br /&gt;
|''(Erstellt und löscht temporäre Strukturen.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemd-analyze|systemd-analyze]]'''&lt;br /&gt;
|''(Analysiert die boot Geschwindigkeit.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_loginctl|loginctl]]'''&lt;br /&gt;
|''(Anbindung an die Sitzungsverwaltung)''&lt;br /&gt;
|-&lt;br /&gt;
|'''.. uvm.'''&lt;br /&gt;
|''(Alle die ich nicht nennen konnte)''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemctl=&lt;br /&gt;
Bitte zum detaillierten Umgang mit systemctl die [[Man_pages|manpage]] lesen. Oder beispielsweise im (Achtung externer Link): [https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_boot_systemd_basics.html Adminguide] nachschlagen.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;man systemctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nachfolgend einige einfache Befehle, die empfehlungsweise bekannt sein sollten.&lt;br /&gt;
&lt;br /&gt;
==Dienste Starten und Beenden==&lt;br /&gt;
'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beenden'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl stop mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatischen Start De-/Aktivieren==&lt;br /&gt;
'''Automatischen Start aktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Automatischen Start deaktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl disable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Status eines Dienstes abfragen==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
In der Ausgabe würde das bei einem erfolgreich gestarteten und für den automatischen Start konfigurierten Dienst in etwa so aussehen:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mein_dienst.service - mein_dienst Daemon&lt;br /&gt;
   Loaded: loaded (/usr/lib/systemd/system/mein_dienst.service; enabled)&lt;br /&gt;
   Active: active (running) since Sa 2015-08-22 02:17:01 CEST; 1s ago&lt;br /&gt;
  Process: 6717 ExecStartPre=/usr/sbin/mein_dienst (code=exited, status=0/SUCCESS)&lt;br /&gt;
 Main PID: 6721 (mein_dienst)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==systemd neu laden==&lt;br /&gt;
Angenommen, es wurden beispielsweise Änderungen an mein_dienst.service Dateien vorgenommen, muss systemd neu geladen werden, damit sie sofort wirksam werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wo sind meine Logs hin?=&lt;br /&gt;
{{Hinweis|'''Umsteigern von SysV-Init auf systemd empfehle ich zum Thema Log´s dies:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;less /var/log/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Darin steht in etwa (versuchsweise frei übersetzt):'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
Sie suchen die traditionellen text log Dateien in /var/log, und diese sind verschwunden?&lt;br /&gt;
&lt;br /&gt;
Hier eine erklärung, was vor sich geht:&lt;br /&gt;
&lt;br /&gt;
Sie betreiben ein systemd basiertes BS in dem syslog durch das Journal ersetzt wurde. Das Journal speichert die selben (und mehr) Informationen wie das klassische syslog. Um das Journal zu nutzen und auf die Logdaten zuzugreifen, führen Sie einfach &amp;quot;journalctl&amp;quot; aus, welches die Logdaten in dem identischen textbasierten Format ausgeben wird, wie es auch mit syslog der Fall war. Für weitere Details, sehen Sie bitte journalctl(1) ein.&lt;br /&gt;
...&lt;br /&gt;
Thank you!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das heisst, es bietet sich hier die Gelegenheit mit dem neuen Journal vertraut zu werden. &lt;br /&gt;
In folgenden Abschnitten möchte ich deswegen eine kurze Einleitung zum Umgang anbieten.&lt;br /&gt;
&lt;br /&gt;
=Umgang mit journalctl=&lt;br /&gt;
Der Dienst systemd beinhaltet seinen eigenen Dienst zur Systemprotokollierung. Die Sammlung all dieser Informationen wird als journal bezeichnet. Diese Instanz sammelt wichtige Informationen und stellt diese wiederum zur Abfrage bereit. Das ist insbesondere zur Systemüberwachung von Nutzen. Es kann beispielsweise mit Hilfe von journalctl ein fehlerhafter Systemstart diagnostiziert werden. Angenommen dies wäre der Fall, so wird spätestens an dieser Stelle ein gewisses Grundwissen zum Umgang mit journalctl erforderlich, wenn es darum geht konkrete Fehlermeldungen bereitzustellen.&lt;br /&gt;
{{Hinweis|'''Generell erfolgt die Ansicht der Protokolle automatisch in einem Pager.'''}}&lt;br /&gt;
==Das journal betrachten:==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn einfach nur 'journalctl' ausgeführt wird, zeigt ein pager das komplette journal, beginnend mit dem ältesten Eintrag.&lt;br /&gt;
&lt;br /&gt;
==Nützliche Schalter==&lt;br /&gt;
Es gibt viele weitere wichtige Filter. Hier einige wenige, die bekannt sein sollten:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-k&amp;quot;&lt;br /&gt;
|dmesg betrachten&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Bootvorgänge&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-u&amp;quot;&lt;br /&gt;
|Nach Unit bzw. Dienst&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-f&amp;quot;&lt;br /&gt;
|aktualisiert den Pager mit neuen Einträgen&lt;br /&gt;
|}&lt;br /&gt;
Für mehr Details bitte die [[Man_pages|manpage]] lesen.&lt;br /&gt;
&lt;br /&gt;
==Das Startprotokoll==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Schalter '-b' sagt journalctl, dass das  gesamte Startprotokoll gezeigt werden soll.&lt;br /&gt;
&lt;br /&gt;
===Das Startprotokoll filtern===&lt;br /&gt;
Angenommen, es möchte nur ein bestimmtes Startprotokoll eingesehen werden. Etwa vom vorhergehenden Systemstart:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl --list-boots&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Gibt eine Liste vorangegangener Protokolle in einer Übersicht aus). Die erste Spalte kann als Indikator herangezogen werden. Beispielausgabe:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt; ..&lt;br /&gt;
 ...&lt;br /&gt;
 -2 9daa81e2ec374cb1b6adba8d96896605 Sa 2015-08-29 23:26:53 CEST—Sa 2015-08-29 23:49:17 CEST&lt;br /&gt;
 -1 c430ed034607494ba2a3bc1ded4e4972 Sa 2015-08-29 23:49:35 CEST—Sa 2015-08-29 23:54:27 CEST&lt;br /&gt;
  0 1f3a7894d0f34f4392c5517b83279c4d Sa 2015-08-29 23:54:53 CEST—So 2015-08-30 16:22:40 CEST&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das gewünschte Startprotokoll wird durch Übergabe des jeweiligen Indikator im Pager dargestellt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===journalctl -xb===&lt;br /&gt;
Wenn der Computer beispielsweise aufgrund eines Stromausfall im Emergency Mode startet, wird in der Shell statt dem grafischen Modus ein Login angeboten. Hier schlägt der Rechner oft vor, es solle die Ausgabe von 'journalctl -xb' zu Rate gezogen werden. Also das Startprotokoll prüfen:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xb&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Das Bootprotokoll anzeigen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==journalctl -xn==&lt;br /&gt;
Duch den Schalter -n kann man die Ausgabe auf eine bestimmte Anzahl Zeilen beschränken. Wenn keine Zahl übergeben wird, werden die letzten 10 Zeilen ausgegeben. Beispielsweise die letzten 25 Zeilen ausgeben und Hilfstexte einblenden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xn 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-n&amp;quot;&lt;br /&gt;
|Ausgabe auf bestimmte Zeilenanzahl beschränken.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filtern nach Unit==&lt;br /&gt;
Angenommen es sollen nur Logeinträge zum Unit oder Dienst &amp;quot;sshd&amp;quot; in der Ausgabe angezeigt werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -u sshd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eigener Filter==&lt;br /&gt;
Die Ausgabe von journalctl kann auch umgeleitet werden. So wird im folgenden Beispiel das ganze Systemprotokoll unter zuhilfenahme von 'egrep' nach Vorkommnissen von &amp;quot;Error&amp;quot; und &amp;quot;Failed&amp;quot; durchsucht. Die Ausgabe wird dann an einen Pager (less) umgeleitet:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl | egrep &amp;quot;Error|Failed&amp;quot; | less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Speicherplatzbelegung==&lt;br /&gt;
Jedes Log wird für eine gewisse Dauer aufbewahrt. Das ist besonders für Systemadministratoren von besonderer Bedeutung, da Computer oft über einen längeren Zeitraum überwacht werden müssen. Einige Daten werden also permanent auf der Festplatte abgelegt. Von Haus aus sind seitens systemd für diese Informationen 10 Prozent des betroffenen Dateisystems vorgesehen. Bei einem Dateisystem mit 1 TiB Speicherplatz wären dies also 100 GiB logdaten, die von systemd angesammelt würden. Das Journal wird allerdings auch noch komprimiert.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter für journalctl&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;--disk-usage&amp;quot;&lt;br /&gt;
|Speicherplatzbelegung des Journal auf dem Datenträger zeigen.&lt;br /&gt;
|}&lt;br /&gt;
Wer auf die voreingestellten Limits und den dafür vorgesehenen Speicherplatz Einfluss haben möchte, kann dies in der Konfigurationsdatei tun:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/systemd/journald.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
So liesse sich beispielsweise mit diesem Schalter das Journal auf eine Größe von 100M beschränken. Ich fände auch einen Wert bis 300M noch sinnvoll wieviel hier eingestellt wird, liegt an der eigenen Nutzenvorstellung:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;SystemMaxUse=100M&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zum Verständnis der Grössenrelation: [[Megabyte |Megabyte/Mibibyte]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und Achtung externer Link: https://de.wikipedia.org/wiki/Datenmenge&lt;br /&gt;
{{Hinweis|'''Die Daten werden im Journal in anderer Form und komprimiert abgelegt. Dennoch, um eine Vorstellung zu haben: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Eine Textdatei gefüllt mit Rautezeichen, die ein A4 Brief ausfüllen würden, hat ca. 4,1 KiB. Eine Ansammlung von 100 GiB mit solchen Dateien entspräche in etwa 261 888 249 Dokumente oder Seiten. Eine Packung Schreibmaschinenpapier hat ca 100 Blatt.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemd-analyze=&lt;br /&gt;
Der Befehl systemd-analyze kann dazu genutzt werden, die Leistung eines Systemstarts zu messen. Beispielsweise wie lange es dauert, bis ein bestimmtes festgelegtes Ziel beim Boot erreicht wurde. Ich möchte hier nur Kleinigkeiten zeigen, damit Verständnis erlangt werden kann, was denn bei einem Systemstart von gerade mal 20 Sekunden so alles abgeht. Auch hier bitte ich darum, zu Details wieder die manpage heranzuziehen.&lt;br /&gt;
&lt;br /&gt;
==Startzeitanalyse==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Einfach ohne Zusätzliche Schalter:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemd-analyze&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beispielausgabe:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Startup finished in 1.433s (kernel) + 493ms (initrd) + 17.842s (userspace) = 19.769s&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Die Ausgabe sollte weitestgehend selbsterklärend sein. Angegebene Messwerte sind an diesem Beispiel in Sekunden und Millisekunden.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Messung grafisch darstellen==&lt;br /&gt;
Es kann eine SVG Grafik als sog. &amp;quot;plot&amp;quot; erstellt werden, der in Details aufzeigt welche Systemdienste zu welcher Zeit gestartet wurden. Dabei wird visuell hervorgehoben, wie viel Zeit alle Dienste zur Initialisierung benötigten.&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
==='''Startzeiten aller Prozesse:'''===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Hinweis|'''Ich leite Die Ausgabe gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze plot &amp;gt; /tmp/plot.svg | gwenview /tmp/plot.svg&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Achtung|Die SVG Datei ist zwar - nur - ca. 140k groß, das darstellen dieser Grafik kann aber sehr aufwendig für den Computer sein. Nachfolgend nur ein kleiner Ausschnitt aus so einer Grafik als GIF.}}&lt;br /&gt;
[[Bild:systemd-analyze_plot.gif|center|'''Plot als Grafik''']] &lt;br /&gt;
Hier kann man sehr schön sehen, was systemd beim Startvorgang so alles anstellen muss. Und was denn eigentlich so alles in diesen 20 Sekunden passiert bis am Beispielsystem ein vollständiger Systemstart abgeschlossen ist.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--------&lt;br /&gt;
==='''Abhängigkeit darstellen:'''&amp;lt;br&amp;gt;===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Wer das interessant fand, möchte eventuell die Möglichkeit nutzen sich grafisch darstellen zu lassen in welchen Abhängigkeiten ein Dienst gestartet wurde.&lt;br /&gt;
{{Hinweis|'''Ich leite Die Ausgabe am Beispiel &amp;quot;avahi-daemon&amp;quot; gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg &amp;gt; /tmp/avahi.svg | gwenview /tmp/avahi.svg&amp;lt;/pre&amp;gt;{{Achtung|'''Das ist ein Einzeiler!'''}}&lt;br /&gt;
Das Ergebnis präsentiert sich dann so (zu .gif umgewandelt): &lt;br /&gt;
[[Bild:Systemd-analyze_avahi.gif|center|'''Prozessabhängigkeit als Grafik''']]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit loginctl=&lt;br /&gt;
Als wichtiger Systemdienst bindet sich systemd auch an den Anmeldevorgang im Betriebssystem. Dafür stellt er einen extra Dienst &amp;quot;systemd-login&amp;quot; zur Verfügung. Der Dienst bietet an dieser Stelle ein Anbindung an die D-Bus Schnittstelle. Wichtige Grundlagen betreffend Zugriffsberechtigungen: [[Zugriffsrechte]]&lt;br /&gt;
&lt;br /&gt;
Das Tool loginctl kann dazu verwendet werden, Einblicke in den Status von Benutzeranmeldungen zu erlangen. Ausserdem kann es verwendet werden Veränderungen am Systemstatus vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
So können [[https://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]] kompatible Signale an Benutzersitzungen gesendet werden, wie beispielsweise [[https://de.wikipedia.org/wiki/SIGTERM SIGTERM]]. Das ist ein Signal zum Terminieren von Programmprozessen.&lt;br /&gt;
{{Warnung|'''Dieses Werkzeug sollte nur von erfahrenen Benutzern verwendet werden.'''}}&lt;br /&gt;
'''Hier nur ein ganz einfaches ungefährliches Anwendungsbeispiel:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;loginctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Listet laufende Benutzersitzungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;   SESSION        UID USER             SEAT            &lt;br /&gt;
         1       1000 user             seat0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd-tmpfiles=&lt;br /&gt;
'''Grundlegendes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Dienst systemd-tmpfiles ist im System für die Verwaltung temporärer Dateisystemstrukturen zuständig. Er erstellt und löscht diese kann sie aber auch bereinigen. ..usw. Einige dieser Strukturen bestehen bei einem Linux Betriebssystem als persistenter bzw. weniger persistenter Ablagebereich. Gedacht ist das für Dateien, die entweder vorübergehend bzw. begrenzt oder längerfristig vorhanden sein müssen.&lt;br /&gt;
&lt;br /&gt;
'''Interessant und erwähnenswert an dieser Stelle:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Systemd hängt einige Dateisystemstrukturen automatisch als &amp;quot;tmpfs&amp;quot; ein. Dazu gehört beispielsweise auch der Pfad &amp;quot;/tmp&amp;quot;. Wie dies geschieht, kann anhand des betreffenden tmp.mount units eingesehen werden. Aus dem Inhalt ergibt sich:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;[Mount]&lt;br /&gt;
What=tmpfs&lt;br /&gt;
Where=/tmp&lt;br /&gt;
Type=tmpfs&lt;br /&gt;
Options=mode=1777,strictatime&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Ein zu SysV-Init zeiten nötiger [[fstab|fstab Eintrag]] hätte so ausgesehen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;tmpfs                /tmp                 tmpfs      defaults,strictatime,mode=1777 0 0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Der Pfad '/var/tmp/' wird hingegen beispielsweise nicht als tmpfs eingehängt. Ist dafür auch nicht bestimmt.'''}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Der Tipp dazu: [[Tipp: systemd-tmpfiles]]'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tipp: weekly trim durch systemd=&lt;br /&gt;
Das Paket 'util-linux-systemd' bringt einen Dienst mit, der es ermöglicht seine SSD wöchentlich trimmen zu lassen. Es gibt zu beachten, dass trim auf unterschiedlichem Weg im Betriebssystem zur [[SSD_Optimierungen|Optimierung von SSD's]] realisiert werden kann:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Trim&lt;br /&gt;
|-&lt;br /&gt;
|Online discard (trim)&lt;br /&gt;
|moutoption &amp;quot;discard&amp;quot;&lt;br /&gt;
|Ersetzt batched trim und Skripte sowie manuelle Ausführung.&lt;br /&gt;
|-&lt;br /&gt;
|Manuell&lt;br /&gt;
|Durch ausführen des 'fstrim' Kommando in der Shell.&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Batched trim bzw. Mitgelieferte Skripte&lt;br /&gt;
|(eigener Skript) Bsp.: [[http://linux-club.de/wiki/opensuse/Batched-trim.sh ext4-trim.sh]]&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|openSUSE bringt beispielsweise für [[https://de.wikipedia.org/wiki/Btrfs btrfs]] einen durch sysconfig steuerbaren trim Skript mit. ('btrfs-trim.sh');&lt;br /&gt;
|Funktioniert zum Stand von openSUSE 13.2 nur beim Einsatz von [[https://de.wikipedia.org/wiki/Btrfs btrfs]].&lt;br /&gt;
|-&lt;br /&gt;
|systemd bringt diese Möglichkeit als Dienst oder unit. ('fstrim.timer') - ('fstrim.service')&lt;br /&gt;
|Keine Einschränkung durch &amp;quot;automatik&amp;quot;. &amp;quot;fstrim -a&amp;quot; beispielsweise bei ext4.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Wichtig ist zu beachten dass diese Kommandos nicht unnötig mehrfach ausgeführt werden oder vermischt zum Einsatz kommen. Einmal die Woche sollte bei batched trim völlig ausreichend sein. Wenn also die in openSUSE integrierte Trimfunktion nicht genutzt werden möchte, kann diese durch die von systemd durchaus ersetzt werden. Wenn beispielsweise Online discard verwendet wird, werden andere Skripte obsolet.&lt;br /&gt;
{{Achtung|'''Ich möchte hier nochmal darauf hinweisen, dass andere Skripte bei Nutzung von systemd zu diesem Zweck deaktiviert werden sollten! Und bei der mount option discard wird batched trim obsolet.'''}}&lt;br /&gt;
'''Folgendes genügt zum aktivieren der systemd variante:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable fstrim.timer&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''Der zugehörige fstrim.service wird vom Timer automatisch zur Ausführung aktiviert.'')&lt;br /&gt;
{{Hinweis|'''Es wird eine Datei mit einem Zeitstempel erstellt anhand dessen die letzte und nächste Ausführung nach dem ersten Aufruf abgehandelt wird.'''}}&lt;br /&gt;
'''Der eigentliche Dienst heisst:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;fstrim.service&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Eine Steuerungsmöglichkeit hierfür ist auch:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rcfstrim&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Der Stempel befindet sich dann hier:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/fstrim.timer&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Der Dienst führt zurzeit wöchentlich folgendes Kommando aus:'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Dies behandelt schlicht und automatisch alle eingehängten Dateisysteme mit trim.''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;fstrim -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Warnung|'''Nicht jede SSD und SATA controller unterstützen jede TRIM Funktionalität. D.h. einige Geräte sind auf batched-discard angewiesen. Einige können mit Online-discard arbeiten, andere nicht. Einige haben wiederum Schwierigkeiten bei trim in Verbindung mit NCQ.'''}}&lt;br /&gt;
{{Hinweis|'''Es bietet sich auch an, dieses unit manuell durch einen eigenen Skript aufzurüsten.'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen / Links:=&lt;br /&gt;
* https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
* https://www.suse.com/documentation/sles-12/book_sle_admin/data/cha_systemd.html&lt;br /&gt;
* https://de.wikipedia.org&lt;br /&gt;
* http://man7.org/&lt;br /&gt;
*[https://fedoraproject.org/wiki/Systemd fedoraproject.org wiki] {{englisch}}&lt;br /&gt;
*[http://cre.fm/cre209-das-linux-system CRE209 Das Linux System - systemd leitet die neue Generation der Linux Systemarchitektur ein] Tim Pritlove im Gespräch mit Lennart Poetering (Veröffentlicht am 10. November 2015)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager‏‎]] [[Kategorie:systemd]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Systemd&amp;diff=32813</id>
		<title>Diskussion:Systemd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Systemd&amp;diff=32813"/>
		<updated>2015-11-20T16:08:16Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Strukturierung / Aufteilung auf mehrere Seiten&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein einfacher Versuch. Ich denke mir zu dem Thema ist weniger eventuell mehr.&lt;br /&gt;
&lt;br /&gt;
Sa. 22. Aug. 2015 -- Revealed&lt;br /&gt;
&lt;br /&gt;
:An das große und kontrovers diskutierte Thema 'systemd' hat sich bislang hier noch niemand ran getraut. Jetzt haben wir zumindest schon mal einen Anfang...&lt;br /&gt;
:TNX&lt;br /&gt;
&lt;br /&gt;
:--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:41, 23. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
=Review=&lt;br /&gt;
== 23.08.2015==&lt;br /&gt;
Ich habe mal einen Blick auf die Seite geworfen und der Seite mal die Kategorie 'Bootmanager' zugeordnet. Auch wenn systemd kein BootManager im klassischen Sinne ist/sein sollte, übernimmt es doch wichtige Teile das Boot-Prozesses. Und Seiten zum Boot-Prozess werden in der linupedia derzeit pauschal unter dieser Kategorie zusammengefasst.&lt;br /&gt;
&lt;br /&gt;
Derzeit ist der Inhalt ja noch überschaubar, bis hierhin sieht es IMHO gut aus. Vermutlich kann das Review-Tag damit auch schon wieder entfernt werden. TNX&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 07:58, 23. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
::: Nachdem Systemd das halbe System umgekrempelt hat bis sich fast niemand mehr wirklich auskennt, (vom Starten des Kernel, über die Initrd, das Verwalten der Geräteknoten, das Einhängen der Dateisysteme, das Starten und verwalten der Dienste, usw. und sich zusätzlich noch anmaßt alte klassische UNIX/LINUX Dienste abzulösen in dem einfach deren Funktion unnötiger Weise auch noch in Systemd  integriert wurden), dann einfach mit dem Satz&amp;lt;br&amp;gt;&lt;br /&gt;
:::&amp;quot;'''Er läuft mit PID1 und startet dann alle weiteren Prozesse des Betriebssystems. Siehe [[Bootvorgang]].'''&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
:::auf ein halbwegs komplettes Thema zu verlinken, dass nun mit der Funktion von Systemd aber mal überhaupt nichts mehr zu tun hat, halte ich schon ein wenig dreist. [[Benutzer:Robi|Robi]] ([[Benutzer Diskussion:Robi|Diskussion]]) 19:50, 24. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
:::Meine Antwort auf Systemd nach dem ich mich einige Zeit näher intern damit befasst hatte, lautet schlicht und einfach &amp;quot;NOSYSTEMD&amp;quot;, dazu stehe ich  und das halte ich bequem noch die paar Jahre durch bis zu Rente durch. Wenn Systemd und deren Entwickler und die Distributionen der Meinung sind, sie müssen alles von Grund auf komplett anders machen, dann bitte sollen sie auch Dokumentation schreiben wie Systemd wirklich arbeitet, damit wenn sich jemand berufen fühlt das dem User in einem Bootvorgang Wikiartikel zu erklären dann auch entsprechende Quellen zur Recherche zu Verfügung hat.&lt;br /&gt;
:::Alles über den Haufen zu werfen und alles &amp;quot;besser&amp;quot; (anders) zu machen und dann auf die Dokumentation dessen zu verweisen was man quasi über Nacht alles abgeschafft hat, passt wahrscheinlich aus Bequemlichkeitstgründen gut in das Konzept von Systemd und deren Entwicklung, ist aber weder für einen User hilfreich der irgendwo beim Systemstart mit systemd hängen geblieben ist. noch ist es fair gegenüber denen die zwar nichts gegen Systemd haben, sich aber von diesem auch nicht aufzwingen lassen wollen wie Linux &amp;quot;besser&amp;quot; funktionieren soll. [[Benutzer:Robi|Robi]] ([[Benutzer Diskussion:Robi|Diskussion]]) 20:18, 24. Aug. 2015 (CEST)&lt;br /&gt;
--------&lt;br /&gt;
::: Hallo Ihr. &amp;lt;br&amp;gt;Da bin ich euch ja schön in eine Falle gelaufen. Also ich wollte niemanden provozieren, oder dergleichen. Der Artikel &amp;quot;systemd&amp;quot; war als leere Seite vorhanden. Jemand hat in meinem [[ThinkPad_T60]]Guide das wörtchen &amp;quot;systemd&amp;quot; und einige andere netter Weise durch Verlinkung hervorgehoben. Beim überarbeiten habe ich gesucht ob im Wiki das Wörtchen &amp;quot;systemd&amp;quot; existiert. Da dies ebenfalls schon als Verknüpfung zu dem leeren Blatt vorhanden war, habe ich es ausgefüllt. Ihr könnt das gerne komplett umschreiben. Ich hätte jedoch aus eigennützigen Gründen für mein Tut sehr gerne die Nutzungsbeispiele darin gehabt. Und verzeiht mir bitte, dass ich mich verbal nicht auf dem Niveau vom Bootvorgang - Howto äußern kann.  &amp;lt;br&amp;gt;lg,&amp;lt;br&amp;gt; [[Benutzer:revealed|revealed]] ([[Benutzer Diskussion:revealed|Diskussion]]) 21:03, 24. Aug. 2015 (CEST)&lt;br /&gt;
::::Ich denke nicht, dass Du hier etwas grundlegend falsch gemacht hast. Letztlich ist es so, dass 'systemd' existiert und scheinbar unaufhaltsam in die Distributionen einfließt (analog zu [[GRUB2]] oder UEFI). Dabei ist es erstmal unerheblich, ob wir das nun gut finden oder nicht. IMHO sollte es hier darum gehen, eine Dokumentationsbasis zu haben, welche bei Bedarf erweitert werden kann. So könnte ich mir die Analyse-Tools durchaus als interessantes Thema für dieses Wiki vorstellen, nur so als Beispiel. Bis dahin kann sie in der ersten Phase aber auch einfach nur als Anker dienen, auf die von anderen Seiten verlinkt wird und neben einem kurzen Intro noch weiterführende Links enthält, z.B. auch auf externe Seiten mit der Kritik an systemd.&lt;br /&gt;
::::--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 17:12, 25. Aug. 2015 (CEST)&lt;br /&gt;
&lt;br /&gt;
--------&lt;br /&gt;
::: Gleich noch eine Nachricht von mir. Die Entwickler von &amp;quot;systemd&amp;quot; scheinen sehr auf die Schreibweise &amp;quot;systemd&amp;quot; zu achten. Da ich solchen Wünschen gerecht werden möchte, wollte ich fragen ob es möglich ist, Seitenüberschriften mit kleinschreibung beginnen zu lassen. Hier habe ich eine info gesucht, wie das machbar sein könnte. Wenn nicht, dann ist mir persönlich das dann auch nicht soooo wichtig.&amp;lt;br&amp;gt; https://www.mediawiki.org/wiki/Manual:LocalSettings.php#Force_capital_links &amp;lt;br&amp;gt; lg, &amp;lt;br&amp;gt;R &amp;lt;br&amp;gt;([[Benutzer Diskussion:revealed|Diskussion]]) 21:26, 24. Aug. 2015 (CEST)&lt;br /&gt;
::::AFAIK können Seiten im Wiki nur anfänglich großgeschrieben angelegt werden. Daran kannst Du nichts ändern.&lt;br /&gt;
::::--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 21:00, 25. Aug. 2015 (CEST)&lt;br /&gt;
------&lt;br /&gt;
:::: Ah, danke für die Info. Ich selber komm damit zurecht ;) Wenn wer nochmal lesen würde und echt nichts mehr total dagegen spricht, nachdem ich nochmal einiges geändert habe würde ich den Artikel auch als fertig betrachten. Eine Kurze info wäre nett ob ich den Baustein dann rausnehmen soll. Oder vielleicht übernimmt das dann gleich noch wer, oder info bitte.&amp;lt;br&amp;gt;Danke und Grüße, &amp;lt;br&amp;gt;R&lt;br /&gt;
::::--[[Benutzer:revealed|revealed]] ([[Benutzer Diskussion:revealed|revealed]]) 21:22, 26. Aug. 2015 (CEST)&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=Strukturierung / Aufteilung auf mehrere Seiten=&lt;br /&gt;
Die Seite ist jetzt schon einigermaßen voll und unübersichtlich - und wir stehen erst am Anfang einer Dokumentation. Das Gesamtthema ist viel zu groß für eine einzelne Seite. Ich plädiere dafür, einzelne Themen herauszuziehen und auf separate Seiten zu verlagern. Diese Seite kann als Übersicht dienen und auf die Teilaspekte verlinken.&lt;br /&gt;
Als weitere Klammer bietet sich die Kategorie 'systemd' an, diese Seite ist schon damit markiert.&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Gehrke|Gehrke]] ([[Benutzer Diskussion:Gehrke|Diskussion]]) 17:08, 20. Nov. 2015 (CET)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32812</id>
		<title>Systemd</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Systemd&amp;diff=32812"/>
		<updated>2015-11-20T15:38:06Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Quellen / Links: */ fedoraproject.org wiki + Kategorie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|Kompletter Artikel}}&lt;br /&gt;
{{Achtung|'''Aus technischen Gründen ist es leider nicht Möglich der korrekten Schreibweise von &amp;quot;systemd&amp;quot; in der Überschrift dieses Artikels gerecht zu werden.'''}}&lt;br /&gt;
&lt;br /&gt;
= Was ist systemd? =&lt;br /&gt;
Systemd ist ein Dienst oder Daemon und bietet einige grundlegende Werkzeuge für Linux Systeme. Er wird zur System- und Diensteverwaltung eingesetzt. Er läuft mit [[https://de.wikipedia.org/wiki/Process_identifier PID1]] und startet dann alle weiteren Prozesse des Betriebssystems. Des weiteren wird er als freie Software unter der [[LGPL |LGPL 2.1+]] veröffentlicht und wurde in [[Programmierung|C geschrieben]].&lt;br /&gt;
&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
&lt;br /&gt;
''Er startet also als erstes ([[https://de.wikipedia.org/wiki/Process_identifier PID1]]), regelt und steuert dabei alle weiteren Dienste. Er beendet sich beim Herunterfahren als letztes. Der daemon systemd ist damit also tief im Ablauf eines Systemstarts verwurzelt.''&lt;br /&gt;
&lt;br /&gt;
'''Wichtiges dazu:'''&lt;br /&gt;
* [[Bootmanager]]&lt;br /&gt;
* [[Bootvorgang]]&lt;br /&gt;
* [[YaST2_Dienste-Verwaltung|YaST2 Dienste-Verwaltung]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SUSE wechsel zu systemd =&lt;br /&gt;
Mit unter liebevoll vollzieht sich der Wechsel zu systemd als Init-System in SUSE mit Sätzen, zitert aus den Releasenotes und dem Adminguide zu [[https://www.suse.com/ SUSE Linux Enterprise Server 12]], wie:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;New core technologies like systemd (replacing the time honored System V based init process) &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:''' ''Neue Kerntechnologien wie systemd (ersetzen den durch lange Dienstzeit geehrten System V basierten init prozess).''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Starting with SUSE Linux Enterprise Server 12 systemd is a replacement for the popular System V init daemon. systemd is fully compatible with System V init (by supporting init scripts). &amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Versuchsweise frei übersetzt:'''  ''Beginnend mit [[https://www.suse.com/ SUSE Linux Enterprise Server 12]] ist systemd ein Ersatz für den populären System V init daemon. Er ist voll kompatibel mit dem System V Init-Vorgang, indem er Init Skripte unterstützt.''&lt;br /&gt;
&lt;br /&gt;
= Integration in [[YaST]] =&lt;br /&gt;
{|&lt;br /&gt;
|rowspan=2|[[Bild:Yast.png]] &lt;br /&gt;
|colspan=3|Wie sich systemd im grafischen Konfigurationstool für [[openSUSE]] integriert, könnt ihr hier sehen:&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| ----------&amp;gt;&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;|[[YaST2_Dienste-Verwaltung|YaST2: Diensteverwaltung]]&lt;br /&gt;
|style=&amp;quot;text-align:center;&amp;quot;| &amp;lt;----------&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Kompatibilität=&lt;br /&gt;
Als sogenanntes &amp;quot;drop-in replacement&amp;quot;. Bietet systemd Kompatibilität zu seinen Vorgängern:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* kompatibel mit [[https://de.wikipedia.org/wiki/Linux_Standard_Base LSB]] init Skripten&lt;br /&gt;
* kompatibel mit SysV&lt;br /&gt;
Hier gibt es zu beachten, dass systemd nicht vollständig rückwärts kompatibel ist.&lt;br /&gt;
Einige Einschränkungen können hier nachgelesen werden: http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/&lt;br /&gt;
&lt;br /&gt;
=Kritik=&lt;br /&gt;
Da ich nicht unnötig falsches sagen möchte, was Kritik gegenüber systemd angeht. Und da ich nur einige Grundlagen objektiv darstellen will, kann ich dazu nicht viel sagen. Allerdings kann ich folgendes berichten:&lt;br /&gt;
* Bei Linux Entwicklern als auch Benutzern steht systemd im Mittelpunkt der Kritik, da es im Ansatz sehr wichtige Kernfunktionen steuert und auch das alt eingefahrene SysV-Init ersetzen kann, bzw. kompatibel ist.&lt;br /&gt;
* Zu diesem Thema gibt es massenweise Informationen im Internet.&lt;br /&gt;
'''Ein besonders wichtiger Punkt:'''&lt;br /&gt;
* Es gibt viele Gegner als auch Befürworter.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Hinweis|'''Wer möchte informiert sich darüber bitte detaillierter mithilfe einer Suchmaschine eigener Wahl.'''}}&lt;br /&gt;
{{Hinweis|'''Das Forum würde sich hierfür als Diskussionsplatform anbieten, wer möchte. Es gibt sicher einige die an dieser Thematik interesse haben. http://forum.linux-club.de/'''}}&amp;lt;br&amp;gt;&lt;br /&gt;
---------&lt;br /&gt;
'''Meine Meinung zur Kritik:'''&amp;lt;br&amp;gt;&lt;br /&gt;
(Wer mir diesen Raum nicht lassen möchte: Bitte &amp;quot;skipping&amp;quot;).&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''Ich finde es wichtig, dass derart grundlegende Kernstrukturen im Betriebssystem kritisiert werden, solange es zielführend und im Sinne eines sicheren und korrekten Funktionierens und damit im Sinne des Endverbrauchers als auch der Entwickler ist. Was ich nicht verstehen kann, wenn Leute nur sagen &amp;quot;systemd ist mist ich will wieder das alte SysV-Init, weil ich mit systemd nicht umgehen kann.&amp;quot; Deswegen möchte ich hier sagen:''&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;quot;''Bitte ich gebe euch Gelegenheit, euch zu informieren. Und ich hoffe dies halbwegs richtig zu machen.''&amp;quot;&lt;br /&gt;
---------&lt;br /&gt;
&lt;br /&gt;
=Fähigkeiten=&lt;br /&gt;
Als Verwaltungsinstrument bringt systemd einige Neuerungen und Verbesserungen, setzt dabei allerdings auch stark auf alt bewährtes. Um nur einiges an Neuerungen und Fähigkeiten zu nennen:&lt;br /&gt;
&lt;br /&gt;
* Fähigkeit zur aggressiven Parallelisierung&lt;br /&gt;
* Nutzt Socket und [[https://en.wikipedia.org/wiki/D-Bus D-Bus]] Aktivierung um Prozesse zu starten&lt;br /&gt;
* Bietet ein &amp;quot;auf Bedarf&amp;quot;-basiertes starten von Diensten&lt;br /&gt;
* Überwacht Prozesse die [[https://en.wikipedia.org/wiki/Cgroups cgroups]] verwenden&lt;br /&gt;
* unterstützt [[https://de.opensuse.org/SDB:Snapper Schnappschüsse]] und deren Wiederherstellung&lt;br /&gt;
* Verwaltet [[Zugriffsrechte#mount|mount und automount]] Einhängepunkte&lt;br /&gt;
* Implementiert abhängigkeitsbasierte Logik für Dienste&lt;br /&gt;
* Kann SysV-Init als drop-in ersetzen.&lt;br /&gt;
* uvm.&lt;br /&gt;
{{Hinweis|Mit Parallelisierung ist das Resultat dieser Prinzipien: [[https://de.wikipedia.org/wiki/Nebenläufigkeit Nebenläufigkeit]] bzw. [[https://de.wikipedia.org/wiki/Parallele_Programmierung Parallele Programmierung]] gemeint. &amp;lt;br&amp;gt;Die wörter [[https://de.wikipedia.org/wiki/Bedarf Bedarf]] und [[Systemd#Abhängigkeit_darstellen:|Abhängigkeit]] müssen in der Auflistung differenziert werden.}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd Steuern=&lt;br /&gt;
Es gibt verschiedene Wege, wie systemd gesteuert werden kann. Einmal gibt es grafische Tools, wie die  [[YaST2_Dienste-Verwaltung|Dienste-Verwaltung]] in [[YaST]]. Das ehemals benannte Menü: &amp;quot;Runlevel-Editor&amp;quot; nennt sich heute bei Migration zu systemd &amp;quot;Dienste-Verwaltung&amp;quot;. Dann gibt es noch die Möglichkeit mit der [[Shell]]. Eine vollständige auflistung der Steuerungsmöglichkeiten, würde den Rahmen dieser Doku total sprengen. Ich nenne hier einige aus Nutzersicht durchaus wichtige Möglichkeiten:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mitgelieferte Tools:&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemctl|systemctl]]'''&lt;br /&gt;
|''(Den System- und Dienstmanager steuern.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_journalctl|journalctl]]'''&lt;br /&gt;
|''(Das systemd journal abfragen. Also logs.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Tipp: systemd-tmpfiles|systemd-tmpfiles]]'''&lt;br /&gt;
|''(Erstellt und löscht temporäre Strukturen.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_systemd-analyze|systemd-analyze]]'''&lt;br /&gt;
|''(Analysiert die boot Geschwindigkeit.)''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[#Umgang_mit_loginctl|loginctl]]'''&lt;br /&gt;
|''(Anbindung an die Sitzungsverwaltung)''&lt;br /&gt;
|-&lt;br /&gt;
|'''.. uvm.'''&lt;br /&gt;
|''(Alle die ich nicht nennen konnte)''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemctl=&lt;br /&gt;
Bitte zum detaillierten Umgang mit systemctl die [[Man_pages|manpage]] lesen. Oder beispielsweise im (Achtung externer Link): [https://www.suse.com/documentation/sles-12/book_sle_admin/data/sec_boot_systemd_basics.html Adminguide] nachschlagen.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;man systemctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Nachfolgend einige einfache Befehle, die empfehlungsweise bekannt sein sollten.&lt;br /&gt;
&lt;br /&gt;
==Dienste Starten und Beenden==&lt;br /&gt;
'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beenden'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl stop mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Automatischen Start De-/Aktivieren==&lt;br /&gt;
'''Automatischen Start aktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Automatischen Start deaktivieren:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl disable mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Status eines Dienstes abfragen==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status mein_dienst&amp;lt;/pre&amp;gt;&lt;br /&gt;
In der Ausgabe würde das bei einem erfolgreich gestarteten und für den automatischen Start konfigurierten Dienst in etwa so aussehen:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
mein_dienst.service - mein_dienst Daemon&lt;br /&gt;
   Loaded: loaded (/usr/lib/systemd/system/mein_dienst.service; enabled)&lt;br /&gt;
   Active: active (running) since Sa 2015-08-22 02:17:01 CEST; 1s ago&lt;br /&gt;
  Process: 6717 ExecStartPre=/usr/sbin/mein_dienst (code=exited, status=0/SUCCESS)&lt;br /&gt;
 Main PID: 6721 (mein_dienst)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==systemd neu laden==&lt;br /&gt;
Angenommen, es wurden beispielsweise Änderungen an mein_dienst.service Dateien vorgenommen, muss systemd neu geladen werden, damit sie sofort wirksam werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl daemon-reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Wo sind meine Logs hin?=&lt;br /&gt;
{{Hinweis|'''Umsteigern von SysV-Init auf systemd empfehle ich zum Thema Log´s dies:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;less /var/log/README&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Darin steht in etwa (versuchsweise frei übersetzt):'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
Sie suchen die traditionellen text log Dateien in /var/log, und diese sind verschwunden?&lt;br /&gt;
&lt;br /&gt;
Hier eine erklärung, was vor sich geht:&lt;br /&gt;
&lt;br /&gt;
Sie betreiben ein systemd basiertes BS in dem syslog durch das Journal ersetzt wurde. Das Journal speichert die selben (und mehr) Informationen wie das klassische syslog. Um das Journal zu nutzen und auf die Logdaten zuzugreifen, führen Sie einfach &amp;quot;journalctl&amp;quot; aus, welches die Logdaten in dem identischen textbasierten Format ausgeben wird, wie es auch mit syslog der Fall war. Für weitere Details, sehen Sie bitte journalctl(1) ein.&lt;br /&gt;
...&lt;br /&gt;
Thank you!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das heisst, es bietet sich hier die Gelegenheit mit dem neuen Journal vertraut zu werden. &lt;br /&gt;
In folgenden Abschnitten möchte ich deswegen eine kurze Einleitung zum Umgang anbieten.&lt;br /&gt;
&lt;br /&gt;
=Umgang mit journalctl=&lt;br /&gt;
Der Dienst systemd beinhaltet seinen eigenen Dienst zur Systemprotokollierung. Die Sammlung all dieser Informationen wird als journal bezeichnet. Diese Instanz sammelt wichtige Informationen und stellt diese wiederum zur Abfrage bereit. Das ist insbesondere zur Systemüberwachung von Nutzen. Es kann beispielsweise mit Hilfe von journalctl ein fehlerhafter Systemstart diagnostiziert werden. Angenommen dies wäre der Fall, so wird spätestens an dieser Stelle ein gewisses Grundwissen zum Umgang mit journalctl erforderlich, wenn es darum geht konkrete Fehlermeldungen bereitzustellen.&lt;br /&gt;
{{Hinweis|'''Generell erfolgt die Ansicht der Protokolle automatisch in einem Pager.'''}}&lt;br /&gt;
==Das journal betrachten:==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn einfach nur 'journalctl' ausgeführt wird, zeigt ein pager das komplette journal, beginnend mit dem ältesten Eintrag.&lt;br /&gt;
&lt;br /&gt;
==Nützliche Schalter==&lt;br /&gt;
Es gibt viele weitere wichtige Filter. Hier einige wenige, die bekannt sein sollten:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-k&amp;quot;&lt;br /&gt;
|dmesg betrachten&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Bootvorgänge&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-u&amp;quot;&lt;br /&gt;
|Nach Unit bzw. Dienst&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-f&amp;quot;&lt;br /&gt;
|aktualisiert den Pager mit neuen Einträgen&lt;br /&gt;
|}&lt;br /&gt;
Für mehr Details bitte die [[Man_pages|manpage]] lesen.&lt;br /&gt;
&lt;br /&gt;
==Das Startprotokoll==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Schalter '-b' sagt journalctl, dass das  gesamte Startprotokoll gezeigt werden soll.&lt;br /&gt;
&lt;br /&gt;
===Das Startprotokoll filtern===&lt;br /&gt;
Angenommen, es möchte nur ein bestimmtes Startprotokoll eingesehen werden. Etwa vom vorhergehenden Systemstart:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl --list-boots&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Gibt eine Liste vorangegangener Protokolle in einer Übersicht aus). Die erste Spalte kann als Indikator herangezogen werden. Beispielausgabe:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt; ..&lt;br /&gt;
 ...&lt;br /&gt;
 -2 9daa81e2ec374cb1b6adba8d96896605 Sa 2015-08-29 23:26:53 CEST—Sa 2015-08-29 23:49:17 CEST&lt;br /&gt;
 -1 c430ed034607494ba2a3bc1ded4e4972 Sa 2015-08-29 23:49:35 CEST—Sa 2015-08-29 23:54:27 CEST&lt;br /&gt;
  0 1f3a7894d0f34f4392c5517b83279c4d Sa 2015-08-29 23:54:53 CEST—So 2015-08-30 16:22:40 CEST&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Das gewünschte Startprotokoll wird durch Übergabe des jeweiligen Indikator im Pager dargestellt:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -b -1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===journalctl -xb===&lt;br /&gt;
Wenn der Computer beispielsweise aufgrund eines Stromausfall im Emergency Mode startet, wird in der Shell statt dem grafischen Modus ein Login angeboten. Hier schlägt der Rechner oft vor, es solle die Ausgabe von 'journalctl -xb' zu Rate gezogen werden. Also das Startprotokoll prüfen:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xb&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-b&amp;quot;&lt;br /&gt;
|Das Bootprotokoll anzeigen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==journalctl -xn==&lt;br /&gt;
Duch den Schalter -n kann man die Ausgabe auf eine bestimmte Anzahl Zeilen beschränken. Wenn keine Zahl übergeben wird, werden die letzten 10 Zeilen ausgegeben. Beispielsweise die letzten 25 Zeilen ausgeben und Hilfstexte einblenden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -xn 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Schalter&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-x&amp;quot;&lt;br /&gt;
|Blendet nützliche Hilfetexte in der Ausgabe ein.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;-n&amp;quot;&lt;br /&gt;
|Ausgabe auf bestimmte Zeilenanzahl beschränken.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filtern nach Unit==&lt;br /&gt;
Angenommen es sollen nur Logeinträge zum Unit oder Dienst &amp;quot;sshd&amp;quot; in der Ausgabe angezeigt werden.&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl -u sshd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eigener Filter==&lt;br /&gt;
Die Ausgabe von journalctl kann auch umgeleitet werden. So wird im folgenden Beispiel das ganze Systemprotokoll unter zuhilfenahme von 'egrep' nach Vorkommnissen von &amp;quot;Error&amp;quot; und &amp;quot;Failed&amp;quot; durchsucht. Die Ausgabe wird dann an einen Pager (less) umgeleitet:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;journalctl | egrep &amp;quot;Error|Failed&amp;quot; | less&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Speicherplatzbelegung==&lt;br /&gt;
Jedes Log wird für eine gewisse Dauer aufbewahrt. Das ist besonders für Systemadministratoren von besonderer Bedeutung, da Computer oft über einen längeren Zeitraum überwacht werden müssen. Einige Daten werden also permanent auf der Festplatte abgelegt. Von Haus aus sind seitens systemd für diese Informationen 10 Prozent des betroffenen Dateisystems vorgesehen. Bei einem Dateisystem mit 1 TiB Speicherplatz wären dies also 100 GiB logdaten, die von systemd angesammelt würden. Das Journal wird allerdings auch noch komprimiert.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Schalter für journalctl&lt;br /&gt;
|-&lt;br /&gt;
|&amp;quot;--disk-usage&amp;quot;&lt;br /&gt;
|Speicherplatzbelegung des Journal auf dem Datenträger zeigen.&lt;br /&gt;
|}&lt;br /&gt;
Wer auf die voreingestellten Limits und den dafür vorgesehenen Speicherplatz Einfluss haben möchte, kann dies in der Konfigurationsdatei tun:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/systemd/journald.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
So liesse sich beispielsweise mit diesem Schalter das Journal auf eine Größe von 100M beschränken. Ich fände auch einen Wert bis 300M noch sinnvoll wieviel hier eingestellt wird, liegt an der eigenen Nutzenvorstellung:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;SystemMaxUse=100M&amp;lt;/pre&amp;gt;&lt;br /&gt;
Zum Verständnis der Grössenrelation: [[Megabyte |Megabyte/Mibibyte]]&amp;lt;br&amp;gt;&lt;br /&gt;
Und Achtung externer Link: https://de.wikipedia.org/wiki/Datenmenge&lt;br /&gt;
{{Hinweis|'''Die Daten werden im Journal in anderer Form und komprimiert abgelegt. Dennoch, um eine Vorstellung zu haben: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Eine Textdatei gefüllt mit Rautezeichen, die ein A4 Brief ausfüllen würden, hat ca. 4,1 KiB. Eine Ansammlung von 100 GiB mit solchen Dateien entspräche in etwa 261 888 249 Dokumente oder Seiten. Eine Packung Schreibmaschinenpapier hat ca 100 Blatt.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit systemd-analyze=&lt;br /&gt;
Der Befehl systemd-analyze kann dazu genutzt werden, die Leistung eines Systemstarts zu messen. Beispielsweise wie lange es dauert, bis ein bestimmtes festgelegtes Ziel beim Boot erreicht wurde. Ich möchte hier nur Kleinigkeiten zeigen, damit Verständnis erlangt werden kann, was denn bei einem Systemstart von gerade mal 20 Sekunden so alles abgeht. Auch hier bitte ich darum, zu Details wieder die manpage heranzuziehen.&lt;br /&gt;
&lt;br /&gt;
==Startzeitanalyse==&lt;br /&gt;
&amp;lt;blockquote&amp;gt;'''Einfach ohne Zusätzliche Schalter:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemd-analyze&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Beispielausgabe:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;Startup finished in 1.433s (kernel) + 493ms (initrd) + 17.842s (userspace) = 19.769s&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Die Ausgabe sollte weitestgehend selbsterklärend sein. Angegebene Messwerte sind an diesem Beispiel in Sekunden und Millisekunden.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Messung grafisch darstellen==&lt;br /&gt;
Es kann eine SVG Grafik als sog. &amp;quot;plot&amp;quot; erstellt werden, der in Details aufzeigt welche Systemdienste zu welcher Zeit gestartet wurden. Dabei wird visuell hervorgehoben, wie viel Zeit alle Dienste zur Initialisierung benötigten.&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
==='''Startzeiten aller Prozesse:'''===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;{{Hinweis|'''Ich leite Die Ausgabe gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze plot &amp;gt; /tmp/plot.svg | gwenview /tmp/plot.svg&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Achtung|Die SVG Datei ist zwar - nur - ca. 140k groß, das darstellen dieser Grafik kann aber sehr aufwendig für den Computer sein. Nachfolgend nur ein kleiner Ausschnitt aus so einer Grafik als GIF.}}&lt;br /&gt;
[[Bild:systemd-analyze_plot.gif|center|'''Plot als Grafik''']] &lt;br /&gt;
Hier kann man sehr schön sehen, was systemd beim Startvorgang so alles anstellen muss. Und was denn eigentlich so alles in diesen 20 Sekunden passiert bis am Beispielsystem ein vollständiger Systemstart abgeschlossen ist.&amp;lt;br&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
--------&lt;br /&gt;
==='''Abhängigkeit darstellen:'''&amp;lt;br&amp;gt;===&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Wer das interessant fand, möchte eventuell die Möglichkeit nutzen sich grafisch darstellen zu lassen in welchen Abhängigkeiten ein Dienst gestartet wurde.&lt;br /&gt;
{{Hinweis|'''Ich leite Die Ausgabe am Beispiel &amp;quot;avahi-daemon&amp;quot; gleich in eine Datei um und öffne diese mit &amp;quot;gwenview&amp;quot;:'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg &amp;gt; /tmp/avahi.svg | gwenview /tmp/avahi.svg&amp;lt;/pre&amp;gt;{{Achtung|'''Das ist ein Einzeiler!'''}}&lt;br /&gt;
Das Ergebnis präsentiert sich dann so (zu .gif umgewandelt): &lt;br /&gt;
[[Bild:Systemd-analyze_avahi.gif|center|'''Prozessabhängigkeit als Grafik''']]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Umgang mit loginctl=&lt;br /&gt;
Als wichtiger Systemdienst bindet sich systemd auch an den Anmeldevorgang im Betriebssystem. Dafür stellt er einen extra Dienst &amp;quot;systemd-login&amp;quot; zur Verfügung. Der Dienst bietet an dieser Stelle ein Anbindung an die D-Bus Schnittstelle. Wichtige Grundlagen betreffend Zugriffsberechtigungen: [[Zugriffsrechte]]&lt;br /&gt;
&lt;br /&gt;
Das Tool loginctl kann dazu verwendet werden, Einblicke in den Status von Benutzeranmeldungen zu erlangen. Ausserdem kann es verwendet werden Veränderungen am Systemstatus vorzunehmen.&lt;br /&gt;
&lt;br /&gt;
So können [[https://de.wikipedia.org/wiki/Portable_Operating_System_Interface POSIX]] kompatible Signale an Benutzersitzungen gesendet werden, wie beispielsweise [[https://de.wikipedia.org/wiki/SIGTERM SIGTERM]]. Das ist ein Signal zum Terminieren von Programmprozessen.&lt;br /&gt;
{{Warnung|'''Dieses Werkzeug sollte nur von erfahrenen Benutzern verwendet werden.'''}}&lt;br /&gt;
'''Hier nur ein ganz einfaches ungefährliches Anwendungsbeispiel:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;loginctl&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Listet laufende Benutzersitzungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;   SESSION        UID USER             SEAT            &lt;br /&gt;
         1       1000 user             seat0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=systemd-tmpfiles=&lt;br /&gt;
'''Grundlegendes:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Dienst systemd-tmpfiles ist im System für die Verwaltung temporärer Dateisystemstrukturen zuständig. Er erstellt und löscht diese kann sie aber auch bereinigen. ..usw. Einige dieser Strukturen bestehen bei einem Linux Betriebssystem als persistenter bzw. weniger persistenter Ablagebereich. Gedacht ist das für Dateien, die entweder vorübergehend bzw. begrenzt oder längerfristig vorhanden sein müssen.&lt;br /&gt;
&lt;br /&gt;
'''Interessant und erwähnenswert an dieser Stelle:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Systemd hängt einige Dateisystemstrukturen automatisch als &amp;quot;tmpfs&amp;quot; ein. Dazu gehört beispielsweise auch der Pfad &amp;quot;/tmp&amp;quot;. Wie dies geschieht, kann anhand des betreffenden tmp.mount units eingesehen werden. Aus dem Inhalt ergibt sich:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;[Mount]&lt;br /&gt;
What=tmpfs&lt;br /&gt;
Where=/tmp&lt;br /&gt;
Type=tmpfs&lt;br /&gt;
Options=mode=1777,strictatime&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Ein zu SysV-Init zeiten nötiger [[fstab|fstab Eintrag]] hätte so ausgesehen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;tmpfs                /tmp                 tmpfs      defaults,strictatime,mode=1777 0 0&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Der Pfad '/var/tmp/' wird hingegen beispielsweise nicht als tmpfs eingehängt. Ist dafür auch nicht bestimmt.'''}}&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Der Tipp dazu: [[Tipp: systemd-tmpfiles]]'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Tipp: weekly trim durch systemd=&lt;br /&gt;
Das Paket 'util-linux-systemd' bringt einen Dienst mit, der es ermöglicht seine SSD wöchentlich trimmen zu lassen. Es gibt zu beachten, dass trim auf unterschiedlichem Weg im Betriebssystem zur [[SSD_Optimierungen|Optimierung von SSD's]] realisiert werden kann:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Trim&lt;br /&gt;
|-&lt;br /&gt;
|Online discard (trim)&lt;br /&gt;
|moutoption &amp;quot;discard&amp;quot;&lt;br /&gt;
|Ersetzt batched trim und Skripte sowie manuelle Ausführung.&lt;br /&gt;
|-&lt;br /&gt;
|Manuell&lt;br /&gt;
|Durch ausführen des 'fstrim' Kommando in der Shell.&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;|Batched trim bzw. Mitgelieferte Skripte&lt;br /&gt;
|(eigener Skript) Bsp.: [[http://linux-club.de/wiki/opensuse/Batched-trim.sh ext4-trim.sh]]&lt;br /&gt;
|[[http://man7.org/linux/man-pages/man8/fstrim.8.html man fstrim]]&lt;br /&gt;
|-&lt;br /&gt;
|openSUSE bringt beispielsweise für [[https://de.wikipedia.org/wiki/Btrfs btrfs]] einen durch sysconfig steuerbaren trim Skript mit. ('btrfs-trim.sh');&lt;br /&gt;
|Funktioniert zum Stand von openSUSE 13.2 nur beim Einsatz von [[https://de.wikipedia.org/wiki/Btrfs btrfs]].&lt;br /&gt;
|-&lt;br /&gt;
|systemd bringt diese Möglichkeit als Dienst oder unit. ('fstrim.timer') - ('fstrim.service')&lt;br /&gt;
|Keine Einschränkung durch &amp;quot;automatik&amp;quot;. &amp;quot;fstrim -a&amp;quot; beispielsweise bei ext4.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Wichtig ist zu beachten dass diese Kommandos nicht unnötig mehrfach ausgeführt werden oder vermischt zum Einsatz kommen. Einmal die Woche sollte bei batched trim völlig ausreichend sein. Wenn also die in openSUSE integrierte Trimfunktion nicht genutzt werden möchte, kann diese durch die von systemd durchaus ersetzt werden. Wenn beispielsweise Online discard verwendet wird, werden andere Skripte obsolet.&lt;br /&gt;
{{Achtung|'''Ich möchte hier nochmal darauf hinweisen, dass andere Skripte bei Nutzung von systemd zu diesem Zweck deaktiviert werden sollten! Und bei der mount option discard wird batched trim obsolet.'''}}&lt;br /&gt;
'''Folgendes genügt zum aktivieren der systemd variante:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable fstrim.timer&amp;lt;/pre&amp;gt;&lt;br /&gt;
(''Der zugehörige fstrim.service wird vom Timer automatisch zur Ausführung aktiviert.'')&lt;br /&gt;
{{Hinweis|'''Es wird eine Datei mit einem Zeitstempel erstellt anhand dessen die letzte und nächste Ausführung nach dem ersten Aufruf abgehandelt wird.'''}}&lt;br /&gt;
'''Der eigentliche Dienst heisst:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;fstrim.service&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Eine Steuerungsmöglichkeit hierfür ist auch:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rcfstrim&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Der Stempel befindet sich dann hier:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/fstrim.timer&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
'''Der Dienst führt zurzeit wöchentlich folgendes Kommando aus:'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Dies behandelt schlicht und automatisch alle eingehängten Dateisysteme mit trim.''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;fstrim -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Warnung|'''Nicht jede SSD und SATA controller unterstützen jede TRIM Funktionalität. D.h. einige Geräte sind auf batched-discard angewiesen. Einige können mit Online-discard arbeiten, andere nicht. Einige haben wiederum Schwierigkeiten bei trim in Verbindung mit NCQ.'''}}&lt;br /&gt;
{{Hinweis|'''Es bietet sich auch an, dieses unit manuell durch einen eigenen Skript aufzurüsten.'''}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen / Links:=&lt;br /&gt;
* https://www.suse.com/releasenotes/x86_64/SUSE-SLES/12/&lt;br /&gt;
* http://www.freedesktop.org/wiki/Software/systemd/&lt;br /&gt;
* https://www.suse.com/documentation/sles-12/book_sle_admin/data/cha_systemd.html&lt;br /&gt;
* https://de.wikipedia.org&lt;br /&gt;
* http://man7.org/&lt;br /&gt;
*[https://fedoraproject.org/wiki/Systemd fedoraproject.org wiki] {{englisch}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager‏‎]] [[Kategorie:systemd]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32811</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32811"/>
		<updated>2015-11-18T14:52:28Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Die Kommandozeile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
Direkt angesteuert werden kann die Kommandozeile innerhalb des [[#Der Editor|Editors]] mit den Tasten 'Ctrl-C' oder 'F2', Verlassen funktioniert via 'ESC'.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Parameter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer möglicher Anwendungsfall ist das schnelle Ausprobieren von Konfigurationsänderungen ohne Gefahr zu laufen, das System dauerhaft in einen Fehlerzustand zu versetzen (nicht persistente Änderung).&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32810</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32810"/>
		<updated>2015-11-18T11:08:42Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
Direkt angesteuert werden kann die Kommandozeile innerhalb des [[#Der Editor|Editors]] mit den Tasten 'F2' oder 'Ctrl-C', Verlassen funktioniert via 'ESC'.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Parameter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer möglicher Anwendungsfall ist das schnelle Ausprobieren von Konfigurationsänderungen ohne Gefahr zu laufen, das System dauerhaft in einen Fehlerzustand zu versetzen (nicht persistente Änderung).&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32809</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32809"/>
		<updated>2015-11-18T11:04:36Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Die Kommandozeile */ Aufruf via Editor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
Direkt angesteuert werden kann die Kommandozeile innerhalb des [[#Der Editor|Editors]] mit den Tasten 'F2' oder 'Ctrl-C', Verlassen funktioniert via 'ESC'.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer möglicher Anwendungsfall ist das schnelle Ausprobieren von Konfigurationsänderungen ohne Gefahr zu laufen, das System dauerhaft in einen Fehlerzustand zu versetzen (nicht persistente Änderung).&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32808</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32808"/>
		<updated>2015-11-18T10:56:38Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */ das schnelle Ausprobieren&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer möglicher Anwendungsfall ist das schnelle Ausprobieren von Konfigurationsänderungen ohne Gefahr zu laufen, das System dauerhaft in einen Fehlerzustand zu versetzen (nicht persistente Änderung).&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32807</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32807"/>
		<updated>2015-11-18T10:53:04Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Boot-Einträge manuell ändern */ ersetzt durch GRUB-Editor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32806</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32806"/>
		<updated>2015-11-18T09:44:43Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */ Wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Boot-Einträge manuell ändern==&lt;br /&gt;
Manchmal will oder kann man nicht das komplette Setup von GRUB persistent ändern. Wenn das System beispielsweise infolge von Konfigurationsfehlern gar nicht mehr bootet oder der komplette Konfigurationszyklus zu lange dauert oder schlicht etwas ausprobiert werden soll, dann macht es Sinn, die Einträge vor dem Start manuell zu editieren.&lt;br /&gt;
&lt;br /&gt;
Dies kann erreicht werden durch Drücken von 'E' während der Anzeige des Boot-Menüs. Die zu diesem Zeitpunkt selektierte Zeile wird dann in einen kleinen Editor geladen und kann dort überarbeitet werden. Mit der Tastenkombination &amp;lt;Strg&amp;gt;-&amp;lt;X&amp;gt; wird der geänderte Eintrag dann gestartet.&lt;br /&gt;
&lt;br /&gt;
Die auf diesem Wege durchgeführten Änderungen sind nicht persistent.&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den angepassten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32805</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32805"/>
		<updated>2015-11-18T09:43:46Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Boot-Einträge manuell ändern==&lt;br /&gt;
Manchmal will oder kann man nicht das komplette Setup von GRUB persistent ändern. Wenn das System beispielsweise infolge von Konfigurationsfehlern gar nicht mehr bootet oder der komplette Konfigurationszyklus zu lange dauert oder schlicht etwas ausprobiert werden soll, dann macht es Sinn, die Einträge vor dem Start manuell zu editieren.&lt;br /&gt;
&lt;br /&gt;
Dies kann erreicht werden durch Drücken von 'E' während der Anzeige des Boot-Menüs. Die zu diesem Zeitpunkt selektierte Zeile wird dann in einen kleinen Editor geladen und kann dort überarbeitet werden. Mit der Tastenkombination &amp;lt;Strg&amp;gt;-&amp;lt;X&amp;gt; wird der geänderte Eintrag dann gestartet.&lt;br /&gt;
&lt;br /&gt;
Die auf diesem Wege durchgeführten Änderungen sind nicht persistent.&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den editierten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32804</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32804"/>
		<updated>2015-11-18T09:42:55Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */ Dimension des Bildes angepasst&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Boot-Einträge manuell ändern==&lt;br /&gt;
Manchmal will oder kann man nicht das komplette Setup von GRUB persistent ändern. Wenn das System beispielsweise infolge von Konfigurationsfehlern gar nicht mehr bootet oder der komplette Konfigurationszyklus zu lange dauert oder schlicht etwas ausprobiert werden soll, dann macht es Sinn, die Einträge vor dem Start manuell zu editieren.&lt;br /&gt;
&lt;br /&gt;
Dies kann erreicht werden durch Drücken von 'E' während der Anzeige des Boot-Menüs. Die zu diesem Zeitpunkt selektierte Zeile wird dann in einen kleinen Editor geladen und kann dort überarbeitet werden. Mit der Tastenkombination &amp;lt;Strg&amp;gt;-&amp;lt;X&amp;gt; wird der geänderte Eintrag dann gestartet.&lt;br /&gt;
&lt;br /&gt;
Die auf diesem Wege durchgeführten Änderungen sind nicht persistent.&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|300px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt wird und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den editierten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Datei:GRUB2-editor.png&amp;diff=32803</id>
		<title>Datei:GRUB2-editor.png</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Datei:GRUB2-editor.png&amp;diff=32803"/>
		<updated>2015-11-18T09:41:00Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Der Editor von GRUB2 (Beispiel)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Editor von GRUB2 (Beispiel)&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32802</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32802"/>
		<updated>2015-11-18T09:40:07Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */ Beispiel-Bild&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Boot-Einträge manuell ändern==&lt;br /&gt;
Manchmal will oder kann man nicht das komplette Setup von GRUB persistent ändern. Wenn das System beispielsweise infolge von Konfigurationsfehlern gar nicht mehr bootet oder der komplette Konfigurationszyklus zu lange dauert oder schlicht etwas ausprobiert werden soll, dann macht es Sinn, die Einträge vor dem Start manuell zu editieren.&lt;br /&gt;
&lt;br /&gt;
Dies kann erreicht werden durch Drücken von 'E' während der Anzeige des Boot-Menüs. Die zu diesem Zeitpunkt selektierte Zeile wird dann in einen kleinen Editor geladen und kann dort überarbeitet werden. Mit der Tastenkombination &amp;lt;Strg&amp;gt;-&amp;lt;X&amp;gt; wird der geänderte Eintrag dann gestartet.&lt;br /&gt;
&lt;br /&gt;
Die auf diesem Wege durchgeführten Änderungen sind nicht persistent.&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
[[Bild:GRUB2-editor.png|right|thumb|633px|Der GRUB2-Editor (Beispiel)]]''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt wird und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den editierten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32801</id>
		<title>GRUB 2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=GRUB_2&amp;diff=32801"/>
		<updated>2015-11-18T09:29:04Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Der Editor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme mit herkömmlichen [[BIOS]], aber nicht die zunehmend weiter verbreiteten [[UEFI]]-Systeme. Diese Technologie und ihre Implikationen auf GRUB2 sollte in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
GNU GRUB (GRand Unified Bootloader)&lt;br /&gt;
&lt;br /&gt;
=Abgrenzung zu 'GRUB Legacy'=&lt;br /&gt;
''GRUB 2'' ist eine vollständige Neuentwicklung des Vorgängers [[GRUB Legacy]]. Seit 2009 wird es in größeren Distributionen als Standard eingeführt, [[OpenSUSE]] beispielsweise vollführte diesen Schritt mit Release 12.2 im Herbst 2012.&lt;br /&gt;
&lt;br /&gt;
Um eine Reihe neuer Funktionalitäten anbieten zu können, haben sich die Entwickler für eine radikale Neu-Implementierung entschieden. Es gibt dementsprechend bis auf den Namen kaum Gemeinsamkeiten und bewusst wurde auf '''Kompatibilität zum Vorgänger verzichtet'''.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Version kann beispielsweise so abgefragt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# rpm -qv grub2&lt;br /&gt;
grub2-2.00-39.1.3.x86_64&lt;br /&gt;
&lt;br /&gt;
# grub2-install -v&lt;br /&gt;
grub2-install (GRUB2) 2.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Erweiterte Funktionalitäten==&lt;br /&gt;
*Script-gesteuerte, dynamischere Konfiguration&lt;br /&gt;
*Unterstützung von mehr [[Dateisystem]]en wie beispielsweise [[ext4]], HFS+, [[NTFS]] ([http://www.gnu.org/software/grub/manual/html_node/Internationalisation.html#Filesystems vollständige Liste])&lt;br /&gt;
*Direkter Zugriff auf [[LVM]] und [[RAID]]-Devices möglich&lt;br /&gt;
*Steuerung über ein graphisches Terminal (besonders ''Rescue Mode'') und graphisches Menüsystem gegeben&lt;br /&gt;
*Mehrsprachigkeit inklusive der Einträge&lt;br /&gt;
*Zusätzliche Unterstützung für weitere Systemsoftware neben PC [[BIOS]]: [[UEFI|PC EFI]], PC coreboot, PowerPC, SPARC, MIPS Lemote Yeeloong&lt;br /&gt;
*Support für Boot via Netzwerk über [[tftp]] (PXE)&lt;br /&gt;
*Zugriff über serielle Konsole möglich (vor allem Embedded Devices)&lt;br /&gt;
*Boot Password möglich&lt;br /&gt;
*Start von LiveCD ISO-Images direkt von der Festplatte möglich&lt;br /&gt;
*Unterstützung von weiteren Plattformen neben x86 (z.B. PowerPC)&lt;br /&gt;
*Einführung eines Modells zur Erzeugung von angepassten Layouts (Themes)&lt;br /&gt;
&lt;br /&gt;
==Unterschiede zu 'GRUB Legacy'==&lt;br /&gt;
An dieser Stelle werden die Unterschiede zu [[GRUB Legacy]] hervorgehoben:&lt;br /&gt;
*In ''Grub 2'' existiert die stufenweise Reihenfolge in den Einzelphasen ('Stage 1', 'Stage 1.5', 'Stage 2') nicht mehr.&lt;br /&gt;
*In der Konfiguration werden Partitionen ebenfalls über Zahlen adressiert, aber die Nummerierung beginnt mit 1 (und nicht 0).&lt;br /&gt;
:*Hinweis: Das gilt aber nur für Partitionen, nicht für Festplatten. Festplatten werden mit 'hdX' benannt und X beginnt bei 0!&lt;br /&gt;
*Die Konfiguration wurde komplett umgestellt. Wo früher eine einzelne Datei (menu.lst) zu editieren war, gibt es heute ein komplettes Konfigurationssystem aus vielen Dateien mit eigener Struktur und eigenem Build-System, welches die eigentlichen Konfigurationsdateien generiert (s. [[#Konfiguration]]).&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
{{Lückenhaft|Im aktuellen Zustand beschreibt dieser Artikel ausschließlich Systeme, welche das [[MBR]]-Partitionierungsschema verwenden. Andere Schemata wie beispielsweise [[GPT]] werden hier derzeit nicht behandelt. Da GPT-Partitionierung zunehmend an Verbreitung gewinnt, sollte dies in zukünftigen Versionen das Artikels berücksichtigt werden.}}&lt;br /&gt;
&lt;br /&gt;
Analog zum Vorgänger wird zur Installation des Boot-Sektors das Script 'grub2-install' verwendet. Als Parameter wird das Ziel-Device angegeben (im Beispiel der [[MBR]] der ersten Festplatten 'sda'):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-install /dev/sda&lt;br /&gt;
Installation finished. No error reported.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Alternativ können auch Partitionen ausgewählt werden.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] ist alternativ zu verwenden:&lt;br /&gt;
*yast2 bootloader&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||Dieser Schritt überschreibt möglicherweise [[Bootmanager]] anderer Systeme!}}&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
==Boot-Einträge manuell ändern==&lt;br /&gt;
Manchmal will oder kann man nicht das komplette Setup von GRUB persistent ändern. Wenn das System beispielsweise infolge von Konfigurationsfehlern gar nicht mehr bootet oder der komplette Konfigurationszyklus zu lange dauert oder schlicht etwas ausprobiert werden soll, dann macht es Sinn, die Einträge vor dem Start manuell zu editieren.&lt;br /&gt;
&lt;br /&gt;
Dies kann erreicht werden durch Drücken von 'E' während der Anzeige des Boot-Menüs. Die zu diesem Zeitpunkt selektierte Zeile wird dann in einen kleinen Editor geladen und kann dort überarbeitet werden. Mit der Tastenkombination &amp;lt;Strg&amp;gt;-&amp;lt;X&amp;gt; wird der geänderte Eintrag dann gestartet.&lt;br /&gt;
&lt;br /&gt;
Die auf diesem Wege durchgeführten Änderungen sind nicht persistent.&lt;br /&gt;
&lt;br /&gt;
==Die Kommandozeile==&lt;br /&gt;
''GRUB2'' verfügt über eine eingebaute Shell, welche unter anderem  TAB-Completion beherrscht. Diese kann entweder direkt angesteuert werden oder wird angezeigt, wenn es Probleme mit einer invaliden Konfiguration gibt.&lt;br /&gt;
&lt;br /&gt;
Hier können die selben Befehle verwendet werden, die in der Konfiguration möglich sind. Damit können beispielsweise im ''Rescue Mode'' beliebige Systeme manuell gestartet werden.&lt;br /&gt;
&lt;br /&gt;
==Der Editor==&lt;br /&gt;
''GRUB2'' verfügt auch über einen eingebauten Editor. Dieser erlaubt es, einen ausgewählten Boot-Eintrag zu verändern. Dies kann sehr nützlich sein in Situationen, in denen die aktuelle Konfiguration nicht zu einem sauber gebooteten System führt - beispielsweise bei einem defekten Grafikkartentreiber infolge eines missglückten Updates. &lt;br /&gt;
&lt;br /&gt;
In solchen Fällen ist es manchmal hilfreich, beim Start bestimmte Kernel-Paramter mitzugeben oder den Runlevel zu verändern.&lt;br /&gt;
&lt;br /&gt;
Dieser Editor wird aufgerufen, indem in der Anzeigephase von GRUB2 ein Eintrag ausgewählt wird und dann die Taste 'E' gedrückt wird. Daraufhin wird genau dieser betreffende Eintrag aus der aktuellen Datei ''grub.cfg'' in einen Editor geladen und kann dort verändert werden. Für die Steuerung des Editors gibt es eine Handvoll Tastenkürzel, welche unter dem Editor kurz aufgeführt werden. Mit 'ESC' verwirft man die Änderungen und kommt zur Auswahl zurück, mit 'Ctrl-X' oder 'F10' bootet man das System mit den editierten Parametern.&lt;br /&gt;
&lt;br /&gt;
Die Änderungen sind einmalig und werden nicht persistiert!&lt;br /&gt;
&lt;br /&gt;
==YaST: boot loader==&lt;br /&gt;
[[OpenSUSE]]-typisch kann man einige Einstellungen auch in der Systemverwaltung [[YaST]] unter ''System / boot loader'' vornehmen.&lt;br /&gt;
&lt;br /&gt;
==Default-Konfiguration: /etc/default/grub==&lt;br /&gt;
Globale Grundeinstellungen (Timeout, Standard-Eintrag, Layout...) werden hier definiert.&lt;br /&gt;
&lt;br /&gt;
==/etc/sysconfig/bootloader==&lt;br /&gt;
Diese Datei enthält Konfigurationsoptionen, welche von der ''perl-bootloader library'' verwendet werden. Dies passiert dann, wenn eine Konfiguration über [[YaST]] durchgeführt wird oder ein neuer [[Kernel]] installiert wird.&lt;br /&gt;
&lt;br /&gt;
Diese Datei ist [[openSUSE]]-spezifisch. Die Optionen hier werden auch nicht ausschließlich für ''GRUB 2'' verwendet, sondern auch bei anderen supporteten [[Bootmanager]]n.&lt;br /&gt;
&lt;br /&gt;
==Buildsystem: /etc/grub.d==&lt;br /&gt;
Das Buildsystem ist eine Sammlung von Scripten. Ein Nummernpräfix sorgt für eine Abfolge in definierter Reihenfolge (bei '00' beginnend):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ls -l /etc/grub.d&lt;br /&gt;
-rwxr-xr-x 1 root root  7649 Jul 31 11:48 00_header&lt;br /&gt;
-rwxr-xr-x 1 root root 10535 Jul 31 11:48 10_linux&lt;br /&gt;
-rwxr-xr-x 1 root root 11019 Jul 31 11:48 20_linux_xen&lt;br /&gt;
-rwxr-xr-x 1 root root  1802 Jul 31 11:49 20_memtest86+&lt;br /&gt;
-rwxr-xr-x 1 root root  2596 Jul 31 11:48 20_ppc_terminfo&lt;br /&gt;
-rwxr-xr-x 1 root root 10132 Jul 31 11:48 30_os-prober&lt;br /&gt;
-rwxr-xr-x 1 root root   489 Jul 11 15:04 40_custom&lt;br /&gt;
-rwxr-xr-x 1 root root   216 Jul 31 11:48 41_custom&lt;br /&gt;
-rwxr-xr-x 1 root root  1259 Jul 31 11:49 90_persistent&lt;br /&gt;
-rw-r--r-- 1 root root   483 Jul 31 11:48 README&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dieses Beispiel stammt aus einer [[OpenSUSE]]-Installation (Release 12.3). Andere Distribution liefern geringfügig andere Scripten aus. Es können diesem Schema entsprechend auch eigene Scripte hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Bedeutung der Standard-Scripten:&lt;br /&gt;
*00_header: Initialisierung des Systems anhand der Einträge in /etc/default/grub ([[#Default-Konfiguration: /etc/default/grub|Default-Konfiguration]]).&lt;br /&gt;
*10_linux: Hier wird versucht, alle validen Kernel zu finden. Aus diesen wird dann das Bootmenü generiert. &lt;br /&gt;
*20_linux_xen:  Für den Hypervisor [[Xen]] sind dedizierte Kernel notwendig. Hier wird die notwendige Parametrisierung hierfür durchgeführt.&lt;br /&gt;
*20_memtest86+: Aufnahme von [[memtest]] in das Bootmenü.&lt;br /&gt;
*20_ppc_terminfo: &amp;lt;ToDo: Funktionalität noch beschreiben&amp;gt;&lt;br /&gt;
*30_os-prober: Suche nach weiteren Bootladern sowie weiteren installierten Betriebssystemen. In einem Multi-Boot-Kontext werden hier Einträge beispielsweise für Windows oder parallele Linux-Installationen generiert.&lt;br /&gt;
*40_custom: Eigene Booteinträge können hier manuell hinterlegt werden. Dieses Script wird bei System-Updates nicht überschrieben.&lt;br /&gt;
*41_custom: Einbindung der Datei /boot/grub/custom.cfg&lt;br /&gt;
*90_persistent: Teile aus der aktuellen grub.cfg können hier rein kopiert werden. Dieser Inhalt wird bei einem erneuten Durchlauf des Build-Systems '''nicht''' überschrieben.&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [[#Konfiguration neu generieren]]&lt;br /&gt;
&lt;br /&gt;
==Module laden==&lt;br /&gt;
''GRUB 2'' bietet direkten Zugriff auf bestimmte Ressourcen wie beispielsweise [[LVM]], [[RAID]] oder diverse [[Dateisysteme]]. Dieser Zugriff wird über Module implementiert, welche per 'insmod' bei Bedarf geladen werden können.&lt;br /&gt;
&lt;br /&gt;
Unter [[OpenSUSE]] liegen diese Module (architekturabhängig) unter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tree -d /usr/lib/grub2/&lt;br /&gt;
/usr/lib/grub2/&lt;br /&gt;
├── i386-pc&lt;br /&gt;
└── x86_64-efi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Verfügbare Module (nur x86_64-efi):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 # ls -r --format=commas *.mod&lt;br /&gt;
zfsinfo.mod, zfscrypt.mod, zfs.mod, xzio.mod, xnu_uuid.mod, xnu.mod, xfs.mod, videotest.mod, videoinfo.mod, video_fb.mod, video_cirrus.mod, video_bochs.mod, video.mod,&lt;br /&gt;
usbtest.mod, usbserial_pl2303.mod, usbserial_ftdi.mod, usbserial_common.mod, usbms.mod, usb_keyboard.mod, usb.mod, uhci.mod, ufs2.mod, ufs1.mod, udf.mod, true.mod, trig.mod,&lt;br /&gt;
time.mod, tga.mod, tftp.mod, testload.mod, test_blockarg.mod, test.mod, terminfo.mod, terminal.mod, tar.mod, squash4.mod, sleep.mod, sfs.mod, setpci.mod, setjmp.mod,&lt;br /&gt;
serial.mod, search_label.mod, search_fs_uuid.mod, search_fs_file.mod, search.mod, scsi.mod, romfs.mod, relocator.mod, reiserfs.mod, regexp.mod, reboot.mod, read.mod,&lt;br /&gt;
raid6rec.mod, raid5rec.mod, probe.mod, priority_queue.mod, png.mod, play.mod, pbkdf2.mod, pata.mod, password_pbkdf2.mod, password.mod, parttool.mod, part_sunpc.mod,&lt;br /&gt;
part_sun.mod, part_plan.mod, part_msdos.mod, part_gpt.mod, part_dvh.mod, part_bsd.mod, part_apple.mod, part_amiga.mod, part_acorn.mod, ohci.mod, odc.mod, ntfscomp.mod,&lt;br /&gt;
ntfs.mod, normal.mod, nilfs2.mod, newc.mod, net.mod, multiboot2.mod, multiboot.mod, msdospart.mod, mmap.mod, minix_be.mod, minix3_be.mod, minix3.mod, minix2_be.mod, minix2.mod,&lt;br /&gt;
minix.mod, minicmd.mod, memrw.mod, memdisk.mod, mdraid1x.mod, mdraid09_be.mod, mdraid09.mod, lzopio.mod, lvm.mod, luks.mod, lssal.mod, lspci.mod, lsmmap.mod, lsefisystab.mod,&lt;br /&gt;
lsefimmap.mod, lsacpi.mod, ls.mod, loopback.mod, loadenv.mod, loadbios.mod, linuxefi.mod, linux.mod, ldm.mod, keystatus.mod, keylayouts.mod, jpeg.mod, jfs.mod, iso9660.mod,&lt;br /&gt;
iorw.mod, http.mod, hfsplus.mod, hfs.mod, hexdump.mod, help.mod, hello.mod, hdparm.mod, hashsum.mod, halt.mod, gzio.mod, gptsync.mod, gfxterm.mod, gfxmenu.mod, gettext.mod,&lt;br /&gt;
geli.mod, gcry_whirlpool.mod, gcry_twofish.mod, gcry_tiger.mod, gcry_sha512.mod, gcry_sha256.mod, gcry_sha1.mod, gcry_serpent.mod, gcry_seed.mod, gcry_rmd160.mod,&lt;br /&gt;
gcry_rijndael.mod, gcry_rfc2268.mod, gcry_md5.mod, gcry_md4.mod, gcry_des.mod, gcry_crc.mod, gcry_cast5.mod, gcry_camellia.mod, gcry_blowfish.mod, gcry_arcfour.mod,&lt;br /&gt;
functional_test.mod, fshelp.mod, font.mod, fixvideo.mod, fat.mod, extcmd.mod, ext2.mod, exfctest.mod, exfat.mod, elf.mod, ehci.mod, efinet.mod, efi_uga.mod, efi_gop.mod,&lt;br /&gt;
echo.mod, dm_nv.mod, diskfilter.mod, datetime.mod, datehook.mod, date.mod, cs5536.mod, cryptodisk.mod, crypto.mod, crc64.mod, cpuid.mod, cpio_be.mod, cpio.mod, configfile.mod,&lt;br /&gt;
cmp.mod, chain.mod, cat.mod, bufio.mod, btrfs.mod, bsd.mod, boot.mod, blocklist.mod, bitmap_scale.mod, bitmap.mod, bfs.mod, backtrace.mod, ata.mod, at_keyboard.mod,&lt;br /&gt;
appleldr.mod, aout.mod, all_video.mod, ahci.mod, afs.mod, affs.mod, adler32.mod, acpi.mod&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Konfiguration können Module über den Befehl ''insmod'' geladen werden. Ein Beispiel für die [[#Die Kommandozeile|Kommandozeile]]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  insmod mdraid1x&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Boot Password setzen==&lt;br /&gt;
Diese Funktionalität ist sinnvoll geworden, weil durch die [[#Erweiterte Funktionalitäten|erheblich ausgeweitete Funktionalität]] schon vor dem Start des OS potentiell Zugriff auf schützenswerte Daten erfolgen kann (möglicherweise auch über das Netzwerk) oder nicht gewünschte Systeme gebootet werden können. Es besteht auf diesem Wege die Möglichkeit, das Starten ausgewählter Systeme oder anderer Eigenschaften von ''GRUB2'' nur bestimmten Usern zu ermöglichen. Hierzu ist ein Authentifizierungsmechanismus und ein simples Usermangagement vorgesehen.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Die hier vorgestellten Mechanismen bieten keinen wirksamen Schutz vor Angreifern, welche '''physischen Zugang''' zu einem System haben sowie über ausreichend Zeit, Gelegenheit und über das notwendige KnowHow verfügen. Sollte der Angriff dem Datenbestand gelten, dann könnten die Festplatte auch ausgebaut und in einem anderen Computer eingelesen werden. Gegen solche Angriffe hilft nur eine ausreichende physikalische Sicherung und/oder eine Verschlüsselung der Daten mit ausgereiften kryptographischen Verfahren wie beispielsweise [[dm-crypt]].&lt;br /&gt;
Auch sollte erwähnt werden, dass hierdurch naturgemäß die Administration erschwert wird, insbesondere im Fall, dass ein System aus irgendwelchen Gründen gar nicht mehr bootet und repariert werden muss.&lt;br /&gt;
&lt;br /&gt;
Gleichwohl kann das hier beschriebene Verfahren sehr wohl in bestimmten Kontexten zu einem höheren Maß an Sicherheit führen. Oftmals geht es in der IT-Sicherheit auch 'nur' darum, Hürden aufzubauen um schwächere Angriffsszenarien abdecken zu können oder Kombinationen von Sicherheitslücken zu entschärfen. So kann es durchaus sinnvoll sein, das Booten von externen Medien (USB-Stick, Netzwerk...) in Kombination mit entsprechenden Einträgen im [[BIOS]] einem Administrator vor zu behalten oder bestimmte installierte Betriebssysteme auf ausgewählte User einzugrenzen.&lt;br /&gt;
Einige Anwendungsfälle wurden beispielsweise [http://www.linux-club.de/viewtopic.php?f=90&amp;amp;t=118585 hier] diskutiert.&lt;br /&gt;
&lt;br /&gt;
===Authentifizierung===&lt;br /&gt;
Es besteht die Möglichkeit, die Passwörter in Klartext in der Konfiguration zu hinterlegen. Viel sicherer ist es aber, anstatt von Klarttext-Passworten einen kryptographisch gesicherten [https://de.wikipedia.org/wiki/Kryptologische_Hashfunktion Passwort-Hash] zu verwenden, welcher mit einem angemessenen [https://de.wikipedia.org/wiki/Salt_%28Kryptologie%29 Salt] versehen ist (um Angriffen mit [https://de.wikipedia.org/wiki/Rainbow_Table Rainbow-Tables] abwehren zu können).&lt;br /&gt;
&lt;br /&gt;
Hierzu wird das Kommando 'grub2-mkpasswd-pbkdf2' verwendet. Es generiert einen Password-Hash, welcher an den geeigneten Stellen eingetragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Aufruf für Password '123':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2&lt;br /&gt;
Enter password: &lt;br /&gt;
Reenter password: &lt;br /&gt;
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Folgende Aufrufe mit dem selben Password rufen immer andere Hashes hervor, was auf das Salting zurückzuführen ist.&lt;br /&gt;
&lt;br /&gt;
Weitere Optionen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkpasswd-pbkdf2 -?&lt;br /&gt;
Usage: grub2-mkpasswd-pbkdf2 [OPTION...] [OPTIONS]                                                                  &lt;br /&gt;
Generate PBKDF2 password hash.                                                                                      &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
  -c, --iteration-count=NUM  Number of PBKDF2 iterations                                                            &lt;br /&gt;
  -l, --buflen=NUM           Length of generated hash                                                               &lt;br /&gt;
  -s, --salt=NUM             Length of salt                                                                         &lt;br /&gt;
  -?, --help                 give this help list                                                                    &lt;br /&gt;
      --usage                give a short usage message                                                             &lt;br /&gt;
  -V, --version              print program version                                                                  &lt;br /&gt;
                                                                                                                    &lt;br /&gt;
Mandatory or optional arguments to long options are also mandatory or optional                                      &lt;br /&gt;
for any corresponding short options.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Siehe auch: [https://de.wikipedia.org/wiki/PBKDF2 PBKDF2 (Wikipedia)]&lt;br /&gt;
&lt;br /&gt;
===Authorisierung===&lt;br /&gt;
Zu erst wird die Liste der User definiert, welchen root-Zugriff zugebilligt werden soll. In diesem Beispiel einfach nur der User 'root':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
set superusers=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn diese Umgebungsvariable gesetzt ist, wird der Zugang zur [[#Kommandozeile|Kommandozeile]] nur den entsprechenden Usern erlaubt.&lt;br /&gt;
&lt;br /&gt;
Als nächstes wird das Password mit den vorher generierten Password-Hashes den Usern zugeordnet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
password_pbkdf2 root grub.pbkdf2.sha512.10000.DD2DF79436A5F2CA4F7363030C6C1555A7263BD692A61AAAE2847EDEF9D12B25EBBD0791EA875CBD1726D90DE9E99644BC4A630637D615AA42C06C19C26A6DC8.C68EC9D01A2DFCBEB2B36FDF6836290E8DB6F50B2BD85932AF7E6BEC8E4AC9A5BB4F027EF906AFD97FC2DC2A38745F5CA63DCC1E05049DC3CA12DC5336647249&lt;br /&gt;
password_pbkdf2 user1 grub.pbkdf2.sha512.10000.C3FFA2E95A6F933C562CFEFAFF86EE4BBE50FA20BD0575080C364D7EB37DE9CA6D7BDC58DB853EF00ECEB97376B1B7F50E051853A7DDBD917F201D58617397C1.6E29B095569E5BABD4380C47B61210F63D6F9156DA6D43C8D5F8AEAC88C7146C6C58A373C3CF4326D4B9F9CD50DDE4D890A0BDFC3E69EF5B42D5B2C09CA8086E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anwendugsbeispiele:&lt;br /&gt;
&lt;br /&gt;
''Windows XP'' wird als unsicher eingestuft und sollte - wenn überhaupt - nicht in unsicheren Netzen eingesetzt werden. Um das sicherzustellen, wird dieses Recht nur dem besonders vertrauenswürdigen User 'user1' (oder implizit 'root') zugestanden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'Windows XP (Achtung: kein Support mehr - unsicher)' --users user1 [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieser Eintrag kann aufgrund des Parameters ''unrestricted'' von allen Benutzern gestartet werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop' --unrestricted [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ausgrenzung aller User, nur 'root' darf das Starten:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry 'openSUSE 12.3, with Linux 3.7.10-1.11-desktop (recovery mode)' --users '' [...]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Falls weder der Parameter ''unrestricted'' noch ''users'' gesetzt ist, dann wird als User 'root' verwendet.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Derzeit gibt es noch keine Integration des Usermanagements in das [[#Buildsystem: /etc/grub.d|automatische Build]]. Die oben genannte Konfiguration muss also manuell in den Custom-Bereich eingetragen werden.&lt;br /&gt;
&lt;br /&gt;
==Konfigurationsdatei: /boot/grub2/grub.cfg==&lt;br /&gt;
Dies ist die Hauptkonfigurationsdatei, welche wie oben beschrieben aber '''nicht manuell editiert''' werden sollte, weil sie vom [[#Buildsystem: /etc/grub.d|Buildsystem]] generiert wird! Es gibt System-Prozesse, welche genau das veranlassen, beispielsweise bei einem Kernelupdate. Manuelle Änderungen an dieser Datei würden spätestens da überschrieben.&lt;br /&gt;
&lt;br /&gt;
Diese Datei wird beim eigentlichen Systemstart ausgewertet und bestimmt somit, welche Systeme zur Ausführung gelangen . Sie ersetzt die von [[GRUB Legacy]] bekannte Datei 'menu.lst'.&lt;br /&gt;
&lt;br /&gt;
==Konfiguration neu generieren==&lt;br /&gt;
Um Konfigurationsänderungen zu aktivieren, muss abschließend das Kommando 'grub2-mkconfig' aufgerufen werden. Bei erfolgreicher Abarbeitung wird die [[#Konfigurationsdatei: /boot/grub2/grub.cfg|Hauptkonfigurationsdatei]] neu generiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# grub2-mkconfig -o /boot/grub2/grub.cfg&lt;br /&gt;
Generating grub.cfg ...&lt;br /&gt;
Found theme: /boot/grub2/themes/openSUSE/theme.txt&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.11.6-4-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.11.6-4-desktop&lt;br /&gt;
Found linux image: /boot/vmlinuz-3.7.10-1.16-desktop&lt;br /&gt;
Found initrd image: /boot/initrd-3.7.10-1.16-desktop&lt;br /&gt;
Found openSUSE 12.3 (x86_64) on /dev/mapper/system-os2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Im Falle von Syntax-Fehlern wird die Zieldatei nicht neu geschrieben. So wird sichergestellt ist, dass immer eine valide Konfiguration für den Systemstart vorliegt.&lt;br /&gt;
&lt;br /&gt;
==Abhängigkeit zum Patch-Prozess==&lt;br /&gt;
Die Einträge ''initrd'' und ''linux'' in dieser Konfiguration unterliegen einer gewissen Dynamik. Es gibt eine Abhängigkeit zwischen den im Verzeichnis /boot liegenden Image-Dateien und der Konfiguration. So gibt es Anwendungsfälle, in welchen im Rahmen eines Systemupdates (Patch-Prozess) diese Images neu generiert werden (beispielsweise die ''initrd'' neu geschrieben wird). Um den Code des geänderten oder neuen Images auch nutzen zu können, wird vom Update-Prozess explizit auch die GRUB-Konfiguration neu generiert.&lt;br /&gt;
&lt;br /&gt;
=Grundsätzliche Boot-Methoden=&lt;br /&gt;
''GRUB 2'' kennt zwei grundsätzliche Methoden, Betriebssysteme zu booten:&lt;br /&gt;
#Direktes Booten: Bei Betriebssystemen nach 'Multiboot Specification' wird diese Methode verwendet. Das sind hauptsächlich [[Open Source]]-Systeme.&lt;br /&gt;
#Chain Loading: Wird hauptsächlich bei nicht freien Betriebssystemen angewendet, für die es keinen nativen Support gibt.&lt;br /&gt;
&lt;br /&gt;
==Direktes Booten (Multiboot Specification)==&lt;br /&gt;
Es gibt eine Spezifikation namens 'Multiboot', welche einen sauberen Multi-Boot-Betrieb zwischen unterschiedlichen Betriebssystemen zum Inhalt hat. Auf diesem Wege ist direkte Ansteuerung der installierten Systeme durch einen einzigen BootManager möglich.&lt;br /&gt;
&lt;br /&gt;
Betriebssysteme mit Multiboot-Support: GNU/Linux, FreeBSD, NetBSD, OpenBSD, ...&lt;br /&gt;
&lt;br /&gt;
Siehe: [http://www.gnu.org/software/grub/manual/multiboot/html_node/index.html Multiboot Specification (GNU)]&lt;br /&gt;
&lt;br /&gt;
==Chain Loading==&lt;br /&gt;
Bei nicht quelloffenen Betriebssystemen gibt es fast immer keinen Support für direktes Booten. An diesen Stellen wird 'chain loading' verwendet, wobei hier der vorgeschaltete Boatloader (GRUB2) den Staffelstab an den nachgeschalteten (z.B. Windows) weitergibt:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
menuentry &amp;quot;Windows&amp;quot; {&lt;br /&gt;
	insmod chain&lt;br /&gt;
	insmod ntfs&lt;br /&gt;
	set root=(hd0,1)&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Anwendungsfälle=&lt;br /&gt;
An dieser Stelle sollen Anleitungen zu ausgesuchten Anwendungsfällen im Zusammenhang mit ''GRUB 2'' aufgezeigt werden:&lt;br /&gt;
*[[Standardeintrag Bootmenü ändern (GRUB2)]]&lt;br /&gt;
*[[Umgang mit redundanten Laufwerken (GRUB2)]]&lt;br /&gt;
*[[Start von ISO-Image auf der Festplatte (GRUB2)]]&lt;br /&gt;
*[[Bootloader wiederherstellen]]&lt;br /&gt;
&lt;br /&gt;
=Links=&lt;br /&gt;
*[http://www.gnu.org/software/grub/manual/html_node/index.html#SEC_Contents GRUB Documentation (GNU)] {{englisch}}&lt;br /&gt;
*[http://doc.opensuse.org/documentation/html/openSUSE_122/opensuse-reference/grub2.html The Boot Loader GRUB2 (doc.opensuse.org)] {{englisch}}&lt;br /&gt;
*[http://en.wikipedia.org/wiki/Grub2 GNU GRUB (Wikipedia)] {{englisch}}&lt;br /&gt;
*[https://help.ubuntu.com/community/Grub2 Grub2 (Ubuntu Documentation)] {{englisch}}&lt;br /&gt;
*[[GRUB]]&lt;br /&gt;
*[[GRUB Legacy]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Bootmanager]] [[Kategorie:Security]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Profile_Sync_Daemon&amp;diff=32655</id>
		<title>Tipp: Profile Sync Daemon</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Profile_Sync_Daemon&amp;diff=32655"/>
		<updated>2015-09-18T20:06:14Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: /* Vorwort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|alles}}&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Ich wollte euch hier schreiben, da ich bisher noch keine bzw. wenig gute Infos zu PSD zu [[openSUSE]] 13.2 gefunden habe, wie ich mir diesen nach meinem eigenen Geschmack für Firefox und Chromium eingerichtet habe. Den Performance-Gewinn der Webbrowser finde ich derart super, dass ich das auf meinem Desktop als auch auf meinem alten Notebook einsetze. Tutorials die ich fand, beschrieben keine Nutzung von overlayfs und waren auch nicht speziell auf openSUSE zielgerichtet. Das wollte ich dann alles zusammen - so weit es mir im Sinn liegt - ausbauen und anwenden. Wie folgt:&lt;br /&gt;
{{Hinweis|'''Bitte lasst euch von den Warnungen nicht abschrecken''''}}&lt;br /&gt;
{{Achtung|'''Bitte macht auch nochmal vorher eine SICHERUNG! (Browser PROFILE etc.). Bei falscher Handhabung können alle Lesezeichen und alle Einstellungen des Browser verloren gehen. Und ihr müsstet mit einem leeren neuen Profil beginnen.'''}}&lt;br /&gt;
{{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
{{Warnung|'''Es ist besonders Wichtig, dass alle Browser beendet werden, bevor PSD beendet oder gestartet wird. Ansonsten kann es zu Datenverlust beim Browserprofil führen.'''}}&lt;br /&gt;
==Das Paket besorgen==&lt;br /&gt;
'''Es gibt ein RPM im Buildservice:'''&lt;br /&gt;
(Es sei möglicherweise instabil). Ich kann davon nichts feststellen. Das läuft einfach wunderbar. Ich gehe davon aus, dass da jeder seine Möglichkeit dazu hat (hier ein Link):&lt;br /&gt;
*https://software.opensuse.org/package/profile-sync-daemon?search_term=profile+sync+daemon&lt;br /&gt;
'''Nach dem Download:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rpm -Uhv profile-sync-daemon-5.73-6.1.noarch&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|Nach der Installation ist der Dienst PSD zunächst deaktiviert und nicht funktionsfähig. Er muss noch durch einige Schritte konfiguriert werden. Im Anschluss kann er gestartet werden.}}&lt;br /&gt;
&lt;br /&gt;
==Overlayfs==&lt;br /&gt;
{{Hinweis|'''Damit das Browserprofil komprimiert im RAM abgelegt wird, Verwendet PSD ein Kernel-Modul namens &amp;quot;overlayfs&amp;quot;.'''}}&lt;br /&gt;
*'''Vorab laden'''&lt;br /&gt;
Damit es gleich ohne den Computer neu zu starten für das Howto direkt verwendet werden kann, muss folgender Befehl abgesetzt werden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;modprobe overlayfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Prüfen:''' (ob es erfolgreich geladen wurde):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;lsmod | grep overlayfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;overlayfs              32012  2&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Achtung|'''Wenn das Modul overlayfs nicht geladen werden kann, müsste in der Konfiguration darauf verzichtet werden.'''}}&lt;br /&gt;
*'''Einrichten, dass es bei jedem reboot geladen wird:'''&lt;br /&gt;
Damit das Modul 'overlayfs' beim nächsten Systemstart automatisch geladen wird, muss dem Kernel Bescheid gesagt werden. Das passiert mithilfe einer eigens dafür angelegten Datei.&lt;br /&gt;
*'''Datei erstellen:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;touch /etc/modules-load.d/MODULES_LOADED_ON_BOOT.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Inhalt einfügen:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;echo &amp;quot;overlayfs&amp;quot; &amp;gt; /etc/modules-load.d/MODULES_LOADED_ON_BOOT.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Jetzt ist das Kernelmodul geladen und wird auch beim nächsten Start automatisch geladen.'''}}&lt;br /&gt;
&lt;br /&gt;
==Die Konfigurationsdatei==&lt;br /&gt;
Da PSD zunächst nicht konfiguriert ist. Und wir bisher nur overlayfs vorbereitet haben, muss noch die Konfigurationsdatei angepasst werden bevor wir mit dem Start beginnen. Diese Datei findet ihr in folgendem Pfad:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/psd.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Hier müssen entsprechende werte ggf. unkommentiert werden. Bitte beschäftigt euch auch selbst nochmal mit der Datei. Über jedem der entsprechenden Werte stehen Warnungen und gute Kommentare. Deswegen nenne ich hier nur kurz die wichtigsten Optionen.&lt;br /&gt;
'''Vorgeschlagene Anpassungen:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# WICHTIG! Hier Muss der Benutzer eingetragen werden, &lt;br /&gt;
# für den PSD aktiviert wird. Also der Anmeldename.&lt;br /&gt;
USERS=&lt;br /&gt;
&lt;br /&gt;
# Die Komprimierung nutzen. (Hierfür wurde das Modul bereits geladen).&lt;br /&gt;
USE_OVERLAYFS=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Backups bringen Gummipluspunkte:&lt;br /&gt;
USE_BACKUPS=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Pfad zum RAM-Laufwerk:&lt;br /&gt;
VOLATILE=&amp;quot;/tmp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Bitte überarbeitet eure Konfigurationsdatei weitestgehend selbständig.''' Wer sich unsicher ist, kann einfach nur oben benannte Werte eintragen und ansonsten die voreingestellten belassen.}} &lt;br /&gt;
'''Hier noch einige Anmerkungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
*'''Zu der Einstellung für die Browser:'''&lt;br /&gt;
Wenn in den Zeilen mit den Browsern keine Einstellung gemacht wird, werden installierte und unterstützte Browser wie Firefox und Chromium bzw. die aufgeführten auskommentierten selbständig erkannt. An der Stelle ist deshalb kein Eingriff notwendig.&lt;br /&gt;
*'''Zu der Einstellung für das RAM-Laufwerk:'''&lt;br /&gt;
Das Verzeichnis &amp;quot;/tmp&amp;quot; wird von systemd von Haus aus als tmpfs (So etwas wie ein RAM Laufwerk.) geladen. Das passiert mithilfe des Unit:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/tmp.mount&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*'''Ob das Unit oder der Dienst läuft, prüfen mit:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Prüfen:''' (Ausgabe beinhaltet):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;Active: active (mounted)&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PSD aktivieren mit Trockenlauf==&lt;br /&gt;
Weiter geht es mit einem Trockenlauf, was passieren würde wenn der Dienst aktiviert wird nachdem unsere Konfigurationsdatei zuvor eingerichtet wurde.&lt;br /&gt;
{{Hinweis|'''Wenn hier Fehler auftreten würden, müsste die Konfiguration und das Paket erneut überprüft, bzw. Hilfe gesucht werden.'''}}&lt;br /&gt;
*'''Trockenlauf:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;profile-sync-daemon parse&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;&lt;br /&gt;
 tmpfs dir:       /tmp/deinUSER-firefox-zufälligenummer.default&lt;br /&gt;
 profile size:    47M&lt;br /&gt;
 overlayfs size:  24M&lt;br /&gt;
 recovery dirs:   none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Achtung|'''Achte bitte darauf dass diese Ausgabe keine Fehler enthält!'''}}&lt;br /&gt;
&lt;br /&gt;
==Aktivierung mit systemctl==&lt;br /&gt;
Wenn jetzt alles gepasst hat soweit, kann eingerichtet werden dass der Dienst automatisch startet. Im Anschluss daran kann er auch gleich das erste mal am Laufenden System aktiviert werden.&lt;br /&gt;
{{Warnung|'''Es ist besonders Wichtig, dass alle Browser beendet werden, bevor PSD beendet oder gestartet wird. Ansonsten kann es zu Datenverlust beim Browserprofil führen.'''}}&lt;br /&gt;
*'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start psd.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Aktivieren (Autostart)'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable psd.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Damit ist der Dienst gestartet und wird automatisch aktiviert.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nachwort=&lt;br /&gt;
{{Hinweis|'''So läuft des Ding bei mir wunderbar. Ich wollte das weitergeben, und hoffe nichts wichtiges übersehen zu haben.'''}}&lt;br /&gt;
'''An dieser Stelle nochmal:'''&lt;br /&gt;
{{Achtung|'''Macht eine Sicherung und schaut genau was ihr tut.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen/Links:=&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Profile-sync-daemon&lt;br /&gt;
* https://github.com/graysky2/profile-sync-daemon&lt;br /&gt;
---------&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Navi:'''&lt;br /&gt;
|[[Mini_Tuning_guide_für_openSUSE_13.2|Zurück zum Guide]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Profile_Sync_Daemon&amp;diff=32654</id>
		<title>Tipp: Profile Sync Daemon</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Profile_Sync_Daemon&amp;diff=32654"/>
		<updated>2015-09-18T19:53:48Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Kategorie:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|alles}}&lt;br /&gt;
=Vorwort=&lt;br /&gt;
Ich wollte euch hier schreiben, da ich bisher noch keine bzw. wenig gute Infos zu PSD zu openSUSE 13.2 gefunden habe, wie ich mir diesen nach meinem eigenen Geschmack für Firefox und Chromium eingerichtet habe. Den Performance Gewinn der Webbrowser finde ich derart super, dass ich das auf meinem Desktop als auch auf meinem alten Notebook einsetze. Tutorials die ich fand beschrieben keine Nutzung von overlayfs und waren auch nicht speziell auf openSUSE zielgerichtet. Das wollte ich dann alles zusammen so weit es mir im Sinn liegt ausbauen und anwenden. Wie folgt:&lt;br /&gt;
{{Hinweis|'''Bitte lasst euch von den Warnungen nicht abschrecken''''}}&lt;br /&gt;
{{Achtung|'''Bitte macht auch nochmal vorher eine SICHERUNG! (Browser PROFILE etc.). Bei falscher Handhabung können alle Lesezeichen und alle Einstellungen des Browser verloren gehen. Und ihr müsstet mit einem leeren neuen Profil beginnen.'''}}&lt;br /&gt;
{{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
{{Warnung|'''Es ist besonders Wichtig, dass alle Browser beendet werden, bevor PSD beendet oder gestartet wird. Ansonsten kann es zu Datenverlust beim Browserprofil führen.'''}}&lt;br /&gt;
==Das Paket besorgen==&lt;br /&gt;
'''Es gibt ein RPM im Buildservice:'''&lt;br /&gt;
(Es sei möglicherweise instabil). Ich kann davon nichts feststellen. Das läuft einfach wunderbar. Ich gehe davon aus, dass da jeder seine Möglichkeit dazu hat (hier ein Link):&lt;br /&gt;
*https://software.opensuse.org/package/profile-sync-daemon?search_term=profile+sync+daemon&lt;br /&gt;
'''Nach dem Download:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rpm -Uhv profile-sync-daemon-5.73-6.1.noarch&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|Nach der Installation ist der Dienst PSD zunächst deaktiviert und nicht funktionsfähig. Er muss noch durch einige Schritte konfiguriert werden. Im Anschluss kann er gestartet werden.}}&lt;br /&gt;
&lt;br /&gt;
==Overlayfs==&lt;br /&gt;
{{Hinweis|'''Damit das Browserprofil komprimiert im RAM abgelegt wird Verwendet PSD ein Kernel-Modul namens &amp;quot;overlayfs&amp;quot;.'''}}&lt;br /&gt;
*'''Vorab laden'''&lt;br /&gt;
Damit es gleich ohne den Computer neu zu starten für das Howto direkt verwendet werden kann muss folgender Befehl abgesetzt werden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;modprobe overlayfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Prüfen:''' (ob es erfolgreich geladen wurde):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;lsmod | grep overlayfs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;overlayfs              32012  2&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Achtung|'''Wenn das Modul overlayfs nicht geladen werden kann, müsste in der Konfiguration darauf verzichtet werden.'''}}&lt;br /&gt;
*'''Einrichten, dass es bei jedem reboot geladen wird:'''&lt;br /&gt;
Damit das Modul 'overlayfs' beim nächsten Systemstart automatisch geladen wird, muss dem Kernel Bescheid gesagt werden. Das passiert mithilfe einer eigens dafür angelegten Datei.&lt;br /&gt;
*'''Datei erstellen:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;touch /etc/modules-load.d/MODULES_LOADED_ON_BOOT.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Inhalt einfügen:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;echo &amp;quot;overlayfs&amp;quot; &amp;gt; /etc/modules-load.d/MODULES_LOADED_ON_BOOT.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Jetzt ist das Kernelmodul geladen und wird auch beim nächsten Start automatisch geladen.'''}}&lt;br /&gt;
&lt;br /&gt;
==Die Konfigurationsdatei==&lt;br /&gt;
Da PSD zunächst nicht konfiguriert ist. Und wir bisher nur overlayfs vorbereitet haben, muss noch die Konfigurationsdatei angepasst werden bevor wir mit dem Start beginnen. Diese Datei findet ihr in folgendem Pfad:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/etc/psd.conf&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
Hier müssen entsprechende werte ggf. unkommentiert werden. Bitte beschäftigt euch auch selbst nochmal mit der Datei. Über jedem der entsprechenden Werte stehen Warnungen und gute Kommentare. Deswegen nenne ich hier nur kurz die wichtigsten Optionen.&lt;br /&gt;
'''Vorgeschlagene Anpassungen:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# WICHTIG! Hier Muss der Benutzer eingetragen werden, &lt;br /&gt;
# für den PSD aktiviert wird. Also der Anmeldename.&lt;br /&gt;
USERS=&lt;br /&gt;
&lt;br /&gt;
# Die Komprimierung nutzen. (Hierfür wurde das Modul bereits geladen).&lt;br /&gt;
USE_OVERLAYFS=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Backups bringen Gummipluspunkte:&lt;br /&gt;
USE_BACKUPS=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Pfad zum RAM-Laufwerk:&lt;br /&gt;
VOLATILE=&amp;quot;/tmp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Bitte überarbeitet eure Konfigurationsdatei weitestgehend selbständig.''' Wer sich unsicher ist, kann einfach nur oben benannte Werte eintragen und ansonsten die voreingestellten belassen.}} &lt;br /&gt;
'''Hier noch einige Anmerkungen:'''&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
*'''Zu der Einstellung für die Browser:'''&lt;br /&gt;
Wenn in den Zeilen mit den Browsern keine Einstellung gemacht wird, werden installierte und unterstützte Browser wie Firefox und Chromium bzw. die aufgeführten auskommentierten selbständig erkannt. An der Stelle ist deshalb kein Eingriff notwendig.&lt;br /&gt;
*'''Zu der Einstellung für das RAM-Laufwerk:'''&lt;br /&gt;
Das Verzeichnis &amp;quot;/tmp&amp;quot; wird von systemd von Haus aus als tmpfs (So etwas wie ein RAM Laufwerk.) geladen. Das passiert mithilfe des Unit:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/system/tmp.mount&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
*'''Ob das Unit oder der Dienst läuft, prüfen mit:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status tmp.mount&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Prüfen:''' (Ausgabe beinhaltet):&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;Active: active (mounted)&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PSD aktivieren mit Trockenlauf==&lt;br /&gt;
Weiter geht es mit einem Trockenlauf, was passieren würde wenn der Dienst aktiviert wird nachdem unsere Konfigurationsdatei zuvor eingerichtet wurde.&lt;br /&gt;
{{Hinweis|'''Wenn hier Fehler auftreten würden, müsste die Konfiguration und das Paket erneut überprüft, bzw. Hilfe gesucht werden.'''}}&lt;br /&gt;
*'''Trockenlauf:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;profile-sync-daemon parse&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;&lt;br /&gt;
 tmpfs dir:       /tmp/deinUSER-firefox-zufälligenummer.default&lt;br /&gt;
 profile size:    47M&lt;br /&gt;
 overlayfs size:  24M&lt;br /&gt;
 recovery dirs:   none&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Achtung|'''Achte bitte darauf dass diese Ausgabe keine Fehler enthält!'''}}&lt;br /&gt;
&lt;br /&gt;
==Aktivierung mit systemctl==&lt;br /&gt;
Wenn jetzt alles gepasst hat soweit, kann eingerichtet werden dass der Dienst automatisch startet. Im Anschluss daran kann er auch gleich das erste mal am Laufenden System aktiviert werden.&lt;br /&gt;
{{Warnung|'''Es ist besonders Wichtig, dass alle Browser beendet werden, bevor PSD beendet oder gestartet wird. Ansonsten kann es zu Datenverlust beim Browserprofil führen.'''}}&lt;br /&gt;
*'''Starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start psd.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''Aktivieren (Autostart)'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable psd.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''Damit ist der Dienst gestartet und wird automatisch aktiviert.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Nachwort=&lt;br /&gt;
{{Hinweis|'''So läuft des Ding bei mir wunderbar. Ich wollte das weitergeben, und hoffe nichts wichtiges übersehen zu haben.'''}}&lt;br /&gt;
'''An dieser Stelle nochmal:'''&lt;br /&gt;
{{Achtung|'''Macht eine Sicherung und schaut genau was ihr tut.'''}}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Quellen/Links:=&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Profile-sync-daemon&lt;br /&gt;
* https://github.com/graysky2/profile-sync-daemon&lt;br /&gt;
---------&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Navi:'''&lt;br /&gt;
|[[Mini_Tuning_guide_für_openSUSE_13.2|Zurück zum Guide]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_zswap_aktivieren&amp;diff=32653</id>
		<title>Tipp: zswap aktivieren</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_zswap_aktivieren&amp;diff=32653"/>
		<updated>2015-09-18T19:51:43Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Kategorie:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|alles}}&lt;br /&gt;
{{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
Der zswap ist eine Art komprimierter Cache für swap Seiten im RAM. Seiten die normalerweise mehr oder minder direkt auf die Festplatte ausgelagert würden, werden stattdessen zunächst im RAM komprimiert verwaltet und erst, wenn es ganz hart auf hart kommt auf die Festplatte ausgelagert. &lt;br /&gt;
{{Achtung|'''Ein physisch existierender swap Bereich, ist hierfür wiederum Voraussetzung. Teilweise ist zswap noch nicht ganz erforscht und ausgetestet. Daher wird in der Doku diesbezüglich gewarnt und deswegen ist es standardmäßig auch deaktiviert!!'''}}&lt;br /&gt;
&lt;br /&gt;
Hier die Dokumentation zu zswap:&lt;br /&gt;
* https://www.kernel.org/doc/Documentation/vm/zswap.txt&lt;br /&gt;
&lt;br /&gt;
'''Ich bin mir eventueller Folgen bewusst und aktiviere es hier einfach mit Voreinstellungen:'''&lt;br /&gt;
* 1. Dazu starte ich YaST.&lt;br /&gt;
* 2. öffne dort Bootloader&lt;br /&gt;
* 3. wechsele zur Seite &amp;quot;Kernel-Parameter&amp;quot;&lt;br /&gt;
* 4. füge bei: &amp;quot;Optionaler Parameter für Kernel-Befehlszeile&amp;quot; am Ende der Zeile folgendes ein:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;zswap.enabled=1&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Wenn diese Einstellung dann abgespeichert wurde, ist zswap beim nächsten Systemstart aktiv.'''}}&lt;br /&gt;
'''Überprüfung nach dem Neustart:'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;dmesg | grep 'zswap.* compressor'&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;zswap: using lzo compressor&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
---------&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Navi:'''&lt;br /&gt;
|[[Mini_Tuning_guide_für_openSUSE_13.2|Zurück zum Guide]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Snapper_entsch%C3%A4rfen&amp;diff=32652</id>
		<title>Tipp: Snapper entschärfen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_Snapper_entsch%C3%A4rfen&amp;diff=32652"/>
		<updated>2015-09-18T19:50:02Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Kategorie:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{UnderConstruction}}&lt;br /&gt;
{{Überarbeiten}}&lt;br /&gt;
{{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
&lt;br /&gt;
Grundlage definition (Standardeinstellung):&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Timeline Snapshots:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Ein einzelner Schnappschuss der alle Stunde erstellt wird. Alte werden automatisch gelöscht. Der erste der letzten 10 Tage / Monate /  Jahre wird behalten.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Installationsschnappschuss:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wird immer erstellt, wenn veränderungen  mit dem Paketmanagement via YaST oder zypper vorgenommen werden. Immer einer vor 'Pre' und nach 'Post'. Alte werden automatisch gelöscht. Die davon 10 letzten als wichtig und regulär markierten Schnappschüsse werden behalten.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
'''Administrations Schnappschüsse:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man veränderungen an YaST Modulen (Drucker oder so.) vornimmt wird immer einer vor 'Pre' und nach 'Post' erstellt. Alte werden automatisch gelöscht. Hier werden die 10 letzten wichtigen sowie regulären Schnappschüsse behalten.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Einstellungen:&amp;lt;br&amp;gt;&lt;br /&gt;
NUMBER_LIMIT (Standard=50) Anzahl unwichtiger Schnappschüsse die behalten werden.&amp;lt;br&amp;gt;&lt;br /&gt;
NUMBER_LIMIT_IMPORTANT (Standard=10)Anzahl wichtiger Schnappschüsse die behalten werden.&amp;lt;br&amp;gt;&lt;br /&gt;
NUMBER_CLEANUP=YES (Nur die jüngsten NUMBER_LIMIT und NUMBER_LIMIT_IMPORTANT werden behalten).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Problemstellung:'''&lt;br /&gt;
*Snapper erstellt momentan in openSUSE 13.2 standardmäßig 50 Schnappschüsse ein. Bei einer sehr kleinen Festplatte, von nur 30 GiB größe, ist diese damit binnen kürzesterzeit vollgeschrieben und überlastet.&lt;br /&gt;
&lt;br /&gt;
* Für SSD Fetischisten (entschuldigt bitte das Wort). Ist es nicht sonderlich schön, wenn ein Dienst ständig auf der Festplatte schreibt. Ideen dazu:&lt;br /&gt;
# Snapper deaktivieren&lt;br /&gt;
##Installations Schnappschüsse deaktivieren: (Paket snapper-zypp-plugin deinstallieren)&lt;br /&gt;
##Timeline Snapshots (Stündliche) deaktivieren: (TIMLINE_CREATE=NO)&lt;br /&gt;
##Administrations Schnappschüsse deaktivieren: Sysconfigeditor: USE_SNAPPER=no.&lt;br /&gt;
# Schreiben auf HDD reduzieren durch gezielte Einstellungen (Mittelwert)?? Eventuell stündliche Schnappschüsse deaktivieren und einen Täglich?&lt;br /&gt;
&lt;br /&gt;
'''Was tun im Fehlerfall?'''&lt;br /&gt;
{{Hinweis|Aktuell ist es wohl so, dass irgendwann die Festplatte mit Schnappschüssen voll läuft bis kein Speicherplatz mehr frei ist. Das kann dazu führen, dass der Computer nicht mehr startet.}}&lt;br /&gt;
&lt;br /&gt;
*https://www.suse.com/documentation/sles11/stor_admin/data/trbl_btrfs_volfull.html&lt;br /&gt;
&lt;br /&gt;
''' Hier meine aktuell verwendete Konfiguration Für eine HDD mit wenig Speicherplatz:'''&lt;br /&gt;
{{Achtung|Diese Einstellungen beschränken die Schnappschüsse möglichst auf ein Minimum (Einen). Das ist nicht sonderlich sinvoll aber Wirkungsvoll.}}&lt;br /&gt;
&lt;br /&gt;
Von jeglicherm Snapshot wird eine Ausgabe behalten. Eventuell sollte man eher 2 - 3 Machen? Die Frage ist, wieviel ist sinnvoll? 50 (standard) sind jedenfalls zu viel!&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;pico /etc/snapper/configs/root&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;&lt;br /&gt;
SYNC_ACL=&amp;quot;no&amp;quot;&lt;br /&gt;
BACKGROUND_COMPARISON=&amp;quot;no&amp;quot;&lt;br /&gt;
NUMBER_CLEANUP=&amp;quot;yes&amp;quot;&lt;br /&gt;
NUMBER_MIN_AGE=&amp;quot;200&amp;quot;&lt;br /&gt;
NUMBER_LIMIT=&amp;quot;1&amp;quot;&lt;br /&gt;
NUMBER_LIMIT_IMPORTANT=&amp;quot;1&amp;quot;&lt;br /&gt;
TIMELINE_CREATE=&amp;quot;no&amp;quot;&lt;br /&gt;
TIMELINE_CLEANUP=&amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TIMELINE_MIN_AGE=&amp;quot;200&amp;quot;&lt;br /&gt;
TIMELINE_LIMIT_HOURLY=&amp;quot;1&amp;quot;&lt;br /&gt;
TIMELINE_LIMIT_DAILY=&amp;quot;1&amp;quot;&lt;br /&gt;
TIMELINE_LIMIT_MONTHLY=&amp;quot;1&amp;quot;&lt;br /&gt;
TIMELINE_LIMIT_YEARLY=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMPTY_PRE_POST_CLEANUP=&amp;quot;yes&amp;quot;&lt;br /&gt;
EMPTY_PRE_POST_MIN_AGE=&amp;quot;200&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|'''Für eine vorgeschlagene Konfiguration wäre ich hier dankbar, da ich da selbst noch nicht ganz durchgestiegen bin, was wirklich sinnvoll ist, da ich ihn auch noch nie nutzen musste.'''}}&lt;br /&gt;
Lesestoff:&lt;br /&gt;
* http://snapper.io/manpages/snapper-configs.html&lt;br /&gt;
* http://snapper.io/&lt;br /&gt;
*https://en.opensuse.org/openSUSE:Snapper_Tutorial&lt;br /&gt;
---------&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Navi:'''&lt;br /&gt;
|[[Mini_Tuning_guide_für_openSUSE_13.2|Zurück zum Guide]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Mini_Tuning_guide_f%C3%BCr_openSUSE_13.2&amp;diff=32651</id>
		<title>Mini Tuning guide für openSUSE 13.2</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Mini_Tuning_guide_f%C3%BCr_openSUSE_13.2&amp;diff=32651"/>
		<updated>2015-09-18T19:48:29Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Kategorie:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|alles}}&lt;br /&gt;
=Vorwort:=&lt;br /&gt;
{{Hinweis|'''Hier eine Sammlung nützlicher Tipps zu openSUSE 13.2:'''}}&lt;br /&gt;
Hier möchte ich einige Kniffe zeigen, mit denen experimentierfreudige ihren Rechner ein wenig tweaken können. Fokus liegt dabei auf Veränderungen am Auslagerungsverhalten und dem damit verbundenen minimieren von Schreibvorgängen auf die Festplatte. Auch geht es darum den Computer etwas zu Entrümpfeln. Vorab ein Wort der Warnung: {{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
&lt;br /&gt;
{{Box Wissen|| &lt;br /&gt;
* Umgang mit der [[Shell]]&lt;br /&gt;
* Umgang mit einem [[Paketmanager]] und die Unterschiede solcher.&lt;br /&gt;
* [[Systemd#Was_ist_systemd.3F|Was ist Systemd?]] &lt;br /&gt;
* [[Systemd#Umgang_mit_systemctl|Umgang mit systemctl.]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Temporäre Dateien automatisch bereinigen==&lt;br /&gt;
Dateisystem automatisch von temporären Überbleibseln befreien:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp: systemd-tmpfiles]]&lt;br /&gt;
&lt;br /&gt;
==Speicherplatzbelegung des 'journal'==&lt;br /&gt;
Verhindern, dass unnötig viel Speicherplatz von Logdateien belegt wird:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Systemd#Speicherplatzbelegung|Tipp: Speicherplatzbelegung des 'journal']]&lt;br /&gt;
&lt;br /&gt;
==Browser im RAM schnell wie nie mit: Profile Sync Daemon==&lt;br /&gt;
Browser, Profile inklusive Cache im Speicher behalten und periodisch mit rsync auf die Festplatte synchronisieren:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp: Profile Sync Daemon|Tipp: Profile-Sync-Daemon]]&lt;br /&gt;
&lt;br /&gt;
==Swap verhalten optimieren==&lt;br /&gt;
Beeinflussen wie frequent der Kernel auf die Festplatte auslagert:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp:_Swapverhalten_optimieren|Tipp: Swapverhalten optimieren]]&lt;br /&gt;
&lt;br /&gt;
==zswap aktivieren==&lt;br /&gt;
Verbindet Komprimierung mit einer Verbesserung des SWAP-verhaltens.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp:_zswap_aktivieren|Tipp: zswap aktivieren]]&lt;br /&gt;
&lt;br /&gt;
==zramswap verwenden==&lt;br /&gt;
Erzeugt ein zram basiertes swap gerät beim Systemstart.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp:_zramswap_verwenden|Tipp: zramswap verwenden]]&lt;br /&gt;
&lt;br /&gt;
==Snapper entschärfen==&lt;br /&gt;
Ist noch in Arbeit und daher noch nicht ganz zielführend.&amp;lt;br&amp;gt;&lt;br /&gt;
Speicherplatzverbrauch von Sicherungen durch 'snapper' beschränken:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Tipp:_Snapper_entschärfen|Tipp: Snapper entschärfen]]&lt;br /&gt;
&lt;br /&gt;
=Viel Spass!=&lt;br /&gt;
Ich hoffe der ein oder andere findet hier doch etwas neues und nützliches!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_zramswap_verwenden&amp;diff=32650</id>
		<title>Tipp: zramswap verwenden</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tipp:_zramswap_verwenden&amp;diff=32650"/>
		<updated>2015-09-18T19:46:23Z</updated>

		<summary type="html">&lt;p&gt;Gehrke: Kategorie:HowTo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Review|alles}} &lt;br /&gt;
=Vorwort=&lt;br /&gt;
Zramswap ist ein Skript und ermöglicht es, komprimierten swap Bereich im RAM zu erstellen. Quasi swap als RAM-Laufwerk. Er erstellt pro CPU automatisch einen Bereich. Bei einem Quadcorce Prozessor, wären dies also 4 komprimierte Laufwerke die hoch verfügbar im Arbeitsspeicher liegen und einen im Idealfall als Desktopbenutzer von der Festplatte lösen können. Das Skript bedient sich hierfür am zram Modul:&lt;br /&gt;
* Dokumentation zu zram: https://www.kernel.org/doc/Documentation/blockdev/zram.txt&lt;br /&gt;
* Idee zum Howto aus: https://wiki.archlinux.org/index.php/Maximizing_performance#Zram_or_zswap&lt;br /&gt;
&lt;br /&gt;
'''Es ist wichtig, abzuwägen ob der Skript am eigenen System verwendet werden kann.'''&lt;br /&gt;
{{Warnung|'''Suspend to Disk Funktioniert nur mit einem swapbereich auf der Festplatte'''}}&lt;br /&gt;
{{Achtung|'''Wer also nicht auf suspend to disk verzichten möchte oder kann, sollte hier abbrechen, da es nicht mehr funktionieren kann!'''}}&lt;br /&gt;
{{Hinweis|'''Bei Verwendung einer SSD ist dieser Tipp sinnvoll, da ohnehin S2DISK deaktiviert wird um das Gerät zu schonen.'''}}&lt;br /&gt;
{{Warnung|'''Das anwenden aller hier niedergeschriebenen Modifikationen geschieht auf eigene Gefahr. Ich übernehme keine Verantwortung für etwäige Probleme die durch die Verwendung dieser Tipps entstehen könnten!'''}}&lt;br /&gt;
==Paket herunterladen==&lt;br /&gt;
Es gibt im Buildservice glücklicher Weise ein RPM. Dies kann über die Softwaresuche gefunden werden:&amp;lt;br&amp;gt;&lt;br /&gt;
https://software.opensuse.org/package/zramswap?search_term=zramswap&lt;br /&gt;
&lt;br /&gt;
==Paket installieren==&lt;br /&gt;
Nachdem das Paket heruntergeladen wurde, kann es mit folgendem Befehl installiert werden:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;rpm -Uhv zramswap-1-4.1.noarch&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==zramswap konfigurieren==&lt;br /&gt;
{{Hinweis|'''Wer die Standardeinstellungen verwenden möchte, kann diesen Abschnitt überspringen'''}}&lt;br /&gt;
'''Ich kenne nur diesen leider etwas komplizierten Weg:'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Hauptskript muss für persönliche Einstellungen editiert werden. Diesen findet ihr hier:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;/usr/lib/systemd/scripts/zramctrl&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorhin habe ich angesprochen, dass pro CPU ein Auslagerungsbereich im RAM angelegt wird. Bei einem Computer mit 8 GiB RAM möchte ich dafür ca. 2 GiB verwenden. Dafür ändere ich folgenden Wert wie beschrieben auf den Faktor 256 (Diesen habe ich ausgerechnet):&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;mem_total = (0 + $2) * 256&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Hinweis|'''256 entspricht ca. 508348 KiB mal 4 Kerne ist ca. 2 GIB, ausgehend von 8 GiB RAM.'''}}&lt;br /&gt;
&lt;br /&gt;
==Dienst aktivieren==&lt;br /&gt;
{{Hinweis|'''Das geschieht bei systemd mit der Verwendung des zubehörigen Tools:''}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
'''Prozess starten'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl start zramswap&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Autostart an'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl enable zramswap&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Status abfragen'''&lt;br /&gt;
&amp;lt;pre style=&amp;quot;background-color: #FFFFC0&amp;quot;&amp;gt;systemctl status zramswap&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Achtung|'''Die Statusabfrage sollte keine Fehlermeldungen beinhalten:'''}}&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre style=&amp;quot;background-color: #D4FFEF&amp;quot;&amp;gt;&lt;br /&gt;
zramswap.service - Zram-based swap (compressed RAM block devices)&lt;br /&gt;
   Loaded: loaded (/usr/lib/systemd/system/zramswap.service; enabled)&lt;br /&gt;
   Active: active (exited) since Di 2015-09-15 10:37:07 CEST; 3h 34min ago&lt;br /&gt;
  Process: 847 ExecStart=/usr/lib/systemd/scripts/zramctrl start (code=exited, status=0/SUCCESS)&lt;br /&gt;
 Main PID: 847 (code=exited, status=0/SUCCESS)&lt;br /&gt;
   CGroup: /system.slice/zramswap.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
{{Hinweis|'''Der Dienst ist jetzt gestartet und für den automatischen Start aktiviert.''}}&lt;br /&gt;
&lt;br /&gt;
==Für Mutige==&lt;br /&gt;
Der Kernel wird bei Verwendung von 'zramswap' erst auf die Festplatte auslagern, wenn er vollgelaufen ist. Wer also ganz mutig ist, kann noch folgendes tun:&lt;br /&gt;
{{Warnung|'''Wenn der Computer zu wenig Speicher hat, kann es zu einem sog. Deadlock führen, wenn der Speicher voll ist.'''}}&lt;br /&gt;
Wer jetzt sagt, sein Gerät hat genug Speicher und benötigt deswegen keinen SWAP mehr '''auf der Festplatte''', sondern nur noch im RAM, kann SWAP in der fstab auskommentieren.&lt;br /&gt;
{{Hinweis|'''Bei meinem Computer mit 8 GiB RAM ist das einwandfrei möglich. Getestet: 3 verschiedene VM´s gleichzeitig (Virtualbox insg. 6 GiB zugewiesener Speicher) -- dazu Webbrowser im RAM mit Profile Sync Daemon, Office E-mail auf KDE, bissl Desktopcube drehen, es wurden gerade mal 300 KIB in das virtuelle Laufwerk geswappt. Also passt schon.'''}}&lt;br /&gt;
&lt;br /&gt;
=Quellen/Links:=&lt;br /&gt;
* https://www.kernel.org/doc/Documentation/blockdev/zram.txt&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Maximizing_performance#Zram_or_zswap&lt;br /&gt;
* https://software.opensuse.org/package/zramswap?search_term=zramswap&lt;br /&gt;
&lt;br /&gt;
---------&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|'''Navi:'''&lt;br /&gt;
|[[Mini_Tuning_guide_für_openSUSE_13.2|Zurück zum Guide]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:HowTo]]&lt;/div&gt;</summary>
		<author><name>Gehrke</name></author>
		
	</entry>
</feed>