Debian Stretch Live UEFI-BIOS Persistente Sicura

Debian Stretch Live UEFI-BIOS Persistente Sicura

Debian Stretch Live UEFI-BIOS Persistente Sicura

Ho fatto diverse guide su come costruirsi una Debian Live personalizzata, creando anche una categoria dedicata. Le ultime due sono state: Creare una Debian Stretch Live Custom persistente Sicura  e Creare una Debian Live personalizzata con live build. Questa guida invece sarà quella definitiva, dove la chiavetta costruita sarà un mix di sicurezza e personalizzazione, il tutto avviabile sia da UEFI che da Legacy BIOS, con partizione cryptata con LUKS. La guida sotto è per utenti avanzati, dato che non spiegherò ogni singolo passaggio, quindi attenzione a fare copia ed incolla senza capire quello che si andrà a fare, e sopratutto attenzione ad identificare con certezza il device usb. Questa guida si può adattare anche utilizzando una Debian Live scaricata direttamente dal sito, ma il problema è che non si può cryptare la partizione dato che cryptsetup non è installato di default, da qui l'esigenza di creare una Debian Live di base con cryptsetup installato, dopodichè successivamente si potrà installare tutto il resto.

Installazione tools:

$ sudo apt install -y debootstrap grub-common grub-pc-bin grub-efi-amd64-bin efibootmgr syslinux squashfs-tools live-build live-tools live-boot cryptsetup

Preparazione Debian Base:

$ mkdir live; cd live
$ lb config --distribution stretch --binary-images iso-hybrid --architectures amd64 --archive-areas main contrib non-free --debian-installer-gui true debian-installer live --mirror-bootstrap http://ftp.it.debian.org/debian/ --mirror-binary http://ftp.it.debian.org/debian --bootappend-live boot=live components persistence persistence-encryption=luks timezone=Europe/Rome locales=en_GB.UTF-8 keyboard-layouts=it hostname=Debian-Custom username=user noeject autologin

per installare un desktop environment ed i programmi di cui si necessita, bisogna editare il file live.list.chroot, ed incollare dentro il necessario:

$ nano config/package-lists/live.list.chroot

incollare dentro:

mate-desktop-environment task-laptop xorg xinit xserver-xorg-input-evdev xserver-xorg-input-libinput xserver-xorg-input-kbd cryptsetup firefox-esr firmware-linux-nonfree firmware-iwlwifi firmware-linux-free

Costruzione Debian Base:

$ sudo lb build

Debian Stretch Live UEFI-BIOS Persistente Sicura

Identificazione device usb e partizioni: nel mio caso userò /dev/sda, ed i comandi eseguiti tutti come root:

# fdisk -l
# umount /dev/sda*
# dd count=1 bs=512 if=/dev/zero of=/dev/sda
# parted -s -- /dev/sda mktable gpt mkpart efi 1 10M
# parted -s -- /dev/sda mkpart live 10M 3G
# parted -s -- /dev/sda mkpart persistence 3G 100%
# parted /dev/sda set 1 msftdata on
# parted /dev/sda set 2 legacy_boot on
# parted /dev/sda set 2 msftdata on
# mkfs.vfat -n EFI /dev/sda1
# mkfs.vfat -F32 -n LIVE /dev/sda2

Creazione partizione cryptata /dev/sda3 persistente:

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sda3
# cryptsetup luksOpen /dev/sda3 sda3_crypt
# mkfs.ext4 -L persistence /dev/mapper/sda3_crypt
# mkdir /mnt/persistence
# mount /dev/mapper/sda3_crypt /mnt/persistence/
# echo "/ union" > /mnt/persistence/persistence.conf
# umount /mnt/persistence/
# cryptsetup luksClose sda3_crypt

Mount partizioni di lavoro:

# mkdir -p /mnt/{efi,live,live-iso}
# mount /dev/sda1 /mnt/efi
# mount /dev/sda2 /mnt/live

Mount Debian Base:

# mount -oro live/live-image-amd64.hybrid.iso /mnt/live-iso
# cp -ar /mnt/live-iso/* /mnt/live
# rm -rf /mnt/live/efi

Grub per UEFI:

# grub-install --removable --target=x86_64-efi --boot-directory=/mnt/live/boot/ --efi-directory=/mnt/efi /dev/sda

Syslinux per legacy BIOS:

# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/gptmbr.bin of=/dev/sda
# syslinux --install /dev/sda2

Fix grub.cfg

# rm /mnt/live/boot/grub/grub.cfg
# nano /mnt/live/boot/grub/grub.cfg

ed incollare dentro:

set default="0"
set timeout=3

    menuentry "Debian Custom Live" {
        linux /live/vmlinuz-4.9.0-6-amd64 boot=live persistence persistence-encryption=luks keyboard-layouts=it locales=en_US.UTF-8,it_IT.UTF-8
        initrd /live/initrd.img-4.9.0-6-amd64
}

Fix syslinux:

# mv /mnt/live/isolinux /mnt/live/syslinux/
# mv /mnt/live/syslinux/isolinux.bin /mnt/live/syslinux/syslinux.bin
# mv /mnt/live/syslinux/isolinux.cfg /mnt/live/syslinux/syslinux.cfg
# rm /mnt/live/syslinux/menu.cfg
# nano /mnt/live/syslinux/menu.cfg

ed incollare dentro:

LABEL Debian GNU/Linux Live (kernel 4.9.0-6-amd64)
  SAY "Booting Debian GNU/Linux Live (kernel 4.9.0-6-amd64)..."
  linux /live/vmlinuz-4.9.0-6-amd64
  APPEND initrd=/live/initrd.img-4.9.0-6-amd64 boot=live components persistence persistence-encryption=luks keyboard-layouts=it locales=en_US.UTF-8,it_IT.UTF-8

per verificare la versione del kernel:

# ls live/chroot/boot/

output:

root@debianbox:/home/edmond# ls live/chroot/boot/
config-4.9.0-6-amd64  initrd.img-4.9.0-6-amd64    vmlinuz-4.9.0-6-amd64
grub              System.map-4.9.0-6-amd64

Smontaggio e pulizia:

# umount /mnt/efi /mnt/live /mnt/live-iso
# rmdir /mnt/efi /mnt/live /mnt/persistence /mnt/live-iso

a questo punto basta riavviare e fare il boot in modalità uefi oppure legacy, in entrambi i casi ad un certo punto del boot verrà chiesto la password, senza la quale il sistema operativo non si avvierà. Successivamente si potranno installare tutti i programmi di cui si necessiterà, e fare le proprie personalizzazioni. In più si possono conservare files in modo sicuro poichè la pen drive  è inaccessibile senza password.

Debian Stretch Live UEFI-BIOS Persistente Sicura

ps: in caso di password complicate, fare attenzione al layout, poiche in fase di boot è quello di grub

enjoy πŸ˜‰

 

Creare una Debian Stretch Live Custom persistente Sicura

 

Creare una Debian Stretch Live Custom persistente Sicura

Creare una Debian Stretch Live Custom persistente Sicura

Guida su come creare una propria Debian Live personalizzata con partizione persistente in modalità UEFI. In passato avevo già fatto una guida simile per Debian Jessie, ma ho utilizzato direttamente l'immagine live ufficiale con firmware non-free. Questo metodo utilizza un'approccio diverso nella costruzione della live, ma l'obiettivo è quello di avere una usb bootable con i propri tools preferiti, e che ci permette di navigare in internet in sicurezza senza memorizzare dati su disco, e senza rinunciare ad una partizione dove poter stipare dati sensibili. Per cifrare la partizione persistente userò LUKS.

Pacchetti da installare:

$ sudo apt install -y debootstrap grub-common grub-pc-bin grub-efi-amd64-bin efibootmgr syslinux squashfs-tools cryptsetup

Creazione Environment:

$ sudo mkdir $HOME/debian_live
$ sudo debootstrap --arch=amd64 --variant=minbase stretch $HOME/debian_live/chroot http://ftp.it.debian.org/debian/
$ sudo chroot $HOME/debian_live/chroot
# echo "debian-live" > /etc/hostname
# echo 'deb http://ftp.it.debian.org/debian/ stretch main contrib non-free' > /etc/apt/sources.list
# apt update

Installazione kernel:

# apt-cache search linux-image
# apt install -y linux-image-4.9.0-4-amd64 linux-headers-4.9.0-4-amd64

Installazione dei pacchetti personalizzati (nel mio caso solo quelli sotto)

# apt install -y mate-desktop-environment task-laptop xorg xinit xserver-xorg-input-evdev xserver-xorg-input-libinput xserver-xorg-input-kbd live-boot systemd-sysv network-manager net-tools wireless-tools nano gparted x11-xserver-utils x11-utils pciutils usbutils ntfs-3g rsync dosfstools syslinux firefox-esr chromium xserver-xorg-input-synaptics vpnc network-manager-gnome network-manager-vpnc-gnome network-manager-openvpn-gnome gtkterm vsftpd putty openssh-client firmware-linux-nonfree firmware-iwlwifi firmware-linux-free vlc terminator synaptic p7zip-full rar unrar zip ssh wget curl mesa-utils dnsmasq grub2-common grub-efi-amd64 grub-pc-bin xkb-data keyboard-configuration tzdata locales cryptsetup encfs wireshark-gtk aircrack-ng nmap zenmap

# apt clean

Password per root:

# passwd root
# exit

Comprimere il tutto in uno squash filesystem:

$ sudo mkdir -p $HOME/debian_live/image/
$ sudo mksquashfs $HOME/debian_live/chroot $HOME/debian_live/image/filesystem.squashfs -noappend -e boot

Copiare kernel e initramfs fuori chroot:

$ sudo cp $HOME/debian_live/chroot/boot/vmlinuz-4.9.0-4-amd64 $HOME/debian_live/image/vmlinuz-4.9.0-4-amd64
$ sudo cp $HOME/debian_live/chroot/boot/initrd.img-4.9.0-4-amd64 $HOME/debian_live/image/initrd.img-4.9.0-4-amd64

Preparazione chiavetta usb: (nel mio caso /dev/sda di 16G)

Negli step successivi verranno create 3 partizioni:

  1. partizione in fat32 EFI
  2. partizione in fat32 che contiene il sistema Linux
  3. partizione in ext4 persistente criptata con LUKS
$ sudo fdisk -l
$ sudo umount /dev/sda*
$ sudo dd count=1 bs=512 if=/dev/zero of=/dev/sda
$ sudo parted -s -- /dev/sda mktable gpt mkpart efi 1 100M set 1 boot on
$ sudo parted -s -- /dev/sda mkpart system 100 2G
$ sudo parted -s -- /dev/sda mkpart persistence 2G 16G
$ sudo mkdir -p /mnt/{usb,efi,persistence}
$ sudo mkfs.fat -F32 -n efi /dev/sda1
$ sudo mkfs.fat -F32 -n system /dev/sda2
$ sudo mkfs.ext4 -L persistence /dev/sda3

Montaggio delle partizioni EFI e di Sistema:

$ sudo mount /dev/sda1 /mnt/efi/
$ sudo mount /dev/sda2 /mnt/usb/

Installazione di Grub-EFI:

$ sudo grub-install --target=x86_64-efi --efi-directory=/mnt/efi --boot-directory=/mnt/usb/boot --removable --recheck

Copiare il sistema nella seconda partizione:

$ sudo rsync -rv $HOME/debian_live/image/ /mnt/usb/live/

Creare il file grub.cfg ed incollare dentro:

$ sudo nano /mnt/usb/boot/grub/grub.cfg
set default="0"
set timeout=3

menuentry "Debian Custom Live" {
    linux /live/vmlinuz-4.9.0-4-amd64 boot=live persistence persistence-encryption=luks
    initrd /live/initrd.img-4.9.0-4-amd64
}

Creazione della partizione persistente criptata con LUKS:

$ sudo cryptsetup --verbose --verify-passphrase luksFormat /dev/sda3

rispondere YES

$ sudo cryptsetup luksOpen /dev/sda3 live
$ sudo mkfs.ext4 -L persistence /dev/mapper/live
$ sudo  mount /dev/mapper/live /mnt/usb
$ sudo su
# echo "/ union" > /mnt/usb/persistence.conf
# umount /mnt/usb/
# cryptsetup luksClose live
# umount /dev/sda*
# exit

sopra non abbiamo fatto altro che creare una cartella live che verrà montata in /dev/mapper/, ed aprire e chiudere la partizione persistente. Per accedere alla partizione da adesso in poi bisognerà digitare una password, dopodichè si potranno mettere i files importanti da portarsi dietro.

Creare una Debian Stretch Live Custom persistente Sicura

Creare una Debian Stretch Live Custom persistente Sicura

Perchè questa chiavetta è sicura?

  1. avviandola per prima cosa verrà chiesta la password per accedere al sistema
  2. il file system è in read only, quindi tutte le modifiche ed i files modificati verranno persi al riavvio.
  3. partizione persistente a cui non è possibile accedere senza password

Creare una Debian Stretch Live Custom persistente Sicura

enjoy πŸ˜‰

 

Installare VeraCrypt su Debian 9 Stretch

 

Installare VeraCrypt su Debian 9 Stretch

Installare VeraCrypt su Debian 9 Stretch

VeraCrypt è un software open-source di crittografia di hard disk, partizioni e chiavette usb. E' un fork del defunto TrueCrypt, che io gia usavo più di 10 anni fa. VeraCrypt è disponibile per Linux, Mac OS, Windows, DragonFly BSD e Android. Ha un ottima interfaccia, rispetto a zuluCrypt che si trova nei repository.

Installazione su Debian Stretch:

$ mkdir veracrypt
$ cd veracrypt
$ wget https://launchpad.net/veracrypt/trunk/1.19/+download/veracrypt-1.19-setup.tar.bz2
$ tar xjvf veracrypt-1.19-setup.tar.bz2
$ sudo ./veracrypt-1.19-setup-gui-x64

alla fine dell'installazione si è pronti a creare una chiavetta usb cryptata da utilizzare con qualsiasi OS.

enjoy πŸ˜‰

 

Nascondere un archivio in una foto usando cat

 

Questo è un piccolo trucchetto utile per "nascondere" un archivio in una foto. Per ottenere ciò bisogna ricorrere a cat:

 

$ cat foto_originale.jpg archivio_segreto.rar > foto_falsa.jpg

 

a questo punto l'archivio è all'interno di foto_falsa.jpg, adesso per visualizzare i files nell'archivio, basta cambiare l'estensione in  foto_falsa.rar  e decomprimere. Se invece si volesse nascondere un file di testo in una foto come veicolo per una comunicazione segretissima, allora si può sempre utilizzare la steganografia ed installare steghide, un ottimo metodo πŸ˜‰

 

enjoy πŸ˜‰

Svuotare un file di testo oppure un file audio/video

 

Ognuno di questo comando può farne quello che vuole, non so se è utile o chi potrà ma usarlo. in ogni caso serve a "svuotare" i file txt/mp3/avi, preservandone permessi ed estensioni. Nel caso dei video è facile far passare il tutto come una corruzione "accidentale" del file πŸ˜‰

 

$ > file.txt

 

enjoy πŸ˜‰

Exiftool su Debian Squeeze/Wheezy/Sid pacchetti Deb

 

Avevo già parlato in passato di Exiftool, uno strumento che serve ad estrarre tutti i dati exif da una foto. Nei repo ci sono sicuramente altri programmi per ottenere i dati exif, ma questo è quello che io uso da qualche anno ed ormai mi ci sono affezzionato. Nel mio repository si trovano i pacchetti pronti:

 

Download amd64

Download i386

 

enjoy πŸ˜‰

Inviare mail VIP (false) su Debian e Gnu/Linux

 

 

 

$ sudo apt-get install postfix mime-construct

$ cd /bin

$ sudo nano falsamail.sh

ed inserire:

# Invio di mail con account falsi
cat vittime.txt | { while read; do
  mime-construct --header 'Sender: sharon_stone@hollywood.com' --header 'From: sharon_stone@hollywood.com' --to $REPLY --subject 'I am going' --file testofalso.txt
  sleep 2
done
}

 

 

$ sudo chmod +x falsamail.sh

$ sudo nano vittime.txt

 

quindi inserire la mail della vittima. Poi inserire il testo da inviare all'interno di:

 

$ sudo nano testofalso.txt

:

inviare:

 

$ ./falsamail.sh

 

enjoy πŸ˜‰

Cryptare con Cryptkeeper Applet per Encfs

 

 

Due anni fa avevo fatto una guida su Encfs, e sul suo utilizzo, per la creazione di una cartella cryptata dove nascondere dati sensibili, foto e cellulari di amanti, il tutto per avere una vita più tranquilla e per pene. Chiaramente quella guida è ancora valida, ma con Cryptkeeper un applet Encfs per l'area di notifica di Gnome, tutto è reso ancora più semplice.

Requisiti:

# apt-get install encfs fuse-utils cryptkeeper

dopo l'installazione troviamo cryptkeeper nel menu Strumenti di Sistema, per non avere l'errore seguente:

aggiungiamo il nostro nome utente al gruppo fuse:

# adduser nome_utente fuse

verifichiamo:

# grep "fuse" "/etc/group"

dopo aver riavviato siamo pronti a lanciare Cryptkeeper, che troveremo sotto forma di chiave nel pannello di Gnome. Non serve nessuna spiegazione sul suo utilizzo, poichè il tutto è facilmente configurabile.

Ccrypt solo 2 comandi per cifrare/decifrare

 

 

Questo è un semplice metodo per cifrare/decifrare un file in 2 veloci e semplici comandi. Diverse volte o parlato di metodi differenti per cifrare un file, una cartella o un cd, quindi Ccrypt è un ulteriore metodo da integrare.

# apt-get install ccrypt

cifrare:

$ ccrypt nome_file

verrà chiesto di inserire una password, ed il file cifrato avrà l'estensione .cpt

decifrare:

$ ccrypt -d nome_file

Rintracciare laptop rubato con Gnu/Linux e Prey

 

 

Questo è un periodo di vacanze e di conseguenza è anche il periodo di furti e smarrimenti,  quindi mi sono messo subito alla ricerca di un sistema che mi permettesse in caso di bisogno di riuscire a ritrovare il mio netbook acer aspire one.  A questo punto bisogna fare certamente delle precisazioni poichè se il ladro è un geek e la prima cosa che fa è quella di formattare il pc è chiaro che di possibilità di ritrovarlo non ce ne sono, dato che il programma che sto per recensire risiede nell'hard disk e non nel bios. Ma volendo essere ottimisti e tenendo conto che la maggior parte dei ladruncoli non sono esperti ed è gente che frequenta il tuo stesso ambiente, non si sa mai che un giorno o l'altro ci si rincontri. Ma per poter agire bisogna sapere chi è, rintracciare il pc ed ottenere una sua foto, e a questo proposito vediamo come fare. Quello di cui abbiamo bisogno si chiama Prey ed è un programma rilasciato sotto licenza GPLv3, per Mac Linux e Windows, in grado di raccogliere informazioni da remoto sul pc rubato, come programmi in esecuzione, geo localizzazione wifi e soprattutto una bella foto di chi si trova davanti al pc, il tutto lavorando in background e cercando di connettersi alla prima rete disponibile.

Installazione e funzionamento:

Per Debian/Ubuntu esiste il .deb:

$ wget

una volta installato registrarsi sul sito per avere la Api Key ed aggiungere il device, per ottenere la Device Key, dopo avviare in Strumenti di Sistema > Prey Configurator ed inserire il tutto. A questo punto nella pagina http://control.preyproject.com/ si possono scegliere i parametri e soprattutto nel caso di smarrimento spuntare l'opzione missing per avviare i report.

Per altre distro:

$ wget

$ unzip prey-0.3.73-linux.zip

# mv prey /usr/share/

# nano /usr/share/prey/config

ed inserire le Key Api e Device:

aggiungere a crontab il controllo ogni 20 minuti:

$ (sudo crontab -l | grep -v prey; echo "*/20 * * * * /usr/share/prey/prey.sh > /dev/null") | sudo crontab -

per verificare:

$ sudo crontab -l

$ ps aux | grep cron

per modificare:

$ sudo crontab -e

c'è anche la possibilità dell'invio  via mail degli avvisi, basta inserire il proprio account e password, bisogna fare attenzione che l'inserimento della password è in chiaro, per ovviare al problema e criptarla:

$ echo -n "password_mail" | openssl enc -base64

per modificare i parametri della webcam il file si trova in /usr/share/prey/modules/webcam/config

ho fatto diverse prove e devo dire che tutto sommato non è niente male, i vari parametri ci sono tutti per un eventuale rintracciamento, ma la speranza è che le foto vengono abbastanza nitide per riconoscere il furfante e fargli un bel discorsetto. Io ne ho beccato uno….ma ho l'impressione che sarà dura fargli quel discorso che avevo in mente  πŸ™‚