Archivio della categoria ‘Ubuntu’

Clamav AntiVirus Linux Ubuntu

Introduzione

Clamav è un antivirus in grado d’eliminare già a livello dei server di posta o dei gateway una notevole quantità di virus sotto forma di allegati e-mail.

Installazione

Per uso manuale

Installare il pacchetto clamav.
Il seguente pacchetto installerà il programma in versione applicativo standard, cioè per effettuare la scansione di un singolo file.

Per uso automatizzato

Installare il pacchetto clamav-daemon
Il seguente pacchetto installerà il demone del programma per un uso più regolare, orientato ad esempio per la scansione di tutti i messagi e-mail.

Aggiornamento

Terminata l’installazione è possibile che vengano chieste alcune domande su come ottenere gli aggiornamenti dei virus, in questo caso selezionare il download, e gli aggiornamenti verranno scaricati automaticamente, mentre nel caso in cui venga visualizzato un messaggio simile a questo:

/etc/init.d/clamav-daemon restart
 * Fermare ClamAV daemon clamd [ OK ]
 * Avviare ClamAV daemon clamd
LibClamAV Attenzione: ***  Questa versione del motore di Clamav è superata. ***
LibClamAV Attenzione: *** DON'T PANIC! Leggi http://www.clamav.net/support/faq ***
LibClamAV Attenzione: ***********************************************************
                                                                         [ OK ]

procedere come segue:

  1. Aggiungere la chiave di autenticazione digitando all’interno di una finestra di terminale il seguente comando:
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xf80220d0e695a455e651ac4d8ab767895adc2037
  2. Modificare con un editor di testo e con i privilegi di amministratore il file /etc/apt/sources.list, ed aggiungere i repository adatti alla versione di Ubuntu utilizzata:
    • Ubuntu 9.04 «Jaunty Jackalope»:
      deb http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu jaunty main
      deb-src http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu jaunty main
    • Ubuntu 8.10 «Intrepid Ibex»:
      deb http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu intrepid main
      deb-src http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu intrepid mai
    • Ubuntu 8.04 «Hardy Heron»:
      deb http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu hardy main
      deb-src http://ppa.launchpad.net/ubuntu-clamav/ppa/ubuntu hardy main
  3. Ricaricare la lista dei pacchetti digitando il seguente comando all’interno di una finestra di terminale:
    sudo apt-get update
Per la versione server Clamav e ufficialmente supportata a partire da Ubuntu 8.10 «Intrepid ibex».

Utilizzo

Aggiornare la definizione dei virus

Per aggiornare il database dei virus digitare il seguente comando all’interno di una finestra di terminale:

freshclam

Proxy

Se si utilizza un Proxy HTTP, per connettersi a Internet, modificare con un editor di testo e con i privilegi di amministratore il file etc/clamav/freshclam.conf aggiungendo le seguenti righe:

HTTPProxyServer serveraddress
HTTPProxyPort portnumber

Sostituire le diciture «serveraddress» e « portnumber» con l’indirizzo IP del proxy ed il numero della porta.

Scansione

Ecco alcuni esempi d’uso per clamscan:

  • Per effettuare la scansione di tutti i file, cartelle e sotto cartelle presenti sul computer digitare il seguente comando:
    clamscan -r /
  • Per effettuare la scansione di tutti i file, cartelle e sottocartelle presenti nella /home digitare il seguente comando:
    clamscan -r /home
  • Per controllare tutti i file sul computere e avvisare con il suono di un campanello quando vengono trovati file infetti, digitare il seguente comando:
    clamscan-r - campana-i /

Eseguire ClamAV come demone

Installando il pacchetto clamav-daemon, è possibile utilizzare clamdscan dove in precedenza si è utilizzato clamscan, con questa opzione si è in grado di connettersi a un demone ClamAV e il programma resterà sempre in background.

Rootkit Hunder AntiVirus Ubuntu Linux

Introduzione

Rootkit Hunder consente di analizzare il filesystem, sottoponendo alla scansione tutti i file presenti in esso alla ricerca di applicazioni malevole.

Installazione

Per installare l’applicazione è necessario installare il pacchetto rkhunter, reperibile dal componente universe dei repository ufficiali.

Configurazione

Completata l’installazione di Rootkit Hunter, è necessario aggiornare il programma e il database utilizzato per eseguire la scansione del sistema; a tale scopo è sufficiente digitare il seguente comando in una finestra di terminale:

sudo rkhunter --update

Avvio e utilizzo

Per avviare una scansione del sistema digitare il seguente comando in una finestra di terminale:

sudo rkhunter -c

Quella che segue è una spiegazione dei principali comandi disponibili:

Opzione Descrizione
–disable-md5-check Viene disabilitato il controllo sugli hash MD5.
–report-mode Non vengono visualizzati messaggi aggiuntivi, ma solo il report dell’analisi del sistema.
–cronjob Esegue l’applicazione automaticamente a intervalli di tempo regolari.
–skip-keypress Evita di dover premere «ok» alla fine di ogni test.

Una volta terminata la scansione, l’applicazione mostra un rapporto sullo stato del sistema, grazie al quale sarà possibile capire se sono presenti dei programmai malevoli all’interno del computer.

Questo è un esempio del risultato di scansione:

System checks summary
=====================

File properties checks...
    Files checked: 122
    Suspect files: 5

Rootkit checks...
    Rootkits checked : 109
    Possible rootkits: 2

Applications checks...
    Applications checked: 3
    Suspect applications: 1

The system checks took: 1 minute and 37 seconds

Il log mostrato sopra è solo una descrizione sommaria riportata alla fine della scansione, per avere una visione completa su quanto analizzato da Rootkit Hunter consultare il file /var/log/rkhunter.log.

Nel caso in cui nel log risultino dei file sospetti è consigliato utilizzare alcune delle seguenti patch del kernel:

  • lids: consente di bloccare il kernel nei casi di occultamento o modifica dei PID dei processi, di caricamento di altri moduli e di manipolazione dei file presenti nella cartella /dev.
  • selinux: aumenta il grado si sicurezza del proprio sistema operativo. Il principio su cui è basato è il «Mandatory Access Control», nella pratica per cui il MAC impedisce ai processi di andare oltre quelli che sono i limiti imposti dall’amministratore del sistema. Inoltre controlla che gli utenti del sistema possano controllare e gestire liberamente i file e le impostazioni di sistema, per evitare che ci siano state manomissioni nei permessi.
  • Nessus: consente la ricerca da remoto di qualsiasi tipo di vulnerabilità all’interno del sistema.
  • Carbonite: consente il collegamento di ogni processo nella «task_struck», che sarebbe la struttura che raccoglie tutte le le info relative ai processi di sistema, per individuare i processi pericolosi una volta che la macchina è stata manomessa.
  • Tripwire: uno strumento per il controllo delle «checksum» crittografiche, consente di controllare lo stato di determinati file rispetto ad uno stato di partenza.

GnuPg come creare una chiave GPG

Introduzione

In questa pagina viene presentato GnuPg, il sistema di crittografia predefinito di Ubuntu. Oltre al comando gpg verrà illustrato l’uso delle più comuni interfacce grafiche.

  • GnuPG utilizza la crittografia a chiave pubblica per permettere a coloro che lo utilizzano di comunicare in sicurezza. In un sistema a chiave pubblica ogni utente ha una coppia di chiavi consistenti in una chiave privata e una chiave pubblica. La chiave privata di una persona viene tenuta segreta; non deve mai essere rivelata. La chiave pubblica può essere data a tutti coloro con i quali l’utente vuole comunicare.

Interfacce grafiche

Esistono diversi programmi che forniscono un’interfaccia grafica al sottosistema gpg. Di seguito ne vengono descritte alcuni di essi.

I programmi seguenti, possono essere utilizzati per generare le chiavi GPG.

Seahorse

Seahorse è lo strumento di gestione delle chiavi predefinito di Ubuntu.

Il programma, nelle ultime versioni di Ubuntu, è installato automaticamente. Nel caso in cui non sia presente, installare il pacchetto seahorse.

Kgpg

L’applicazione kgpg è un’interfaccia per KDE, utile agli utenti di Kubuntu.

Per installare il programma è sufficiente installare il pacchetto kgpg.

Generare una chiave

Dalla riga di comando

  1. Aprire un terminale e digitare:
    gpg --gen-key
  2. Apparirà una schermata di selezione con le seguenti opzioni:
    Please select what kind of key you want:
       (1) DSA and Elgamal (default)
       (2) DSA (sign only)
       (5) RSA (sign only)

    La scelta predefinita, «(1)», è la migliore, in quanto le altre non possono essere utilizzate per cifrare.

  3. Verrà chiesto di scegliere una dimensione per la chiave:
    What keysize do you want? (2048)

    È consigliato lasciare l’impostazione predefinita.

  4. Verrà chiesto di impostare una data di scadenza:
    Key is valid for? (0)

    Molte persone creano le proprie chiavi senza scadenza. Se si effettua tale scelta bisogna ricordarsi di revocare la chiave quando non la si usa più. Premere «Y» per continuare con il processo di configurazione.

  5. Il passaggio successivo riguarda la creazione dell’identificativo:
    You need a user ID to identify your key; the software constructs the user ID
    from the Real Name, Comment and Email Address in this form:
        "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
    
    Real name: Dennis Kaarsemaker
    Email address: dennis@kaarsemaker.net
    Comment: Tutorial key
    You selected this USER-ID:
        "Dennis Kaarsemaker (Tutorial key) <dennis@kaarsemaker.net>"
Successivamente sarà possibile aggiungere ulteriori indirizzi email alla propria firma.
  1. Una volta verificata la correttezza delle informazioni inserite, premere «O» per generare la chiave. Verrà chiesto di inserire una passphrase:
    You need a Passphrase to protect your secret key.

    L’ideale sarebbe scegliere una breve frase difficile da indovinare. A differenza di una password, una passphrase può contenere anche degli spazi bianchi.

Dimenticare la propria passphrase comporta la perdita della chiave.
  1. Una volta inserita la passphrase verrà avviato il processo di creazione della chiave . Seguire le istruzioni a video finché non si raggiunge una schermata simile alla seguente:
    gpg: key D8FC66D2 marked as ultimately trusted
    public and secret key created and signed.
    
    pub   1024D/D8FC66D2 2005-09-08
          Key fingerprint = 95BD 8377 2644 DD4F 28B5  2C37 0F6E 4CA6 D8FC 66D2
    uid                  Dennis Kaarsemaker (Tutorial key) <dennis@kaarsemaker.net>
    sub   2048g/389AA63E 2005-09-08

    L’ID della chiave nell’esempio è «D8FC66D2».

  2. È buona norma configurare questa chiave come la chiave predefinita all’interno del file ~/.bashrc, in modo tale da specificare come automatico l’utilizzo di essa con le altre applicazioni che fanno uso del sistema GnuPg. Per fare ciò basta inserire nel file ~/.bashrc la riga:
    export GPGKEY=D8FC66D2

    La dicitura «D8FC66D2» va sostituita con il proprio ID.

  3. Ora è necessario riavviare il servizio per la cifratura. A seconda del sistema in uso potrebbe essere necessario terminare uno dei due seguenti processi:
    • gpg-agent:
      killall -q gpg-agent
      eval $(gpg-agent --daemon)
    • seahorse-agent:
      killall -q seahorse-agent
      eval $(seahorse-agent --daemon)
  4. Infine, eseguire questo comando:
    source ~/.bashrc

Certificato di revoca

Un certificato di revoca deve essere generato per consentire la revoca della propria chiave pubblica nel caso in cui la chiave privata sia stata compromessa.

Per creare un certificato di revoca, da terminale digitare:

gpg --output revoke.asc --gen-revoke <KEY-ID>
Il certificato deve essere stampato e conservato con cura. Chiunque abbia accesso al certificato di revoca può rendere la chiave pubblica inutilizzabile.

Caricare una chiave

Questa sezione contiene le istruzioni per inviare la propria chiave a un server di chiavi in modo che tutti possano scaricarla. Una volta caricata su un server, dopo un breve periodo di tempo, tutti gli altri server di chiavi avranno la propria firma. È possibile velocizzare questo procedimento spedendo la propria chiave a più server.

Inviare un chiave a un server con GnuPG

In un terminale digitare:

gpg --send-keys --keyserver keyserver.ubuntu.com <KEY-ID>

Inviare una chiave con un browser web

  1. Esportare la propria chiave digitando il seguente comando:
    gpg --export -a "Key-ID" > public.key

    Verrà creato un file public.key contenente la propria chiave pubblica.

  2. Aprire una browser e andare al seguente indirizzo: http://pgp.mit.edu
  3. Incollare il contenuto del file public.key nella casella sotto la scritta «Submit a key», dunque fare clic su «Submit this key to the keyserver!».

Firmare una chiave

Il sistema di firma delle chiavi di gpg consente di creare una rete di fiducia. Firmare la chiave di una persona significa aver controllato l’identità di quest’ultima e essersi assicurati che essa sia in pieno controllo della propria chiave privata. In questo modo si può creare una rete di individui che si fidano l’uno degli altri. Questa rete è definita come un insieme fortemente connesso, ulteriori informazioni a riguardo si possono trovare a questo indirizzo.

Dato che firmare una chiave significa aver controllato e verificato che una certa chiave pubblica appartenga a una tale persona che possiede la relativa chiave privata, è necessario seguire questi semplici accorgimenti quando si firma una chiave:

  1. Il procedimento di firma di una chiave è sempre svolto dopo aver incontrato tale persona.
  2. Durante l’incontro è necessario scambiarsi i fingerprint delle rispettive chiavi e almeno un documento identificativo (con una fotografia all’interno). Tali fingerprint vengono solitamente distribuiti su dei foglietti, creati da degli script come gpg-key2ps (pacchetto signing-party).
  3. Controllare che il nome nella chiave corrisponda con quello del documento identificativo.
  4. Dopo questi controlli accertarsi che la persona sia veramente in possesso della chiave privata. Per fare ciò basta rispedire a lei/lui la sua chiave pubblica firmata e criptata con la rispettiva chiave pubblica. Il programma caff facilita tale procedimento. È necessario creare un file .caffrc nella propria cartella Home con i seguenti valori all’interno:
    $CONFIG{owner} = q{Nome e cognome};
    $CONFIG{email} = q{L'indirizzo email della chiave};
    $CONFIG{keyid} = [ qw{Gli ultimi 16 caratteri del fingerprint della chiave} ];

    Ora basta eseguire il seguente comando, sostituendo la dicitura «id_della_chiave» con l’ID della chiave che si vuole verificare e firmare:

    caff id_della_chiave
  5. Quando si ricevono chiavi firmate, si ricevono come allegati: salvarli e importarli con gpg. Ora è possibile inviare queste chiavi ad un server delle chiavi.

Firmare i dati

La firma dei dati è utile per verificare l’identità del mittente.

Firma del Codice di condotta di Ubuntu

Prima di firmare il «Codice di condotta» di Ubuntu è necessario aggiornare il proprio account inserendovi, fra le varie informazioni, la chiave gpg che si desidera utilizzare per tale operazione.

Caricare la chiave in Launchpad

  1. Eseguire l’accesso in Launchpad.
  2. Fare clic sul proprio nome in alto a destra e poi su «Edit OpenPGP keys».
  3. Copiare il fingerprint della propria chiave all’interno della casella di testo «Key Fingerprint».
  4. Launchpad spedirà, all’indirizzo specificato, un’email contenente del testo cifrato con la nuova chiave. Per procedere con l’operazione di decifratura è sufficiente salvare il testo in un file all’interno della propria Home, aprire una finestra di terminale e digitare il seguente comando:
    gpg --decrypt file.txt
  5. Una volta inserita la passphrase comparirà in chiaro il testo del messaggio, il quale conterrà un collegamento da inserire nella barra degli indirizzi del proprio browser per convalidare la chiave.

Firmare il Codice di condotta

Per firmare il «Codice di condotta» di Ubuntu bastano tre semplici passi:

  1. Scaricare il «Codice di condotta» da questo indirizzo : https://launchpad.net/codeofconduct/1.0.1
  2. Digitare il seguente comando:
    gpg --clearsign UbuntuCodeofConduct-1.0.1.txt
  3. Copiare il contenuto del file appena creato UbuntuCodeofConduct-1.0.1.txt.asc nel relativo campo presente a questo indirizzo.

Firmare e cifrare email

Questa sezione vi aiuterà a configurare Evolution e Thunderbird per firmare e criptare email.

Evolution

  • Aprire Evolution e fare clic su Modifica -> Preferenze
  • Scegliere il proprio account email e poi fare clic su «Modifica»
  • Fare clic sulla linguetta «Sicurezza»
  • Nella casella di testo «ID della chiave PGP/GPG» copiare il vostro KEY-ID
  • Fare clic su «OK» e poi «Chiudi»

Se si desidera utilizzare la chiave in ogni nuova mail, fare clic sul menù «Sicurezza» in un nuovo messaggio e poi su «Firma PGP».

Mozilla Thunderbird

  • Installare il plugin Enigmail installando il pacchetto mozilla-thunderbird-enigmail.
    In alternativa è possibile scaricare il plugin da mozdev per poi installarlo manualmente.
  • Configurare gpg in Thunderbird scegliendo OpenPGP -> Preferences e nella casella di testo «GnuPG executable path» aggiungere /usr/bin/gpg.

DirectoryServer Ubuntu Linux

Introduzione

Un servizio di directory ha bisogno innanzitutto di una struttura ad albero dei nomi (server DNS) e di una analoga struttura associata basata sul protocollo LDAP (slapd).

Inoltre, per fornire anche il servizio di file server a macchine Windows, è necessario il server SAMBA e, per utilizzare la crittografia basata sul protocollo Kerberos, il server Kerberos.

Questo consente di avere un servizio di directory scalabile da utilizzare come backend per tutti i servizi aziendali, dai servizi di posta agli utenti remoti che si collegano via RADIUS al server FTP.

Installazione

Per installare i pacchetti necessari, in un terminale, copiare quanto segue:

apt-get -y install samba smbldap-tools krb5-ftpd krb5-telnetd

Descrizione dell’architettura

Si consideri una configurazione d’esempio di questo tipo:

  • LDAP master con DNS master on-board
  • LDAP replica con DNS slave per fault tolerance
  • un file server SAMBA come PDC
  • un altro file server SAMBA come BDC
  • un KDC
  • i server protetti da Kerberos (tutti i client, le macchine SAMBA e la replica LDAP)

Ogni entry citata è su una macchina separata.

Configurare il master LDAP

Innanzitutto procedere alla configurazione del DNS master creando la zona diretta e inversa per il proprio dominio.

Installare il pacchetto bind9, da terminale, digitando:

apt-get -y install bind9

ed effettuare le configurazioni indicate nella guida alla configurazione di un server DNS.

Fatto ciò, installare i pacchetti necessari per il server LDAP. Da terminale, digitare:

apt-get -y install slapd migrationtools ldap-utils

Qualora vogliamo amministrare il server LDAP direttamente dal terminale e non da una workstation remota installiamo anche il pacchetto per la gestione grafica del server LDAP:

apt-get -y install gq

Poi procedere come segue :

  • Nel file /usr/share/migrationtools/migrate_common.ph sostituire:
    $DEFAULT_MAIL_DOMAIN = vostrodominio
    $DEFAULT_BASE = "dc=miodominio,dc=com"
    $EXTENDED_SCHEMA = 1
  • Poi eseguire come root i comandi :
    cd /usr/share/migrationtools
    
    ./migrate_base.pl > /etc/ldap/base.ldif
    ./migrate_hosts.pl /etc/hosts > /etc/ldap/hosts.ldif
    ./migrate_group.pl /etc/group > /etc/ldap/group.ldif
    ./migrate_passwd.pl /etc/passwd > /etc/ldap/passwd.ldif
    slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/base.ldif
    slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/hosts.ldif
    slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/group.ldif
    slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/passwd.ldif
  • Generiamo poi le password dell’utente admin :
    slappasswd -h {crypt} -s adminpassword
  • A questo punto testiamo la configurazione con il comando :
    ldapsearch -x -H ldap://IP master LDAP -b "dc=miodominio,dc=com" "(cn=nomeutente)"
  • Modificare il file /etc/ldap/slapd.conf come segue :
    replica host = replicaFQDN bindmethod=simple \
    binddn="cn=replicator,ou=miaOU,dc=miodominio,dc=com" \
    credentials=replicatorpassword
  • Installare l’utilità smbldap-tools come:
    sudo apt-get -y install smbldap-tools
  • Eseguire il comando :
    sudo cp /usr/share/doc/smbldap-tools/samba.schema /etc/ldap/schema/samba.schema
  • Ed inserire nel file /etc/ldap/slapd.conf dopo l’ultima direttiva include.... quella che segue:
    include /etc/ldap/schema/samba.schema
  • Ora procediamo alla configurazione del servizio di autenticazione crittografata installando il pacchetto Kerberos come segue :
    apt-get -y install krb5-kdc
    apt-get -y install krb5-admin-server
  • Eseguire come root i seguenti comandi :
    kdb5_util create -s
    kadmin.local
    kadmin: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin
    kadmin: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/changepw
    kadmin: addprinc -pw secret krbadm@MIODOMINIO.COM
    kadmin: q
    /etc/init.d/krb5-kdc start
    /etc/init.d/krb5-admin-server start

Configurare la replica LDAP

Innanzitutto procedere alla configurazione del DNS slave (ricordiamo che bisogna soltanto modificare il file /etc/bind9/named.conf.local aggiungendovi la zona diretta e l’inversa del vostro dominio e specificando l’IP del DNS master per la sincronizzazione delle zone).

Pertanto installate il pacchetto bind9 con il comando :

sudo apt-get -y install bind9

ed effettuate le configurazioni come indicato nel wiki Configurare un server DNS.

Procedere come segue :

  • In /etc/ldap/slapd.conf inserire direttive :
    referral ldap://<FQDN o IP LDAP master>
    updatedn "cn=replicator,ou=miaOU,dc=miodominio,dc=com"
    updateref ldap://<FQDN o IP LDAP master>
    access to attrs = userPassword,sambaLMPassword,sambaNTPassword
                    by dn = "cn=admin,ou=miaOU,dc=miodominio,dc=com" write
                    by dn = "cn=samba,ou=miaOU,dc=miodominio,dc=com" write
                    by dn = "cn=nssuser,ou=miaOU,dc=miodominio,dc=com" read
                    by anonymous auth
                    by self write
                    by * none
    access to *
            by dn = "cn=admin,ou=miaOU,dc=miodominio,dc=com" write
            by anonymous auth
            by * none

Ricordarsi di creare nel database LDAP sia l’utente samba che l’utente nssuser.

Se volete usate l’utility gq da installare o sul server LDAP o su una workstation remota da cui amministrare master e replica LDAP.

  • Installare i pacchetti per il supporto all’autenticazione Kerberos lato client
    apt-get -y install libpam-krb5
    apt-get -y install krb5-user
  • Monfigurare i pacchetti per il supporto all’autenticazione Kerberos lato client
  • Modificare il file /etc/pam.d/common-account come segue :
    account sufficient pam_krb5.so
    account required pam_unix.so
  • Modificare il file /etc/pam.d/common-auth come segue :
    auth sufficient pam_krb5.so nullok_secure
    auth required pam_unix.so nullok_secure
  • Modificare il file /etc/pam.d/common-session come segue :
    session sufficient pam_krb5.so
    session required pam_unix.so

Configurare il PDC SAMBA

  • Installate il pacchetto samba nel modo seguente :
    apt-get -y install samba
  • Modificate il file /etc/samba/smb.conf come segue :
    workgroup = MIODOMINIO.COM
    
    domain master = yes
    domain logons = yes
    encrypt passwords = yes
    security = user
    os level = 65
    wins support = yes
    name resolver order = wins lmhosts hosts bcast
    logon path = \\%N\profiles\%U
    logon drive = H:
    logon home = \\%N\%U\winprofile
    logon script = logon.bat
    log level = 1
    printcap name = CUPS
    show add printer wizard = No
    shutdown script = /var/lib/samba/scripts/shutdown.sh
    abort shutdown script = /sbin/shutdown -c
    utmp = Yes
    map acl inherit = Yes
    printing = cups
    
    passdb backend = ldapsam:ldap://<IP LDAP master>/ ldap://<IP LDAP replica>/
    ldap admin dn = cn=admin,dc=miodominio,dc=com
    ldap suffix = dc=miodominio,dc=com
    ldap group suffix = ou=Groups
    ldap user suffix = ou=People
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=People
    add user script = /usr/sbin/smbldap_useradd -m '%u'
    delete user script = /usr/sbin/smbldap-userdel -r "%u"
    add group script = /usr/sbin/smbldap-groupadd -p "%g"
    delete group script = /usr/sbin/smbldap-groupdel "%g"
    add user to group script = /usr/sbin/smbldap_groupmod -m "%u" "%g"
    delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
    add machine script = /usr/sbin/smbldap_useradd -w '%u'
    set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
    ldap delete dn = Yes
    
    [homes]
       comment = Home Directories
       path = /home/%U
       browseable = yes
       writable = yes
       create mask = 0775
       directory mask = 0775
       valid users = %S
    
    [netlogon]
       comment = Network Logon Service
       path = /usr/local/netlogon
       guest ok = yes
       writable = yes
       share modes = no
       browseable = yes
    
    [profiles]
    path = /var/lib/samba/profiles
    read only = no
    create mask = 0600
    directory mask = 0700
    browseable = yes
    writable = yes
    directory mode = 0755
    
    [printers]
       comment = All Printers
       browseable = no
       path = /tmp
       printable = yes
       public = no
       writable = no
       create mode = 0700
    
    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
    
    [whole_linux_server]
    comment = whole_linux_box
    path = /
    valid users = admin root dtrask
    admin users = admin root dtrask
    write list = admin root dtrask
    public = no
    writable = yes
  • Create la share var/lib/samba/profiles e rendetela leggibile e scrivibile da tutti gli utenti del sistema:
    mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles

    questo è necessario poichè i client Microsoft accedono in scrittura a tale directory per creare il profilo degli utenti di rete.

  • Creare l’utente samba e memorizzarne la password nel file /var/lib/samba/secrets.tdb come segue :
    #read -s -p "Digita la password dell'utente samba : " LDAP_BINDPW
    #smbpasswd -w $LDAP_BINDPW
  • Memorizzare il SID del server nel file /var/lib/samba/secrets.tdb come segue :
    #/etc/init.d/samba start
    #net getlocalsid
    #net rpc getsid miodominio.com
  • Installare e configurare il pacchetto smbldap-tools come segue :
    apt-get -y install smbldap-tools
  • Controllare la configurazione dei files :
    smbldap.conf
    smbldap-bind.conf
  • Lanciare i comandi :
    smbldap-populate
    smbldap-passwd Administrator
    net rpc join miodominio.com -UAdministrator%password
  • Creare i nuovi utenti utilizzando le utilities smbldap-tools come negli esempi :
    smbldap-useradd -a -g 512 -m -s /bin/sh -d /home/user_admin -F "" -P user-admin

    consultate le man pages per tutte le opzioni (il valore di -F è il roaming profile dell’utente).

  • Testare la vostra configurazione tramite i comandi :
    smbclient //SRV/public -Uuser_admin%password
    pdbedit -Lv user_admin
  • Aggiornate le policies SAMBA con i comandi :
    pdbedit -P "password_history" -C 5
    pdbedit -P "maximum_password_age" -C 180
    pdbedit -P "min_password_length" -C 6
  • Installare i pacchetti per il supporto all’autenticazione Kerberos lato client
    apt-get -y install libpam-krb5
    apt-get -y install krb5-user
  • Configurare i pacchetti per il supporto all’autenticazione Kerberos lato client
  • Modificare il file /etc/pam.d/common-account come segue :
    account sufficient pam_krb5.so
    account required pam_unix.so
  • Modificare il file /etc/pam.d/common-auth come segue :
    auth sufficient pam_krb5.so nullok_secure
    auth required pam_unix.so nullok_secure
  • Modificare il file /etc/pam.d/common-session come segue :
    session sufficient pam_krb5.so
    session required pam_unix.so

Altre utilità LDAP

Se dovete modificare le passwords agli utenti del DB LDAP creato potete usare il comando:

ldappasswd -x -D "cn=admin,dc=miodominio,dc=com" -W -s nuovapasswordutente
"cn=utente,ou=miaOU,dc=miodominio,dc=com"

Configurare BDC SAMBA

  • Installate il pacchetto samba nel modo seguente :
    apt-get -y install samba
  • Modificate il file /etc/samba/smb.conf come segue :
    workgroup = MIODOMINIO.COM
    
    domain master = no
    domain logons = yes
    encrypt passwords = yes
    security = user
    os level = 65
    wins support = yes
    name resolver order = wins lmhosts hosts bcast
    logon path = \\%N\profiles\%U
    logon drive = H:
    logon home = \\%N\%U\winprofile
    logon script = logon.bat
    log level = 1
    printcap name = CUPS
    show add printer wizard = No
    shutdown script = /var/lib/samba/scripts/shutdown.sh
    abort shutdown script = /sbin/shutdown -c
    utmp = Yes
    map acl inherit = Yes
    printing = cups
    
    passdb backend = ldapsam:ldap://<IP LDAP master>/ ldap://<IP LDAP replica>/
    ldap admin dn = cn=admin,dc=miodominio,dc=com
    ldap suffix = dc=miodominio,dc=com
    ldap group suffix = ou=Groups
    ldap user suffix = ou=People
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=People
    add user script = /usr/sbin/smbldap_useradd -m '%u'
    delete user script = /usr/sbin/smbldap-userdel -r "%u"
    add group script = /usr/sbin/smbldap-groupadd -p "%g"
    delete group script = /usr/sbin/smbldap-groupdel "%g"
    add user to group script = /usr/sbin/smbldap_groupmod -m "%u" "%g"
    delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
    add machine script = /usr/sbin/smbldap_useradd -w '%u'
    set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
    ldap delete dn = Yes
    
    [homes]
       comment = Home Directories
       path = /home/%U
       browseable = yes
       writable = yes
       create mask = 0775
       directory mask = 0775
       valid users = %S
    
    [netlogon]
       comment = Network Logon Service
       path = /usr/local/netlogon
       guest ok = yes
       writable = yes
       share modes = no
       browseable = yes
    
    [profiles]
    path = /var/lib/samba/profiles
    read only = no
    create mask = 0600
    directory mask = 0700
    browseable = yes
    writable = yes
    directory mode = 0755
    
    [printers]
       comment = All Printers
       browseable = no
       path = /tmp
       printable = yes
       public = no
       writable = no
       create mode = 0700
    
    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
    
    [whole_linux_server]
    comment = whole_linux_box
    path = /
    valid users = admin root dtrask
    admin users = admin root dtrask
    write list = admin root dtrask
    public = no
    writable = yes
  • Create la share var/lib/samba/profiles e rendetela leggibile e scrivibile da tutti gli utenti del sistema:
    mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles

    questo è necessario poichè i clients Microsoft accedono in scrittura a tale directory per creare il profilo degli utenti di rete.

  • Il comando wins_server = yes unito ad una opportuna (vedi sezione dedicata alla configurazione dei clients) qualifica il server SAMBA come WINS server e permette pertanto di impedire di inutili broadcasts dei clients per localizzare il loro NETBIOS server.
  • Acquisire il SID del PDC con il comando:
    net rpc getsid
  • Installare i pacchetti per il supporto all’autenticazione Kerberos lato client
    apt-get -y install libpam-krb5
    apt-get -y install krb5-user
  • Configurare i pacchetti per il supporto all’autenticazione Kerberos lato client
  • Modificare il file /etc/pam.d/common-account come segue:
    account sufficient pam_krb5.so
    account required pam_unix.so
  • Modificare il file /etc/pam.d/common-auth come segue:
    auth sufficient pam_krb5.so nullok_secure
    auth required pam_unix.so nullok_secure
  • Modificare il file /etc/pam.d/common-session come segue:
    session sufficient pam_krb5.so
    session required pam_unix.so

Configurare i client

  • Installare come root la libreria per il supporto LDAP con il comando:
    apt-get -y install libnss-ldap
  • Modificare il file /etc/ldap/ldap.conf come segue:
    BASE dc=miodominio,dc=com
    URI ldap://<FQDN o IP LDAP master>   ldap://<FQDN o IP LDAP replica>
  • Modificare il file /etc/pam.d/common-account come segue:
    account sufficient pam_ldap.so
    account required pam_unix.so
  • Modificare il file /etc/pam.d/common-auth come segue:
    auth sufficient pam_ldap.so nullok_secure
    auth required pam_unix.so nullok_secure
  • Modificare il file /etc/pam.d/common-session come segue:
    session sufficient pam_ldap.so
    session required pam_unix.so
  • Se volete usare soltanto LDAP e non permettere l’accesso ai client agli utenti locali dovete usare nei tre files visti le direttive:
    account required pam_ldap.so
    account required pam_ldap.so nullok_secure
    account required pam_ldap.so
  • Eseguire il join al dominio SAMBA con il comando:
    net rpc join miodominio.com -UAdministrator%password
  • Per poter accedere al filesystem SAMBA installare l’utility smbfs:
    apt-get -y install smbfs
  • Per montare un filesystem remoto SAMBA utilizzare il comando:
    smbmount //SRV/public /mnt/smb -o username=user_admin
  • Se volete abilitare l’automount del filesystem SAMBA utilizzate il programma autofs installandolo come segue:
    apt-get -y install autofs
  • Ora modificate il file /etc/auto.master come segue:
    /auto   /etc/auto.smb
  • Ed il file /etc/auto.smb come segue:
    smb  -fstype=smbfs,rw,guest   ://SRV/public
  • E riavviate il servizio autofs con il comando :
    /etc/init.d/autofs restart
  • Ora per impedire il broadcast sulla rete per l’individuazione del server WINS modificare il file /etc/samba/smb.conf come segue :
    wins server = <IP o FQDN SAMBA PDC>
  • installare i pacchetti per il supporto all’autenticazione Kerberos lato client
    apt-get -y install libpam-krb5
    apt-get -y install krb5-user
  • Configurare i pacchetti per il supporto all’autenticazione Kerberos lato client
  • Modificare il file /etc/pam.d/common-account come segue :
    account sufficient pam_krb5.so
    account required pam_unix.so
  • Modificare il file /etc/pam.d/common-auth come segue :
    auth sufficient pam_krb5.so nullok_secure
    auth required pam_unix.so nullok_secure
  • Modificare il file /etc/pam.d/common-session come segue :
    session sufficient pam_krb5.so
    session required pam_unix.so

Ubuntu:modificare sfondo automaticamente

Vi piacerebbe modificare lo sfondo automaticamente senza particolari problemi anche su sistemi Gnome e Xfce? Per farlo basta utilizzare DesktoNova, un’applicazione che vi permetterà di modificare sfondo desktop in maniera semplice e veloce impostando l’intervallo di tempo della modifica. Questo programma è già conosciuto da alcuni, ma la nuova versione integra delle novità davvero interessanti.

Per installare il software su Ubuntu seguite questi passi:

sudo add-apt-repository ppa:haliner/ppa && sudo apt-get update ora installiamo la nostra applicazione con un semplice: sudo apt-get install desktopnova e confermiamo. Ora avremo la nostra DesktopNova installata nella nostra Distribuzione. Questo programma vi sarà utile in numerose situazioni, quindi inseritelo tra quelli preferiti. Per maggiori informazioni visitate il sito ufficiale.

Server Ftp Ubuntu Linux

Introduzione

FTP (File Transfer Protocol) è uno dei protocolli maggiormente usati per il trasferimento dei file. Solitamente prevede l’autenticazione degli utenti e una serie di comandi semplici per scaricare e caricare file.

Questa guida si occupa della configurazione del servizio FTP utilizzando il programma vsftpd (acronimo di Very Secure FTP Daemon), uno dei programmi più usati e sicuri per l’implementazione di questo servizio.

Installazione

È necessario installare il pacchetto vsftpd, reperibile dal componente universe.

Avvio e arresto del servizio

Una volta installato il pacchetto vsftpd, il servizio FTP viene avviato automaticamente.

Per fermare il servizio digitare il seguente comando:

sudo /etc/init.d/vsftpd stop

Per avviare il servizio, una volta arrestato, digitare il seguente comando:

sudo /etc/init.d/vsftpd start

Per riavviare il servizio è utile digitare il seguente comando:

sudo /etc/init.d/vsftpd restart

Prova del servizio

Ora, consideriamo di doverci collegare al computer, con indirizzo IP 192.168.1.2, su cui è stato installato il servizio FTP. Per fare ciò, da un terminale, digitare:

ftp 192.168.1.2

Viene visualizzato un messaggio di richiesta di immissione delle credenziali di accesso simile al seguente:

Connected to 192.168.1.2
Name (192.168.1.2):

Inserire come nome utente:

anonymous

e premere «Invio».

Viene dunque richiesta la password. In questo caso è sufficiente premere «Invio». Generalmente, per l’utente anonymous non viene impostata alcuna password.

Una volta effettuato l’accesso sarà possibile esplorare le cartelle disponibili sul server, dunque caricare e scaricare i file, limitatamente ai permessi impostati per il proprio utente. Gli utenti anonimi possono avere accesso soltanto alla cartella /home/ftp del server, nella quale, a seconda dei parametri di configurazione impostati, potranno soltanto leggere/scaricare, oppure anche scrivere/caricare.

Configurazione

Per configurare un server FTP in cui gli utenti abilitati ad accedere siano gli stessi del sistema, è necessario modificare il file di configurazione del servizio /etc/vsftpd.conf con uno degli editor di testo messi a disposizione da Ubuntu.

Aprire una finestra di terminale e digitare il seguente comando:

sudo gedit /etc/vsftpd.conf

Cercare la seguente riga e cancellare il carattere di cancelletto «#» presente all’inizio della stessa:

#local_enable=YES

Ora è possibile tentare di collegarsi al server con il comando descritto in precedenza ed effettuare l’accesso utilizzando uno degli account utente presenti sul sistema locale. Gli utenti del sistema avranno accesso al servizio FTP potendo esplorare tutte le cartelle del sistema.

Applicando le impostazioni sopra discusse, gli utenti del sistema avranno accesso, tramite il servizio FTP, a tutte le cartelle del filesystem locale. Per evitare ciò è opportuno limitare l’accesso degli utenti solamente alla propria cartella Home.

A tale scopo è utile decommentare la seguente riga:

#chroot_local_user=YES

Limitare l’accesso

Per rafforzare la sicurezza, è possibile scegliere gli utenti ai quali vietare l’accesso al servizio FTP.

Per far ciò è utile modificare il file /etc/ftpusers, il quale contiene la lista degli utenti ai quali non è consentito accedere al servizio. Il seguente è del contenuto di default del file /etc/ftpusers:

# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody
È consigliato aggiungere gli utenti all’elenco senza cancellare quelli pre-esistenti.

Per non consentire l’utilizzo del servizio all’utente mario, è sufficiente aggiungere il nome dell’utente in coda all’elenco, in questo caso mario. Effettuate le modifiche, è necessario riavviare il servizio.

Elenco dei parametri di vsftpd.conf

Di seguito vengono presentati alcuni dei parametri che è possibile configurare per vsftpd:

  • anonymous_enable=YES

    Abilita/disabilita l’accesso anonimo.

  • local_enable=YES

    Abilita/disabilita l’accesso agli utenti locali.

  • write_enable=YES

    Abilita/disabilita agli utenti l’accesso in scrittura.

  • anon_upload_enable=YES

    Abilita/disabilita la possibilità degli utenti anonimi di caricare file. Valido solo se l’opzione precedente è impostata a vero.

  • anon_mkdir_write_enable=YES

    Abilita/disabilita la possibilità degli utenti anonimi di creare nuove directory.

  • xferlog_enable=YES

    Attiva i log su tutte le operazioni di scaricamento e caricamento file.

  • xferlog_file=/var/log/vsftpd.log

    Specifica il percorso per i file di log.

  • ftpd_banner=

    Imposta un messaggio di benvenuto visualizzato all’accesso al server FTP.

Gestione di un server FTP

Ci sono principalmente tre modi per configurare un server ftp:

  1. FTP anonimo Sarà possibile accedere al server senza aver bisogno di un account registrato; tutti gli utenti saranno liberi di eseguire upload, che verranno ovviamente controllati da alcune regole impostate dall’amministratore di sistema (limite di dimensione, controllo anti-pirateria, etc).
  2. FTP anonimo e controllato da passwordQuesto metodo darà la possibilità di accedere al server sia ad utenti anonimi che a quelli con un regolare account a cui sarà dato accesso ad alcune cartelle predefinite dall’amministratore, eccetto che per l’utente root che potrà vedere/modificare/cancellare tutte i file e/o le cartelle.
  3. FTP con utenti virtuali e il supporto di un database MySQLQuesto metodo abilita l’accesso al server solo per il gruppo di utenti che non ha un’autenticazione virtuale via shell nel sistema. Sarà richiesto l’uso di un database MySql che conterrà tutte le informazioni riguardanti gli utenti.

FTP anonimo

Prima di creare un server con accesso anonimo, si dovrà aggiungere al sistema l’utente ftp, con una sua directory home. Per farlo seguite questi comandi:

useradd -d /home/ftp/ftp -s /bin/false ftp
mkdir -p /home/ftp/upload

Ci sono inoltre numerose opzioni con le quali avviare il server, in modo da configurarne ogni singolo aspetto. Alcune di queste opzioni sono le seguenti:

  • -e Accesso solo per gli utenti anonimi.
  • -B Avvia il server in modalità background.
  • -i Gli utenti anonimi non potranno caricare file.
  • -M Permette agli utenti anonimi di creare cartelle.
  • -s I file degli utenti ftp non possono essere scaricati.

FTP anonimo e controllato da password

Per consentire l’accesso al server a tutti gli utenti (registrati e anonimi), è possibile seguire questi semplici comandi:

  • -B ,-i ,M, -r, -s Stesse variabili descritte in precedenza.
  • -u <uid> Autorizza utenti con uno specifico ID(uid) ad accedere al server.
  • -V <Ip address> Solo specifici IP potranno accedere al server in modalità non-anonima.

FTP con utenti virtuali e il supporto di un database MySQL

Per creare un server che affidi a MySQL la gestione degli utenti, è possibile utilizzare procedere come segue:

  • Aprire una finestra di terminale e digitare il seguente comando:
    sudo apt-get install pure-ftpd
  • Scaricare User Manager for PureFTPd da questo indirizzo.
  • Decomprimere il pacchetto e caricare il contenuto nella directory principale del server web, dunque aprire, con il proprio browser, questo indirizzo.
  • Seguire le indicazioni a schermo.
  • Copiare pureftpd-mysql.conf nella cartella di User Manager for PureFTPd.
  • Salvare la configurazione e chiudere. Per effettuare l’accesso tramite l’interfaccia web è sufficiente aprire questo indirizzo con il proprio browser.

Opzioni varie

  • -c <num> Numero di client massimo abilitato ad effettuare l’accesso al server. Esempio:
    pure-ftpd -c 3
  • -C <num> Numero massimo di connessioni per IP. Esempio:
    pure-ftpd -C 3
  • -T <bandwitdh> Massima banda disponibile per ogni connessione (in kb/s). Esempio:
    pure-ftpd -T 150
  • -n <MBytes> Numero massimo di Mb disponibili per ogni utente. Esempio:
    pure-ftpd -n 200
  • -m <Cpu Loading> Blocca gli upload da parte di utenti anonimi nel caso che il caricamento della CPU superi il livello definito in termini di percentuale. Esempio:
    pure-ftpd -m 50

Server DHCP Ubuntu Linux

Introduzione

Questa guida spiega come configurare un server DHCP.

Che cos’è DHCP e come funziona

La comunicazione tra nodi di una rete di computer avviene attraverso un meccanismo di localizzazione in cui l’identificazione di ciascun nodo avviene attraverso un numero (indirzzo IP) formato di 4 ottetti separati da punti.

Affinchè la comunicazione possa avvenire attraverso il meccanismo di nominazione diretta ogni nodo deve conoscere il numero che identifica l’endpoint con cui deve comunicare, e questo può avvenire in 2 modi:

  • ogni nodo possiede una lista di tutti gli altri nodi della rete (il file locale /etc/hosts)
  • ogni nodo fa riferimento ad un nodo server che detiene la lista degli indirizzi di tutti gli altri nodi della rete (il server DHCP)

Ovviamente il primo modo consente una risoluzione locale dell’informazione necesssaria per la comunicazione , mentre il secondo riduce il carico di lavoro che deve essere fatto per propagare la lista degli hosts della rete a tutti i nodi e riduce l’overhead in caso di cambiamenti alla topologia della rete stessa (dismissioni o inserimenti di nuovi nodi), ma comporta un lavoro di manutenzione ed amministrazione di un server che gestisce la lista degli indirizzi dei nodi della rete.

Il server DHCP gestisce l’assegnazione degli indirizzi IP in modo dinamico , ovvero quando un client richiede un IP questo non gli viene assegnato in modo permanente ma soltanto per un certo periodo di tempo , al termine del quale tale lease (che tradotto vuol dire affitto) deve essere rinnovato.

Quindi alla scadenza del lease il client può vedersi riassegnare lo stesso IP oppure (nel caso in cui questo non sia più disponibile) il server DHCP gliene assegnerà un altro.

Le porte di servizio sono la 67 e la 68 TCP.

Come funziona il protocollo:

  • il client invia una richiesta di assegnazione dell’IP in broadcast: DHCP DISCOVER 255.255.255.255
  • il server DHCP risponde che può assegnargli un indirizzo dal suo range: DHCP OFFER 192.168.1.253 from 192.168.1.1
  • il client conferma la richiesta di quell’indirizzo IP: DHCP REQUEST for 192.168.1.253 (192.168.1.1)
  • il server glielo assegna: DHCP ACK from 192.168.1.1

Installazione

Aprire una shell e al prompt dei comandi digitate come root

sudo apt-get install dhcp3-server

Un’occhiata ai file e alle directory di configurazione

I file di configurazione sono sotto la directory /etc/dhcp3 ed il file fondamentale è dhcpd.conf.

Tutti i log files inerenti lo stratup dei servizi DHCP sono contenuti nel file /var/log/syslog.

Architettura proposta

  • un server DHCP primary
  • un server DHCP di backup

Questa configurazione prende il nome di failover e permette di mantenere il servizio in piedi anche se uno dei 2 server ha dei problemi.

Inoltre i 2 server DHCP dovranno aggiornare il server DNS con il metodo della firma TSIG.

Configurazione del DHCP primario

  • Apriamo dunque il file di configurazione /etc/dhcp3/dhcpd.conf.
    failover peer "ubuntu" {
    
             primary;
             address 192.168.20.101;
             port 519;
             peer address 192.168.20.102;
             peer port 520;
             max-response-delay 60;
             max-unacked-updates 10;
             mclt 3600;
             split 128;
             load balance max seconds 3;
    
    }
    
    authoritative;
    ddns-update-style interim;
    ddns-updates on;
    ddns-domainname "example.com";
    ddns-rev-domainname "20.168.192.in-addr.arpa";
    
    subnet 192.168.20.0 netmask 255.255.255.0 {
    
    pool {
    
    range 192.168.20.2 192.168.20.254;
    
    failover peer "ubuntu";
    
    deny dynamic bootp clients;
    
    server-name "ubuntu.example.com";
    
    option domain-name "example.com";
    
    option domain-name-servers 192.168.20.101;
    
    default-lease-time 86400;
    max-lease-time 31536000;
    
    key "mykey" {
    
    algorithm hmac-md5;
    secret "KCoWhagI3Sl8XBQDa+QI8w==";
    
    }
    
    zone example.com {
    
    primary 192.168.20.101;
    key mykey;
    
    }
    
    zone 20.168.192.in-addr.arpa {
    primary 192.168.20.101;
    key mykey;
    
    }
    
    host ubuntu.example.com {
    hardware ethernet 00:48:54:6B:B3:D7;
    fixed-address 192.168.20.101;
    }
    
    }
    
    }
  • la direttiva failover peer specifica che questo server è il primary DHCP server per l’assegnazione degli IP. Quasi tutte le direttive sono auto esplicative, ricordate solo che le direttive port e peer port dicono quali sono le porte su cui comunicheranno i 2 server per verificare il loro stato.
  • subnet: questa riga dice al server DHCP che dovrà assegnare indirizzi IP sulla sottorete192.168.20.0
  • la direttiva pool identifica un sottogruppo di hosts appartenenti alla sottorete 192.168.20.0 gestita da questo server DHCP.
  • la direttiva server-name dice che il nome di questo server DHCP è ubuntu.example.com.
  • la direttiva deny dynamic bootp clients istruisce il server DHCP a non assegnare IP dinamici ai clients che fanno il boot dalla rete (che generalmente sono quelli che non hanno un disco rigido ma devono caricare il loro OS da un host remoto)
  • le 2 direttive option domain-name e option domain-name-servers forniscono informazioni su qual è il dominio DNS associato ai clients della sottorete 192.168.20.0 e qual è l’IP del server DNS (192.168.20.101).
  • le opzioni di configurazione default-lease-time e ‘max-lease-time sonp quelle più importanti per un server DHCP , in quanto definiscono rispettivamente l’intervallo di affitto di default di un indirizzo IP (ovvero per quanto tempo un indirizzo IP viene assegnato ad un dato client) ed il massimo intervallo di affitto di un indirizzo IP (cioè la massima durata di affitto di un indirizzo IP ad un client è pari al valore di max-lease-time). Entrambi i valori sono espressi in secondi.
  • range 192.168.20.2 192.168.20.254: l’opzione range permette di configurare l’intervallo di indirizzi IP che possono essere assegnati ai clients della sottorete data dal vostro server DHCP (nel nostro esempio dal 2 al 254, ovvero il nostro server DHCP è in grado di gestire al massimo 252 hosts).
  • le sezioni zone servono nel caso in cui dobbiate configurare un server DHCP in grado di aggiornare dinamicamente le informazioni di una zona DNS.
  • Questo schema di aggiornamento utilizza la firma TSIG, il cui valore è stabilito con la direttiva secret.
Il nome del secret (nel nostro esempio mykey) deve essere identico a quello dichiarato nel file di configurazione del DNS /etc/bind/named.conf.local.
  • Le direttive nelle sezioni precedenti indicano i nomi delle zone che il nostro server DHCP dovrà aggiornare usando la firma TSIG creata e condivisa con il server DNS.
  • La sezione host permette di specificare un host che pur appartenendo al range di IP gestito dal server DHCP deve mantenere comunque un indirizzo IP fisso.
  • Notate come per assegnare un indirizzo IP fisso sia necessario conoscere il MAC address dell’host (ovvero l’indirizzo della scheda di rete) ed assegnare all’host medesimo un indirizzo IP statico.
  • Le parentesi chiudono la dichiarazione del file /etc/dhcp3/dhcpd.conf.
  • Ora potete riavviare il servizio con
    /etc/init.d/dhcp3-server restart

    e controllare la presenza del processo dhcpd3 tra i processi di sistema.

In caso di errore non dimenticarsi di controllare il file di log /var/log/syslog che quasi sempre contiene informazioni più che sufficienti per risolvere i problemi che si possono presentare.

Configurazione del DHCP secondario

  • Apriamo il file di configurazione /etc/dhcp3/dhcpd.conf.
    failover peer "ubuntu2" {
    
             secondary;
             address 192.168.20.102;
             port 520;
             peer address 192.168.20.101;
             peer port 519;
             max-response-delay 60;
             max-unacked-updates 10;
             mclt 3600;
             split 128;
             load balance max seconds 3;
    
    }
    
    authoritative;
    ddns-update-style interim;
    ddns-updates on;
    ddns-domainname "example.com";
    ddns-rev-domainname "20.168.192.in-addr.arpa";
    
    subnet 192.168.20.0 netmask 255.255.255.0 {
    
    pool {
    range 192.168.20.2 192.168.20.254;
    
    failover peer "ubuntu2";
    deny dynamic bootp clients;
    
    server-name "ubuntu.example.com";
    option domain-name "example.com";
    option domain-name-servers 192.168.20.101;
    
    default-lease-time 86400;
    max-lease-time 31536000;
    
    key "mykey" {
    algorithm hmac-md5;
    secret "KCoWhagI3Sl8XBQDa+QI8w==";
    }
    
    zone example.com {
    primary 192.168.20.101;
    key mykey;
    
    }
    
    zone 20.168.192.in-addr.arpa {
    primary 192.168.20.101;
    key mykey;
    
    }
    
    host ubuntu.example.com {
    hardware ethernet 00:48:54:6B:B3:D7;
    fixed-address 192.168.20.101;
    
    }
    
    }
    
    }
  • vale quanto detto sopra.
  • Ora potete riavviare il servizio con
    /etc/init.d/dhcp3-server restart

    e controllare la presenza del processo dhcpd3 tra i processi di sistema.

In caso di errore non dimenticarsi di controllare il file di log /var/log/syslog che quasi sempre contiene informazioni più che sufficienti per risolvere i problemi che si possono presentare.

Gnome-art: temi su per Gnome su Ubuntu Linux

Tutti gli utenti che usufruiscono del sistema operativo OpenSource Ubuntu Linux apprezzano e conoscono l’interfaccia Gnome, che con uno stile ed unico è sicuramente tra le più  originali interfaccia presenti per il sistema del pinguino. Infatti le altre interfaccie (vedi KDE) sono comunque basati sui modelli Windows o in altri casi Mac. Nonostante Gnome presenti delle icone e un tema grafico che non stanca, un utente potrebbe sempre desiderare di modificarlo per dare un tocco di originalità al proprio sistema…


Gnome-art è un applicazione che guida al caricamento di nuovi temi per  Gnome, molto semplice e veloce da utilizzare.

Prima di tutto vediamo come caricare l’applicazione sul nostro sistema: potete istallarlo da Synaptic (il software center da interfaccia) o da terminale digitando in esso :

sudo apt-get install gnome-art".

Scegliete il modo che preferite per istallare il software che sarà poi disponibile nel menu alla voce Sistema->Preferenze col nome Art Manager. Grazie ad esso quindi potrete poi istallare da internet gli abbellimenti grafici che desiderete ed istallarli tramite la robusta ed intuitiva interfaccia disponibile agli utenti.

Un ottima utility per chi desidera personalizzare il proprio sistema operativo Ubuntu.

Cartella protetta ubuntu

Introduzione

Questa guida contiene delle istruzioni utili alla creazione di una cartella criptata personale.

Lo scopo principale della configurazione di una cartella privata è quello di nascondere a occhi indiscreti i dati sensibili dell’utente; tutto il contenuto della cartella Private all’interno della Home dell’utente verrà criptato sul disco all’interno della cartella nascosta .Private con i permessi impostati a «700» per l’utente proprietario.

Se si utilizza Ubuntu 8.04 «Hardy Heron»

Installazione

Installare il pacchetto ecryptfs-utils.

Configurazione

  1. Per configurare la cartella privata digitare all’interno di una finestra di terminale il seguente comando:
    ecryptfs-setup-private
    

    Verranno poste due domande:

    • Enter your login passphrase: inserire la password di accesso dell’utente;
    • Enter your mount passphrase: inserire una password per il montaggio della cartella.
  2. Per creare la cartella privata, terminare la sessione corrente ed effettuare nuovamente l’accesso.
Per questioni di sicurezza è sconsigliato impostare come password di montaggio quella del proprio utente.

Creare una cartella privata

Per spostare una cartella utilizzata da un programma assicurarsi prima che questo non sia in esecuzione.

Per cifrare una cartella, è sufficiente digitare all’interno di una finestra di terminale un comando simile al seguente:

mv cartella ~/Private

Sostituire la dicitura «cartella» con il percorso che si desidera criptare. Per esempio, se si desidera rendere privata la posta elettronica ricevuta e inviata con Evolution, è sufficiente digitare il seguente comando:

mv ~/.evolution ~/Private

Infine, creare un collegamente simbolico della cartella privata, digitando all’interno di una finestra di terminale un comando simile al seguente:

ln -s ~/Private/cartella cartella

Sostituire la dicitura «cartella» con il percorso della cartella che si desidera mantenere aggiornata con la sua copia cifrata. Per esempio, per rendere nuovamente disponibile la cartella di Evolution dell’esempio precedente, è sufficiente digitare il seguente comando:

ln -s ~/Private/.evolution ~/.evolution

Mount manuale della cartella privata

Nel caso si sia commesso l’errore di copiare la cartella ~/.ecryptfs all’interno di ~/Private sarà necessario montarla con i privilegi di amministrazione, a tale scopo è sufficiente digitare il seguente comando in una finestra di terminale:

sudo mount -t ecryptfs ~/.Private ~/Private

Dovrebbero comparire le seguenti opzioni:

  • Select key type to use for newly created files: selezionare l’opzione numero 2 («passphrase»);
  • Passphrase: inserire la passphrase dell’utente;
  • Select cipher: selezionare l’opzione numero 1 («es: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded)»);
  • Select key bytes: selezionare l’opzione numero 1 («16»);
  • Enable plaintext passthrough: premere «n».

Successivamente, per smontare la cartella privata, sarà sufficiente digitare il seguente comando:

sudo umount ~/Private

Sostituire ~/Private con il punto di mount dove è stata montata la cartella privata.

Recuperare la passphrase per il montaggio

Se si è dimenticata la passphrase per il montaggio della cartella è possibile recuperarlo digitando il seguente comando all’interno di un finestra di terminale:

ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase login_passphrase

Una volta recuperata la password, per evitare che sia visibile nella cronologia dei comandi del terminale è utile digitare il seguente comando:

history -c
Se per errore si è cancellato il file wrapped-passphrase e non si ricorda più la passphrase per il montaggio è impossibile accedere alla cartella privata.

Monit Ubuntu Linux

Introduzione

Monit è una applicazione utile a monitorare lo stato di file, directory, processi e periferiche. È in grado di intraprendere particolari misure di manutenzione nel caso in cui riscontri particolari anomalie.

Installazione

Il programma è presente nel componente universe dei repository ufficiali. Una volta abilitato tale componente è sufficiente installare il pacchetto monit.

Configurazione

Per configurare l’applicazione è sufficiente modificare con un editor di testo con i privilegi di amministrazione il file di configurazione /etc/monit/monitrc.

Prima di tutto è necessario specificare quali server di posta verranno utilizzati per l’invio dei messaggi di notifica. È possibile aggiungere diversi server di posta con le relative porte. Supponendo di voler utilizzare per l’invio della posta i server mx1.example.com con porta standard 25 e mx2.example.com, con porta 10025, occorre aggiungere al file di configurazione la seguente direttiva:

set mailserver mx1.example.com,
               mx2.example.com port 10025

Specificare poi l’indirizzo mittente da cui l’applicazione invierà la posta, ad esempio monit@example.com:

set mail-format { from: monit@example.com }

Specificare l’indirizzo a cui le mail di notifica dovranno essere consegnate (es. sysadmin@example.com)

set alert sysadmin@example.com

Abilitare il server web interno per accedere all’interfaccia di amministrazione. È possibile specificare a quali indirizzi consentire l’accesso (es. localhost) e quali utenti, con le relative password. Nell’esempio che segue verrà configurato un singolo accesso di amministrazione per l’utente «admin» con password «monit»:

set httpd port 2812 and
     use address localhost  # accetta connessioni solo da localhost
     allow localhost        # permette la visualizzazione solo se la richiesta proviene da localhost
     allow admin:monit      # utente admin con password monit

Una configurazione più sicura prevede l’utilizzo di SSL. Per far ciò è necessario generare un certificato x509 valido. Supponendo che questo sia contenuto, insieme alla relativa chiave privata, nel file /var/certs/monit.pem occorre aggiungere una direttiva del seguente tipo:

set httpd port 2812 and
     SSL ENABLE
     PEMFILE  /var/certs/monit.pem
     allow admin:monit

Qualora si vogliano monitorare le risorse utilizzate dal sistema, è possibile aggiungere una regola che avvisi l’amministratore nel caso in cui alcune soglie vengano superate. Quello che segue è un esempio generico:

check system server.example.com
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

Se si desidera invece monitare i permessi e il proprietario di una particolare cartella di sistema è utile aggiungere una regola simile alla seguente:

check directory bin with path /bin
    if failed permission 755 then unmonitor
    if failed uid 0 then unmonitor
    if failed gid 0 then unmonitor

Per monitare un servizio di sismtema è utile aggiungere una direttiva simile alla seguente:

check process slapd with pidfile /var/run/slapd/slapd.pid
   start program = "/etc/init.d/slapd start"
   stop program = "/etc/init.d/slapd stop"
   if failed host 192.168.1.1 port 389 protocol ldap3 then restart
   if 5 restarts within 5 cycles then timeout

Nella configurazione dell’esempio sopra citato, qualora il server ldap risultasse non disponibile, monit provvederà a riavviarlo.

Per monitare un PC remoto su cui gira una istanza di MySql, è utile aggiungere una direttiva simile alla seguente:

check host myserver with address 192.168.1.1
    if failed icmp type echo count 3 with timeout 3 seconds then alert
    if failed port 3306 protocol mysql with timeout 15 seconds then alert

Le diciture «myserver» e «192.168.1.1» vanno sostituite con gli indirizzi adatti ai propri scopi.

Avvio del servizio

Aprire il file /etc/defautl/monit con un editor di testo con i privilegi di amministrazione, dunque modificare la variabile «startup» come nell’esempio seguente:

startup=1

Infine avviare il servizio con il seguente comando in una finestra di terminale:

sudo /etc/init.d/monit start

L’interfaccia amministrativa di monit sarà raggiungibile all’indirizzo http://localhost:2812.

Certificati X.509: guida ai certificati X.509.

Introduzione

X.509 è uno standard ITU-T per infrastrutture a chiave pubblica.

Il cuore del meccanismo X.509 sono i certificati. Essi vengono rilasciati da una autorità per la certificazione ed hanno lo scopo di certificare l’appartenenza di una chiave pubblica ad un particolare «Nome Distintivo» oppure ad un «Nome Alternativo» come potrebbe essere un indirizzo e-mail o un record DNS. Una infrastruttura PKI è strutturata gerarchicamente da più CA al cui vertice si trova una CA root che certifica le sub-CA.

Il certificato appartenente alla autorità viene definito certificato root. Una violazione di tale certificato, autofirmato dalla stessa autorità, comprometterebbe l’intero sistema.

Esistono diverse autorità per la certificazione universalmente riconosciute, ma ogni azienda può crearne una propria da utilizzare privatamente al suo interno.

Struttura dei certificati

La struttura di un certificato digitale X.509 v3 è la seguente:

  • Certificato
    • Versione
    • Numero seriale
    • ID dell’algoritmo
    • Ente emettitore
    • Validità
      • Non prima
      • Non dopo
    • Soggetto
    • Informazioni sulla chiave pubblica del soggetto
      • Algoritmo per l’utilizzo della chiave pubblica
      • Chiave pubblica
    • Codice identificativo univoco dell’emittente (facoltativo)
    • Codice identificativo univoco del soggetto (facoltativo)
    • Estensioni (facoltativo)
  • Algoritmo di firma del certificato
  • Firma del certificato

Il seguente è un esempio di certificato:

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=DE, ST=NRW, L=Steinfurt, O=Spenneberg.com,
CN=RootCA 2003/Email=ralf@spenneberg.net
        Validity
            Not Before: Apr 30 06:08:56 2003 GMT
            Not After : Apr 29 06:08:56 2004 GMT
        Subject: C=DE, ST=NRW, L=Steinfurt, O=Spenneberg.com,
CN=VPN-Gateway/Email=ralf@spenneberg.net
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:c5:3b:9c:36:3a:19:6c:a9:f2:ba:e9:d2:ed:84:
                    33:36:48:07:b2:a3:2d:59:92:b0:86:4c:81:2c:ea:
                    5c:ed:f3:ba:eb:17:4e:b3:3a:cc:b7:5b:5d:ca:b3:
                    04:ed:fb:59:3c:c5:25:3e:f3:ff:b0:22:10:fb:de:
                    72:0a:ee:42:4b:9a:d3:27:d3:b6:fb:e9:88:10:c8:
                    47:b7:26:4f:71:40:e4:75:c4:c0:ee:6b:87:b8:6f:
                    c9:5e:66:cf:bb:e7:ad:72:68:b8:6d:fd:8f:4c:1f:
                    3a:a2:0d:43:25:06:b9:92:e7:20:6c:86:15:a0:eb:
                    7f:f7:0b:9a:99:5d:14:88:9b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                CB:5C:19:9B:E6:8A:8A:FE:0E:C4:FD:5E:DF:F7:BF:3D:A8:
18:7C:08
            X509v3 Authority Key Identifier:
                keyid:01:BB:C6:33:BE:F5:9A:5E:B0:0C:5D:BD:41:E9:78:
6C:54:AD:66:8E
                DirName:/C=DE/ST=NRW/L=Steinfurt/O=Spenneberg.com/
CN=RootCA 2003/Email=ralf@spenneberg.net
                serial:00

    Signature Algorithm: md5WithRSAEncryption
        6f:89:2b:95:af:f1:8d:4d:b7:df:e8:6d:f7:92:fb:48:8c:c4:
        1a:43:68:65:97:01:87:a6:84:b5:a1:38:bd:62:74:70:db:9e:
        78:19:d9:0c:af:18:ad:13:77:56:7d:3f:19:61:da:ba:74:30:
        8e:c5:50:0e:e3:eb:ff:95:cd:8d:d6:7e:c3:0e:ab:5b:34:94:
        bc:16:0f:ef:dc:de:40:bb:7d:ba:a2:b8:5d:f9:74:e7:28:58:
        75:a0:66:d2:8d:85:ba:38:82:08:10:33:ef:be:29:c9:31:9d:
        63:a9:f7:e0:99:ea:a7:ed:b6:b5:33:1b:1c:4a:a4:05:40:6e:
        40:7b
-----BEGIN CERTIFICATE-----
MIIDjDCCAvWgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBgjELMAkGA1UEBhMCREUx
DDAKBgNVBAgTA05SVzESMBAGA1UEBxMJU3RlaW5mdXJ0MRcwFQYDVQQKEw5TcGVu
bmViZXJnLmNvbTEUMBIGA1UEAxMLUm9vdENBIDIwMDMxIjAgBgkqhkiG9w0BCQEW
E3JhbGZAc3Blbm5lYmVyZy5uZXQwHhcNMDMwNDMwMDYwODU2WhcNMDQwNDI5MDYw
ODU2WjCBgjELMAkGA1UEBhMCREUxDDAKBgNVBAgTA05SVzESMBAGA1UEBxMJU3Rl
aW5mdXJ0MRcwFQYDVQQKEw5TcGVubmViZXJnLmNvbTEUMBIGA1UEAxMLVlBOLUdh
dGV3YXkxIjAgBgkqhkiG9w0BCQEWE3JhbGZAc3Blbm5lYmVyZy5uZXQwgZ8wDQYJ
KoZIhvcNAQEBBQADgY0AMIGJAoGBAMU7nDY6GWyp8rrp0u2EMzZIB7KjLVmSsIZM
gSzqXO3zuusXTrM6zLdbXcqzBO37WTzFJT7z/7AiEPvecgruQkua0yfTtvvpiBDI
R7cmT3FA5HXEwO5rh7hvyV5mz7vnrXJouG39j0wfOqINQyUGuZLnIGyGFaDrf/cL
mpldFIibAgMBAAGjggEOMIIBCjAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1P
cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUy1wZm+aKiv4O
xP1e3/e/PagYfAgwga8GA1UdIwSBpzCBpIAUAbvGM771ml6wDF29Qel4bFStZo6h
gYikgYUwgYIxCzAJBgNVBAYTAkRFMQwwCgYDVQQIEwNOUlcxEjAQBgNVBAcTCVN0
ZWluZnVydDEXMBUGA1UEChMOU3Blbm5lYmVyZy5jb20xFDASBgNVBAMTC1Jvb3RD
QSAyMDAzMSIwIAYJKoZIhvcNAQkBFhNyYWxmQHNwZW5uZWJlcmcubmV0ggEAMA0G
CSqGSIb3DQEBBAUAA4GBAG+JK5Wv8Y1Nt9/obfeS+0iMxBpDaGWXAYemhLWhOL1i
dHDbnngZ2QyvGK0Td1Z9Pxlh2rp0MI7FUA7j6/+VzY3WfsMOq1s0lLwWD+/c3kC7
fbqiuF35dOcoWHWgZtKNhbo4gggQM+++KckxnWOp9+CZ6qfttrUzGxxKpAVAbkB7
-----END CERTIFICATE-----

Installazione di OpenSSL

Per installare OpenSSL è sufficiente installare il pacchetto openssl presente nei repository ufficiali.

Creare una autorità per certificati con OpenSSL

Prima di cominciare è necessario creare una cartella che conterrà tutte le informazioni relative all’autorità che si desidera creare. Aprire una finestra di terminale e digitare i seguenti comandi:

cd
mkdir rootCA
cd rootCA
mkdir certs crl newcerts private
cd rootCA
touch index.txt
echo "00" > serial

Copiare il file di configurazione /etc/ssl/openssl.cnf nella cartella corrente con il seguente comando:

cp /etc/ssl/openssl.cnf .

Aprire il file appena copiato con un editor di testo e modificarlo come nel seguente esempio:

[ CA_default ]
dir = . 

...

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = IT
countryName_min             = 2
countryName_max             = 2

stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Milano

localityName                = Locality Name (eg, city)
localityName_default           = Milano

0.organizationName             = Organization Name (eg, company)
0.organizationName_default     = Ubuntu Italian Community 

organizationalUnitName         = Organizational Unit Name (eg, section)
organizationalUnitName_default = Consiglio
Le stringhe «countryName_default», «stateOrProvinceName_default» «0.organizationName_default» e «organizationalUnitName_defaul» possono essere personalizzare con dei valori più appropriati.

Per generare la richiesta di certificato con la chiave privata residente in private/rootCAkey.pem è sufficiente digitare il seguente comando:

openssl req -config openssl.cnf -new -x509 -keyout private/rootCAkey.pem -out rootCAcert.pem -days 365

È possibile verificare il contenuto del certificato e della chiave privata appena generati con i seguenti comandi:

openssl x509 -in rootCAcert.pem -text
openssl rsa -in private/rootCAkey.pem -text
Una violazione del certificato o della chiave privata appena generati comprometterebbe la sicurezza dell’intera infrastruttura

Creazione dei certificati degli utenti

Creare una cartella per contenere i certificati degli utenti con il seguente comando in una finestra di terminale:

mkdir utenti
cd utenti

Generare la richiesta di certificato per ogni singolo utente con il seguente comando:

openssl req -config ../openssl.cnf  -new -keyout utentekey.pem -out utentereq.pem

Infine, non resta che firmare la richiesta con la chiave privata dell’authority. Digitare il seguente comando:

cd ..
openssl ca -config openssl.cnf -policy policy_anything -cert rootCAcert.pem -keyfile private/rootCAkey.pem -out utenti/utentecert.pem -infiles utenti/utentereq.pem
I comandi sopra citati vanno adattati alle proprie esigenze.