PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Sicherheitsfrage - HDD- + Accountverschlüsselung sicher?


Johnny Rico
2006-07-01, 18:57:56
Hiho,

ich möchte mein Laptop sichern, da demnächst auch sensible Daten von anderen Leute draufkommen sollen.

Auf dem Laptop wird Windows UND Linux eingesetzt. Es ist eine HDD installiert, welche 2+Swap Partitionen enthält.

Also Sicherheitslösung verwende ich für den Boot und Windowspart Safeguard.
Ohne Identifizierung ist kein Boot möglich. Windows Partition ist verschlüsselt.

Nun bin ich kein Linuxprofi und habe es einfach nur "drauf", da ich es in Zukunft auf Grund von Projekttests unter Linux benötige.

Jetzt die Frage. Wie kann ich den Linuxteil absichern? Ist das Übersicht "sicher"?

Ich habe gehört, dass man das Linuxsystem an sich völlig mit Linuxmitteln verschlüsseln kann. Auch das Passwort bzw. der Account soll wohl extrem gesichert werden können.

Habt Ihr Informationen oder Tips zum Thema? Wie läuft die Verschlüsselung mit "linuxinternen" Mitteln ab?


Gruß

The Cell
2006-07-02, 00:30:42
Die Frage bei einer Sicherheitslösung ist wie immer:

Was will ich wie vor wem schützen.
Safeguard als Festplattenverschlüsselung mit einer PBA am besten noch in Verbindung mit einem Token als Zwei-Faktor Authetifizierung ist schonmal auf der Windowsseite meiner Meinung nach ziemlich nahe an optimal.
Zumindest ist Safeguard meines Wissens die einzige Sicherheitslösung, die es erlaubt auch eine unverschlüsselte Partition zu starten.

Linux abzusichern ist auch eine Kunst für sich und für einen Laien nicht zu bewerkstelligen. Was ist dein Background?
Bist du Systemadministrator, Azubi, der ein Projekt auf das Auge gedrückt bekam?

Wie bei fast allen Linuxfragen ist Google und die diversen How-Tos und Wikis dein Freund.
Google nach encryption, dm-crypt, cryptoloop, LUKS.

Man kann mit Linuxboardmitteln eigentlich alles abdecken, was man sich wünscht. Es gibt, um es nebenbei zu erwähnen, auch Truecrypt für Linux, welches auch einen Blick wert ist.

Passwörter werden, wie bei eigentlich jedem OS, als Hash abgespeichert. Wenn es dir um granulare Rechteverwaltung im Kernelbereich geht, so kommst du um SELinux nicht herum. Hier wirf mal einen Blick auf Fedora, die setzen das schon etwas länger ein.

Gruß,
QFT

Johnny Rico
2006-07-02, 00:56:45
Systemadmin, allerdings eher im Windowsbereich. Linux bin ich nicht bewandert. Kommandos ausführen, Pakete installiert, Netzwerk usw..is aber noch drin.

Mir gehts im Prinzip um eine Art Safeguard für Linux bzw. ein gesichertes FS.

Der "Bootbereich" ist ja durch Safeguard gesichert, allerdings kann man die PLatte ja ausbauen und dann einfach auf den -nicht- verschlüsselten Linuxpart zugreifen und das möchte ich vermeiden. Also schon beim Installieren von Linux ein verschlüsseltes FS verwenden z.B.


Grüßerle!

---edit---

achja, geiler Name ;O

LOCHFRASS
2006-07-02, 01:04:41
Quantenfeldtheorie[/POST]']Linux abzusichern ist auch eine Kunst für sich und für einen Laien nicht zu bewerkstelligen.

Naja, so schwer ist das mit der Festplattenverschluesselung auch nicht, mit Loop-AES ist das IMHO recht einfach zu bewerkstelligen. / zu verschluesseln, sollte per initrd drin sein, sowas hab ich aber nicht laufen, bei mir sind nur /home, sowie auf dem Server die NFS-Partition verschluesselt.

GAMaus
2006-07-04, 07:17:29
guckst du hier: http://wiki.ubuntuusers.de/Daten_verschl%C3%BCsseln
So hab ich das auch gemacht.

g-string 3
2007-04-01, 21:44:41
guckst du hier: http://wiki.ubuntuusers.de/Daten_verschl%C3%BCsseln
So hab ich das auch gemacht.

Ich habe versucht, die ANleitung zu befolgen. Ich möchte gerne hdb5 verschlüsseln.
Momentan steht in der /etc/crypttab:
# <target device> <source device> <key file> <options>
# hdb5 /dev/hdb5

Wenn ich die Anleitung richtig verstanden habe, so soll man anschliessend hdb5 aus der fstab entfernen.
Was ich jedoch vermisse, wohin das Laufwer gemountet wird.
Ausserdem möchte ich gerne ReiserFS verwenden. In der Anleitung steht, man würde wohl ein ext3 verwenden. Muss ich, soll ich?

da.phreak
2007-04-01, 22:49:18
Naja, so schwer ist das mit der Festplattenverschluesselung auch nicht, mit Loop-AES ist das IMHO recht einfach zu bewerkstelligen. / zu verschluesseln, sollte per initrd drin sein, sowas hab ich aber nicht laufen, bei mir sind nur /home, sowie auf dem Server die NFS-Partition verschluesselt.


cryptoloop (denke das meinst DU mit Loop-AES) ist eine sehr schlechte Implementierung einer Verschlüsselung und sollte nicht mehr verwendet werden. Inzwischen gibt des dm-crypt, das grad in Verbindung mit cryptsetup-luks gut und sicher funktioniert.

Wenn man die Systempartition verschlüsseln möchte muß man es wie Du gesagt hat in der initrd starten. Andere Möglichkeit, die auch Geschwindigkeitsvorteile bringt: Systempartition nicht verschlüsseln, aber Datenpartition. Zusätzliche Bereiche der Systempartition, kann man dann in eine verschlüsselte Partition verschieben und verlinken. Mal als Beispiel: /var/log enthält evtl. Daten, die nicht jeder sehen sollen. Mit "mv /var/log /verschlüsselte/partition" kann man das Verzeichnis in eine verschlüsselte Partition schieben und dann mit "ln" nen Link setzen. Nachteil: Evtl vergißt man Bereiche, auf denen Spuren hinterlassen werden können. Zudem sollte man daran denken, auch die Swap-Partition zu verschlüsseln.

Weitere Diskussion zur Verschlüsselung siehe auch hier: Klick (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=355892)

Ein interessanter Vortrag zu verschiedenen Verschlüsselungslösungen findet sich hier als Video: Klick (ftp://ftp.ccc.de/congress/22C3/lectures/video/mp4/720x576/22C3-1112-en-modern_disk_encryption.mp4). Allerdings kommt mir dm-crypt zu schlecht weg. Der Vortragende hat nicht ganz verstanden, daß dm-crypt zwar auch das cryptoloop-Format unterstützt (also "abwärtskompatibel" ist), aber darüber hinaus ein eigenes bessere Format anbietet.

g-string 3
2007-04-03, 22:50:43
kennste dich damit aus?

da.phreak
2007-04-04, 11:45:14
kennste dich damit aus?

Wen meinst Du ?

Ausserdem möchte ich gerne ReiserFS verwenden. In der Anleitung steht, man würde wohl ein ext3 verwenden. Muss ich, soll ich?

Das Dateisystem ist für die Verschlüsselung ganz egal. Du hast die freie Auswahl und kannst gerne reiserfs nehmen.

Ich habe eben nochmal in die Anleitung geguckt, habe aber noch ein paar Anmerkungen:

- zum einen wird nur mit den Default-Einstellungen von cryptsetup verschlüsselt. Es geht aber besser, siehe hier (http://www.fedorawiki.de/index.php?title=Verschl%C3%BCsselte_Festplatten). Die Parameter "-c aes-cbc-essiv:sha256 -s 256" wählen günstigere Optionen für die Verschlüsselung (z. B. AES mit 256 Bit statt 128, weitere Erklärungen siehe weiter unten auf der Seite).
- dort wird auch LUKS (Linux unified key setup) benutzt. Dies erlaubt die nachträgliche Änderung des Schlüssels, was denke ich sehr wichtig ist. Wenn man den Verdacht hat, daß der Schlüssel irgendwie ausspioniert werden konnte (z. B. simples "über die Schulter gucken"), kann man nen neuen Schlüssel wählen und den alten für ungültig erklären.
Konkret wird nicht "cryptsetup create" sondern "cryptsetup luksFormat" benutzt. Hinterher lassen sich mit "luksDelKey" und "luksAddKey" die Schlüssel verwalten.

g-string 3
2007-04-04, 11:54:15
ich meine dich.
Ob du helfen kannst falls es mal brennt

da.phreak
2007-04-04, 12:41:51
ich meine dich.
Ob du helfen kannst falls es mal brennt


Nun, ich bin kein Mathematiker, aber als Anwender kenne ich mich schon aus. Ich habe das ganze allerdings nicht über die crypttab gemacht, sondern mir ein eigenes Skript geschrieben. Das fragt relativ früh beim Booten den Schlüssel ab und mounted damit alle Partitionen. Letztendlich war das nur Faulheit: Ich habe keine Lust, für jede Partition einzeln den Schlüssel einzugeben. Sicherheitstechnisch mag das nicht ganz so toll sein, es ist eben nen Kompromiß aus Sicherheit und Bequemlichkeit.

Wenn Du aber nur eine Partition hast, ist das mit der crypttab auch kein Problem. Denke nur daran wie oben beschrieben auch die Swap-Partition zu verschlüsseln (bekommt bei jedem booten nen zufälligen Schlüssel) und evtl. Daten der root-Partition (wenn z. B. /home und / auf unterschiedlichen Partitionen liegen).

Bevor Du gleich Festplattenpartitionen verschlüsselst könntest Du auch erstmal mit nem USB-Stick rumprobieren (oder nem loop-device), so daß Du die Parameter von cryptsetup besser durchschaust. Sei nur verdammt vorsichtig dabei: Einmal nen falsches Device eingegeben und alles is wech. Ist mir schon passiert, habe aus versehen /dev/sda3 anstat /dev/hda3 geschrieben.

g-string 3
2007-04-04, 19:39:48
kannste eines der gezeigten Pakete empfehlen?

da.phreak
2007-04-04, 20:43:04
Cryptsetup brauchst Du, mehr nicht. Der Rest (dm-crypt) steckt im Kernel.

g-string 3
2007-04-05, 09:36:22
# <target name> <source device> <key file> <options>
# /mnt/crypt_hdb5 /dev/hdb5
# swap0 /dev/hda8 /dev/urandom swap



Passt das so in der /etc/crypttab? Irgendwie ist mir hier die Syntax nixht ganz klar
Was ist "swap0"?
PS: Die Raute muss dann natürlich noch weg

da.phreak
2007-04-05, 14:16:54
Gib mal "man crypttab" ein, da bekommst Du mehr Infos.

Ich denke so sollte es funktionieren:

# <target name> <source device> <key file> <options>
# crypto-hdb5 /dev/hdb5 none luks
# crypto-swap /dev/hda8 /dev/random swap



Das erste Feld ist nur ein Name. Das entschlüsselte Device ist darunter ansprechbar. Das dritte und vierte Feld müssen angegeben werden. Das dritte Feld ist der Schlüssel, bei "none" wird dieser von Benutzer erfragt. /dev/urandom solltest Du nicht dafür benutzen, da dort evtl. nur pseudozufällige Zahlen rauskommen (--> kann man evtl. erraten --> unsicher). Mit "luks" als viertes Feld werden alle Parameter aus dem Luks-Header der Partition ausgelesen. Denke dabei daran, die Partition mit "cryptsetup luksFormat" zu erstellen, nicht mit "cryptsetup create" !

Wenn das funktioniert hast Du nach dem Booten zwei neue Devices, /dev/mapper/crypto-hdb5 und /dev/mapper/crypto-swap. Diese sind aber noch nicht gemounted, Du mußt zusätzlich Einträge in der fstab vornehmen:

/dev/mapper/crypto-hdb5 /home reiserfs defaults 0 1

Ich bin mir nicht sicher, ob cryptsetup den swap-space automatisch aktiviert, oder dafür auch noch ein Eintrag in die fstab nötig ist. Probier's erstmal ohne aus, "cat /proc/swaps" gibt Dir alle aktivierten Swap-Partitionen aus.

Das ganze ist ungetestet !

Ich gebe Dir nochmals den Rat, mit cryptsetup an der Kommandozeile rumzuspielen. Ein USB-Stick ist da optimal zum rumprobieren, so verstehst Du die Zusammenhänge sicher besser. Die ganzen Systemskripte machen das zwar alles automatisch, aber zu wissen wann was passiert ist hilfreich bei der Fehlersuche.

g-string 3
2007-04-07, 14:25:29
So siehts bisher aus. fstab und crypttab wie hier (http://www.bilder-speicher.de/07040714502601.vollbild.html) zu sehen ist, angepasst.
Als nächtes wollte ich der Reihe nach folgendes erledigen:
- die Dateien von /mnt/hdb5 auf eine andere Partition sichern (erledigt)
- Partition /hdb5 mit cfdisk entfernen
- Partition mit "cryptsetup create" erstellen
- reboot

Was ich noch nicht verstehe.
Muss ich die Partition (hdb5) mit z.B. "cfdisk" erst löschen, um sie dann per "cryptsetup create" neu erstellen lassen zu können?
Erstellt "cryptsetup create" die durch mich in der /etc/crypttab festgelegten "target names" "crypt-hdb5" und "crypt-swap-hda8" automatisch?
Oder muss ich möglicherweise "cryptsetup create crypt-swap-hda8" "cryptsetup create crypt-hdb5" ausführen?

da.phreak
2007-04-07, 21:28:21
Mal langsam von vorne. Zunächst benutze _nicht_ "cryptsetup create". Das ist veraltet, die Anleitung die selbes beschreibt auch. Anstatt dessen benutzt Du "cryptsetup luksFormat". Also mal Schritt für Schritt.

(1) Zunächst benötigst Du die Partition, diese legst Du ganz normal mit fdisk oder cfdisk an. Bei dir ist es hdb5.

(2) Dann mußt Du die Partition für die Verschlüsselung initialisieren (formatieren). Das machst Du mit "cryptsetup luksFormat":

cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/hdb5

Du wirst nach einem Schlüssel gefragt, mit dem Du später die Partition öfnnen kannst (siehe nächster Schritt).

(3) Die Partition ist nun vorbereitet für die Verschlüsselung. Jetzt mußt Du sie öffnen. Das machst Du mit luksOpen:

cryptsetup luksOpen /dev/hdb5 crypto-hdb5

An dieser Stelle wirst Du nach dem Schlüssel gefragt. Wiederhole den Schlüssel, den Du vorher festgelegt hast.

Du hast nun eine neues Device erzeugt, /dev/mapper/crypto-hdb5. Du hast jetzt also zwei Devices. Einmal /dev/hdb5, dort findest Du die Daten nur verschlüsselt vor. Unter /dev/mapper/crypto-hdb5 sind die Daten entschlüsselt zu finden.

(4) Du mußt, wie sonst auch, die Partition formatieren. Diesmal wird allerdings nicht die Verschlüsselung vorbereitet, sondern ein Dateisystem auf das entschlüsselte Device geschrieben. Z. B.:

mkreiserfs /dev/mapper/crypto-hdb5

Jetzt ist die Partition endgültig einsatzbereit.

(5) Die Partition muß gemountet werden. Dazu hast Du zwei Möglichkeiten: Die manuelle per mount (5a) oder die automatische (5b)

(5a) Das machst Du mit "mount", z. B.

mount /dev/mapper/crypto-hdb5 /mnt/hdb5

Der mountpoint (Verzeichnis /mnt/hdb5) muß existieren !

(5b) Du erledigst das automatisch beim Systemstart. Selbiges erledigen Skripte, die bei der Installtion des Pakets cryptsetup mitinstalliert werden (crypttab) bzw. sowieso jeder Distribution beiliegen (fstab). Die crypttab erledigt beim Systemstart automatisch Schritt (3). Die fstab führt beim Systemstart Schritt (4) durch. Schritte (1) und (2) müssen nur einmal ausgeführt werden, daher werden diese beim Systemstart nicht berücksichtigt.

Probiere mal mit den Schritten (2) - (5a) etwas rum, damit Du nen Gefühl dafür bekommst, wie genau das funktioniert. Prinzipiell steht das alles schon in dem Link (http://www.fedorawiki.de/index.php?title=Verschl%C3%BCsselte_Festplatten), den ich vorher schob gepostet habe. Bitte vergiß die Anleitung von ubuntuusers, diese ist veraltet !

g-string 3
2007-05-05, 21:42:29
ehrlich eine super Anleitung!
Ich bekomme leider eine Fehlermeldung:

Failed to setup dm-crypt key mapping.
Check kernel for support for the aes-cbc-essiv:sha256 cipher spec and verify that /dev/hdb5 contains at least 258 sectors.
Failed to write to key storage.
Aufruf fehlgeschlagen.

Die Partition ist ca. 30GB gross

Fehlen Pakete?
Kernel ist stock in Version 2.6.18-4 unter debian etch

da.phreak
2007-05-05, 22:02:31
Eigentlich nicht, cryptsetup ist ja da. Evtl. wird das entsprechende Modul für die Verschlüsselung nicht geladen. Guck mal in die Datei /proc/crypto. Dort gibt Dir der Kernel Auskunft, welche Verschlüsselungsoptionen zur Verfügung stehen. Wenn dort AES und/oder CBC fehlt, lade die Module mal vorher:

modprobe aes

bzw. das sollte schneller beim Ver-/Entschlüsseln sein:

modprobe aes-i586

Dazu noch sha256 und cbc. Bei den Modulnamen rate ich mal, bei mir sind die fest in der Kernel einkompiliert, daher weiß ich's nicht genauer.

modprobe sha256
modprobe cbc

Die richtigen Namen sollten sich bei Dir finden lassen, indem Du Dir die Module im Verzeichnis /lib/modules/2.6.18/kernel/crypto anguckst (das 2.6.18 im Pfad evtl. anpassen).

g-string 3
2007-05-05, 22:25:28
lsmod spuckt folgendes aus:

sha256 11520 0
aes 28480 0
dm_crypt 11272 0

cbc scheint also zu fehlen

sarge:/home/micro# ls /lib/modules/2.6.18-4-k7/kernel/crypto/
aes.ko cast5.ko deflate.ko michael_mic.ko sha512.ko twofish.ko
anubis.ko cast6.ko des.ko serpent.ko tcrypt.ko wp512.ko
arc4.ko crc32c.ko khazad.ko sha1.ko tea.ko
blowfish.ko crypto_null.ko md4.ko sha256.ko tgr192.ko

da.phreak
2007-05-05, 23:12:16
Hmmm also irgendwie kommt mir das komisch vor. Was sagt denn

cat /proc/crypto|grep cbc

?

Ansonsten probier mal, die Verschlüsselung über eine Live-CD einzurichten.

g-string 3
2007-05-05, 23:20:32
da passiert gar nix

sarge:/home/micro# cat /proc/crypto|grep cbc
sarge:/home/micro#

da.phreak
2007-05-06, 08:53:41
Bei mir sieht's so aus:

$ cat /proc/crypto | grep cbc
name : cbc(aes)
driver : cbc(aes-i586)

Funktioniert "modprobe cbc" ?

g-string 3
2007-05-06, 09:38:45
nee, daran liegts wohl

"FATAL: Module cbc not found."

da.phreak
2007-05-06, 10:15:45
Guck mal bitte was folgender Befehl sagt:

zcat /proc/config.gz | grep CBC

So findest Du heraus, ob das in den Kernel einkompiliert wurde, ausgelassen wurde oder als Moduel kompiliert ist. Bei mir (fest einkompiliert) kommt folgendes:

$ zcat /proc/config.gz | grep CBC
CONFIG_CRYPTO_CBC=y

Als Modul müßte dort "=m" stehen.

g-string 3
2007-05-06, 10:49:29
sarge:/home/micro# zcat /proc/config.gz | grep CBC
zcat: /proc/config.gz: No such file or directory

Oje :(

Ich hab mal im Paketmanager nach cbc gesucht

Gast
2007-05-06, 11:13:03
cat /boot/config-Kernelversion statt zcat /proc/config.gz nehmen. CBC wird aber wahrscheinlich nicht dabei sein.

g-string 3
2007-05-06, 21:46:25
da passiert wieder nichts :(
Meine Kiste scheint verflixt zu sein

da.phreak
2007-05-06, 22:03:01
Also ich verstehe nicht so ganz, was Debian da für Kernel baut ... nicht mal die Config kann man auslesen. Ich tippe mal darauf, daß CBC fehlt. Weitere Softwarepakete werden Dir da kaum helfen. Wenn der Kernel das nicht unterstützt, wird's mit keiner Software funktionieren

Ich würde sagen: Kernel Sourcen von Debian runterladen und selber bauen. Wenn Dir das zu kompliziert ist, bleibt Dir evtl. nur ne andere Distribution. Bei Ubuntu könntest Du vor der Installation von Live-CD testen, ob's klappt.

g-string 3
2007-05-06, 22:06:18
Ich hab ne recht neue Knoppix Version hier.
Braucht man denn CBC zum dekodieren?
Muss ich, bevor ich Partition von Knoppix aus verschlüssele, chrooten oder ähnliches?
Danke für eure Mühe :)

Gast
2007-05-06, 23:16:21
Umm g-string 3... dir ist schon klar, daß du "hdb5" aus dem Beispiel durch die Partition ersetzen mußt die du verschlüsseln willst?
Ich hab mir grad mal ein Debian Etch-System aufgesetzt und das ausprobiert, dachte das gibts doch nicht. Und natürlich läuft das einwandfrei druchapt-get install cryptsetup
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/...
Ansonsten wär das ein Fehler im Paket, das Handbuch (das du wohl leider nie gelesen hast) schlägt nämlich unter anderem aes-cbc-essiv:sha256 vor.


Und die Kernel-Konfiguration liegt natürlich dort wo sie unter einem anständigen System zu liegen hat, nämlich unter /boot/config-$(uname -r). :)

da.phreak
2007-05-06, 23:27:30
Ich hab mir grad mal ein Debian Etch-System aufgesetzt und das ausprobiert, dachte das gibts doch nicht. Und natürlich läuft das einwandfrei druchapt-get install cryptsetup
cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/...
Ansonsten wär das ein Fehler im Paket, das Handbuch (das du wohl leider nie gelesen hast) schlägt nämlich unter anderem aes-cbc-essiv:sha256 vor.


Danke für die Aufklärung. Könnte es sein, daß es an dem speziellen -K7 Kernel liegt ? Aber auch das wäre reichlich komisch.


Und die Kernel-Konfiguration liegt natürlich dort wo sie unter einem anständigen System zu liegen hat, nämlich unter /boot/config-$(uname -r). :)


Nun, ich kompiliere immer selber (aus Vanilla-Sourcen), von daher fehlen diese die Dateien dort bei mir. Die Methode mit /proc/config.gz hat zumindest den Vorteil, daß in jedem Fall die Konfiguration des laufenden Kernels gezeigt wird ... aber eben den Nachteil, daß dieses Feature nicht unbedingt einkompiliert ist, wie in diesem Fall.

Gast
2007-05-07, 00:49:56
Danke für die Aufklärung. Könnte es sein, daß es an dem speziellen -K7 Kernel liegt ? Aber auch das wäre reichlich komisch.Kann ich nicht testen, dürfte aber nicht der Fall sein.
# uname -r
2.6.18-4-686

g-string 3
2007-05-07, 12:32:46
Habe nen anderen Kernel versucht
micro@sarge:~$ uname -r
2.6.20-1-k7

Das Problem ist geblieben

Umm g-string 3... dir ist schon klar, daß du "hdb5" aus dem Beispiel durch die Partition ersetzen mußt die du verschlüsseln willst?

Ja, da.phreak war ausserdem so entgegenkommend und hat die von mir gewünschte Bezeichnung der Partition in seine Anleitung eingebaut damit es nicht zu Chaos führt.

natürlich läuft das einwandfrei druch
Bei mir leider nicht.
Ich habe von Sarge ein dist-upgrade auf Etch gemacht und bin momentan bei Sid