[[Vorlage(Archiviert,"Die im Artikel beschriebenen Probleme und deren zugehörige Lösungen sind nicht mehr relevant, da die Pakete aus den Ubuntu-Quellen, welche die Probleme verursachten, Mitte April 2015 aktualisiert wurden, so dass die Probleme nicht mehr auftreten.")]] [[Vorlage(Fortgeschritten)]] ##[[Vorlage(Getestet, utopic, trusty)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor:einen Editor benutzen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis()]] Diese Beschreibung gilt als ''workaround'' für die Ubuntuversionen: * [:Utopic_Unicorn:Ubuntu 14.10] * [:Trusty_Tahr:Ubuntu 14.04] Andere Versionen sind von dem nachfolgend beschriebenen Problem nicht betroffen. Mit Einführung / Release von [:Vivid_Vervet:Ubuntu 15.04] wurde das Problem behoben. =Arbeitsweise allgemein= Mit der Verschlüsselung vom [:Homeverzeichnis:] mittels [:ecryptfs:] wird die Partition, die für eine SWAP eingerichtet wurde, auch verschlüsselt. Das lief bisher ohne Probleme. Mit der Abfrage im Terminal {{{#!vorlage Befehl swapon -s }}} und einer beispielhaften Ausgabe von {{{ Filename Type Size Used Priority /dev/mapper/cryptswap1 partition 8519672 0 -1 }}} kann man das überschlägig abschätzen - es sind je nach System auch andere, vergleichbare Ausgaben möglich. Dann ist eine Überarbeitung nicht unbedingt erforderlich. Fehlt jedoch eine solche Ausgabe, dann muss man von einer fehlerhaften Aufbereitung der SWAP ausgehen. =System einrichten= Mit der Umstellung auf '''upstart''' bzw. mit der Einführung von '''systemd''' wird das Erstellen der verschlüsselten [:Swap:SWAP], in der Regel * '''/dev/mapper/cryptswap1''' nicht mehr richtig bzw. falsch ausgeführt. Diese Beschreibung zeigt Wege auf, wie das bis zu einer offiziellen Umstellung des Paketes '''ecryptfs-utils''' repariert werden kann. Ab Ubuntu 14.04 wurden die Basispakete - hier speziell das Paket '''ecryptfs-setup-swap''' in einer überarbeiteten Form eingeführt. Das erlaubte jetzt zwar, dass die verschlüsselte SWAP für den Bereitschafts- und Schlafmodus benutzt werden kann, führte aber zu anderen Problemen - bis hin zur Unbrauchbarkeit - die SWAP konnte und wurde nicht mehr benutzt. Dazu gibt es mehrere ''workarounds'', jedoch waren die alle irgendwie nicht querschnittlich benutzbar. Die folgende Beschreibung und die Skripte sollen alle diese Probleme beheben und sind auch gegen mögliche Updates sicher. Man sollte beide Start-Modi für * '''upstart''' * '''systemd''' neu gestalten/aufbereiten, da diese sich nicht gegenseitig beeinflussen/stören. ==Datei für upstart erstellen== Bei dem Startmodus für '''upstart''' werden die Skripte/Anweisungen im Verzeichnis * '''/etc/init''' ausgewertet, die je nach der internen Gestaltung den Ablauf bei der Initialisierung regeln. Um die SWAP '''/dev/mapper/cryptswap1''' beim Bootvorgang einzurichten wird folgender Text als '''cryptswap.conf''' benötigt: {{{#!code bash start on started mountall script /sbin/cryptdisks_start cryptswap1 /bin/sleep 1 /sbin/swapon /dev/mapper/cryptswap1 end script }}} Man erstellt diese Datei mit einem Editor [3] seiner Wahl im [:Homeverzeichnis:] und kopiert diese dann mit Rootrechten {{{#!vorlage Befehl sudo cp -f ~/cryptswap.conf /etc/init/ }}} in das Verzeichnis '''/etc/init'''. ==rc.local für systemd benutzen== Man setzt das Skript '''/etc/rc.local''' für die Aktivierung ein, in dem man dort folgende Ergänzung mit einem Editor [3] seiner Wahl mit Rootrechten vor dem vorhandenen '''exit 0''' einbringt: {{{#!code bash /sbin/cryptdisks_start cryptswap1 /bin/sleep 1 /sbin/swapon /dev/mapper/cryptswap1 }}} Aufgerufen wird das dann von der '''Unit''', die unter '''/lib/systemd/system/rc-local.service''' vorhanden ist. ==Datei für systemd erstellen== Bei dem Startmodus für '''systemd''' werden die Skripte/Anweisungen (''Units'') im Verzeichnis * '''/lib/systemd/system''' für das Basissystem bzw. * '''/etc/systemd/system''' für eigene Anweisungen ausgewertet, die je nach der internen Gestaltung den Ablauf bei der Initialisierung regeln. Um die SWAP '''/dev/mapper/cryptswap1''' beim Bootvorgang einzurichten wird folgender Text als '''cryptswap.service''' benötigt: {{{#!code bash [Unit] Description=Cryptswap Service Requires=cryptsetup.target After=network.target [Service] SysVStartPriority=99 Type=forking ExecStartPre=/sbin/cryptdisks_start cryptswap1 ExecStart=/bin/sleep 1 ExecStartPost=-/sbin/swapon /dev/mapper/cryptswap1 start [Install] WantedBy=multi-user.target }}} Man erstellt diese Datei mit einem Editor [3] seiner Wahl z.B. im [:Homeverzeichnis:] und kopiert diese dann mit Rootrechten {{{#!vorlage Befehl sudo cp -f ~/cryptswap.service /lib/systemd/system/ }}} in das Verzeichnis '''/lib/systemd/system'''. {{{#!vorlage Experten Hinweis zur obigen Dateien: Der Befehl `/bin/sleep 1` ist abhängig von der Qualität der Festplatte, auf der die SWAP-Partition sich befindet. Bei den Tests hat sich eine Verzögerung von einer (1) Sekunde als ausreichend gezeigt. }}} ==systemd anpassen== Jede vom Benutzer eingebrachte Veränderung an einer ''"systemd-Unit"'' muss man dem System bekannt machen - z.B nach dem obigen Kopieren der neu erstellten Datei. Dazu muss man im Terminal [1] (hier beispielhaft '''cryptswap.service''') mit {{{#!vorlage Befehl sudo systemctl disable cryptswap.service sudo systemctl enable cryptswap.service }}} die interne Struktur von '''systemd''' anpassen. =Weitere Anpassungen= {{{#!vorlage Warnung Arbeiten am System, wie diese nachfolgend beschrieben werden, können immer zu Fehlern führen, die das System unbrauchbar machen. Deshalb sollte die Eingabe der Befehle mit der notwendigen Sorgfalt erfolgen - am besten arbeitet man dabei mit * Kopieren -> Einfügen von der WIKI-Vorlage in das Terminal. }}} {{{#!vorlage Hinweis Um die [:Swap:SWAP] als verschlüsselte Partition querschnittlich benutzen zu können, sollte man das insgesamt neu aufbauen. Die Schritte dazu werden nachfolgend beschrieben. }}} Mit einem Editor [3] seiner Wahl entfernt man mit Rootrechten in der '''/etc/fstab''' alle Einträge für eine [:Swap:]-Partition, entweder durch auskommentieren oder löschen! ==Partition einrichten== Anhand der Beschreibung [:Swap:] sollte man die SWAP-Partition neu einrichten/formatieren und ermittelt danach die [:UUID:] zur weiteren Verwendung im Terminal [1] mit {{{#!vorlage Befehl sudo mkswap /dev/sdXY # [mark]XY[/mark] an das eigene System anpassen }}} Mit der angezeigten [:UUID:] einzusetzen bei (mit ->kopieren -> übertragen) werden nun in einem Terminal [1] folgende Eingaben ausgeführt {{{#!vorlage Befehl sudo export SWAP_UUID= sudo echo "RESUME=UUID=$SWAP_UUID" > /etc/initramfs-tools/conf.d/resume sudo update-initramfs -u sudo sed -i s/'cryptswap'/'# cryptswap'/g /etc/crypttab sudo echo "cryptswap1 UUID=$SWAP_UUID /dev/urandom swap,cipher=aes-xts-plain64,offset=8,noauto" >> /etc/crypttab }}} Nach Abschluss obiger Befehle im Terminal sollte man das korrekte Anlegen der neuen Dateien * '''/etc/crypttab''' * '''/etc/initramfs-tools/conf.d/resume''' überprüfen, bevor man jetzt den Rechner neu startet. {{{#!vorlage Hinweis Die oben eingesetzte, aktuelle Verschlüsselung mit >`cipher=aes-xts-plain64`< kann gegen jede andere, gängige Methode ausgewechselt werden. }}} =Probleme mit systemd= Kommt es trotz aller Sorgfalt zu Problemen beim Einsatz der '''Unit >cryptswap.service''' so sollte man zu erst eine Überprüfung im Terminal [1} ausführen {{{#!vorlage Befehl sudo blkid | grep swap sudo systemctl --all | grep cryptswap.service }}} wobei man mit dem ersten Befehl eine Überprüfung vom Zustand der SWAP-Partition abfragt, der zweite Befehl sollte im Normalfall diese Ausgabe ergeben: {{{ cryptswap.service [mark]loaded inactive dead[/mark] Cryptswap Service }}} Weicht der markierte Bereich ab, so sollte man eine Reinstalltion der betreffenden Pakete * '''systemd-sysv''' * '''systemd''' ausführen. Dazu offnet man ein Terminal [1] und gibt dort ein: {{{#!vorlage Befehl sudo systemctl disable cryptswap.service sudo apt-get update sudo apt-get install --reinstall systemd sudo apt-get install --reinstall systemd-sysv sudo update-grub sudo systemctl enable cryptswap.service }}} Nach einem Reboot kann man dann den Erfolg dieser Arbeiten überprüfen. =Links= * [:ecryptfs:] {Übersicht} Das [:Homeverzeichnis:] bzw. ein Verzeichnis darin verschlüsseln * [:ecryptfs/Einrichten:Einrichten] - wie man eine Verschlüsselung installiert / entfernt * [:ecryptfs/Nutzung:Nutzung] - wie man seine Daten bearbeiten und nutzen kann * [:ecryptfs/Datenrettung:Datenrettung] - Struktur der Schlüsseldaten und Datenrettung * [http://ecryptfs.org/ eCryptfs-Projektseite] {en} * [https://defuse.ca/audits/ecryptfs.htm eCryptfs Security Audit] (Januar 2014) {en} #tag: Sicherheit, Installation, Verschlüsselung