Pen drive con Debian Buster Live Custom Persistente Criptata

Pen drive con Debian Buster Live Custom Persistente CriptataPen drive con Debian Buster Live Custom Persistente Criptata

Guida su come creare una chiavetta usb, equipaggiata con Debian Buster, in  modalità Live, con partizione persistente, e boot in  UEFI mode. L’obiettivo è quello di avere una usb bootable con i propri tools preferiti, e che ci permette di navigare in internet in piena sicurezza senza rinunciare ad una partizione dove poter stipare tutti i dati sensibili. Per cifrare la partizione persistente userò LUKS. Tutti i comandi verranno eseguiti come root, con il comando ” su  – ” per non avere errori simili a questo:

Pacchetti da installare:

# su -
# apt install fuse libfuse-dev libicu-dev bzip2 libbz2-dev cmake clang git libattr1-dev zlib1g-dev libfuse3-dev debootstrap squashfs-tools rsync

Creazione Environment:

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

Installazione kernel:

# apt-cache search linux-image
# apt install -y linux-image-4.19.0-6-amd64 linux-headers-4.19.0-6-amd64

Installazione dei pacchetti personalizzati (nel mio caso quelli sotto)

# apt install -y mate-desktop-environment-extra 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 encfs wireshark-gtk aircrack-ng nmap zenmap

a questo punto abbiamo bisogno di installare la versione di cryptsetup 2:2.2.1-1  presente nei repo testing, per evitare il problema di cui sotto:

cryptsetup: WARNING: The initramfs image may not contain cryptsetup binaries
nor crypto modules. If that's on purpose, you may want to uninstall the
'cryptsetup-initramfs' package in order to disable the cryptsetup initramfs

Aggiungere i repo testing ed installare cryptsetup:

# echo 'deb http://ftp.it.debian.org/debian/ testing main contrib non-free' > /etc/apt/sources.list
# apt update
# apt install -t testing cryptsetup
# apt clean

Reinserire i repo stable:

# echo 'deb http://ftp.it.debian.org/debian/ buster main contrib non-free' > /etc/apt/sources.list
# apt update

Aggiungere utenti e password:

# passwd root
# adduser nome_utente
# exit

Comprimere il tutto in uno squash filesystem:

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

Copiare kernel e initramfs fuori chroot:

# cp $HOME/debian_live/chroot/boot/vmlinuz-4.19.0-6-amd64 $HOME/debian_live/image/vmlinuz-4.19.0-6-amd64
# cp $HOME/debian_live/chroot/boot/initrd.img-4.19.0-6-amd64 $HOME/debian_live/image/initrd.img-4.19.0-6-amd64

Preparazione chiavetta usb: (nel mio caso /dev/sdb di 16G). Negli steps 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
# fdisk -l
# umount /dev/sdb*
# dd count=1 bs=512 if=/dev/zero of=/dev/sdb
# parted -s -- /dev/sdb mktable gpt mkpart efi 1 100M set 1 boot on
# parted -s -- /dev/sdb mkpart system 100 2G
# parted -s -- /dev/sdb mkpart persistence 2G 16G
# mkdir -p /mnt/{usb,efi,persistence}
# mkfs.fat -F32 -n EFI /dev/sdb1
# mkfs.fat -F32 -n SYSTEM /dev/sdb2
# mkfs.ext4 -L persistence /dev/sdb3

Montaggio delle partizioni EFI e di Sistema:

# mount /dev/sdb1 /mnt/efi/
# mount /dev/sdb2 /mnt/usb/

Installazione di Grub-EFI:

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

Copiare il sistema nella seconda partizione:

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

Creare il file grub.cfg:

# nano /mnt/usb/boot/grub/grub.cfg

ed incollare dentro:

set default="0"
set timeout=3
menuentry "Debian Custom Live" {
linux /live/vmlinuz-4.19.0-6-amd64 boot=live persistence persistence-encryption=luks
initrd /live/initrd.img-4.19.0-6-amd64
}

Creazione della partizione persistente criptata con LUKS:

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3

rispondere YES e creare la password:

# cryptsetup luksOpen /dev/sdb3 live
# mkfs.ext4 -L persistence /dev/mapper/live
# mount /dev/mapper/live /mnt/usb
# echo "/ union" > /mnt/usb/persistence.conf
# umount /mnt/usb/
# cryptsetup luksClose live
# umount /dev/sdb*
# 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 al boot, dopodichè si potranno mettere i files importanti da portarsi dietro. Al primo avvio dare i comandi:

# apt update
# apt upgrade
# apt install -f

Pen drive con Debian Buster Live Custom Persistente Criptata

enjoy 😉

 

(Sicurezza) Bloccare porte usb

 

Questo è un piccolo trucchetto che serve a bloccare le porte usb. Immaginando uno scenario dove ci sono tante persone e ci si deve assentare lasciando il pc acceso, può succedere che qualche malintenzionato, approfittando della nostra assenza, inserisca una chiavetta usb,un ipod, un hard disk esterno ecc ecc, per copiare un file che per noi è importante. Per ovviare a questa situazione c'è un metodo veloce veloce:

 

# nano /etc/modprobe.d/blacklist.conf

 

ed inserire:

 

# Blocco accesso USB.
blacklist usb_storage

 

quindi riavviare. A questo punto chiunque inserirà una usb, non riuscirà ad utilizzarla. Per tornare ad una situazione di "normalità" basta commentare la stringa #blacklist usb_storage, e si potranno utilizzare le porte usb immediatamente.

 

enjoy 😉

Login e autenticazione da penna Usb in Linux

 

 

 

Qualche tempo fa ho fatto una guida intitolata Login e autenticazione facciale in Linux, dove avevo sperimentato sul mio netbook Aspire One, l'uso della webcam come ulteriore strumento di sicurezza, sia in fase di login che in fase di amministrazione, e devo dire che ha funzionato bene, tanto è vero che lo utilizzo ancora. Oggi invece voglio fare la stessa guida,  con la differenza che al posto della webcam si usa una chiavetta usb, in questo modo anche chi non ha la webcam o non vuole usarla, ha un modo alternativo per sperimentare. Anche questa volta utilizzerò PAM che ci aiuterà nell'impresa, per la felicità di Toshidex che di PAM ha fatto una categoria sul suo blog 🙂

Requisiti:

$ sudo apt-get install pmount pamusb-tools libpam-usb

inserire la chiavetta usb, anche se contiene altri dati non ha importanza, nulla sarà perso, ed aggiungere il device con il nome scelto (nel mio caso usb-security) a /etc/pamusb.conf con il seguente comando:

$ sudo pamusb-conf --add-device usb-security

come si può vedere sotto la chiavetta è stata subito riconosciuta:

root@debian:/home/edmond# pamusb-conf –add-device usb-security
Please select the device you wish to add.
* Using "Sony Storage Media (Sony_Storage_Media_OE07042910585-0:0)" (only option)

Which volume would you like to use for storing data ?
* Using "/dev/sdg1 (UUID: 3FB2-8744)" (only option)

Name        : usb-security
Vendor        : Sony
Model        : Storage Media
Serial        : Sony_Storage_Media_OE07042910585-0:0
UUID        : 3FB2-8744

Save to /etc/pamusb.conf ?
[Y/n]
Done.

aggiungere anche l'utente a /etc/pamusb.conf:

$ sudo pamusb-conf --add-user edmond

quindi come si può vedere sotto, abbiamo collegato l'utente al device:

root@debian:/home/edmond# pamusb-conf –add-user edmond
Which device would you like to use for authentication ?
* Using "usb-security" (only option)

User        : edmond
Device        : usb-security

Save to /etc/pamusb.conf ?
[Y/n]
Done.

adesso non ci rimane altro che modificare il file /etc/pam.d/common-auth, per far sì che possa utilizzare la nostra password di sistema.

Importante:

consiglio di tenere due shell aperte come root, nel caso qualcosa andasse storto, cosicchè si possa tornare alla configurazione normale del file /etc/pam.d/common-auth.

quindi:

$ sudo nano /etc/pam.d/common-auth

la configurazione deve essere la seguente:

#auth    [success=1 default=ignore]      pam_unix.so nullok_secure
auth   required      pam_unix.so nullok_secure
auth    sufficient      pam_usb.so
 

per tornare alla situazione normale invece:

auth    [success=1 default=ignore]      pam_unix.so nullok_secure
#auth   required      pam_unix.so nullok_secure
#auth    sufficient      pam_usb.so
 

se tutto è andato bene, da questo momento in poi l'autenticazione al login e come amministratore di sistema può avvenire solo con la chiavetta inserita. A questo proposito si possono fare delle prove aprendo il terminale per acquisire i privilegi di root e verificare se tutto funziona:

$ su edmond

 

 

enjoy 🙂

 

Boot da usb senza supporto del Bios

 

 

Uno dei miei pc non ha il supporto per il boot da usb, ed allora mi sono chiesto come fare ad ovviare a questo problema, anche perchè è molto più comodo fare delle installazioni da chiavetta usb, che non ogni volta bruciare un cd/dvd. A questo proposito ho trovato in rete proprio quello che fa al caso mio, e cioè PLoP Boot Manager. Il suo utilizzo è veramente semplice

Scaricare PLoP Boot Manager

scompattarlo, entrare nella cartella e masterizzare il file plpbt.iso. Adesso basta inserire il cd masterizzato, settare il boot da cdrom, e inserire la chiavetta usb, una volta riavviato il pc, PLoP si occuperà di mostrarci un menu di avvio, compresa la famosa voce usb. Veramente un ottimo tool.

enjoy 😉

USB 3.0 e Linux una scheggia

 

Oggi sono andato alla fiera dell'elettronica di Busto Arsizio (VA), per curiosare e vedere se ci fossero delle novità o qualcosa che attirasse la mia attenzione. Io queste fiere le seguo sempre, di solito frequento anche quelle di Erba (CO) Novegro (MI) e Cremona. Comunque curiosando di quà e di là ho acquistato qualcosa, alla fine me la sono cavata fortunatamente con una spesa di circa 120€ in totale. Il pezzo pregiato dei miei acquisti è stata una pen drive da 16g con standard USB 3.0 al prezzo di 39€, mentre quella USB 2.0 costava 26€. Una volta arrivato a casa mi sono messo subito a testarla, ed a questo proposito, bisogna ricordare che Linux per primo ha il supporto nativo per questo standard, fin dal kernel 2.6.31. Comunque per far capire la velocità di questo standard ho fatto una prova sul mio pc che ha come hub:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Per prima cosa ho formattato la pen drive con dd, dato che gparted non riusciva a formattarla:

$ dd if=/dev/zero of=/dev/sdX

Test:

copia di un file video di 1g su una pen drive Sony da 2g:

Bus 001 Device 015: ID 054c:0243 Sony Corp. MicroVault Flash Drive

Risultato:

real    5m29.500s
user    0m0.008s
sys    0m2.512s

copia dello stesso file su ADATA Nobility Series N005 USB 3.0:

Bus 001 Device 016: ID 125f:105a A-DATA Technology Co., Ltd.

Risultato:

real    0m42.896s
user    0m0.024s
sys    0m2.740s

il risultato direi che è ottimo…una scheggia 🙂
 

Duplicare chiave usb

 

A volte può essere utile duplicare una chiave usb blocco per blocco, basti pensare ad una chiavetta con dentro una distro live e che vogliamo per vari motivi trasferirla su di un' altra chiavetta. A questo proposito ci viene in aiuto il comando " dd ":

smontare chiave usb:

# sudo umount dev/sdg1

sdg1 si riferisce alla mia chiavetta.

duplicare la chiave in un file:

$ dd if=/dev/sdg1 | gzip -9 | dd of=/home/edmond/Desktop/backup.gz bs=1024k

oppure l'operazione inversa, da un file verso la chiavetta:

$ zcat /home/edmond/Desktop/backup.gz | dd of=/dev/sdg1 bs=1024k

oppure direttamente da chiavetta a chiavetta:

$ dd if=/dev/sdg1 of=/dev/sdh1 bs=1024k

Mount penna usb senza togliere-reinserire

 

 

A volte quando ci si trova ad usare una penna usb, con programmi come gparted o altri, si crea quella situazione in cui per poter riutilizzarla nuovamente, bisogna toglierla e reinserirla. Per ovviare a questo problema di seguito espongo un tip & trick.

La mia penna è vista come sdg, quindi:

$ eject /dev/sdg; sleep 1; eject -t /dev/sdg

 

Usb wireless WG111v3 e Linux

 

Io possiedo un paio di chiavette wireless tra cui una WG111v3 Netgear, e come spesso succede nel mondo Linux non esistono driver. Quindi per farla funzionare bisogna rivolgersi a ndiswrapper ed usare i driver di windows scaricabili da qua.

apt-get install ndiswrapper-utils-1.9

 

dopodichè scompattare e  portarsi nella cartella wg111 ed installare i driver

 ndiswrapper -i WG111v3.inf

 a questo punto basta caricare il modulo

modprobe ndiswrapper

controlliamo con

ndiswrapper -l

ed otterremo qualcosa di simile

DebianBox:/home/edmond# ndiswrapper -l
wg111v3 : driver installed
device (0846:4260) present

nel caso ci trovassimo di fronte ad un errore simile

FATAL: Module ndiswrapper not found.

possiamo risolvere il problema con module-assistant

apt-get install module-assistant ndiswrapper-source

compiliamo i moduli di ndiswrapper

m-a a-i ndiswrapper

ricarichiamo il modulo

modprobe ndiswrapper

adesso tutto dovrebbe funzionare.

 

Super Grub Disk su penna usb

 

Super Grub Disk come si sa è utilissimo, è uno di quei tool che dovrebbe essere sempre ha portata di mano, poichè prima o poi capita di doverlo usare, evitando così la procedura manuale. E' disponibile come immagine iso, floppy ed usb. Può essere molto comodo tenerlo in una chiavetta usb per diversi motivi, in primis per comodità, dato che ha differenza dei cd, che ognuno di noi possiede in gran numero, e li tiene infognati in ogni dove, di penne usb al max se ne possiede 2, 3, 4 , quindi sono sempre facili da trovare. Un altro buon motivo, è dato dal fatto che, installando SGD su una penna usb, questa può essere usata lo stesso per conservarne i dati, basta non toccare l'unica cartella di nome boot, che tra l'altro è di 1mb. Si puo scaricare da questa questa pagina anche in italiano. L'installazione è semplice, e si esegue in pochi passi.

Una volta scaricato super_grub_disk_italiano_usb_0.9673.tar.bz2, scompattarlo, e la cartella boot, copiarla sulla penna:

 

cp -r boot /media/disk

dove disk è la nosta penna. Smontare la penna, ed assicurarsi che ciò sia avvenuto per davvero, altrimenti non funziona.

 

umount /dev/sdg1 nel mio caso

Da root digitare

 

grub

adesso vediamo come grub identifica la nostra penna. Aiutandoci con il tasto tab.

 

grub> geometry (hd

grub> geometry (hd Possible disks are: hd0 hd1 hd2

grub> geometry (hd2)

drive 0x82: C/H/S = 31/255/63, The number of sectors = 501759, /dev/sdg Partition num: 0, Filesystem type is fat, partition type 0x6

Quindi si nota che il dispositivo è hd2 ed è identificato anche come /dev/sdg. Quindi:

device (hd2) /dev/sdg

root (hd2,0)

setup (hd2)

quit

exit

sync
 

 Riavviamo e ci assicuriamo che il pc sia settato per fare il boot da usb.