Voglia di Linux

avventure e soddisfazioni usando software libero

Verificare manomissione MBR e partizione /boot

Questo è per i paranoici o per chi ha veramente bisogno di essere sicuro che nessuna ha manipolato (per esempio installando un keylogger) la partizione di /boot o il MBR (avendo accesso fisico alla macchina) e ha già tutto il disco criptato. Il primo script crea i due checksum per il MBR e della partizione /boot.

Per sicurezza la partizione /boot non dovrebbe essere anche mai montato all’avvio ma solo quando si aggiorna il kernel.

Ovviamente va eseguito nuovamente dopo ogni aggiornamento dei kernel. Sostituire il nome del utente in entrambi e eseguire il primo da root o con sudo.

##Boot_Integrity_Update.sh

#Controllo filesystem di /boot

umount /boot
e2fsck /dev/sda1

# creazione della directory per gli  shasums 

mkdir -p /home/utente/.boot_integrity

# creazione di immagine del settore boot 

dd if=/dev/sda of=/home/utente/.boot_integrity/bootsectorimage bs=512 count=1

#salva shasum del settore boot in ~/.boot_integrity

shasum /home/utente/.boot_integrity/bootsectorimage > /home/utente/.boot_integrity/bootsector

#pulizia
rm /home/utente/.boot_integrity/bootsectorimage

#salva shasum della partizione boot   in ~/.boot_integrity

shasum /dev/sda1 > /home/utente/.boot_integrity/bootpartition

Il secondo script paragona i valori salvati in precedenza con quelli attuali. Ogni modifica dell’initramd o del kernel o altre modifiche fatte in /boot o nel MBR vengono segnalati con un avviso.

#! /bin/bash

xmessage -c -timeout 2 "Controllo modifiche file di boot.."

# creazione hash   512 B boot sector

mkdir -p /tmp/booted

dd if=/dev/sda of=/tmp/booted/bootsectorimage bs=512 count=1

shasum /tmp/booted/bootsectorimage > /tmp/booted/bootsector

rm /tmp/booted/bootsectorimage

# creazione hash per partizione  /boot 

shasum /dev/sda1 > /tmp/booted/bootpartition

# Imposta variabili per i  hash

SECTORIMAGE=$(head -c 32 /tmp/booted/bootsector)
PARTITION=$(head -c 32 /tmp/booted/bootpartition)

# Imposta variabili per hash "buoni"

KNOWNSECTORIMAGE=$(head -c 32 /home/utente/.boot_integrity/bootsector)

KNOWNPARTITION=$(head -c 32 /home/utente/.boot_integrity/bootpartition)

# Paragona i hash

if test $SECTORIMAGE != $KNOWNSECTORIMAGE ; then

xmessage -c “WARNING-BOOT SECTOR HASH MISMATCH-a password logger may be present in boot loader “

else

xmessage -c -timeout 2 "MBR SECTOR CHECK OK"

fi

if test $PARTITION != $KNOWNPARTITION;

then

xmessage -c "WARNING-BOOT PARTITION HASH MISMATCH-a password logger may be present in bootloader stages, kernel or initramfs"

else

xmessage -c -timeout 2 "PARTZIONE BOOT CHECK OK"

fi

exit 0 

[da qui]


ste

07 aprile 2014


Potenziare la ricerca nella history di bash

Per chi usa spesso il terminale volendo riusare comandi già dati è frequente. Il primo passo è usare la freccia insù che ripassa una dopo l’altro, il secondo magari usare comandi tipo

history |grep mount

il terzo usare cltr+r e digitare qualche lettera ma il massimo forse è la BASH History Suggest Box, comando: hh.

hh

Si installa su arch da AUR, su *ubuntu inserendo il ppa (di solo questo software quindi senza rischi)

sudo add-apt-repository ppa:ultradvorka/ppa
sudo apt-get update
sudo apt-get install hh

Digitare per filtrare, sù/giù per selezionare, TAB per usare/modificare il comando selezionato o invio per ridarlo direttamente, Canc per toglierlo dalla history.

Per usare ctrl+r per attivare hh basta modificare :

hh –show-configuration >> ~/.bashrc

Questo aumenta tra altro anche da 500 a 10’000 le voci memorizzate.


ste

04 aprile 2014


Passare da Photoshop a Gimp

Per chi è abituato a photoshop e le sue scorciatoie e modo di fare: un bel tutorial come rendere facile il passaggio.


ste

27 marzo 2014


error: no video mode activated

Installando ubuntu 12.04 criptando* tutto il disco (esclusa partizione per /boot separata) all’avvio si ottiene per un attimo questo errore di grub in quanto non può accedere ai font in /usr/share/grub.

Per rimediare basta copiare i font in /boot/grub

sudo cp /usr/share/grub/*.pf2 /boot/grub
sudo update-grub

[Fonte]

*va fatto da cd alternate


ste

19 febbraio 2014


Archlinux su disco criptato con LVM

Visto che su ubuntu diventa la prima opzione ho installato (veramente ho installato prima su virtualbox poi dopo in verità ho solo migrato il mio sistema esistente, copiando le partizioni da un backup su usb).

Prepariamo il disco:

Deve contenere due partizioni: una per /boot in ext2 di circa 200mb (io ci ho salvato anche una .iso di arch per poter avviare una live senza usare la chiavetta o cd e per questo ho usato 800mb) e una partizione in lvm2 che conterrà i volumi logici del sistema. Se si usa cfdisk durante l’installazione bisogna scegliere “tipo: 8E LINUX LVM”.

Fatto questo avviamo l’iso di arch.

loadkeys it
modprobe dm-crypt
cryptsetup -c aes-xts-plain64 -y -s 512 luksFormat /dev/sda2

WARNING!
========
Ciò sovrascriverà i dati in /dev/sda2 in modo irreversibile.

Are you sure? (Type uppercase yes):

Ecco: a questo punto dobbiamo dare YES e non Y altrimenti otteniamo un Comando non riuscito con codice 22: Argomento non valido
Creiamo il passwd e andiamo avanti, creando i volumi logici (occhio al maiuscolo e minuscolo l/L:

cryptsetup luksOpen /dev/sda2 lvm
pvcreate /dev/mapper/lvm
vgcreate main /dev/mapper/lvm
lvcreate -L 15GB -n root main
lvcreate -L 4GB -n -C y swap main
lvcreate -l 100%FREE -n home main

Volendo possiamo anche creare un volume per /var ecc o lasciare spazio per allargare le partizioni.
Formattiamo, settiamo lo spazio riservato e montiamo:

mkswap /dev/mapper/main-swap
mkfs.ext4 /dev/mapper/main-root
mkfs.ext4 /dev/mapper/main-home
tune2fs -m 0 /dev/mapper/main-home
tune2fs -m 1 /dev/mapper/main-root
mkfs.ext2 /dev/sda1

mount /dev/mapper/main-root /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
mkdir /mnt/home
mount /dev/mapper/main-home /mnt/home
swapon /dev/mapper/main-swap

Scegliamo i mirror più veloci (cancellando le rige non volute con cltr+k) altrimenti dura un secolo e installiamo:

nano /etc/pacman.d/mirrorlist
pacstrap /mnt base base-devel
pacstrap /mnt grub-bios
genfstab -p -U /mnt > /mnt/etc/fstab

arch-chroot /mnt /bin/bash

nano /etc/locale.gen
{togliamo il cancelletto alla lingua voluta, esempio it_IT.UTF-8 UTF-8 }
locale-gen
echo LANG=it_IT.UTF-8 > /etc/locale.conf
export LANG=it_IT.UTF-8

nano /etc/vconsole.conf

KEYMAP=it
FONT=Lat2-Terminus16
FONT_MAP=8859-1

ln -s /usr/share/zoneinfo/Europe/Rome /etc/localtime
echo nomehost-che-vuoi > /etc/hostname

Editiamo mkinitcpio.conf in questo modo, è molto importante la corretta sequenza di “…block keyboard encrypt lvm2 filesystems…”

nano /etc/mkinitcpio.conf
….
HOOKS=”consolefont base udev autodetect modconf block keyboard encrypt lvm2 filesystems keyboard fsck resume”
….

resume serve solo se vogliamo usare l’ibernazione.

Settiamo i parametri per il kernel e grub (verificare per l’eventuale ibernazione che dm-2 è corretto per la swap; se non si usa non inserire “resume=”):

nano /etc/default/grub


GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_CMDLINE_LINUX_DEFAULT=”quiet cryptdevice=/dev/sda2:main resume=/dev/dm-2″
GRUB_HIDDEN_TIMEOUT=1
#GRUB_HIDDEN_TIMEOUT_QUIET=true
….

grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux
grub-install /dev/sda
passwd root
exit
mount – r/mnt/
reboot

E voilà la richiesta del password per aprire sda2 subito dopo grub.

passwd
Dopo si continua l’installazione con la normale scelta del Desktop, xorg, dei driver, alsa-utils, creazione degli utenti come al solito.

A parte il solito backup conviene anche salvare il header della partizione in un posto sicuro su un altro disco:

cryptsetup luksHeaderBackup /dev/sda2 –header-backup-file ~/header.backup

Per la guida mi sono appoggiata e ispirata molto da questa qui, che avevo seguito per i test.


ste

12 febbraio 2014


Eseguire uno script ad ogni login

Per vari motivi potrebbe essere necessario eseguire uno script dopo il login grafico. Il luogo perfetto per i nostri script è una directory “bin” nella nostra home, in quanto la shell la includedi default in molte distribuzioni linux nel $PATH.

nano ~/bin/nome.script

inseriamo

#!/bin/bash
comando-da-eseguire

e rendiamolo eseguibile da tasto destro → proprietà o con

chmod a+x ~/bin/nome.script

Adesso basta inserirlo nell’avvio automatico”. Per KDE aprire le impostazioni di sistema, avvio e spegnimento, aggiungi script e inserire il percorso cliccando sul iconcina di dolphin:
avvio-automatico

In Ubuntu/unity si trova cliccando la rotellina in cima a destra, “applicazioni di avvio”:
unity-autostart

In XFCE aprire dal menu la voce “Impostazioni” -> “Gestore delle impostazioni” e selezionare in “Sessione e avvio” la scheda “Avvio automatico”e premere in fondo il pulsante “aggiungi”.

LXDE: Inserire direttamente il comando da eseguire all’avvio in ~/.config/lxsession/LXDE/autostart


ste

11 gennaio 2014


Sostituire caratteri dei tasti

A volte sia perché è rotto fisicamente un tasto, sia perché la mappatura non lo identifica correttamente potrebbe essere necessario di imporre un carattere diverso, rimappare uno o più tasti soli. Lanciamo da terminale

xev

che ci apre una piccola finestra bianca, che dobbiamo lasciare a fuoco, mentre premiamo i due tasti che vogliamo scambiare. Esempio vogliamo mettere la d sul tasto ò/ç, nel terminale viene stampato (ci interessa solo le voci con KeyPress:

KeyPress event, serial 36, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68514751, (938,793), root:(1416,1016),
state 0×0, keycode 40 (keysym 0×64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XmbLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68514887, (938,793), root:(1416,1016),
state 0×0, keycode 40 (keysym 0×64, d), same_screen YES,
XLookupString gives 1 bytes: (64) “d”
XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68519295, (938,793), root:(1416,1016),
state 0×1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XmbLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x7c00001,
root 0x7c, subw 0×0, time 68519383, (938,793), root:(1416,1016),
state 0×1, keycode 47 (keysym 0xe7, ccedilla), same_screen YES,
XLookupString gives 2 bytes: (c3 a7) “ç”
XFilterEvent returns: False

Ora sappiamo il keycode di d (40) e il keycode di ò/ç, 47:
keycode 40 (keysym 0×64, d)
keycode 47 (keysym 0xe7, ccedilla)keycode 47 (keysym 0xe7, ccedilla)

Basta dare

xmodmap -e ‘keycode 47 = d’

Ovviamente questo funziona solo per la sessione attuale, se vogliamo che sia perenne basta creare uno script in avvio automatico.