GnuPG dalla riga di comando


GPG è un programma per cifrare i messaggi di posta elettronica utilizzando una coppia di chiavi (pubblica e privata) generate dall’utente.

Sappiamo a cosa serve il programma GnuPG: il programma d’eccellenza per cifrare file su Linux. È molto semplice da usare anche dalla riga di comando, ad esempio all’interno di script per Bash.

Per criptare un file

gpg -c filedacrittare

Per decifrare un file precedentemente cifrato

gpg -o file_decifrato -d esempio.gpg

dove -o indica quale file verrà generato dopo la decifrazione, altrimenti il risultato viene soltanto visualizzato sul terminale comandi.

Per generare le chiavi, l’algoritmo predefinito è DSA/ElGamal

gpg -gen-key

questa funzione torna utile per esempio quando si deve impostare l’accesso SSH tra due sistemi senza dover inserire ogni volta la password.

Per esportare la chiave pubblica

gpg -export -a UID > pub.key

Per eseguire il backup della chiave privata

gpg -export-secret-key -a UID > priv.key

Per cifrare un file per il destinatario che possiede la chiave pubblica oppure per noi stessi

gpg -ear 0disse0 filediesempio

dove l’opzione -e indica che vogliamo cifrare, -a per impostare il formato file ASCII 7 bit e -r per cifrare per l’utente. L’opzione -c restituisce invece un file in formato binario.

Quando il file è giunto a destinazione si dovrà impartire

gpg -o filedadecifrare -d risultato.asc

Per importare una chiave pubblica nel proprio “portachiavi”

gpg -import public.key

Per importare la chiave da un repository pubblico (su Internet)

curl -s http://keyserver.ubuntu.com:11371/ciccopalla/pubkey.asc | gpg --import

ipotizzando nell’esempio che si voglia importare la chiave di “cicciopalla”.

Annunci

Menù contestuale per GnuPG


In questo momento sto testando la versione 9.10 di Ubuntu, in attesa di Lucid. Nella 9.04 trovavo comodo il menù contestuale (click-tasto-destro per capirsi) che permetteva di decifrare un file PGP.

Nella 9.10 non c’è di default questa funzione, ecco come attivarla:

  • entrare in Ubuntu Software Center e cercare “GnuPG”
  • selezionare il pacchetto “Decifra file”

Alias della scheda di rete


ALIAS SCHEDE DI RETE

In certi casi è comodo assegnare un secondo indirizzo IP (o anche più di uno) ad una singola scheda di rete..

Su Ubuntu il comando è il seguente
sudo ifconfig ethX:ALIAS 1.2.3.4 netmask 255.255.255.0 up
ethX è l’interfaccia da configurare, ad esempio eth0 mentre ALIAS è il nome che intendiamo dare alla nostra seconda scheda “virtuale”.
1.2.3.4 rappresenta l’indirizzo IP che intendiamo assegnare, segue la subnetmask.

Le modifiche fatte in questo modo sono temporanee. Per rendere permanente una modifica è necessario modificare il file con le definizioni delle interfacce /etc/network/interfaces (agendo al solito con i privilegi di root). Il contenuto di questo file di solito è simile a quello che riporto come esempio

auto eth0
iface eth0 inet static
address 192.168.112.13
netmask 255.255.255.0
gateway 192.168.112.1
auto eth0:COMANDO
iface eth0:COMANDO inet static
address 112.113.114.115
netmask 255.255.255.240
auto eth0:STAZIONE
iface eth0:STAZIONE inet static
address 110.114.115.116
netmask 255.255.255.0
Ogni modifica a questo file deve essere convalidata dal riavvio del servizio di rete
sudo /etc/init.d/networking restart
Alla fine del file di configurazione “interfaces” puoi anche aggiungere una riga per memorizzare le route specifiche per ciascuna scheda, ad esempio

auto eth0
iface eth0 inet static
address 192.168.1.42
network 192.168.1.0
netmask 255.255.255.128
broadcast 192.168.1.0
up route add -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2
up route add default gw 192.168.1.200
down route del default gw 192.168.1.200
down route del -net 192.168.1.128 netmask 255.255.255.128 gw 192.168.1.2

Usare il comando ‘watch’


Un esempio dell’uso del comando watch

watch -d 'ls -l'

Per evidenziare la differenza tra due periodi

watch 'cat /proc/loadavg'

Per monitorare invece l’uso della memoria, possiamo usare

watch vmstat -sSM

Per vedere la frequenza della memoria RAM, scriveremo

(1) /usr/sbin/dmidecode | grep -i "current speed"

oppure

(2) dmidecode -t 17 | awk -F":" '/Speed/ { print $2 }'

Il comando seguente, invece, ci darà la percentuale di utilizzo della memoria, per uno specifico processo

TOTAL_RAM=`free | head -n 2 | tail -n 1 | awk '{ print $2 }'`; PROC_RSS=`ps axo rss,comm | grep [h]ttpd | awk '{ TOTAL += $1 } END { print TOTAL }'`; PROC_PCT=`echo "scale=4; ( $PROC_RSS/$TOTAL_RAM ) * 100" | bc`; echo "RAM Used by HTTP: $PROC_PCT%"

Basta cambiare il nome del processo, secondo le esigenze. Invece, per determinare l’uso della memoria, in base al PID

pmap -d [pid]