Sicurezza

La sicurezza assume molte forme nell'ambiente del computing. Questo capitolo fornisce degli esempi di tre diversi tipi di sicurezza: accesso, prevenzione e individuazione.

L'accesso per gli utenti è normalmente gestito da login o da un'applicazione disegnata per gestire la funzione login. In questo capitolo mostriamo come potenziare login impostando politiche con moduli PAM. L'accesso via rete può anche essere reso sicuro da politiche impostate da iptables, a cui si fa comunemente riferimento come firewall. Per applicazioni che non offrono la migliore sicurezza si può usare il pacchetto Stunnel per fare il wrap del demone di un'applicazione in un tunnel SSL.

La prevenzione delle violazioni, come un trojan, è assistita da applicazioni come GnuPG, nello specifico l'abilità di confermare pacchetti firmati, che riconosce modifiche del TAR ball dopo che il programmatore lo ha creato.

Infine parliamo di individuazione con un pacchetto che memorizza "firme" di file critici (definite dall'amministratore) e quindi rigenera queste "firme" e confronta i file che sono cambiati.

OpenSSL-0.9.7e

Introduzione a OpenSSL

Il pacchetto OpenSSL contiene tool e librerie di gestione relative alla crittografia. Esse servono per fornire funzioni di crittografia ad altri pacchetti, solitamente OpenSSH, applicazioni email e web browser (per l'accesso a siti HTTPS).

Informazioni sul pacchetto

Dipendenze di OpenSSL

Opzionali

bc-1.06 (raccomandato se si esegue la test suite durante la costruzione)

Installazione di OpenSSL

Installare OpenSSL eseguendo i seguenti comandi:

sed 's/^passwd/openssl-passwd/' doc/apps/passwd.pod \
    > doc/apps/openssl-passwd.pod &&
rm doc/apps/passwd.pod &&
mv doc/crypto/{,openssl_}threads.pod &&
./config --openssldir=/etc/ssl --prefix=/usr shared &&
sed -i 's%SHLIBDIRS= fips crypto ssl%SHLIBDIRS= crypto ssl%g' Makefile &&
make MANDIR=/usr/share/man

Ora, come utente root:

make MANDIR=/usr/share/man install &&
cp -r certs /etc/ssl

Spiegazioni dei comandi

no-rc5 no-idea: quando viene aggiunto al comando ./config esso eliminerà la costruzione di questi metodi di cifratura. Potrebbero essere necessarie licenze di brevetto per poter utilizzare alcuni di questi metodi nei propri progetti.

rm doc/apps/passwd.pod: questo comando impedisce a OpenSSL l'installazione della sua man page passwd sopra un'esistente man page con lo stesso nome.

mv doc/crypto/{,openssl_}threads.pod: questi comandi impediscono a OpenSSL di sovrascrivere una man page esistente di Perl.

sed -i 's%SHLIBDIRS= fips crypto ssl%SHLIBDIRS= crypto ssl%g' Makefile: questo comando impedisce l'installazione della inesistente libreria libfips.

make MANDIR=/usr/share/man; make MANDIR=/usr/share/man install: questi comandi installano OpenSSL con le man page in /usr/share/man invece di /etc/ssl/man.

cp -r certs /etc/ssl: i certificati devono essere copiati manualmente, poiché lo script di installazione salta questo passo.

Configurazione di OpenSSL

File di configurazione

/etc/ssl/openssl.cnf

Informazioni di configurazione

Molte persone vogliono usare OpenSSL solo per fornire funzioni ad altri programmi come OpenSSH e i browser web non avranno bisogno di preoccuparsi della configurazione di OpenSSL. La configurazione di OpenSSL è un argomento avanzato, e così coloro che normalmente ci si aspetta o che sappiano come farla o che sappiano capire come eseguirla.

Contenuti

Programmi installati: c_rehash and openssl
Librerie installate: libcrypto.[so,a] e libssl.[so,a]
Directory installate: /etc/ssl e /usr/include/ssl

Brevi descrizioni

c_rehash

è uno script Perl che scansiona tutti i file in una directory e aggiunge i link simbolici ai loro valori hash.

openssl

è un tool a linea di comando per l'uso delle varie funzioni di crittografia della libreria di cifratura OpenSSL dalla shell. Essa può essere usata per varie funzioni, che sono documentate in man 1 openssl.

libcrypto.[so,a]

implementa un ampio range di algoritmi crittografici usati in vari standard Internet. I servizi forniti da questa libreria sono usati dalle implementazioni OpenSSL di SSL, TLS e S/MIME, e sono anche stati usati per implementare OpenSSH, OpenPGP, e altri standard crittografici.

libssl.[so,a]

implementa i protocolli Secure Sockets Layer (SSL v2/v3) e il Transport Layer Security (TLS v1). Essa fornisce una ricca API, la cui documentazione può essere trovata eseguendo man 3 ssl.