Aller au contenu

LVM crypté par adresse Mac


Messages recommandés

bonjour à tous !

je me posai une tite question, afin d'empêcher les petits malins qui me démontent les disques durs pour les mettre dans une autre machines et faire sauter les protections (/etc/passwd tout nettoyé, de même pour shadow ;) ) ou trouver mes mots de passe (en clair un fois root sur la machine ... tous mes soft ne gère pas md5 ou autres). Pourquoi ne pas crypter les partitions, ce que je fais tout vaillament, ôllisoké ... mais le souci (normal en même temps) est qu'il me demande la passphrase :D

je me demande donc si je ne peux pas lui donner l'adresse mac de ma carte réseau comme clé de cryptage. Ainsi plus de possibilité de booter ailleurs, je garde des backups en cas de plantage complet, et je suis tranquille.

Donc, peut-on lui donner la passphrase dans les arguments ? et surtout peut-on lui donner une commande de type :

ifconfig eth0 | grep HWadd | awk '{ print $5 }'

marki de vos idées !

tchô

Lien vers le commentaire
Partager sur d’autres sites

C'est quand même très léger comme passphrase de chiffrage, l'adresse MAC... dans le genre mot de passe faible (pas de majuscules/minuscules, toujours le même caractère spécial...), ça se pose là...

A la limite, sur le sujet, un article est récemment paru sur Debian Administration, pour expliquer comment déchiffrer une partoche root par SSH au boot (en incluant un dropbear ou autre serveur SSH léger dans l'initrd)... bon, reste qu'il faut manuellement se connecter en SSH pour déchiffrer le système, mais à voir si ça ne pourrait pas être automatisé avec un watchdog home-made, qui surveillerait si le PC est démarré ou pas, et du coup te convenir...

Lien vers le commentaire
Partager sur d’autres sites

avant de trouver que le passphrase est l'adresse mac, il va falloir du temps tout de même ... et de plus, si la personne veut vraiment rentré, elle y arrivera, je ne veux pas la sécurité parfaite :)

je regarde du coté de ce décryptage par ssh dès que j'ai un moment (surement semaine prochaine à priori), je vous tiens au courant.

merci.

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Après pas mal de galère, j'ai réussi à faire démarrer la partie ssh sur initrd ...

par contre, ce qui ne marche pas c'est l'authentification avec dropbear, il me dis que l'utilisateur n'existe pas.

j'ai testé une fois le pc démarré normalement, ça marche, je pensai donc au fichier passwd et shadow, mais ils y sont ...

si quelqu'un a eu le même souci d'authentification, faite signe !

je vous joint le script pour faire tout ça :

#!/bin/sh

# We add dropbear to the initrd to be able do mount crypto partitions from remote


PREREQ=""
prereqs()
{
 echo "$PREREQ"
}

case $1 in
prereqs)
 prereqs
 exit 0
;;
esac

# Begin real processing below this line

# copyright Wulf Coulmann
# GNU GPL
# http://www.gnu.org/licenses/gpl.html
#
# Download me here: http://gpl.coulmann.de/dropbear
# get infos about this script here:
# http://gpl.coulmann.de/ssh_luks_unlock.html


# load the prepared functions of debians initramfs enviroment
source /usr/share/initramfs-tools/hook-functions


# build the directorys
DIRS='/usr/bin/ /usr/sbin/ /proc/ /root/ /var/ /var/run/ /var/run/' 

for now in $DIRS; do
if [ ! -e ${DESTDIR}$now ] 
then
   mkdir -p ${DESTDIR}$now
fi
done

# copy the main ssh-daemen including libarys
copy_exec /usr/sbin/dropbear /usr/sbin/
copy_exec /usr/bin/passwd /usr/bin/
copy_exec /bin/login /bin/
copy_exec /usr/bin/killall /usr/bin/

# some libarys not autoincludet by copy_exec
copy_exec /lib/libnss_compat.so.2 /lib/
copy_exec /usr/lib/libz.so.1 /usr/lib/ 
copy_exec /etc/ld.so.cache /etc 
copy_exec /lib/libutil.so.1 /lib/

# we copy config and key files
cp -pr /etc/dropbear ${DESTDIR}/etc/
cp -pr /etc/passwd ${DESTDIR}/etc/  
cp -pr /etc/shadow ${DESTDIR}/etc/
cp -pr /etc/group ${DESTDIR}/etc/						
cp -pr /root/.ssh ${DESTDIR}/root/
cp -pr /etc/nsswitch.conf  ${DESTDIR}/etc/						 
cp -pr /etc/localtime  ${DESTDIR}/etc/						 

# we don't have bash in our initrd 
# also we only add the root account
cat /etc/passwd | grep root | sed s/\\/bash/\\/sh/ > ${DESTDIR}/etc/passwd   
cat /etc/shadow | grep root | sed s/\\/bash/\\/sh/ > ${DESTDIR}/etc/shadow
cat /etc/group | grep root | sed s/\\/bash/\\/sh/ > ${DESTDIR}/etc/group

# the blocker script to request input action befor running cryptroot
# this let us run cryptroot on local terminal or inside ssh
# dirty but effektive 
cat >${DESTDIR}/scripts/local-top/cryptroot_block << 'EOF'
#!/bin/sh
PREREQ="network_ssh"
prereqs()
{
 echo "$PREREQ"
}

case $1 in
prereqs)
 prereqs
 exit 0
;;
esac

# Begin real processing below this line

echo Type "ok" and press enter to put in passphrase:

INPUT='wait'

while [ "$INPUT" != "ok" ]; do
read INPUT
done

EOF
chmod 700 ${DESTDIR}/scripts/local-top/cryptroot_block


cat >${DESTDIR}/scripts/local-top/network_ssh << 'EOF'
#!/bin/sh

# we start the network and ssh-server


PREREQ=""
prereqs()
{
 echo "$PREREQ"
}

case $1 in
prereqs)
 prereqs
 exit 0
;;
esac

# Begin real processing below this line


# build up helpful enviroment
[ -d /dev ] || mkdir -m 0755 /dev
[ -d /root ] || mkdir --mode=0700 /root
[ -d /sys ] || mkdir /sys
[ -d /proc ] || mkdir /proc
[ -d /tmp ] || mkdir /tmp
mkdir -p /var/lock
mount -t sysfs -o nodev,noexec,nosuid none /sys
mount -t proc -o nodev,noexec,nosuid none /proc

mkdir /dev/pts
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts

# the Network setup edit ipaddres and gateway to your needs 
ifconfig eth0 192.168.1.135 netmask 255.255.255.0
route add default gw 192.168.1.1
# If you like to use dhcp make shure you include dhclient or pump in 
# /etc/initramfs-tools/hooks/dropbear via
#	 copy_exec /sbin/dhclient

# for debugging ssh-server you may run it in forgound  
#	  /usr/sbin/dropbear -E -F
# for more debugging you may run it with strace
# therfor you have to include strace and nc at top of 
# /etc/initramfs-tools/hooks/dropbear via
#	 copy_exec /usr/bin/strace
#	 copy_exec /usr/bin/nc
# then start nc on an other host and run
#	 /usr/sbin/dropbear -E -F  2>&1 | /bin/nc -vv <ip of other host> <nc port of other host>   
#	 e.g.: 
#	 /usr/sbin/dropbear -E -F  2>&1 | /bin/nc -vv 192.168.1.2 8888   

mv /dev/random /dev/random-blocks
ln -s /dev/urandom /dev/random
cat /etc/passwd
cat /etc/shadow
/usr/sbin/dropbear -E -F -b /etc/dropbear/banner
EOF
chmod 700 ${DESTDIR}/scripts/local-top/network_ssh


cat >${DESTDIR}/etc/dropbear/banner << 'EOF'

 To unlock root-partition run
	unlock

EOF


# script to unlock luks via ssh 
# dirty but effektive 
mkdir -p ${DESTDIR}/usr/bin
cat >${DESTDIR}/usr/bin/unlock << 'EOF'
#!/bin/sh

/bin/sh /scripts/local-top/cryptroot && mv /scripts/local-top/cryptroot /root && kill `ps | grep cryptroot_block|grep -v grep |awk '{ print $1 }'`

EOF
chmod 700 ${DESTDIR}/usr/bin/unlock

# make shure we exit dropbear at the end of the startup process
cat >${DESTDIR}/scripts/local-bottom/rm_dropbear << 'EOF'
#!/bin/sh
PREREQ=""
prereqs()
{
 echo ""
}

case $1 in
prereqs)
 prereqs
 exit 0
;;
esac

# Begin real processing below this line
# we kill dropbear ssh-server 

/usr/bin/killall dropbear

EOF
chmod 700 ${DESTDIR}/scripts/local-bottom/rm_dropbear

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...