# Verschlüsseln von Verzeichnissen

## nic0000

Hallo ihr lieben

Also ich will wieder etwas von euch, deshalb auch die geheuchelte Freundlichkeit meinerseits  :Razz: 

Ich möchte meinen Benutzern einen Verschlüsselten bzw. Privaten Bereich anbieten. 

Das ganze soll natürlich nicht zu kompliziert sein in der Handhabung und nicht zu letzt in der Wartung.

Meine Ideen währen die folgenden:

1)

Gesamten Heimordner des Benutzers in eine LVM2 Partition packen und komplett verschlüsseln.

oder

2)

Einen Ordner im Heimverzeichniss anlegen und diesen dann verschlüsseln. So zu sagen ein "Datentresor"

Ich finde die 2 Lösung besser aber so viel ich weiß bietet Mac die 1 Lösung an. Suse hat auch irgendetwas im Angebot, das kenne ich nur vom Hörensagen.

Welche Techniken sind zu Zeit den aktuell um dies zu machen bzw. hat jemand Erfahrungen dazu?

Hat jemand so etwas von euch schon mal gemacht? 

Ich finde zur Zeit ist das hier mein Favorit: 

http://de.gentoo-wiki.com/Encfs

Danke schon mal für die Anregungen

nico

----------

## l3u

Encfs ist super. benutze ich selber auch.

----------

## nic0000

 *Libby wrote:*   

> Encfs ist super. benutze ich selber auch.

 

Klingt schon mal überzeugend  :Wink:  Werde ich mir jetzt reinziehen

Danke Libby

grüße

nico

----------

## misterjack

 *nic0000 wrote:*   

> Gesamten Heimordner des Benutzers in eine LVM2 Partition packen und komplett verschlüsseln.

 

Dafür eignet sich auch http://de.gentoo-wiki.com/Partition_verschl%C3%BCsseln - Jedoch werde ich bei Gelegenheit das Howto neuschreiben, da es nicht mehr auf dem Stand der Sicherheit ist  :Wink: 

Aber das wird erst Anfang des Jahres, wenn ich mir eine weitere HDD eingesetzt habe.

----------

## l3u

... also ich finde, das ist ein bißchen übertrieben mit nem Schlüssel, der ellenlang ist und auf nem USB-Stick gespeichert wird und dann mit gpg verschlüsselt ... also nennt mich unvorsichtig, aber bevor ich diesen ganzen Kram mache und dann den USB-Stick verliere/ausversehen lösche/ein Fehler auftritt, geb ich doch lieber ein "gescheites" Paßwort direkt ein ;-)

Generell ist der Vorzug von dm-crypt natürlich, daß es schneller geht. Aber mit encfs kann man Datensicherung auch im verschlüsselten Zustand betreiben (die Partition wird ja ohnehin "einfach so" gemountet), und imho hat man damit einfach weniger Möglichkeiten, seine Daten zu verlieren. Denn es ist nicht das ganze Dateisystem verschlüsselt, sondern eben nur ein Verzeichnis.

Überhaupt geht's doch hier um "Ich möchte meinen Usern einen privaten Bereich zur Verfügung stellen" -- und da paßt doch encfs wie die Faust aufs Auge ;-)

Für encfs hab ich mal ein kleines Script geschrieben, daß das Ein- und Aushängen noch einfacher macht: http://www.nasauber.de/downloads/scripts/ -- nur, falls Bedarf bestünde :-)

----------

## nic0000

 *Libby wrote:*   

> ... also ich finde, das ist ein bißchen übertrieben mit nem Schlüssel, der ellenlang ist und auf nem USB-Stick gespeichert wird und dann mit gpg verschlüsselt ... also nennt mich unvorsichtig, aber bevor ich diesen ganzen Kram mache und dann den USB-Stick verliere/ausversehen lösche/ein Fehler auftritt, geb ich doch lieber ein "gescheites" Paßwort direkt ein 

 

Du hast ja auch recht, aber es gibt ja auch Leute unter uns die bekennende Paranoiker sind  :Wink: 

Ich für Mein Teil möchte alle Ideen aufgreifen und einbauen/umsetzen um später den Benutzer dann selbst entscheiden zu lassen was er/sie an Sicherheit möchte bzw. braucht.  :Wink: 

 *Libby wrote:*   

> 
> 
> Überhaupt geht's doch hier um "Ich möchte meinen Usern einen privaten Bereich zur Verfügung stellen" -- und da paßt doch encfs wie die Faust aufs Auge 

 

Das tut es. Ich bin begeistert. Anderseits bleiben da ja immer noch anfällige stellen wie z.B. /tmp & /var/tmp welche auch geschützt werden sollten. Da eignet sich auch die Partitionsmethode gut für.

Generell möchte ich später auch Linux komplett verschlüsseln (So weit das natürlich geht bzw. Sinnvoll ist)um z.B Angriffen über LiveCD bzw über ein Dualboot Windows vorbeugen zu können.

Ich habe mal gelesen das MacOSX die /home/user Ordner verschlüsselt und beim Login automatisch auch öffnet. Diese Lösung würde mir auch gefallen bzw. später als Zusatz nachzurüsten.

Aber ersteinmal alles der Reihe nach:-) 

 *Libby wrote:*   

> 
> 
> Für encfs hab ich mal ein kleines Script geschrieben, daß das Ein- und Aushängen noch einfacher macht: http://www.nasauber.de/downloads/scripts/ -- nur, falls Bedarf bestünde 

 

Das ist wirklich ein sehr nettes Skript! Ich werde jetzt auch prüfen wie weit sich encfs in KDE sauber einbinden lässt.

Erstes Problem mit encfs. Wenn der Mountordner nicht leer ist, dann bricht es ab mit dem verweis auf eine 'noempty' Option die ich aber nicht finde in der man. Wenn ich das richtig interpretiere, dann gehört diese Option zu Fuse und nicht zu encfs. Wie kann ich diese Option durchreichen lassen? Jemand eine Idee?

grüße

nico

EDIT:

ich hab die Lösung jetzt doch noch selbst gefunden  :Wink: 

```
$ encfs ~/.secure ~/secure -- -o nonempty 
```

Alles hinter  -- wird an fuse weitergeleitet.

-o opt,[opt...] steht für fuse mount optionen

----------

## nic0000

Holla!

Ich habe hier etwas zum Thema KDE-Integration von encFS. 

Für nicht KDE-gernmöger gibt es auch etwas. 

http://gentoo-wiki.com/TIP_EncFS

Hat mir doch bisschen Arbeit gespart der Google  :Very Happy: 

----------

## l3u

Ich hab jetzt mal den Test gemacht. Und -- man möge mich rügen -- dm-crypt ist nicht erheblich schneller als encfs (bei selber Verschlüsselung). Ein bißchen, aber nicht viel: so 1 MB pro Sekunde. Und darauf kommt's dann auch net an! Also jedenfalls bei mir ;-)

Was mir an encfs gefällt, ist eben, daß man gezielt einzelne Verzeichnisse verschlüsseln kann. Meine .xyz-Einstellungsdateien kann ein böhhhser Datendieb von mir aus ruhig lesen ;-) Und man kann's halt unabhängig davon, ob's eingehängt ist oder nicht, backuppen. Und man kann's z.B. einfach so, wie es ist, auf eine CD brennen. Und überhaupt ist das ganze portabel.

Frei nach der Gentoo-Manier soll jeder auf seine Facon selig werden, aber ich finde, daß encfs eine klasse Lösung ist, zumindest für das, was ich damit mache.

Man kann mein Script z.B. ganz leicht erweitern. Ich hab ein kleines Script gemacht, das "expass" heißt und folgendes enthält:

```
kdialog --password "EncFS-Kennwort:" --title "EncFS mounten"
```

Und dann halt in encfsmount

```
--extpass extpass
```

Is ganz nett ;-) Vielleicht ginge das auch in einer Datei, aber so funktioniert's jedenfalls. Man kann das natürlich auch noch ausbauen. So mit "Paßwort falsch eingegeben" oder nem Dropdown-Menü zum Auswählen des zu mountenden Verzeichnisses oder was weiß ich was :-)

----------

## nic0000

 *Libby wrote:*   

> Ich hab jetzt mal den Test gemacht. Und -- man möge mich rügen -- dm-crypt ist nicht erheblich schneller als encfs (bei selber Verschlüsselung). Ein bißchen, aber nicht viel: so 1 MB pro Sekunde. Und darauf kommt's dann auch net an! Also jedenfalls bei mir  

 

Bei mir auch nicht.  :Wink:  Zu Not wieder an hdparm spielen und das 1 MB wieder reinholen   :Twisted Evil: 

 *Libby wrote:*   

> 
> 
> Was mir an encfs gefällt, ist eben, daß man gezielt einzelne Verzeichnisse verschlüsseln kann. 

 

Das finde ich auch verdammt gut. Das hat mir persönlich die ganze Zeit gefehlt.

 *Libby wrote:*   

> 
> 
> Frei nach der Gentoo-Manier soll jeder auf seine Facon selig werden, aber ich finde, daß encfs eine klasse Lösung ist, zumindest für das, was ich damit mache. 

 

Es ist eine Lösung die für den individuellen Benutzer zugeschnitten ist, was auch sehr deutlich wird an den --public Parameter, ohne den selbst der root nicht einfach so Zugriff auf die Daten hat. 

Anderseits ist dm-crypt für andere Sachen besser geeignet, die jetzt aber für mich nicht primär sind. Als zu große Einschränkung empfinde ich daß ich mich vorher festlegen muss wie groß es ist, selbst wenn es ein loopdevice wird und somit auch nur ein Odner.

encfs hat, das sollte hier auch Erwähnung finden obwohl es eher akademischer Natur ist, doch einen Nachteil gegenüber dm-crypt: Es kann nicht die komplette Dateinamenlänge des darunter liegenden Dateisystems benutzen da die verschlüsselten Dateinamen länger sind als die unverschlüsselten.

Nunja, habe auch nicht vor meine MP3 Sammlung da reinzustellen, von da her ist das auch kein Problem das die Dateinamen auf 190 Zeichen begrenzt sind.  :Wink: 

 *Libby wrote:*   

> 
> 
> Man kann mein Script z.B. ganz leicht erweitern. Ich hab ein kleines Script gemacht, das "expass" heißt und folgendes enthält:
> 
> ```
> ...

 

Ich werde das gerne ausprobieren.

 *Libby wrote:*   

> 
> 
> Man kann das natürlich auch noch ausbauen. So mit "Paßwort falsch eingegeben" oder nem Dropdown-Menü zum Auswählen des zu mountenden Verzeichnisses oder was weiß ich was 

 

Du wirst lachen, aber genau so etwas wird gebraucht. Es muss ein Benutzer selbst bedienen können, dann glaubt er auch an die Sicherheit und nicht jeder geht mit der Konsole so selbstverständlich um wie wir beide.

Hast du dir mal das KDE Script von meinem letzten Post angeguckt bzw. mal ausprobiert?

Das ist für unbedarfte Benutzer genau was sie brauchen obwohl dein Skript genau das selbe macht, nur weil dann ein Dialog aufpopt und Sachen abfragt. (finde ich dein Code sieht besser aus  :Wink: ) Dieses Skript ist auch schon mal nicht schlecht, könnte aber auch verbessert werden. Es fehlt z.B. ein Dialog wenn der Mount fehlschlägt oder wie von dir schon oben vorgeschlagen "Paßwort falsch eingegeben". Die Idee mit dem Dropdown-Menü finde ich genial obwohl mir selbst so etwas nicht eingefallen ist   :Sad: 

Hast du noch mehr Ideen Libby?

Mir würde noch einfallen etwas mit USB-Sticks um den Schlüssel darauf abzulegen, aber ich habe noch keine Erfahrung damit. Bzw. ein Script welches hilft encfs auf USB-Sticks und ähnlichem anzulegen und zu verwalten. Naja, wie man sieht bin ich mit meinen Überlegungen erst am Anfang, die Ideen kommen eher aus dem Bauch denn aus den Kopf  :Wink: 

----------

## l3u

Man müßte für eine Dropdown-Menü-Lösung halt eine Art Liste anlegen, die die verschlüsselten Verzeichnisse enthält. "from scratch" könnte man die mit mit

```
cd ~ && find -name .*.enc > liste
```

machen, so die Verzeichnisse in dem Schema von meinen Script erstellt wurden. Natürlich könnte man das auch in das Script mit reinschreiben, daß es eben beim Erstellen das jeweilige Verzeichnis in die Liste setzen soll.

Die Auswahl würde dann ganz nett mit

```
kdialog --combobox "Bitte das einzuhängende Verzeichnis auswählen:" "Verzeichnis 1" "Verzeichnis 2" "Verzeichnis 3"
```

gehen. Und danach eben das Paßwort-Script ... und am Schluß sowas wie

```
if [ $? != 0 ]; then

  kdialog --error "Es wurde ein falsches Paßwort angegeben oder das Einhängen ist fehlgeschlagen!"

fi
```

Es wäre natürlich zu überlegen, ob man hierfür nicht eine kleine KDE-Anwendung schreiben sollte ... aber ich kann das nicht ;-)

Evtl. mal perl-qt anschauen? Oder vielleicht (Lo-oser-mäßig ;-) KDevelop? Dann könnte man das alles in einem Dialog machen und auch die Paßwort-Eingabe gleich mit erledigen.

Aber Schlüssel auf USB-Sticks zu speichern ... würde ich nicht machen. Damit könnte man höchstens ein sehr langes Paßwort speichern. In jedem Fall sollte man dann aber doch den auf dem USB-Stick gespeicherten Schlüssel mit einem Paßwort verschlüsseln ... und somit muß der User ohnehin ein Paßwort einegeben. Sprich: man gewinnt lediglich mehr "Sicherheit" durch einen längeren Schlüssel. Und ob man die braucht, sei dahingestellt ...

----------

## nic0000

 *Libby wrote:*   

> Man müßte für eine Dropdown-Menü-Lösung halt eine Art Liste anlegen, die die verschlüsselten Verzeichnisse enthält. "from scratch" könnte man die mit mit
> 
> ```
> cd ~ && find -name .*.enc > liste
> ```
> ...

 

Was meine Benutzer betrifft, so reicht der 2te Ansatz. Ist zwar nicht so schön flexibel, aber auch schneller in der Entwicklung und sicherer im Betrieb.

 *Libby wrote:*   

> 
> 
> Die Auswahl würde dann ganz nett mit
> 
> ```
> ...

 

Boah, du codest aber gern in der Bash, oder?

Ich "leihe" mir mal kurz diese Informationen  :Wink: 

Du hast nichts dagegen, oder?

 *Libby wrote:*   

> 
> 
> Es wäre natürlich zu überlegen, ob man hierfür nicht eine kleine KDE-Anwendung schreiben sollte ... aber ich kann das nicht 
> 
> Evtl. mal perl-qt anschauen? Dann könnte man das alles in einem Dialog machen und auch die Paßwort-Eingabe gleich mit erledigen. Aber wie gesagt: Ich hab bisher noch nie was "graphisches" in dem Ausmaß gemacht 

 

Also ich bin davon fest überzeugt, daß so eine Anwendung auf viel Resonanz stoßen würde. Allerdings sollte man immer die Möglichkeiten ausnutzen, welche man z.Z schon hat um schnell einen durchdachten Prototypen zu bauen und um das Konzept zu verbessern. 

Ich finde wir sollten einfach damit weitermachen wie bis jetzt und schnell ein rundes Konzept den interessierten Publikum zum beurteilen geben. Erst wenn alle Möglichkeiten von der Shell und Kdialog ausgereizt sind, dann erst nach alternativen Suchen.

 Ein funktionierender Prototyp wird auch andere Entwickler anziehen und du wirst dann auch von ihnen lernen können wie ich jetzt von dir  :Wink: 

Stimmst du mir zu?

----------

## l3u

Naja, also ein Bash-Scriptchen zu schreiben, was das macht, sollte kein allzu großer Akt sein. Ich kann mich ja dann mal vorm Ins-Bett-Gehen dransetzen ;-)

----------

## nic0000

 *Libby wrote:*   

> Ich kann mich ja dann mal vorm Ins-Bett-Gehen dransetzen 

 

Angeber  :Razz: 

Und ich schwitze mir hier einen zu Recht  :Sad: 

----------

## slick

verschoben: Deutsches Forum (German) >> Diskussionsforum

----------

## l3u

Ich hab mal (ohne Anspruch auf Fehlerfreiheit) ein Scripchen namens "encfsmounter" geschrieben:

```
#!/bin/bash

if [ ! -f "$HOME/.encfsmounter" ]; then

  kdialog --title="EncFS-Mounter" --error="~/.encfsmounter wurde nicht gefunden. Es kann keine Liste von EncFS-Verzeichnissen ausgegeben werden!"

  exit 1

fi

dialog=""

while read i; do

  if [ "$i" ]; then

    dialog="$dialog "$i""

  fi

done < "$HOME/.encfsmounter"

auswahl=`kdialog --title="EncFS-Mounter" --combobox="Bitte das ein-/auszuhängende Verzeichnis auswählen" "bitte Verzeichnis auswählen" $dialog`

if [ "$auswahl" ]; then

  if [ "$auswahl" == "bitte Verzeichnis auswählen" ]; then

    encfsmounter

    exit 0

  fi

  mount | grep "$auswahl" &>/dev/null

  if [ $? == 0 ]; then

    kdialog --title="EncFS-Mounter" --yesno="$auswahl ist derzeit eingehängt. Soll es ausgehängt werden?"

    if [ $? == 0 ]; then

      meldung=`fusermount -u "$auswahl" $>/dev/stdout`

      if [ $? == 0 ]; then

        kdialog --title="EncFS-Mounter" --passivepopup="$auswahl wurde erfolgreich ausgehängt" 3

        exit 0

      else

        kdialog --title="EncFS-Mounter" --error="Fehler beim Aushängen von $auswahl!\nMeldung von fusermount -u:\n$meldung"

        exit 1

      fi

    else

      exit 0

    fi

  fi

  dir=`basename "$auswahl"`

  pfad=`dirname "$auswahl"`

  passwort=`kdialog --title="EncFS-Mounter" --password="EncFS-Paßwort:"`

  if [ $? == 1 ]; then

    kdialog --title="EncFS-Mounter" --passivepopup="Einhängen von $auswahl abgebrochen." 3

    exit 0

  fi

  meldung=`echo "$passwort" | encfs "$pfad/.$dir.enc" "$pfad/$dir" -S`

  mount | grep "$auswahl" &>/dev/null

  if [ $? != 0 ]; then

    kdialog --title="EncFS-Mounter" --error="Fehler beim Einhängen von $auswahl!\nMeldung von encfs:\n$meldung"

    exit 1

  else

    kdialog --title="EncFS-Mounter" --passivepopup="$auswahl wurde erfolgreich eingehängt!" 3

    exit 0

  fi

fi
```

Du müßtest halt nur noch ein Script machen, das neue encfs-Verzeichnisse anlegt (wie encfsmount) und dann nen Eintrag in der Listendatei macht. Vorher aber vielleicht auch noch nachschaut, ob's den Eintrag nicht schon gibt.

Neue EncFS-Verzeichnisse kann das Script allerdings derzeit nicht anlegen.

Viel Spaß damit :-) Und jetzt muß ich aber echt ins Bett ;-)

----------

## nic0000

 *Libby wrote:*   

> Ich hab mal (ohne Anspruch auf Fehlerfreiheit) ein Scripchen namens "encfsmounter" geschrieben:

 

Boah, das war doch kein Witz von dir   :Very Happy: 

 *Libby wrote:*   

> 
> 
> Du müßtest halt nur noch ein Script machen, das neue encfs-Verzeichnisse anlegt (wie encfsmount) und dann nen Eintrag in der Listendatei macht. Vorher aber vielleicht auch noch nachschaut, ob's den Eintrag nicht schon gibt.
> 
> Neue EncFS-Verzeichnisse kann das Script allerdings derzeit nicht anlegen.

 

Ich werde mir das heute Abend mal genau angucken. 

 *Libby wrote:*   

> Viel Spaß damit  Und jetzt muß ich aber echt ins Bett 

 

Das sei dir gegönnt, nach diesem Skript  :Wink: 

----------

## l3u

Und? Isses was geworden?

----------

## nic0000

 *Libby wrote:*   

> Und? Isses was geworden?

 

Du bist wohl ein Hellseher. Ich habe mich gerade daran gesetzt.

Es macht schon etwas, allerdings sollte ich es bisschen testen bzw. besser verstehen.

Ich bin heute motiviert und werde so in 1-2 Stunden dir genaueres dazu sagen können.

Dein Code ist sehr schön und verständlich, ich werde das schnell verstehen  :Very Happy: 

----------

## nic0000

[quote="nic0000"] *Libby wrote:*   

> Ich bin heute motiviert und werde so in 1-2 Stunden dir genaueres dazu sagen können.

 

Naja das war wohl zu optimistisch.

Also dein Skript bereitet mir Probleme. Ich bin dabei mich einzuarbeiten, habe doch mehr vergessen als ich dachte. Ich werde wohl heue Abend wissen woran es klemmt und mich noch mal melden  :Wink: 

Ansonsten ist es eine Augenweide, dein Code.

----------

## l3u

Danke für die Blumen, aber laß mal gut sein -- ist nur ein bash-Script ;-)

----------

## nic0000

 *Libby wrote:*   

> Danke für die Blumen, aber laß mal gut sein -- ist nur ein bash-Script 

 

Ach komm, jeder hört mal gerne Komplimente und dabei ist es sogar verdient.

Ich eier hier so vor mir her, habe doch mehr vergessen als ich dachte, was mich nicht wirklich zufrieden macht *neid*

Aber bald ist ja Weihnachten  :Wink: 

Mal eine Frage: 

Was ist Sinnvoller, den Benutzer einen Dialog anbieten irgendwo ($HOME) ein Verzeichnis anzulegen zu lassen und das .enc auch da abzulegen oder alle .enc z.B. immer unter $HOME/encfs/storage/$VERZEICHNIS.enc

Ich frage mich das deshalb, weil so liegt dann alles schön Zentral und kann auch bequem gesichert werden, anderseits könnte der Benuzer auch auf USB Sticks etc. encfs Verzeichnisse anlegen.

Ansonsten Libby, wirst du ja noch sehen wieso ich deinen Code schön finde *erblind*   :Wink: 

----------

## l3u

Ist an sich keine schlechte Idee, alle verschlüsselten Verzeichnisse zentral zu speichern und anderswo einzuhängen. Find ich gut :-)

----------

