Dimensione: 10059
Commento:
|
← Versione 118 del 14/03/2011 12.57.33 ⇥
Dimensione: 4896
Commento: converted to 1.6 markup
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from AlbericoAnobile/Prove | |
Linea 3: | Linea 4: |
[[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:35%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]] [[TableOfContents(1)]]|| |
<<BR>> <<Indice>> |
Linea 8: | Linea 9: |
La raccomandazione '''ITU-T X.509''', appartenente alla serie di raccomandazioni '''X.500''', definisce una infrastruttura a chiave pubblica ('''PKI''') che ha lo scopo di fornire servizi di autenticazione. E' uno standard di fondamentale importanza, in quanto la struttura di certificati, che da esso deriva, e gli algoritmi di autenticazione sono utilizzati in moltissimi contesti. | '''Autofs''' monta automaticamente le cartelle condivise quando gli utenti o i processi richiedono l'accesso ad esse; le smonta automaticamente se restano inattive per un periodo di tempo specificato. Viene utilizzato principalmente per la condivisione di cartelle accessibili in rete tramite i protocolli [[Server/Nfs|Nfs]] o [[Server/Samba|Samba]]. Il montaggio automatico di dispositivi rimovibili è infatti già fornito da [[http://it.wikipedia.org/wiki/Hardware_abstraction_layer|Hal]] nel sistema base. |
Linea 10: | Linea 11: |
'''X.509''' si basa sulla [http://it.wikipedia.org/wiki/Crittografia_asimmetrica crittografia a chiave pubblica] e sul concetto di [http://it.wikipedia.org/wiki/Firma_digitale firma digitale]. | = Installazione = |
Linea 12: | Linea 13: |
= Certificati = | Il programma è presente nel [[Repository/Componenti|componente]] '''universe''' dei [[Repository|repository]] ufficiali. Una volta abilitato tale componente è sufficiente [[AmministrazioneSistema/InstallareProgrammi|installare]] il pacchetto ''autofs''. |
Linea 14: | Linea 15: |
Il cuore del meccanismo '''X.509''' sono i certificati a chiave pubblica. Essi vengono rilasciati da una [http://it.wikipedia.org/wiki/Certificate_authority Certification Authority] ed hanno lo scopo di certificare l'appartenenza di una chiave pubblica ad un particolare ''Nome Distintivo'' (''Distinguished Name'') oppure ad un ''Nome Alternativo'' (''Alternative Name'') 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'''. | = Configurazione = |
Linea 16: | Linea 17: |
Il certificato appartenente alla [http://it.wikipedia.org/wiki/Certificate_authority Certification Authority] viene definito ''root certificate''. Esso viene firmato dalla stessa authority (certificato ''self-signed''). Una violazione del ''root certificate'' comprometterebbe l'intero sistema. Esistono diverse [http://it.wikipedia.org/wiki/Certificate_authority Certification Authority] 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: |
Aprire il file di configurazione `/etc/auto.master` con un [[Ufficio/EditorDiTesto|editor di testo]] con i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] aggiungendo le seguenti righe: |
Linea 45: | Linea 19: |
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----- |
/smb /etc/auto.smb /net /etc/auto.net |
Linea 118: | Linea 23: |
= Creare una Certification Authority con Openssl = | = Montare una cartella Samba pubblica = |
Linea 120: | Linea 25: |
'''Openssl''' è un ''toolkit'' di sviluppo per [http://it.wikipedia.org/wiki/Secure_Sockets_Layer SSL/TLS].E' presente nei [:Repository:repository] ufficiali e può essere utilizzato per creare una propria ''Certification Authority''. Creare una directory (es: `rootCA`) con le seguenti sottodirectory: `certs crl newcerts private`. |
Supponendo di voler montare una cartelle condivisa con nome `condivisionesmb` da un server avente nome `server.dominio.it`, sarà sufficiente portarsi nella directory `/smb/server.dominio.it/condivisionesmb`. Digitare il seguente comando: |
Linea 125: | Linea 27: |
mkdir rootCA cd rootCA mkdir certs crl newcerts private |
cd /smb/server.dominio.it/condivisionesmb |
Linea 130: | Linea 30: |
Crare i file `index.txt` e `serial` (quest'ultimo da inizializzare con il valore "00") | ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Il nome del server si riferisce al nome [[Server/Dns|DNS]] e non al nome NetBIOS.'' || |
Linea 132: | Linea 32: |
= Montare una cartella Samba con autenticazione = Qualora sia necessario fornire delle credenziali di acesso per montare una directory tramite il protocollo '''Samba''', occorre aprire il file `/etc/autofs.smb` con un [[Ufficio/EditorDiTesto|editor di testo]] con i [[Sudo|privilegi di amministrazione]] e sostituire il contenuto del file con il seguente: |
|
Linea 133: | Linea 36: |
touch index.txt echo "00" > serial |
#!/bin/bash # $Id$ # This file must be executable to work! chmod 755! key="$1" # Note: create a cred file for each windows/Samba-Server in your network # which requires password authentification. The file should contain # exactly two lines: # username=user # password=***** # Please don't use blank spaces to separate the equal sign from the # user account name or password. credfile="/etc/auto.smb.$key" # Note: Use cifs instead of smbfs: mountopts="-fstype=cifs" smbclientopts="" for P in /bin /sbin /usr/bin /usr/sbin do if [ -x $P/smbclient ] then SMBCLIENT=$P/smbclient break fi done [ -x $SMBCLIENT ] || exit 1 if [ -e "$credfile" ] then mountopts=$mountopts",credentials=$credfile" smbclientopts="-A "$credfile else smbclientopts="-N" fi $SMBCLIENT $smbclientopts -gL $key 2>/dev/null \ | awk -v key="$key" -v opts="$mountopts" -F'|' -- ' BEGIN { ORS=""; first=1 } /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 } END { if (!first) print "\n"; else exit 1 } |
Linea 137: | Linea 76: |
Copiare il file di configurazione `/etc/ssl/openssl.cnf` nella directory corrente: |
Digitare il seguente comando per impostare i giusti [[PermessiFile|permessi]]: |
Linea 140: | Linea 78: |
cp /etc/ssl/openssl.cnf . | sudo chmod 755 /etc/auto.smb |
Linea 143: | Linea 81: |
aprire il file appena copiato con un [:EditorDiTesto:editor di testo] e modificare le direttive come nel seguente esempio: |
Per ogni server a cui si intende accedere, occorre creare un file contenente esattamente due righe. Supponendo che il nome del server sia `server.dominio.it` il file dovrà avere nome `/etc/auto.smb.server.dominio.it` e dovrà contenere le credenziali nella seguente forma: |
Linea 146: | Linea 83: |
[ 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 |
username=username_samba password=password_samba |
Linea 170: | Linea 87: |
personalizzando opportunamente le direttive: `countryName_default stateOrProvinceName_default 0.organizationName_default organizationalUnitName_defaul` | Le diciture «username_samba» e «password_samba» con il nome utente e la password necessari per l'accesso. |
Linea 172: | Linea 89: |
Generare la richiesta di certificato ''self-signed'' della '''CA''' (file: `rootCAcert.pem`) con la rispettiva chiave privata (file `private/rootCAkey.pem`). Tale richiesta sarà firmata dalla stessa '''CA''' e produrrà il certificato. Sarà necessario scegliere una ''passphrase'' per proteggere la chiave privata e un ''Common Name'' significativo (es. `Ubuntu Italian Community Root CA`) |
= Montare una directory Nfs = |
Linea 176: | Linea 91: |
Se si desidera montare una cartella condivisa tramite il protocollo '''NFS''' con nome `condivisionenfs` da un server avente nome DNS `server.dominio.it` sarà sufficiente portarsi nella cartella `/net/server.dominio.it/condivisionenfs` con il seguente comando: | |
Linea 177: | Linea 93: |
openssl req -config openssl.cnf -new -x509 -keyout private/rootCAkey.pem -out rootCAcert.pem -days 365 | cd /net/server.dominio.it/condivisionenfs |
Linea 180: | Linea 96: |
E' possibile verificare rispettivamente il contenuto del certificato e della chiave privata appena generati con {{{ openssl x509 -in rootCAcert.pem -text openssl rsa -in private/rootCAkey.pem -text }}} ||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Una violazione del certificato o della chiave privata appena generati comprometterebbe la sicurezza dell'intera infrastruttura''' || = Creare certificati utenti = Creare una directory per contenere i certificati degli utenti {{{ mkdir utenti cd utenti }}} Generare la richiesta di certificato per l'utente (da associare al ''Common Name''). {{{ openssl req -config ../openssl.cnf -new -keyout utentekey.pem -out utentereq.pem }}} Firmare la richiesta con la chiave privata dell'authority: {{{ cd .. openssl ca -config openssl.cnf -policy policy_anything -cert rootCAcert.pem -keyfile private/rootCAkey.pem -out utenti/utentecert.pem -infiles utenti/utentereq.pem }}} |
||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Le cartelle non saranno visibili finchè non si farà esplicito riferimento ad esse, quindi solo dopo l'esecuzione di uno dei precedenti comandi. '' || |
Linea 214: | Linea 100: |
* [http://www.itu.int/rec/T-REC-X.509/en ITU-X Recommendation X.509 : Information technology - Open Systems Interconnection - The Directory: Public-key and attribute certificate frameworks] * [http://telematics.poliba.it/boggia/security/laboratorio.zip Laboratorio di Metodi e sistemi per la sicurezza delle reti - Politecnico di Bari] * [http://www.cacert.org/ CACert] * [https://www.thawte.com/ Thawte] * [https://www.verisign.com/ Verisign] |
* [[https://help.ubuntu.com/community/Autofs|Documento originale]] * [[http://tldp.org/HOWTO/Automount.html|Guida all'automount]] (in inglese) * [[http://it.wikipedia.org/wiki/NetBIOS|Voce enciclopedica NetBIOS]] |
Introduzione
Autofs monta automaticamente le cartelle condivise quando gli utenti o i processi richiedono l'accesso ad esse; le smonta automaticamente se restano inattive per un periodo di tempo specificato. Viene utilizzato principalmente per la condivisione di cartelle accessibili in rete tramite i protocolli Nfs o Samba. Il montaggio automatico di dispositivi rimovibili è infatti già fornito da Hal nel sistema base.
Installazione
Il programma è presente nel componente universe dei repository ufficiali. Una volta abilitato tale componente è sufficiente installare il pacchetto autofs.
Configurazione
Aprire il file di configurazione /etc/auto.master con un editor di testo con i privilegi di amministrazione aggiungendo le seguenti righe:
/smb /etc/auto.smb /net /etc/auto.net
Montare una cartella Samba pubblica
Supponendo di voler montare una cartelle condivisa con nome condivisionesmb da un server avente nome server.dominio.it, sarà sufficiente portarsi nella directory /smb/server.dominio.it/condivisionesmb. Digitare il seguente comando:
cd /smb/server.dominio.it/condivisionesmb
Il nome del server si riferisce al nome DNS e non al nome NetBIOS. |
Montare una cartella Samba con autenticazione
Qualora sia necessario fornire delle credenziali di acesso per montare una directory tramite il protocollo Samba, occorre aprire il file /etc/autofs.smb con un editor di testo con i privilegi di amministrazione e sostituire il contenuto del file con il seguente:
# $Id$ # This file must be executable to work! chmod 755! key="$1" # Note: create a cred file for each windows/Samba-Server in your network # which requires password authentification. The file should contain # exactly two lines: # username=user # password=***** # Please don't use blank spaces to separate the equal sign from the # user account name or password. credfile="/etc/auto.smb.$key" # Note: Use cifs instead of smbfs: mountopts="-fstype=cifs" smbclientopts="" for P in /bin /sbin /usr/bin /usr/sbin do if [ -x $P/smbclient ] then SMBCLIENT=$P/smbclient break fi done [ -x $SMBCLIENT ] || exit 1 if [ -e "$credfile" ] then mountopts=$mountopts",credentials=$credfile" smbclientopts="-A "$credfile else smbclientopts="-N" fi $SMBCLIENT $smbclientopts -gL $key 2>/dev/null \ | awk -v key="$key" -v opts="$mountopts" -F'|' -- ' BEGIN { ORS=""; first=1 } /Disk/ { if (first) { print opts; first=0 }; sub(/ /, "\\ ", $2); print " \\\n\t /" $2, "://" key "/" $2 } END { if (!first) print "\n"; else exit 1 }
Digitare il seguente comando per impostare i giusti permessi:
sudo chmod 755 /etc/auto.smb
Per ogni server a cui si intende accedere, occorre creare un file contenente esattamente due righe. Supponendo che il nome del server sia server.dominio.it il file dovrà avere nome /etc/auto.smb.server.dominio.it e dovrà contenere le credenziali nella seguente forma:
username=username_samba password=password_samba
Le diciture «username_samba» e «password_samba» con il nome utente e la password necessari per l'accesso.
Montare una directory Nfs
Se si desidera montare una cartella condivisa tramite il protocollo NFS con nome condivisionenfs da un server avente nome DNS server.dominio.it sarà sufficiente portarsi nella cartella /net/server.dominio.it/condivisionenfs con il seguente comando:
cd /net/server.dominio.it/condivisionenfs
Le cartelle non saranno visibili finchè non si farà esplicito riferimento ad esse, quindi solo dopo l'esecuzione di uno dei precedenti comandi. |