Benutzer-Werkzeuge

Webseiten-Werkzeuge


crypto-dateisysteme

====== Crypto-Dateisysteme ====== Leider bieten alle aktuellen //Crypto-Dateisysteme// unter Linux nicht die maximale mögliche Sicherheit! Von allen OpenSource-Betriebssystemen bietet nur [[Dateiverschlüsselung mit NetBSD|NetBSD]] ein sehr sicheres //Crypto-Dateisystem//. * [[Dateiverschlüssellung]] ===== Sicherheitstest: Verschlüsselte Filesysteme unter Linux ===== * [[http://www.linux-magazin.de/Heft-Abo/Ausgaben/2006/10/Loechriger-Kaese]] ==== Löchriger Käse ==== von Peter Gutmann, Christian Ney Erschienen im Linux-Magazin 2006/10 .... * Die Funktionsweise von Loop-AES ähnelt dem längst als unsicher entlarvten Cryptoloop-Verfahren. * Loop-AES verwendet gpg-Schlüssel zum verschlüsseln. * Loop-AES ist auf den Algorithmus AES256 festgelegt. .... * DM-Crypt kann mit allen im Kernel vorhandenen Algorithmen umgehen. * **Anders als sein unsicherer Vorgänger Cryptoloop taugt das Verfahren auch für Journaled-Filesysteme wie Ext-3, JFS oder XFS.** DM-Crypt bindet sogar Cryptoloop-Container ein und erleichtert damit einen sauberen Umstieg. * DM-Crypt sollte IMMER mit LUKS eingesetzt werden! * DM-Crypt+Cryptsetup+LUKS: LUKS speichert seine Metadaten vollständig im Header des Containers. **In Verbindung mit Free OTFE liest sogar Windows die DM-Crypt-Formate.** verschlüsseltes Swap unter Debian und Ubuntu: # vi /etc/crypttab swap /dev/hda2 /dev/random swap Clemens Fruhwirth hat bei der Arbeit an Cryptsetup-LUKS für DM-Crypt auch ein LRW-Patch geschrieben und Anfang 2005 versucht, es in den Kernel aufnehmen zu lassen. Das ist ihm aufgrund technischer Konflikte beim Speichermanagement leider nicht gelungen. .... Mit Truecrypt ist sogar eine Reihenschaltung mehrerer Verschlüsselungsalgorithmen möglich. Anders als bei anderen Crypto-Systemen kommt hierbei allerdings die Tweakable Narrow-Block Encryption LRW zum Tragen. Das altbewährte, aber nicht so sichere Cipher Block Chaining (CBC) unterstützt Truecrypt zwar auch, vom Einsatz raten die Entwickler aber sinnvollerweise ab. Im Testfeld ist Truecrypt das kryptographisch ausgefeilteste und professionellste Programm. Einzig bei Truecrypt sind die Defaults sicher, die Software prüft konsequent die Funktionsrückgabewerte und meldet Fehler an den Benutzer. .... Crypto-FS ist das simpelste der hier vorgestellten Crypto-Filesysteme. Crypto-FS verschlüsselt einzelne Dateien mit einer vom User wählbaren Chiffre, typischerweise AES im CBC-Modus. Jeder IV wird mehrfach verwendet, das ist ein kryptographischer Kapitalfehler. Bei der Transformation des Passworts in einen Schlüssel begnügen sich die Entwickler mit dem einzelnen Aufruf einer Hashfunktion, typischerweise SHA-1, und verzichten sogar auf einen Salt. Zu allem Überfluss prüft die Software keine Funktionsrückgabewerte. Scheitert eine Funktionen, die Schlüssel verarbeitet oder Daten verschlüsselt, arbeitet Crypto-FS kommentarlos mit leerem Schlüssel weiter oder schleust die Daten gleich im Klartext durch. .... Enc-FS verschlüsselt jede Datei mit einer Blockchiffre, etwa AES im CBC-Modus. Wegen eines Programmierfehlers verwendet die Software allerdings CFB (Cipher Feedback) anstelle von CBC (Cipher Block Chaining). .... Anschließend dreht Enc-FS die Reihenfolge der Bytes in jedem 64-Byte-Abschnitt um. Zum Schluss kommt eine weitere Runde mit Xor- und Verschlüsselungsoperationen. Das soll offenbar den gleichen Datenmaskierungseffekt erzielen wie eine justierbare Wide-Block-Chiffre, erreicht aber trotz vergleichbaren Rechenaufwands nicht deren kryptographische Sicherheit. Die Passworttransformation verzichtet auch bei Enc-FS auf einen Salt und begnügt sich mit 16 Hashing-Iterationen. Erst bei 1000 oder 2000 Iterationen gelten vorausberechnete Wörterbuchangriffe als praktisch unmöglich. Wie viele der Mitbewerber prüft Enc-FS kaum Rückgabewerte von Funktionswerten. Geht etwas schief, bleiben die Daten unverschlüsselt. Selbst wenn der Code Return-Werte prüft, begeht er gravierende Fehler. .... ==== Fazit ==== Die meisten Crypto-Dateisysteme unter Linux hinterlassen einen schalen Geschmack. Sie begehen kryptographische Fehler und sind meist schwach implementiert (typischer Fehler: Rückgabewerte von Funktionen ignorieren). Die positive Ausnahme von der Regel ist mit Truecrypt ausgerechnet eine Software, die ursprünglich nur unter Windows lief und unter Linux derzeit weniger gut integriert ist als die Konkurrenz. Über den zweiten Platz darf sich DM-Crypt in der Cryptsetup-LUKS-Variante freuen. Es arbeitet performant und hat weniger kryptographische Fehler als die restlichen Mitstreiter, vorausgesetzt der Anwender sorgt für eine sichere Konfiguration. Per Default ist auch dieses Produkt unnötig schwach. Bitter ist auch, dass es das LRW-Patch nicht in den Kernel geschafft hat. (fjl) Am sichersten (unter Linux) scheint Truecrypt zu sein, "cryptsetup-LUKS" ist für einen automatischen Start aber deutlich besser geeignet. Alle anderen Crypto-Dateisysteme unter Linux bieten deutlich weniger Sicherheit. ===== TrueCrypt versus EncFS ===== * [[http://forum.ubuntuusers.de/topic/truecrypt-vs-encfs/]] TrueCrypt scheint bei vielen sehr beliebt zu sein, zu Recht. Für reine Linux-Anwendung halte ich jedoch EncFS in vielen Bereichen für vorteilhaft. Ich habe beide im täglichen Einsatz und möchte hier die beiden gegenüberstellen und die jeweiligen Vor- u. Nachteile aus meiner Sicht aufzeigen. Vorteile von EncFS: * Es ist unter Linux wesentlich einfacher zu installieren; eine Neukompilierung wie bei TrueCrypt bei Installation und nach jedem Kernelupdate ist nicht notwendig. Es ist damit auch einfach von einer Live-CD zu benutzen. * Es werden Ordner verschlüsselt. Containergrößen müssen daher nicht schon zu Beginn bekannt sein. * Die Dateien können sehr einfach in verschlüsselter Form gesichert werden (inkrementelles Backup, rsync oder ftp auf Webspace, etc.) * Externe Netzwerk-Ordner gut verschlüsselbar, z.B. Webspace vom Provider in lokalen Ordner einbinden (mit SSHFS) und alle Dateien über EncFS am Server verschlüsseln. Eigene Software am Server ist nicht notwendig. * Zugriff von Windows möglich. Nachteile von EncFS: * Die Dateinamen sind zwar ebenfalls verschlüsselt, jedoch nicht die Infos über Dateizahl, -größe, -rechte. * Es werden „nur“ die Clipher von OpenSSL angeboten, das sind bei mir AES und Blowdish. Vorteile von TrueCrypt: * Versteckte Container sind möglich. * Es werden wesentlich mehr Clipher unterstützt, u.A. auch Serpent und Twofisch und Kombinationen. * Zugriff von Windows möglich. Nachteile von TrueCrypt: * Ein verschlüsseltes Backup ist praktisch nur durch Kopieren des gesamten Containers möglich. * Nutzung von Live-CD sehr aufwändig. Beide können gut für externe Festplatten, USB-Sricks, etc. eingesetzt werden. Beide können unter Windows genutzt werden. Für mich war EncFS relativ neu, da ich als Windows-Umsteiger fest mit TrueCrypt verwurzelt war. Da ich Windows praktisch nicht mehr benötige und Backups in verschlüsselter Form für mich wichtig sind, steige ich immer mehr auf EncFS um. Nur für hochdiskrete Daten nutze ich TrueCrypt mit versteckten AES-Twofish-Serpent Containern. ===== Details ===== * [[http://www.freiesmagazin.de/mobil/freiesMagazin-2010-01-bilder.html#10_01_geheimniskraemerei]] ==== Encfs ==== **sehr praktisch, leider aber recht unsicher und weist viele Programmierfehler auf** === Geheimniskrämerei === **von Ralf Hersel** Jeder hat seine kleinen und größeren Geheimnisse. Seien es Kontoauszüge, persönliche Texte oder die Bilder der ersten Liebe - nicht alles ist für fremde Augen bestimmt. Dieser Artikel befasst sich mit den Möglichkeiten, diese Geheimnisse unter Linux vor ungewollten Blicken zu schützen. Dabei werden gute und weniger geeignete Verfahren betrachtet und zum Schluss eine praxistaugliche Lösung vorgestellt. Als Anordnung für diesen Test dient ein Ubuntu 9.10 mit ein paar Beispieldateien in einem Verzeichnis mit dem Namen tresor. Diese sollen ohne viel Aufwand verschlüsselt und vor fremden Augen versteckt werden. # aptitude install encfs * [[http://wiki.ubuntuusers.de/EncFS]] #!/bin/bash # mount or unmount the encfs folder .tresor to tresor # # check if it is already mounted or not a=$(mount | grep tresor | wc -l ) if [ $a -eq 0 ]; then echo "mounting tresor, enter: y, y, p, password" encfs ~/.tresor ~/tresor else echo "unmounting tresor" fusermount -u ~/tresor fi **Listing: Encfs-mount.sh** Das Skript ermittelt in Zeile 5, wie viele Verzeichnisse mit dem Namen „tresor“ eingehangen sind. In Zeile 6 wird geprüft, ob überhaupt ein solches Verzeichnis eingehängt ist. Falls noch nichts eingehängt wurde, wird in Zeile 8 das EncFS-Verzeichnis .tresor in tresor eingehängt. Falls dies bereits der Fall ist, wird in Zeile 11 das Verzeichnis ausgehängt. Verbindet man dieses Skript mit einem Starter, kann mit einem Mausklick der Tresor geöffnet bzw. geschlossen werden. Der Name „tresor“ steht natürlich stellvertretend für einen beliebigen Verzeichnisnamen. Im Gegensatz zu cryptkeeper wird das ausgehängte Verzeichnis nicht entfernt, es ist einfach leer. In dieses leere Verzeichnis darf man jedoch keine Dateien hinein kopieren, sonst weigert sich EncFS, das versteckte Verzeichnis einzuhängen. Wer außerdem das automatische Aushängen einschalten möchte, benutzt die Option --idle=n in Zeile 8, wobei n für die Minuten steht. === Grafische Oberfläche für EncFS === # aptitude install cryptkeeper * [[http://de.wikipedia.org/wiki/EncFS]] EncFS ist eine freie (unter der GPL veröffentlichte) Verschlüsselungserweiterung für beliebige Dateisysteme unixartiger Betriebssysteme und baut auf dem FUSE-Framework auf. Es verschlüsselt dabei nicht ganze Dateisysteme, sondern lediglich einzelne Dateien, sodass es ohne separate Einrichtung einer eigenen verschlüsselten Partition nachgerüstet werden kann und weiterhin herkömmliche Werkzeuge beispielsweise zur Datensicherung verwendet werden können. == Verschlüsselung == Verschlüsselt werden die Daten dabei mit einem großen, in einer Datei vorliegenden Schlüssel, dem so genanntem Volume Key. Dieser ist nochmals mit einem Passwort geschützt, um Entschlüsselung bei Kenntnis des Volume Keys zu verhindern. EncFS kann verschiedene Verschlüsselungsalgorithmen verwenden; typisch sind Blowfish und AES. Möchte man auf die verschlüsselten Daten zugreifen, so muss man also beim Einbinden das Passwort des Volume Keys eingeben. Die Daten werden dabei in einzelnen Datenblöcken verschlüsselt. Datenblöcke werden als Ganzes verschlüsselt und können auch nur vollständig entschlüsselt werden. Wenn also nur ein einziges Byte verändert wird, muss der ganze Block neu verschlüsselt und geschrieben werden. Um dies an die vorliegenden Daten optimal anzupassen kann daher die Blockgröße von standardmäßig 512 Bytes verändert werden. EncFS verschlüsselt nicht nur den Inhalt der Dateien, sondern auch die Dateinamen. Man kann hierbei zwischen dem unter Umständen (abhängig vom zugrundeliegenden Dateisystem) etwas speicheraufwendigeren, aber dafür die Länge des Dateinamens verschleiernden, Blockmodus und dem speicherschonenderen Datenstrommodus wählen. # mkdir ~/.tresor ~/tresor # encfs ~/.tresor ~/tresor Neues verschlüsselter Datenträger wird angelegt. Bitte wählen Sie eine der folgenden Optionen: "x" für den Experten-Modus, "p" für den vorkonfigurierten Paranoia-Modus, etwas anderes oder eine Leerzeile wählt den Standard-Modus. ?> x Manueller Konfiguration-Modus gewählt. Die folgenden Verschlüssellungsalgorithmen sind verfügbar: 1. AES : 16 byte block cipher -- unterstützt Schlüssellängen von 128 bis 256 Bits -- unterstützt Blockgrößen von 64 bis 4096 Bytes 2. Blowfish : 8-Byte-Blockchiffre -- unterstützt Schlüssellängen von 128 bis 256 Bits -- unterstützt Blockgrößen von 64 bis 4096 Bytes Geben Sie die Nummer Ihrer Auswahl an: 1 Gewählter Algorithmus "AES" Bitte eine Schlüssellänge in Bits wählen. Der Algorithmus, den Sie gewählt haben, unterstützt Grössen von 128 bis 256 Bits (in Schritten von 64 Bits). Beispiel: 128, 192, 256 Gewählte Schlüssellänge: 256 Verwende Schlüssellänge von 256 Bits Wählen Sie eine Blockgröße (in Bytes) aus. Der ausgewählte Algorithmus unterstützt Größen von 64 bis 4096 Bytes in Schritten von 16 Bytes. Oder drücken Sie Enter, um die Vorgabe (1024 Bytes) zu übernehmen Dateisystem-Blockgröße: 2048 Verwende Dateisystem-Blockgröße von 2048 Bytes Die folgenden Verschlüsselungsalgorithmen für Dateinamen sind verfügbar: 1. Block : Blockverschlüsselung, versteckt Dateinamengrösse etwas 2. Null : No encryption of filenames 3. Stream : Stromchiffre, hält Dateinamen möglichst kurz Geben Sie die Nummer Ihrer Auswahl an: 1 Gewählter Algorithmus "Block"" Enable filename initialization vector chaining? This makes filename encoding dependent on the complete path, rather then encoding each path element individually. The default here is Yes. Any response that does not begin with 'n' will mean Yes: n Enable per-file initialization vectors? This adds about 8 bytes per file to the storage requirements. It should not affect performance except possibly with applications which rely on block-aligned file io for performance. The default here is Yes. Any response that does not begin with 'n' will mean Yes: Y Externe IV-Verkettung abgeschaltet, da sowohl 'IV-Verkettung' als auch 'Einmaliger IV' für diese Option benötigt werden. Enable block authentication code headers on every block in a file? This adds about 12 bytes per block to the storage requirements for a file, and significantly affects performance but it also means [almost] any modifications or errors within a block will be caught and will cause a read error. The default here is No. Any response that does not begin with 'y' will mean No: n Enable file-hole pass-through? This avoids writing encrypted blocks when file holes are created. The default here is Yes. Any response that does not begin with 'n' will mean Yes: y Konfiguration abgeschlossen. Das angelegte Dateisystem hat die folgenden Eigenschaften: Dateisystem-Verschlüsselung: "ssl/aes", Version 2:2:1 Dateinamenkodierung: "nameio/block", Version 3:0:1 Schlüssellänge: 256 Bits Blockgröße: 2048 Bytes Jede Datei enthält 8 Bytes Vorspann mit einmaligen IV-Daten. File holes passed through to ciphertext. Nun wird ein Passwort für das Dateisystem benötigt. Da es keinen Mechanismus zur Wiederhestellung gibt, müssen Sie sich an das Kennwort erinnern! Das Kennwort kann mit encfsctl nächträglich geändert werden. Neues EncFS-Passwort: EncFS-Passwort bestätigen: ==== Cryptsetup-LUKS für DM-Crypt ==== **besonders gut geeignet für einen automatischen Start und auch für Journaled-Filesysteme** * [[dateiverschluesselung_mit_linux#cryptsetup|Cryptsetup]] === Installation in Ubuntu: === # aptitude -y install cryptsetup === Eine verschlüsselte Datei anlegen: === Ich verwende als Verschlüsselungs-Algorithmus nur //serpent//, da es sicherer als "hochsicher" eingestuft wurde (//AES// wurde nur als "sicher" eingestuft), es ist aber nur 3% langsamer als //AES//! Als Dateisystem verwende ich //JFS//, da der //fsck// deutlich schneller geht als bei //ext3// und da man auf dem selben Datenträger mit //JFS// ca. 15% mehr Daten untergebracht bekommt gegenüber //ext3//. //XFS// hält die Dateihändler so lange offen wie möglich, das verhindert eine Fragmentierung der daten auf dem Datenträger, führt aber bei einem Systemabstürz zu einem deutlich erhöten Risiko gegenüber Datenverlust. So sehe ich //JFS// als idealen Kompromiss an. == Initialisierung == Als erstes muss eine Container-Datei angelegt werden, dafür gibt es verschiedene Methoden: - dd if=/dev/zero of=/home/fritz/hdddatei_stick.img bs=1M count=700 - touch ./hdddatei.img && shred -v -n1 -s700M ./hdddatei.img Ich verwende mal die erste Möglichkeit. # vi crypt_init.sh #!/bin/bash IMGGR="700" # Image-Größe in "MB" angeben CRYPTDATEI="/home/fritz/hdddatei_stick.img" MDDEV="crypt_stick" MONTIEREN="/home/${MDDEV}" ALGORITHM="serpent" # twofish (sehr schnell und sicher) oder serpent (schnell und sehr sicher) DATEISYST="jfs" # ext3 (kompatibel), jfs (sicher) oder xfs (keine Fragmentierung) dd if=/dev/zero of=${CRYPTDATEI} bs=1M count=${IMGGR} LOOPKOM="$(losetup -vf ${CRYPTDATEI} 2>&1)" if [ "${LOOPKOM}" = 'losetup: Konnte kein freies „loop“-Gerät finden' -o "${LOOPKOM}" = 'could not find any free loop device' ] ; then echo "'${LOOPKOM}', ABBRUCH" else LOOPDEV="$(echo "${LOOPKOM}"|awk '{print $NF}')" cryptsetup -y -c ${ALGORITHM} -h sha512 -s 256 luksFormat ${LOOPDEV} cryptsetup luksOpen ${LOOPDEV} ${MDDEV} sleep 1 cryptsetup status ${MDDEV} mkfs -t ${DATEISYST} /dev/mapper/${MDDEV} mkdir -p ${MONTIEREN} fsck -y /dev/mapper/${MDDEV} mount -t ${DATEISYST} -o user /dev/mapper/${MDDEV} ${MONTIEREN} fi Initialisierung durchführen: # /bin/bash crypt_init.sh == Ein Script, das eine verschlüsselte Datei bei Aufruf einbindet oder trennt, je nachdem ob sie schon eingebunden ist oder nicht: == # vi /home/bin/crypt_ein_aus_stick.sh #!/bin/bash # # aptitude install cryptsetup # #------------------------------------------------------------------------------# if [ -r /home/etc/crypt.cfg ] ; then . /home/etc/crypt.cfg elif [ -r /home/bin/crypt.cfg ] ; then . /home/bin/crypt.cfg else echo "'/home/etc/crypt.cfg' und '/home/bin/crypt.cfg' sind nicht lesbar." exit 1 fi #------------------------------------------------------------------------------# if [ -z "${CRYPTDATEI}" ] ; then echo "$0 [cryptdatei.img]" else if [ -e "/dev/mapper/${MDDEV}" ] ; then if [ "${1}" != "start" ] ; then ### verschl. Datei ausklinken (umount) # # dieses Script muss unbedingt in # Gentoo: "/etc/conf.d/local.stop" # SUSE : "/etc/sysconfig/shutdown" # eingetragen werden! # ${UMOUNT} ${MONTIEREN} && rm -r ${MONTIEREN} #sync sleep 1 cryptsetup status ${MDDEV} | head -n1 cryptsetup luksClose ${MDDEV} cryptsetup status ${MDDEV} | head -n1 sleep 1 for LODEV in $(losetup -j ${CRYPTDATEI} | fgrep '/dev/loop' | awk -F':' '{print $1}') do losetup -d ${LODEV} done fi else if [ "${1}" != "stop" ] ; then ### verschl. Datei einklinken (mount) # ALGORITHM="serpent" # twofish (schnell+sicher) oder serpent (sehr sicher) DATEISYST="jfs" # jfs (sicher) oder xfs (keine Fragmentierung) # #----------------------------------------------------------------------# ### nur zum initialisieren ### erstellen des Containers # dd if=/dev/zero of=hdddatei.img bs=1024 count=107374182400 # dd if=/dev/zero of=${CRYPTDATEI} bs=1G count=100 # oder # touch ./hdddatei.img && shred -v -n1 -s700M ./hdddatei.img # touch ./hdddatei.img && shred -v -n1 -s30G ./hdddatei.img #----------------------------------------------------------------------# # LOAUSGABE="$(losetup -vf ${CRYPTDATEI} 2>&1)" LOOPDEV="$(echo "${LOAUSGABE}" | fgrep '/dev/loop' | awk '{print $NF}')" # losetup: could not find any free loop device # losetup: Konnte kein freies „loop“-Gerät finden if [ -z "${LOOPDEV}" ] ; then echo "'${LOAUSGABE}'" else echo "'${LOOPDEV}'" sleep 1 # #--------------------------------------------------------------# ### nur zum initialisieren # cryptsetup -y -c ${ALGORITHM} -h sha512 -s 256 luksFormat ${LOOPDEV} #--------------------------------------------------------------# # cryptsetup status ${MDDEV} | head -n1 cryptsetup luksOpen ${LOOPDEV} ${MDDEV} # hier wird das Passwort abgefragt sleep 1 cryptsetup status ${MDDEV} # #--------------------------------------------------------------# ### nur zum initialisieren # mkfs -t ${DATEISYST} /dev/mapper/${MDDEV} #--------------------------------------------------------------# # mkdir -p ${MONTIEREN} fsck -y /dev/mapper/${MDDEV} && chown ${NUTZER} /dev/mapper/${MDDEV} # EINKLINKEN="${MOUNT} -t ${DATEISYST} /dev/mapper/${MDDEV} ${MONTIEREN}" echo "${EINKLINKEN}" ${EINKLINKEN} fi #echo "sleep 12" #sleep 12 fi fi fi if [ "${1}" == "stop" ] ; then for i in $(losetup -j ${CRYPTDATEI} | fgrep '/dev/loop' | awk -F':' '{print $1}') do losetup -d ${i} echo "${CRYPTDATEI} -> ${i} ist wieder frei" sleep 1 done fi # vi /home/etc/crypt.cfg NUTZER="fritz" CRYPTDATEI="/home/${NUTZER}/hdddatei_stick.img" MDDEV="crypt_stick" MONTIEREN="/home/${MDDEV}" PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" MOUNT="$(which mount)" UMOUNT="$(which umount)" PARAMETER="${1}" == automatisches Beenden beim System-Stop == Dieses Script muss unbedingt beim runter fahren des Betriebssystems ausgeführt werden, damit das Crypto-Dateisystem automatisch sauber entfernt wird! Sonst riskiert man (wie bei allen unsauber entfernten Dateisystemen) Datenverlust! Bei verschiedenen Linux-Distributionen kann man es in eine entsprechende Datei eintragen: **Gentoo:** # echo "/home/bin/crypt_ein_aus_stick.sh stop" >> /etc/conf.d/local.stop **SUSE:** # echo "/home/bin/crypt_ein_aus_stick.sh stop" >> /etc/sysconfig/shutdown **Ubuntu (bis 2009):** # cp /etc/init.d/skeleton /etc/init.d/crypto # vi /etc/init.d/crypto ... DESC="verschlüsseltes Image ein-/aushängen" NAME=crypto DAEMON=/home/bin/$NAME ... do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started #start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ # || return 1 #start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ # $DAEMON_ARGS \ # || return 2 $DAEMON start # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. } # # Function that stops the daemon/service # do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred #start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME $DAEMON start RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } ... # chmod 755 /etc/init.d/crypto # ln -s /home/bin/crypt_ein_aus_stick.sh /home/bin/crypto # update-rc.d crypto stop 20 0 6 . **Ubuntu (ab 2010 verwendet [[UpStart]]-Scripte - das ist viel einfacher als ein klassisches Sys-V-Start-Stop-Script):** # vi /etc/init/crypto.conf description "zum automatischen aushängen meines Crypto-Images" author "ich" stop on runlevel [06] console output script /home/bin/crypt_ein_aus_stick.sh stop end script Jetzt sollte "crypto" auch in der Ausgabe des folgenden Befehls auftauchen: # initctl list | fgrep crypto ==== TrueCrypt ==== **das sicherste unter Linux** * [[dateiverschluesselung_mit_linux#truecrypt|TrueCrypt]] * [[http://wiki.ubuntuusers.de/truecrypt]]

crypto-dateisysteme.txt · Zuletzt geändert: 2016/04/13 00:50 (Externe Bearbeitung)