#!/usr/bin/env bash #------------------------------------------------------------------------------# # # aptitude install cryptsetup # #------------------------------------------------------------------------------# ### erstellt im Jahre 2010; ### leider funktionieren diese CryptSetup-Einstellungen im Jahre 2020 ### nicht mehr so, wie sie stehen; man muss mit den Parametern "-s" und "-h" ### ein wenig rumspielen, bis es geht; VERSION="v2010093000" #------------------------------------------------------------------------------# 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) # # twofish (schnell+sicher) oder serpent (sehr sicher) #ALGORITHM="serpent" # 2010 ALGORITHM="serpent-xts-plain" # 2020 DATEISYST="jfs" # jfs (sicher) oder xfs (keine Fragmentierung) # #----------------------------------------------------------------------# ### nur zum initialisieren ### erstellen der Image-Datei # dd if=/dev/zero of=hdddatei.img bs=1024 count=107374182400 # dd if=/dev/zero of=${CRYPTDATEI} bs=1G count=100 # dd if=/dev/zero of=${CRYPTDATEI} bs=1G count=1 seek=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 # 2010: cryptsetup -y -c ${ALGORITHM} -h sha512 -s 256 luksFormat ${LOOPDEV} # 2020: cryptsetup -y -c ${ALGORITHM} -h sha512 -s 512 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