Newsgroup: it.comp.os.linux.iniziare
Titolo: directories protette da password

E' possibile (ho SuSE 9.3, ma la domanda è generale), impedire a
chiunque,anche all'owner di leggere e utilizzare i contenuti di una o
piu' directories, facendo in modo che venga chiesta una password a ogni
tentativo di accesso ? grazie !!!!


Si può costruire un filesystem crittato e montarlo in loopback in una 
directory.
-- 
Lorenzo `paulatz' Paulatto
Trieste
``Se Gauss fosse vivo oggi, sarebbe un hacker.''
      --Peter Sarnack (Princeton University)

 Su un sistema multiutente l'utilita' quale sarebbe?
esempio: qualcuno ti frega l'account e riesce a loggarsi sul sistema a 
nome tuo. In quel caso, i dati criptati non sarebbero cmq accessibili.
-- 

 sistema viene bucato per cattiva gestione ci sono ben altri problemi.
Sicuramente ci sono ben altri problemi, perň intanto i tuoi dati piů 
preziosi potrebbero essere salvi. Ossigena il cervello prima di sparare 
sentenze, grazie.
-- 

 Che scemenza.
Perché se uno ti frega il PC o l'hard disk(fisicamente) puoi mettere 
anche la password sul BIOS e sul bootloader, i dati sono comunque fottuti.
Difatti tenere i dati sensibili su partizioni crittate è un requisito 
minimo per lavorare con taluni enti pubblici.


mrpiggy, senza nessun ritegno, ha osato dire  (23/08/2005 08:59):

se hai il 2.6.* (ma credo che funzioni anche sui kernel precedenti) si
puo' fare cosi':
=======================================
Partizioni criptate (by LinuxBoy)
=======================================
Creare una partizione criptata con linux e kernel 2.6.10 e' facilissimo.
I relativi moduli, infatti, vengono creati di default.
I moduli sono:
cryptoloop
aes
Il primo gestisce la criptazione, l'altro gestisce il tipo di algoritmo
usato per la stessa.
Per caricarli nel sistema:
# modprobe cryptoloop
# modprobe aes
Per criptare una partizione intera, il procedimento da seguire e'
analogo, ma addirittura piu' semplice. Innanzitutto si deve avere una
partizione VUOTA, da destinare allo scopo. Nell'esempio consideriamo la
partizione /dev/hdb2.
La partizione puo' essere formattata o meno. Se conteneva gia' dei dati,
la si puo' rendere illeggibile con:
# shred -z /dev/hdb2
Il passaggio di shred non e' necessario, ma utile se si vuole ottenere
una partizione completamente vuota ed illeggibile.
Per usare la partizione, essa si deve assegnare ad un device di loop,
come fosse un file, specificando che essa e' sotto criptazione, per
esempio la criptazione aes, di cui abbiamo caricato il modulo.
# losetup -e aes /dev/loop7 /dev/hdb2
A questo punto il sistema chiedera' una password. Essa rimarra' la
password con la quale accederemo al device criptato, quindi TAKE CARE!
A questo punto, siamo pronti per creare il nostro filesystem:
# mkreiserfs /dev/loop7
Fatto. La nostra partizione criptata e' creata ed assegnata al device
/dev/loop7.
Per montare la partizione criptata appena creata, digitare, per esempio:
# mount /dev/loop7 /mnt/crypt
Tutto cio' che scriveremo in /mnt/crypt sara' riversato nella nostra
partizione in formato criptato.
La partizione puo' essere smontata e rimontata quante volte si vuole, il
device loop7 rimarra' assegnato alla partizione fino al reboot.
Al reboot, per poter rimontare la partizione, si dovra' riassegnare la
stessa al device loop, con il comando
# losetup -e aes /dev/loop7 /dev/hdb2
Sara' nuovamente richiesta la password di prima, dopodiche' potremo
montare la partizione nuovamente con
# mount /dev/loop7 /mnt/crypt
Lo script rc.cryptospace (comandi ammessi: start | stop | status |
restart) ci aiutera' nelle operazioni di montaggio e smontaggio.
============================
Script rc.cryptospace
===========================
#!/bin/sh
### Inserisci qui la partizione crypt da usare
CRYPT=/dev/hdb2
### Inserisci qui la partizione LOOP da usare
LOOP=/dev/loop7
#### Selezionare la cartella dove montare la partizione criptata
DEST=/mnt/hdb2
### Seleziona un algoritmo di compressione
### decommentando quello preferito
#ALG=twofish
#ALG=sha256
#ALG=serpent#!/bin/bash
### Inserisci qui la partizione crypt da usare
CRYPT=/dev/hdb2
### Inserisci qui la partizione LOOP da usare
LOOP=/dev/loop7
#### Selezionare la cartella dove montare la partizione criptata
DEST=/mnt/hdb2
### Seleziona un algoritmo di compressione
### decommentando quello preferito
#ALG=twofish
#ALG=sha256
#ALG=serpent
#ALG=des
#ALG=cast5
#ALG=sha512
#ALG=sha1
#ALG=cast6
#ALG=blowfish
ALG=aes
modprobe cryptoloop
modprobe $ALG
case "$1" in
	start)
		echo -n "Initializing encrypted User space.... "
		/sbin/losetup -e $ALG $LOOP $CRYPT
		if [ ! -e $DEST ]; then
			mkdir $DEST
			chmod a+rwx $DEST
		fi
		/bin/mount $LOOP $DEST
	 	/bin/chmod 1777 $DEST
		TT=`mount | fgrep $DEST`
		if [ -z "$TT" ]; then
			echo ""
			echo "Something has gone wrong... Check your password!"
			echo ""
			echo "Deleting loop device..."
			losetup -d $LOOP
		fi		
		echo "done."
		;;
	stop)
		echo -n "Umounting encrypted User space..."
		/bin/umount $DEST
		/sbin/losetup -d $LOOP
		/bin/sync
		if [ -e $DEST ]; then
			rm -r $DEST
		fi
		echo "done."
		;;
	status)
		/bin/mount | /bin/grep loop
		;;
	restart)
		$0 stop
		$0 start
		;;
	*)
		echo "Usage: $0{start|stop|restart|status}"
		exit 1
		;;
esac
#ALG=des
#ALG=cast5
#ALG=sha512
#ALG=sha1
#ALG=cast6
#ALG=blowfish
ALG=aes
modprobe cryptoloop
modprobe $ALG
case "$1" in
	start)
		echo -n "Initializing encrypted User space.... "
		/sbin/losetup -e $ALG $LOOP $CRYPT
		if [ ! -e $DEST ]; then
			mkdir $DEST
			chmod a+rwx $DEST
		fi
		/bin/mount $LOOP $DEST
	 	/bin/chmod 1777 $DEST
		TT=`mount | fgrep $DEST`
		if [ -z "$TT" ]; then
			echo ""
			echo "Something has gone wrong... Check your password!"
			echo ""
			echo "Deleting loop device..."
			losetup -d $LOOP
		fi		
		echo "done."
		;;
	stop)
		echo -n "Umounting encrypted User space..."
		/bin/umount $DEST
		/sbin/losetup -d $LOOP
		/bin/sync
		if [ -e $DEST ]; then
			rm -r $DEST
		fi
		echo "done."
		;;
	status)
		/bin/mount | /bin/grep loop
		;;
	restart)
		$0 stop
		$0 start
		;;
	*)
		echo "Usage: $0{start|stop|restart|status}"
		exit 1
		;;
esac