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”.

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”

Abilitare l’auto-snapshot su Juniper EX2200 con Junos 12.3


A seguito di uno spegnimento improvviso di alcuni switch Juniper EX2200 ho trovato, accedendo in SSH, questo messaggio di errore …

— JUNOS 12.3R4.6 built 2013-09-13 02:38:59 UTC

***********************************************************************
** **
** WARNING: THIS DEVICE HAS BOOTED FROM THE BACKUP JUNOS IMAGE **
** **
** It is possible that the primary copy of JUNOS failed to boot up **
** properly, and so this device has booted from the backup copy. **
** **
** Please re-install JUNOS to recover the primary copy in case **
** it has been corrupted and if auto-snapshot feature is not **
** enabled. **
** **
***********************************************************************

Cercando su Google non si trovano molte informazioni. Con quelle trovate, tanta fantasia e tanta intuizione (come sono modesto !!!) ho trovato un modo per risolvere il problema:

root@01-SalaServer-RackA:RE:0% cli
{master:0}
root@01-SalaServer-RackA> configure
Entering configuration mode

{master:0}[edit]
root@01-SalaServer-RackA# set system auto-snapshot

{master:0}[edit]

root@01-SalaServer-RackA# commit
configuration check succeeds
commit complete

{master:0}[edit]

root@01-SalaServer-RackA# exit
Exiting configuration mode

{master:0}

A questo punto abbiamo configurato l’auto-snapshot. In pratica lo switch (che dispone di due locazioni -una principale ed una alternativa che funziona in caso di malfunzionamento della principale-) si auto ripara.
Per verificare il funzionamento:

root@01-SalaServer-RackA> show system auto-snapshot
Auto-snapshot Configuration: Enabled
Auto-snapshot State: In-progress
Note: Snapshot takes about 10-15 mins depending upon disk size

{master:0}

Per verificare la partizione dalla quale partirà lo switch:

root@01-SalaServer-RackA:RE:0% cli
{master:0}
root@01-SalaServer-RackA> show system storage partitions
fpc0:
————————————————————————–
Boot Media: internal (da0)
Active Partition: da0s1a
Backup Partition: da0s2a
Currently booted from: backup (da0s2a)

Partitions information:
Partition Size Mountpoint
s1a 183M altroot
s2a 184M /
s3d 369M /var/tmp
s3e 123M /var
s4d 62M /config

{master:0}

Nel caso in esame lo switch parte dalla partizione di backup (da0s2a)

Bloccare un sito web con Squid


Spesso e volentieri all’interno di una organizzazione aziendale può sorgere l’esigenza di bloccare l’acceso al web per una determinata macchina. Ciò mentre il resto della rete aziendale deve essere libera di continuare a navigare regolarmente.

Mettiamo il caso che occorre bloccare l’accesso a tutti i siti web per l’indirizzo 10.0.0.10 e lasciare lo stesso indirizzo IP libero di andare su Facebook. Per fare ciò basta fare una piccola modifica al file squid.conf

acl allowed_ip src 10.0.0.10
acl allowed_ip_site dstdomain .facebook.com

http_access deny allowed_ip !allowed_ip_site
(da inserire sotto “http_access deny manager”)

Ovviamente il resto della configurazione può rimanere tale e quale.
In questo modo tutti potranno navigare liberamente tranne l’IP 10.0.0.10 che potrà andare solo su Facebook …

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

Importare un file LDIF


Ok, avete fatto il backup di un server LDAP Linux (OpenLdap) usando “slapcat”.

Ora dovete importarlo sul nuovo server … Come fare ? Semplice !

Stoppate il servizio LDAP e importate il file .ldif con il comando:

slapadd -v < /root/backup_utenti.ldif

Come migrare un PDC Samba basato su LDAP da una macchina vecchia ad una macchina nuova


Date 2 macchine:

MACCHINA A = vecchio PDC Samba
MACCHINA B = nuovo (e futuro) PDC Samba

Stoppare i servizi SMB, NMB, LDAP (RHEL/CentOS)

Copiare i files di configurazione di Samba (smb.conf), LDAP (ldap.conf e slapd.conf) e SMBLDAP-TOOLS (smbldap_bind.conf e smblad.conf) dalla “MACCHINA A” alla “MACCHINA B

A = net getlocal sid
B = net setlocal sid
copiare il SID della vecchia macchina sulla nuova

A = net getdomain sid
B = net setdomain sid
copiare il SID della vecchia macchina sulla nuova

A = slapcat > /root/users.ldif
B = slapadd -l /root/users.ldif

B =  smbpasswd -w (password inserita nel file smb.conf)

Riavviare i servizi SMB, NMB e LDAP.

Come gestire la coda di Postfix ???


Semplice ! Con qualche comando dato dalla shell !!!

Cancellare la coda di messaggi: postsuper -d ALL
Cancellare la coda di messaggi in entrata: postsuper -d ALL incoming (oppure “hold”, “deferred”, “active”)
Cancellare un messaggio: postsuper -d ID_messaggio

Per vedere quanti messaggi ci sono in coda: postqueue -p

Forzare la coda di messaggi (inviare tutti i messaggi che sono in coda): postqueue -f