Samba e OpenLDAP: creare un controller di dominio: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
 
(46 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
==Caratteristiche==
{{SAMBA
|precedente=Samba: guida estesa
|successivo=Samba e OpenLDAP: creare un controller di dominio con Debian Etch}}{{Versioni compatibili|ONLY|Sarge}}
== Versioni compatibili ==
* Debian Sarge 3.0
* Per Debian Etch 4.0 vedi: [[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]]
* Per Debian Lenny 5.0 vedi: [[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny]]
== Introduzione ==
In questo articolo vedremo come installare un server basato su Debian e Samba 3 con backend di un database LDAP, affinché funga da Primary Domain Controller di una rete Windows. Lo stesso server LDAP verrà utilizzato anche per la gestione in contemporanea degli utenti Unix, in modo da avere un controllo unico e centralizzato sia sugli utenti Windows sia sugli utenti Linux.<br/>
Per la redazione di questa guida mi sono basato su questi ottimi HowTo:<br/>
http://www.slag.it/documenti/samba3_ldap_pdc/samba3_ldap_pdc_howto.php<br/>
http://www.pluto.it/files/journal/pj0605/samba3pdc.html<br/>
http://www.linuxtrent.it/documentazione/wikilinux/SambaLDAPcomePDCsuDebianSarge
<br/>
e li ho integrati con annotazioni, appunti e configurazioni speciali che mi sono stati indispensabili per completare correttamente le operazioni di creazione di un dominio e di aggiunta al dominio stesso di macchine client Microsoft.
<br/>


* Intel Pentium M 1.6 GHz
== Sistema installato ==
* 2x256 MB DDR-SDRAM
Il presente HOWTO è stato realizzato utilizzando un sistema Debian 3.1 Sarge con tutti gli aggiornamenti di sicurezza ufficiali.  
* 40 GB Matshita hd
La configurazione iniziale del sistema prevede un'installazione base Debian net install senza alcun componente aggiuntivo.<br/>
* ATI Mobility Radeon 9600 M10 (RV350)
Durante tutto il processo si presuppone di agire come utente root.
* Audio Intel AC'97
<br/>
* Matshita DVD-RAM UJ-820s
* Realtek Ethernet Controller
* LCD 15.4"
* ENE PCMCIA Controller
* Intel Pro/Wireless 2200BG
* Alps Touchpad


<pre># lspci
== Samba ==
0000:00:00.0 Host bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
Si consiglia di installare immediatamente Samba, in quanto alcuni strumenti che mette a disposizione saranno necessari anche per le configurazioni degli altri servizi.
0000:00:00.1 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
<pre>
0000:00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/O Controller (rev 02)
# apt-get install samba smbclient cupsys cupsys-bsd
0000:00:01.0 PCI bridge: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02)
</pre>
0000:00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 03)
Per il momento come configurazione base rispondente nel seguente modo alle domande che vi verranno poste:<br/>
0000:00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03)
*Nome del Dominio/Workgroup: MIODOMINIO
0000:00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 03)
*Utilizzare password cifrate: SI
0000:00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 03)
*Utilizzare DHCP per i nomi Netbios: NO
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 83)
*Avviare Samba come demoni (no inetd)
0000:00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 03)
*Creare il database delle password: NO
0000:00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 03)
Non preoccupatevi per eventuali errori, perchè tutta la configurazione verrà ripresa in un secondo momento.
0000:00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 03)
<br/>
0000:00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 03)
 
0000:00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)
== Installazione e configurazione del server LDAP ==
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10]
Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.<br/>
0000:02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento.<br/>
0000:02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Per utilizzare il server LDAP occorre installare il pacchetto slapd che costituisce un'implementazione di server LDAP, il pacchetto ldap-utils, un insieme di strumenti che ne permettono la gestione, e il pacchetto samba-doc, contentente alcuni file necessari per configurare LDAP per l'utilizzo con SAMBA.<br/>
0000:02:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)
<pre>
0000:02:04.0 CardBus bridge: ENE Technology Inc CB-710/2/4 Cardbus Controller
# apt-get install slapd ldap-utils samba-doc
0000:02:04.1 FLASH memory: ENE Technology Inc ENE PCI Memory Stick Card Reader Controller
</pre>
0000:02:04.2 0805: ENE Technology Inc ENE PCI Secure Digital Card Reader Controller
Durante l'installazione verranno richieste alcune informazioni necessarie a configurare il server LDAP. In particolare verrà richiesto il nome del dominio che può essere un dominio interno completamente inventato (es. miodominio.tld) o un dominio internet valido. La scelta è legata a politiche organizzative aziendali e tecniche che richiederebbero una trattazione approfondita e che esula da questo HOWTO.<br/>
0000:02:04.3 FLASH memory: ENE Technology Inc: Unknown device 0520</pre>
Nei file riportati si considera che il dominio specificato è <code>miodominio.local</code>, un dominio interno non valido per Internet.
In seguito verrà richiesta la password per l'utente amministratore. Scegliete una password particolarmente sicura, in quanto tramite essa si potrà avere accesso completo alla gestione degli utenti del vostro dominio e, pertanto, accedere a qualsiasi sistema presente sulla vostra rete. Questa password, inoltre, verrà utilizzata anche in seguito in alcuni file di configurazione, pertanto è bene ricordarsela.<br/>
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di MioDominio.<br/>
Per tutte le altre opzioni possono essere confermate le impostazioni di default.
<br/><br/>
Passiamo ora alla configurazione del server LDAP.<br/>
Innanzitutto dobbiamo copiare in <code>/etc/ldap/schema</code> lo schema LDAP necessario per SAMBA.
<pre>
# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema
</pre>
Ora occorre modificare il file di configurazione di slapd (<code>/etc/ldap/slapd.conf</code>) aggiungendo nella sezione <code>Schema and objectClass definitions</code> lo schema per samba:
<pre>
include /etc/ldap/schema/samba.schema
</pre>
Nella sezione <code>Indexing options</code> aggiungere una serie di indicizzazioni che ottimizzeranno le interogazioni per l'utilizzo del server SAMBA:
<pre>
index objectClass eq
index uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
</pre>
Bisogna consentire agli utenti di cambiare non solo la propria password LDAP, ma anche le password di SAMBA e contemporaneamente proteggere tali informazioni da un accesso pubblico sostituendo la riga:
<pre>
access to attribute=userPassword
</pre>
con:
<pre>
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
</pre>
Infine aggiungere le informazioni per l'autenticazione:
<pre>
rootdn          "cn=admin,dc=miodominio,dc=local"
rootpw          "passworddiadmindigitataprecedentemente"
</pre>
Possiamo far ripartire <code>slapd</code> affinché tutte le modifiche apportate siano prese in considerazione.
<pre>
# /etc/init.d/slapd restart
</pre>
Si può controllare che il server sia correttamente partito eseguendo una query con il comando:
<pre>
# ldapsearch -x
</pre>
La risposta deve essere un file LDIF. Se invece si ottiene un errore di connessione ricontrollare tutte le impostazioni e i file di log. Per controllare il funzionamento di <code>slapd</code> può sempre tornare utile fermare il servizio e farlo partire, anziché con gli script standard debian con il comando:
<pre>
# slapd -d 256
</pre>
In tal modo viene avviato visualizzando varie informazioni di debug a video.
<br/>
 
== Configurazione dei client per LDAP ==
Ogni volta che un client accede ad un server LDAP deve impostare la base di ricerca e, nel caso si trovi su un server differente, l'URL del server LDAP. Queste informazioni possono essere impostate come default nel file <code>/etc/ldap/ldap</code>.conf aggiungendo le righe:
<pre>
BASE dc=miodominio,dc=local
URI ldap://localhost
</pre>
Una volta fatto questo è possibile verificare il corretto funzionamento di LDAP nuovamente con il comando:
<pre>
# ldapsearch -x
</pre>
che dovrebbe fornire tutti i dati presenti nel server LDAP. Sempre pochi, ma in numero maggiore rispetto a quanto elencato la volta precedente.
<br/>
 
== Configurare i SMBLDAP TOOLS ==
I smbldap-tools sostituiscono i comandi standard di UNIX per la gestione di gruppi, utenti e password in modo da dialogare direttamente con il server LDAP e fornire un metodo per gestire in contemporanea gli account UNIX e SAMBA.<br/>
Malgrado la documentazione ufficiale di SAMBA asserisca che smbpasswd sia in grado di gestire tali account, utilizzando quello strumento occorre prima creare l'utente UNIX, poi quello Samba, pertanto ne sconsiglio l'utilizzo.
=== Installazione ===
Installare il pacchetto smbldap-tools
<pre>
# apt-get install smbldap-tools
</pre>
=== Configurazione ===
Copiare i file <code>smbldap.conf</code> e <code>smbldap_bind.conf</code> in <code>/etc/smbldap-tools</code>.
<pre>
# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf
</pre>
Modificare il file <code>/etc/smbldap-tools/smbldap_bind.conf</code> inserendo il DN dell'amministratore del server LDAP e la sua password. Il DN dell'amministratore è stato impostato automaticamente durante l'installazione del pacchetto Debian di slapd e corrisponde a <nowiki>"cn=admin,dc=miodominio,dc=local"</nowiki>, in cui il dominio dipende dalle configurazioni sopra riportate per il server LDAP. La password è quella richiesta in fase di installazione del server LDAP.<br/>
Se non si è sicuri del DN da inserire lanciare il comando:
<pre>
# slapcat
</pre>
e cercare una riga che inizia con <nowiki>"dn: cn="</nowiki>. Il valore riportato è quello da inserire come DN. Nel file sono presenti le configurazioni sia per il master che per lo slave, in modo da poter gestire un server di backup per il sistema LDAP gestito tramite slurpd.<br/>
Al momento si presuppone di avere un solo server LDAP, pertanto le configurazioni coincideranno:
<pre>
slaveDN="cn=admin,dc=miodominio,dc=local"
slavePw="passworddiadmindigitataprecedentemente"
masterDN="cn=admin,dc=miodominio,dc=local"
masterPw="passworddiadmindigitataprecedentemente"
</pre>
Eseguire il comando:
<pre>
# net getlocalsid
</pre>
e copiare o prendere nota del codice che viene restituito.
<br/>
Modificare il file <code>/etc/smbldap-tools/smbldap.conf</code> inserendo il SID appena ottenuto e controllare gli indirizzi dei 2 server LDAP in modo che coincidano con il server locale (127.0.0.1).
<pre>
SID="S-1-5-21-2318037123-1631426476-2439636316"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
</pre>
Verificare che il TLS sia disabilitato.
<pre>
ldapTLS="0"
</pre>
Configurare il corretto suffisso per il dominio (quello specificato nella configurazione di LDAP) e il nome corretto per il dominio che si vuole configurare (MIODOMINIO).
<pre>
suffix="dc=miodominio,dc=local"
sambaUnixIdPooldn="sambaDomainName=MIODOMINIO,${suffix}"
</pre>
Potrebbe tornare utile anche impostare una differente scadenza per le password, in modo che non ne venga richiesta la sostituzione troppo di frequente:
<pre>
defaultMaxPasswordAge="180"
</pre>
Questo parametro è poi utilizzato al momento della creazione di un utente e ogni volta che un utente si cambia password.<br/>
Configurare infine i percorsi per le home degli utenti e per le cartelle che conterranno i profiles nel caso di roaming profiles.
<pre>
userSmbHome="\\PDC-SERVER\%U"
userProfile="\\PDC-SERVER\profiles\%U"
</pre>
PDC-SERVER deve essere sostituito con il nome SAMBA del server che funziona come PDC (il server che stiamo configurando; lo stesso nome che verrà impostato più avanti nel file di configurazione di Samba). In questo esempio, inoltre, si è ritenuto di fornire uno script di logon comune a tutti gli utenti, anziché di uno script personale per ogni utente, pertanto si è impostato il seguente parametro:
<pre>
userScript="logon.bat"
</pre>
Tale impostazione può essere poi cambiata per determinati utenti con esigenze particolari direttamente agendo sui dati LDAP dell'utente.<br/>
Impostare infine il suffisso per gli indirizzi mail, anche se nel presente HOWTO non vengono configurati.
<pre>
mailDomain="miodominio.local"
</pre>
Terminate le modifiche al file, bisogna cambiare i permessi per i file appena modificati al fine di aumentare la sicurezza del sistema ed impedire agli utenti di avere accesso alle password di amministratore di LDAP, scritta in chiaro nel file di configurazione precedentemente modificato.
<pre>
# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
</pre><br/>
 
== Configurazione di SAMBA ==
A questo punto il backend per la memorizzazione degli utenti e la loro gestione è pronto; è quindi il momento di passare a SAMBA per farlo accedere a quanto fatto finora.
=== Creazione dei dati base ===
Per il funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.<br/>
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.<br/>
Per creare tali gruppi utilizzare i comandi:
<pre>
# smbldap-populate -k 0
# smbldap-useradd -a -m -c "Admin" Administrator
# smbldap-usermod -G "Domain Admins" Administrator
# smbldap-usermod -u 0 Administrator
# smbldap-populate -a Administrator -k 0
</pre>
Il parametro "-k 0" imposta l'UID di Administrator a 0, facendolo di fatto coincidere con l'utente root. Gli altri comandi fanno sì che Administrator sia aggiunto al gruppo dei Domain Admins. Durante l'esecuzione del comando vengono riepilogati i record aggiunti. In ogni caso è possibile controllare i dati inseriti con il comando:
<pre>
# ldapsearch -x | less
</pre>
e anche:
<pre>
# ldapsearch -x uid=Administrator
</pre>
Infine è bene cambiare la password di Administrator con il comando:
<pre>
# smbldap-passwd Administrator
</pre>
Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.
=== Configurazione di NSS per lavorare con LDAP ===
Per far lavorare correttamente Samba è necessario configurare NSS con LDAP. Samba infatti si aspetta di trovare un utente di sistema con lo stesso nome di un utente Samba. Per questo occorre recuperare le informazioni sugli utenti dal database LDAP. È necessario quindi installare:
<pre>
# apt-get install libnss-ldap
</pre>
Verrà chiesto il server LDAP e il dominio (miodominio.local), poi dovrete cambiare la stringa per la connessione al database ldap, mettendo admin come utente e dc=miodominio,dc=local nei valori dc. Per tutte le altre domande è possibile mantenere le risposte di default.
Dopo l'installazione è necessario modificare il file di configurazione di NSS (<code>/etc/nsswitch.conf</code>) come segue:
<pre>
passwd: compat ldap
group: compat ldap
shadow: compat ldap
</pre>
È possibile verificare le impostazioni con il comando
<pre>
getent passwd
</pre>
che dovrebbe riportare anche gli utenti Samba come Administrator.
<br/>
Verificate anche che il file <code>/etc/libnss-ldap.conf</code> sia simile al seguente:
<pre>
host 127.0.0.1
base dc=miodominio,dc=local
ldap_version 3
scope one
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
pam_password crypt
nss_base_passwd ou=users,dc=logic?one
nss_base_passwd ou=workstations,dc=logic?one
nss_base_shadow ou=users,dc=logic?one
nss_base_group ou=groups,dc=logic?one
</pre>
I cambiamenti di NSS dovrebbero già essere sufficienti per determinate operazioni, ma l'accesso tramite alcuni strumenti come SSH ancora non funziona.<br/>
Per attivare i servizi in modo completo occorre lavorare su PAM e, in particolare, installare le librerie che consentono a PAM di accedere a LDAP.
<pre>
# apt-get install libpam-ldap libpam-cracklib
</pre>
Vi viene chiesto come per libnss-ldap, il DN dell'amministratore di LDAP e la sua password. Per il resto possono essere confermate le impostazioni predefinite. In questo modo il file <code>/etc/pam_ldap.conf</code> ha già tutte le impostazioni corrette e la password è stata memorizzata in <code>/etc/ldap.secret</code>.
<br />
Verificate il file <code>/etc/pam_ldap.conf</code>, che deve essere identico al file /etc/libnss-ldap.conf modificato poco prima.
<br/>
Nella cartella <code>/etc/pam.d</code> modificare i seguenti files:
<pre>
commom-account:
account sufficient pam_ldap.so
account required pam_unix.so
</pre>
<pre>
commom-auth:
auth    sufficient      pam_ldap.so nullok_secure
auth    required        pam_unix.so use_first_pass
</pre>
<pre>
commom-password:
password    sufficient      pam_ldap.so
password    required      pam_unix.so try_first_pass nullok obscure min=4 max=8 md5
</pre>
<pre>
commom-session:
session    sufficient      pam_ldap.so
session    required        pam_unix.so
</pre>
Per provare un servizio, tipo ssh, occorre far ripartire il demone corrispondente e provare ad autenticarsi con un nuovo utente contenuto nel database LDAP.
<br/>


==La mia installazione di Debian Sarge (3.1r0a)==
== Configurazione del server Samba ==
E' possibile copiare un prototipo per il file di configurazione di samba (facendo una copia dell'originale!):
<pre>
cp /usr/share/doc/smbldap-tools/examples/smb.conf /etc/samba/smb.conf
</pre>
'''ATTENZIONE'''
<br/>
Le voci da modificare sono parecchie; conviene un'attenta analisi del file d'esempio allegato nell'appendice, soprattutto per quanto riguarda il binding verso ldap, in modo che rispecchino queste opzioni:
<pre>
[global]
workgroup = MIODOMINIO
server string = LAN Server %v
##### Per permettere un corretto login dei client XP #####
wins support = yes
; wins server = x.y.w.z
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
; include = /etc/samba/dhcp.conf
dns proxy = no
; name resolve order = lmhosts host wins bcast
unix charset = ISO8859-1
; character set = ISO8859-1
### Each machina has its own log file ###
log file = /var/log/samba/log.%m
max log size = 1000
; syslog only = no
syslog = 0


===Backup e partizionamento===
panic action = /usr/share/samba/panic-action %d
### Authentication ###
security = user
encrypt passwords = true
; passdb backend = tdbsam guest
passdb backend = ldapsam:ldap://127.0.0.1
obey pam restrictions = yes
; guest account = nobody
invalid users = root
;unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sLinux\spassword:* %n\n *Retype\snew\sLinux\spassword:* %n\n .


Ho fatto un backup di tutti i documenti, file, musica, video, etc...
; pam password change = no


Poi una deframmentazione, meglio se da DOS, in modo da avere il sistema operativo su una parte precisa del disco (all'inizio).
##### LDAP Configuration #####


Io ho voluto mantenere il sistema op. della microsoft, quindi ho creato le partizioni (almeno 2) da Windows. Si possono creare, credo, anche con l'installer di Debian, ma � un po' complicato. Non fate come il sottoscritto, procuratevi un programma open source per partizionare. : )
ldap admin dn = cn=admin,dc=miodominio,dc=local
ldap suffix = dc=miodominio,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap passwd sync = Yes
##### Samba PDC #####


Io ne ho create 2:
os level = 255
domain master = yes
domain logons = yes
preferred master = yes
time server = yes
logon home =
logon path =
##### File sharing #####


*Primaria da 14 GB per / [destinazione dell'intero sistema operativo]
; preserve case = yes
*Logica da 1 GB per lo swap ["memoria virtuale"]
; short preserve case = yes
La partizione di swap non � obbligatoria, ma consigliata.


===Installazione (prima parte)===
##### Misc #####


Facendo partire l'installazione della Sarge su questo modello Toshiba si ha un blocco sul rilevamento dei controller PCMCIA, in particolare su:
; include = /home/samba/etc/smb.conf.%m
<pre>Rilevamento dell'hardware in corso alla ricerca di lettori CD-ROM --> Avvio dei servizi "PC-CARD" in corso</pre>
socket options = TCP_NODELAY
Ma non ho disperato, al boot mi � bastato scrivere, per far partire l'installer correttamente:
; idmap uid = 10000-20000
<pre>hw-detect/start_pcmcia=false</pre>
; idmap gid = 10000-20000
Siccome, io credo, non viene riconosciuto correttamente nemmeno l'adattatore grafico, ho dovuto aggiungere:
; template shell = /bin/bash
<pre>vga=771</pre>
se no mi sarei trovato davanti ad una schermata nera. Il comando completo diventa quindi:
<pre>linux26 acpi=yes vga=771 hw-detect/start_pcmcia=false</pre>
Prima del processo di partizionamento dell'installer, viene chiesto di formattare tutto l'hd o di modificare la tabella delle partizioni manualmente: io, per tenermi Windows, ho scelto la seconda opzione.
Quindi appare il men� di partizionamento con visualizzate le tre partizioni:
<pre>- (numero partizione) (tipo) (dimensione) (file system) (uso)
-
-
</pre>
</pre>
Quella dell'altro SO non va toccata, deve essere impostata su "non usare la partizione".
Abilitare l'autenticazione tramite username.
Quella principale (per /) va configurata cos�:
<pre>
<pre>usato come (cio� il file system): reiserFS
security = user
mount point: /
opzioni: default
etichetta: /
flag "avviabile": attivato
</pre>
</pre>
Quella di swap cos�:
Sostituire il bakend predefinito:
<pre>usato come: area di swap</pre>
<pre>
Ho proseguito con il partizionamento guidato e il resto dell'installazione.
passdb backend = tdbsam guest
</pre>
con il backend LDAP:
<pre>
passdb backend = ldapsam:ldap://127.0.0.1
</pre>
Per utilizzare smbldap per gestire le password:
<pre>
; Do ldap passwd sync
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
</pre>
e per gestire gli utenti e i gruppi da windows:
<pre>
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%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"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
</pre>
Rendere scrivibili le home directory (di default sono in sola lettura e personalmente non ne capisco il motivo).
<pre>
[homes]
comment = Home Directories
browseable = no
writable = yes
create mask = 0700
directory mask = 0700
</pre>
Infine decommentare la share [netlogon] e creare la share [profiles].
<pre>
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no


PRIMA di confermare il partizionamento, ho VERIFICATO nel riepilogo che le partizioni di altri OS non vengano modificate.
[profiles]
Ho scelto di installare il boot loader GRUB nel master boot record.
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory mask = 0700
</pre>
Il file è pronto. Salvarlo e testarlo con il comando:
<pre>
# testparm
</pre>
Affinché i roaming profiles funzionino correttamente è necessario che la cartella puntata dalla share [profiles] esista e abbia permessi 1757.<br/>
Infine bisogna impostare la password per l'accesso a LDAP come admin
<pre>
# smbpasswd -w <password>
</pre>
e far ripartire SAMBA.
<pre>
# /etc/init.d/samba restart
</pre>
Creare infine le cartelle necessarie per netlogon e profiles.
<pre>
# mkdir /var/lib/samba/netlogon
# mkdir /var/lib/samba/profiles
# chmod 1757 /var/lib/samba/profiles
</pre>
=== Creare il primo utente ===
Adesso siamo pronti per la creazione del primo utente con il comando:
<pre>
# smbldap-useradd -a -m -c "Nome Utente" username
</pre>
Dove -a serve per creare anche i dati UNIX, -m crea l'home directory e -c specifica il nome completo. Infine impostare la password dell'utente con:
<pre>
# smbldap-passwd username
</pre>
Per verificare il tutto usare il comando:
<pre>
# smbldap-usershow username
</pre>
=== Creare un gruppo ===
<pre>
# smbldap-groupadd "NomeGruppo"
</pre>
=== Aggiunta di un utente a un gruppo ===
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
<br/>


===Installazione (seconda parte)===
== Creazione di un semplice script da eseguire al login di windows ==
E' possibile creare uno script che abbiamo chiamto "logon.bat" (come specificato nel file /etc/smbldap-tools/smbldap.conf) da mettere nella cartella indicata per la condivisione netlogon, quindi nel nostro caso /var/lib/samba/netlogon/
Tale script dovrà esser scritto in modalità dos, per far questo sfrutteremo il tool unix2dos contenuto nel pacchetto tofrodos.
<pre>
# apt-get install tofrodos
</pre>
creiamo lo script con l'editor che preferiamo
<pre>
# vim /var/lib/samba/netlogon/logon.bat
</pre>
syncronizziamo gli orologi del client windows con il nostro server scrivendo nello script.
<pre>
net time %LOGONSERVER% /set /yes
</pre>
infine
<pre>
# unix2dos /var/lib/samba/netlogon/logon.bat
</pre>
Allo script si possono aggiungere operazioni come il montaggio di unità di rete o altre condivisioni.
Tenete conto che con queste impostazioni viene creata un'unità di rete collegata alla home dell'utente linux.


Finita la prima parte dell'installazione, il sistema si � riavviato, cos� che mi sono trovato davanti al men� di GRUB (scelta del sistema operativo). Ho selezionato, con la tastiera:
== Connettersi al dominio ==
<pre>Debian GNU/LINUX, kernel 2.6.8-2-686    (o simile)</pre>
Il nostro server è ora pronto per essere utilizzato. Per testarne le funzionalità è possibile procedere per gradi, in modo da isolare quelli che sono i problemi di configurazione da quelli che sono i problemi di rete o dei client Windows.<br/>
e ho premuto "e" per editarlo, quindi ho selezionato:
A tal fine il primo accesso può essere fatto dal server stesso con il comando:
<pre>kernel /boot/vwlinuz-2.6.8-2-686 root=/dev/hda2 ro acpi=yes vga=771    (o simile)</pre>
<pre>
e premuto di nuovo "e" , ho aggiunto in fondo alla riga, senza virgolette: "1" (credo si possa aggiungere anche "single"), poi INVIO e poi "b". Il sistema comincia la seconda parte di installazione; ad un certo punto ci si trova al prompt di manutenzione, digitate (senza #):
# smbclient -L localhost -U Administrator
</pre>
Dovrebbe essere richiesta la password impostata precedentemente per l'utente Administrator e, di seguito, dovrebbero venire elencate le condivisioni samba impostate sul server.
<br/><br/>
La procedura di connessione dei client al dominio varia a seconda del sistema operativo utilizzato sulle macchine client:
<br/><br/>
'''Windows 95/98/ME'''
# Verificare che sia installato il "Client per Reti Microsoft" fra le proprietà di rete
# Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
# Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
# Se si è configurata su smb.conf l'opzione "add user script", selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
# Inserire il nome del proprio dominio e cliccare OK.
'''Windows NT'''
# Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
# Selezionare Dominio e inserire il nome del prorio dominio
# Selezionare Crea un Computer Account
# Alla richiesta della password di un amministratore inserire la login e la password di Administrator, ricordarsi che l'utente root deve essere aggiunto a smbpasswd.
# Dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.
'''Windows 2000'''
# Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).
'''Windows XP'''
<br/>
La procedura con Windows XP è più complessa (lamentele a Microsoft che usa cambiare le specifiche e le implementazioni dei suoi protocolli anche per rendere più complicata l'interoperabilità con soluzioni alternative). Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio (Samba o Windows based).
# Aprire l'editor delle policy di Sicurezza Locale (Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione)
# Disabilitare la voce "Domain member: Digitally encrypt or sign secure channel (always)" (Membro di dominio: aggiunta crittografia of irma digitale ai dati del canale protetto (sempre) )
# Disabilitare la voce "Domain member: Disable machine account password changes" (Controller di dominio: rifiuta cambio password account computer)
# Disabilitare la voce "Domain member: Require strong (Windows 2000 or later) session key" (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )
# Scaricare da Samba.org la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
# A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard fornendo le credenziali di Administrator.
'''Linux/Unix'''
<br/>
Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba e se sono dei file server, si può configurare Samba per permettere l'autenticazione tramite il dominio. Su smb.conf ci devono essere le seguenti righe:
<pre>
<pre>
# cd /etc/rc2.d/
[global]
# rm *pcmcia*
      workgroup = <nome dominio>
# init2
      netbios name = <nome server samba>
      security = DOMAIN
      encrypt passwords = Yes
      password server = <nome/ip del PDC>
      preferred master = False
      domain master = False
</pre>
</pre>
Ho cos� rimosso i riferimenti ai controller PCMCIA. L'installazione parte come previsto. Se non avessi eseguito quest'ultima operazione, si sarebbe verficato un blocco del sistema a:
Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:
<pre>
<pre>
Starting PCMCIA services: cardmgr[2808]: watching 1 socket
smbpasswd -j <nome dominio> -r <nome PDC server> -U root
cs: IO port probe 0x0100-0x04ff: clean
cs: IO port probe 0x0800-0x08ff: _ |
</pre>
</pre>
====Metodo alternativo====
Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).
by  [[Utente:Alex|Alex]]
<br/>
== Unire un server Samba al dominio ==
Nel caso si disponga di un secondo server e si voglia utilizzare un unico database degli utenti è possibile seguire 2 strade differenti:
# Configurare il secondo server per accedere a LDAP seguendo le indicazioni esposte per il server di dominio, ovviamente senza farlo diventare server di dominio, ma con autenticazione degli utenti
# Usare il server di dominio per l'autenticazione
Il primo caso non verrà trattato, mentre per il secondo occorre eseguire le seguenti operazioni sul server da aggiungere.
<br/>
Modificare il file <code>/etc/samba/smb.conf</code> con la seguenti direttiva:
<pre>
security = domain
</pre>
Far ripartire Samba e dare il seguente comando per unire il server al dominio e creare l'utente relativo al pc:
<pre>
net rpc join -U Administrator%password
</pre>
Infine, affinché un utente sia riconosciuto correttamente da Samba deve essere anche un utente di sistema, pertanto occorre configurare il sistema affinché peschi la lista degli utenti dal server di dominio via LDAP, esattamente come era avvenuto per il server di dominio.<br/>
Installare il pacchetto libnss-ldap e configurarlo in modo da puntare al server LDAP installato sul PDC e fornendo la base LDAP corretta (dc=logic).<br/>
Modificare il file /etc/nsswitch.conf come fatto in precedenza.
<pre>
passwd: compat ldap
group: compat ldap
shadow: compat ldap
</pre>
A questo punto è possibile creare share e assegnare permessi in base a utenti e gruppi definiti nel dominio.
<br/>
== Promemoria dei comandi di Samba e LDAP ==
=== Creazione di utenti ===
<pre>
# smbldap-useradd -a -m -c "Descrizione Utente" nome.utente
# smbldap-passwd nome.utente
</pre>
Per verificare il tutto usare il comando
<pre>
# smbldap-usershow nome.utente
</pre>
=== Creazione di un gruppo ===
<pre>
# smbldap-groupadd "NomeGruppo"
</pre>
=== Aggiunta di un utente a un gruppo ===
<pre>
# smbldap-usermod -G "NomeGruppo" nome.utente
</pre>
=== Elencare i gruppi memorizzati in LDAP ===
<pre>
# ldapsearch -x objectClass=posixGroup
</pre>
=== Elencare gli utenti di un gruppo ===
<pre>
# smbldap-groupshow "gruppo"
</pre>
=== Backuppare una directory condivisa dal server usando le credenziali di un utente specifico ===
<pre>
smbclient //nomeserver/nomecartella -U nome.utente%password.utente -N -Tc backup.tar /percorso/locale/del/backup
</pre>
=== Elencare le risorse condivise di una macchina ===
<pre>
smbclient -L nomeserver
</pre>
=== Per fare delle modifiche nel DB in maniera semplice ===
<pre>
  slapcat -l /tmp/backup.ldif   
 
  # stoppare il servizio
 
  /etc/init.d/slapd stop
 
  # una copia del vecchio db


Il metodo illustrato prima ha lo svantaggio per� di rendere inutilizzabile la rilevazione delle schede inserite nella PCMCIA.
  cp -r /var/lib/ldap  /var/lib/ldap.old
E' possibile lasciare in init2 il rilevamento della PCMCIA, procedendo in questo modo:
  mkdir /var/lib/ldap


Al GRUB, selezionare:
  Modificare il file backup.ldif e quindi reimportarlo
<pre>Debian GNU/LINUX, kernel 2.6.8-2-686 (failsafe)</pre>
in maniera da accedere come root alla console. A questo punto bisogna dare i seguenti comandi:
<pre># nano /etc/pcmcia/config.opts</pre>
Si aprir� il file di configurazione della pcmcia, dove bisogna cercare la seguente riga:
<pre>include port 0x800-0x8ff</pre>
e commentarla con #:
<pre>#include port 0x800-0x8ff</pre>
A questo punto, salvato il file, si potr� dare il reboot e concludere l'installazione normalmente.


===Configurazione desktop===
  slapadd -c -l /tmp/backup.ldif
</pre>
=== Comandi utili LDAP ===
<pre>
ldapsearch -b "dc=miodominio,dc=local" -x


Io ho scelto "ambiente desktop".
ldapsearch -b "dc=miodominio,dc=local" -LLL "cn=nomedellutente*" -x
Verr� in seguito chiesto di scegliere i driver per la scheda video, cio� "ati".


Se � andato tutto bene, si deve, con i diritti di amministratore, modificare il file:
ldapadd -x -W -D "cn=admin,dc=miodominio,dc=local" -f entry.ldif  # per importare un ldif
<tt>/etc/X11/XF86Config-4</tt><br/>
oppure: <tt>/etc/X11/xorg.conf</tt>    oppure    <tt>/etc/X11/Xfree86.conf</tt>


la sezione "Screen" va modificata cos�, se non lo � gi�:
ldapdelete  -x  -D "cn=admin,dc=miodominio,dc=local" -W "cn= nomeutente,dc=logic"
</pre>
Nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il file di configurazione corretto.
<br/>


== Configurazioni addizionali attivabili in SAMBA ==
'''Disabilitare i roaming profiles'''
<br/>
Così come è stato configurator Samba permette l'utilizzo dei roaming profiles, meccanismo per cui tutte le impostazioni di un utente sono caricate dal server al login e salvate sul server al logout in modo da poter utilizzare computer differenti ritrovando le proprie impostazioni.<br/>
Seppur questa funzionalità sia utile, nel caso di cartelle di profilo di elevate dimensioni (in questa cartella c'è la cache del browser, le e-mail, la cartella documenti, ...) i tempi di login e logout sono eterni. Il meccanismo dei roaming profiles può essere disabilitato per singolo computer o agendo sul server SAMBA a livello di impostazioni del singolo utente (e ovviamente di impostazioni di default da utilizzare durante la creazione degli utenti).<br/>
Per disabilitare i roaming profiles agendo sul server occorre, innanzitutto, modificare il file <code>/etc/samba/smb.conf</code> aggiungendo le seguenti righe:
<pre>
logon home =
logon path =
</pre>
Questi parametri, anche se vuoti, DEVONO esserci, altrimenti il client continua a cercare il profile generando un errore.<br/>
Per tutti gli utenti presenti occorre eliminare l'attributo sambaProfilePath. Per far ciò è possibile usare il comando smbldap-usermod, utilizzare un client di LDAP testuale o grafico o ancora usare gli strumenti di gestione utenti di Windows scaricando i srvtools.exe dal sito della Microsoft.<br/>
Infine, per far sì che i nuovi utenti non abbiano, come default, impostato il parametro in questione occorre commentare nel file <code>/etc/smbldap-tools/smbldap.conf</code> la riga:
<pre>
userProfile="\\PDC-SAMBA\profiles\%U"
</pre>
Nel caso, invece, si volessero mantenere i roaming profiles, ma disabilitarli solo su determinati computer, è possibile modificare un impostazione sui singoli computer che non devono utilizzarli nel seguente modo:
# Andare in menu di avvio - Esegui e scrivere mmc.
# Andare in "Console - Aggiungi rimuovi snap-in...".
# Andare in Aggiungi e selezionare "Criterio gruppo".
# Confermare tutto e chiudere le finestre fino a poter accedere allo snap-in appena aggiunto.
# Andare in "Criteri di protezione - Configurazione computer - Modelli amministrativi - Sistema - Profili utente" per XP e in "Criteri computer locale - Configurazione computer - Modelli amministrativi - Sistema - Accesso" per Windows 2000
# Cambiare il valore di "Consenti solo profili utente locali" da Non configurato a Attivo.
In questo modo al login e logout i profili sul server non sono più considerati.
<br/>
== db4 ==
OpenLDAP ha la brutta abitudine di non risistemarsi per bene quando la donna delle pulizie inciampa nell'interruttore generale della corrente. Perciò conviene installare:
<pre>
# apt-get install db4.2-util
</pre>
Questo pacchetto contiene l'utility db4.2_recover che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.
<br/>
== Impostare i charset corretti ==
Il meccanismo di gestione dei charset in Linux e in Windows è abbastanza complicato, anche a causa dell'elevato numero di strati logici e sistemi differenti che una stringa deve attraversare prima di essere letta o scritta. In larga parte ho ancora molte lacune sul funzionamento, ma di seguito riporto le configurazioni necessarie affinché eventuali lettere accentate nei nomi di file e cartelle siano coerenti sui client Windows, Linux e sul server Sambanel caso di charset Italiano (western european - ISO8859-1).<br/>
In primo luogo occorre aggiungere al file di configurazione di Samba (<code>/etc/samba/smb.conf</code>), nella sezione <code>[global]</code>, la seguente direttiva:
<pre>
<pre>
Subsection "Display"
unix charset = ISO8859-1
    Deph          24
    Modes        "1280x800" "1024x768" "800x600" "640x480"
</pre>
</pre>
Se si mette "1152x768" al posto di "1280x800" si avr� un effetto tipo antialias veramente fastidioso, soprattutto per i carratteri piccoli; infatti questa risoluzione non � specifica a questo video.
Questa direttiva dice a Samba con che charset deve scrivere sul file system e questo deve coincidere con il charset con cui è stato installato il server. Alla fine occorre impostare 2 opzioni su Linux affinché le share Samba siano montate con il
 
charset corretto.
Nota: Nel Toshiba M30X-159, per vedere bene le risoluzioni da 1024x768 in su.. ho dovuto modificare nella sezione "Monitor" la sincronizzazione orizzontale e verticale nel seguente modo :
<pre>
<pre>
Section "Monitor"
smbmount -o iocharset=iso8859-1,codepage=cp850 SHARE MOUNTPOINT
Identifier "LPL:0000"
HorizSync 30-61
VertRefresh 56-75
Option "DPMS"
EndSection
</pre>
</pre>
Se come driver non avete scelto ati, dovete cambiarlo nello stesso file, scrivendo "ati" al posto di quello che ci trovate, nella riga "Driver" nella sezione "Device".
<br/>
'''Riavviate.'''
== Appendice A - Files di configurazione ==
'''File <code>/etc/samba/smb.conf</code>'''
<pre>
[global]
workgroup = MIODOMINIO
server string = LAN Server %v
wins support = yes
; wins server = x.y.w.z
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
; include = /etc/samba/dhcp.conf
dns proxy = no
; name resolve order = lmhosts host wins bcast
unix charset = ISO8859-1
; character set = ISO8859-1
### Ogni macchina ha il suo file di log ###
log file = /var/log/samba/log.%m
max log size = 1000
; syslog only = no
syslog = 0


===LAN===
panic action = /usr/share/samba/panic-action %d
### Autenticazione ###
security = user
encrypt passwords = true
; passdb backend = tdbsam guest
passdb backend = ldapsam:ldap://127.0.0.1
obey pam restrictions = yes
; guest account = nobody
invalid users = root
;unix password sync = no
# passwd program = /usr/bin/passwd %u
# passwd chat = *Enter\snew\sLinux\spassword:* %n\n *Retype\snew\sLinux\spassword:* %n\n .


Sono riuscito a configurare anche la connessione a internet tramite router.
; pam password change = no


La procedura ben descritta in [[Condividere la connessione a internet]].


===WIRELESS===
##### LDAP Configuration #####


====Debian Way====
ldap admin dn = cn=admin,dc=miodominio,dc=local
ldap suffix = dc=miodominio,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldp-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*token*updated*
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%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"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"


[[Intel PRO/Wireless 2200BG]]


''(by ckale)''
##### Samba PDC #####


Per evitare, in parte, di fare il passaggio 1 e 2  (vedi sotto), installate attraverso apt-get il "[[Pagina di manuale di module-assistant|module-assistant]]". Questo vi consentir� di recuperare, pachettizzare ed installare il modulo per il ipw2200. Una volta installato, con <tt>apt-get install module-assistant</tt> modifichiamo anche il source.list di apt che si trova <tt>/etc/apt/source.list</tt> aggiungendo "non-free" e "contrib" sia per il repo "deb" che deb-src come in esempio :
os level = 255
domain master = yes
domain logons = yes
preferred master = yes
time server = yes
logon home =
logon path =


deb http://debian.fastweb.it/debian/ stable main non-free contrib
deb-src http://debian.fastweb.it/debian/ stable main non-free contrib
##### Printing #####


Un volta fatto ci� aggiorniamo apt-get update e lanciamo module-assistant.
; load printers = yes
Ricordiamoci pero' di copiare i file firmware nella cartella <tt>/usr/lib/hotplug/firmware/</tt> (con il [[Udev e Debian|nuovo udev]] il percorso � <tt>/lib/firmware</tt>).
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
; printer admin = @ntadmin


A questo punto proviamo a caricare il modulo con modprobe ipw2200
##### File sharing #####


Una volta caricato il modulo procediamo con l'installazione delle utility wireless, apt-get install wireless-utility. Con il comando iwconfig possiamo vedere le interfacce di rete wifi.
; preserve case = yes
; short preserve case = yes


{{Warningbox|Se non funziona controllate il log del modprobe e verificate che il modulo cerchi il driver corretto, mi capitato che lui cercasse un file con un nome diverso, naturalmente mi bastato rinominare i firmware ;)}}


====Old Style====
##### Misc #####
''(by jockerfox)''


1) Dal sito Sourceforge.net
; include = /home/samba/etc/smb.conf.%m
scaricate i seguenti pacchetti :
socket options = TCP_NODELAY
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash


http://ipw2200.sourceforge.net/#downloads il driver "ipw2200-1.0.4.tgz"
http://ipw2200.sourceforge.net/firmware.php il firmware "v1.0.4-current firmware"


Con Synaptic scaricare i seguenti pacchetti:
##### Share definitions #####
:1: kernel-headers-2.6.8-2-686 (in automatico scaricher� anche kernel-headers-2.6.8-2 e kernel-kbuild-2.6-3)
:2: net-tools


2) Fatto cio':
[homes]
:* scompattare "ipw2200-1.0.4.tgz" in una directory qualsiasi e da SU (#) fate un "make", poi "make install"
comment = Home Directories
:* scompattare in una diversa directory "v1.0.4-current firmware" e copiare tutto in /usr/lib/hotplug/firmware/
browseable = no
writable = yes
create mask = 0700
directory mask = 0700


'''P.S.''': non occorre copiare i file tipo "LICENZE" e varie... che non servono a nulla.
[netlogon]
comment = Network Logon Services
path = /scuola/samba/netlogon
guest ok = yes
writable = no
share modes = no


3) aprite una Konsole e da SU scrivete "nano /etc/network/interfaces" e aggiungete prima di eth0:
[profiles]
path = /scuola/samba/profiles
read only = no
create mask = 0600
directory mask = 0700


[VolShare]
comment = Documenti della Rete
path = /scuola/VolShare
browsable = yes
read only = no
public = yes
create mask = 0755
</pre>
<br/>
'''File <code>/etc/ldap/slapd.conf</code>'''
<pre>
<pre>
auto eth1
# This is the main slapd configuration file. See slapd.conf(5) for more
iface eth1 inet dhcp
# info on the configuration options.
</pre>
 
#######################################################################
# Global Directives:
 
# Features to permit
#allow bind_v2
 
# Schema and objectClass definitions
include        /etc/ldap/schema/core.schema
include        /etc/ldap/schema/cosine.schema
include        /etc/ldap/schema/nis.schema
include        /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/samba.schema
 
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck    on
 
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile        /var/run/slapd/slapd.pid
 
# List of arguments that were passed to the server
argsfile        /var/run/slapd.args
 
# Read slapd.conf(5) for possible values
loglevel        0
 
# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_bdb


4) reboot ... e funziona !!
#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30


{{Warningbox|Ricordate di mettere il router senza chiave WEP (o varie cifrature) per essere sicuru che tutto funzioni come da dovere... dopo di che' abilitate allora la Key WEP nel router (vedi sotto per Debian)}}
#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>


====Il WEP====
#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        bdb


No problem !
# The base of your directory in database #1
suffix          "dc=miodominio,dc=local"


A.S.: Il KWiFIManager e' utile, ma non per configurare la chiave WEP!!!
# Where the database file are physically stored for database #1
directory      "/var/lib/ldap"


;Importante: In primis, abilitate la chiave WEP nel router (esempio io la ho abilitata in 128 bit)
# Indexing options for database #1
e '''scrivetevi il codice esadecimale''' in un foglio senza sbagliare !!
index          objectClass eq
# Da Konsole digitate : network-admin (lo trovate anche nel menu' K) e vi chiedera' la password di amministratore.. inseritela !
index          uid,uidNumber,gidNumber,memberUid eq
# Una volta "entrati dentro", cliccate sull'icona del Wireless, e poi cliccate sull'icona "modifica" (e' un'icona con una chiave inglese) e inserite la chiave WEP in esadecimale (ex:ABF0D3...); non occorre aggiungere "0x" avanti alla chiave, (0xABFoD3...NO!!) digitatela direttamente in esadecimale (ABF0D3...SI!)
index cn,mail,surname,givenname eq,subinitial
# selezionate la casellina "questo dispositivo e' configurato"
index sambaSID eq
# le altre opzioni se volete... tipo ESSID Dopo premete OK (due volte) e reboot !!!
index sambaPrimaryGroupSID eq
index sambaDomainName eq


Sperando di non essermi dimenticato qualcosa... ciao!
# Save the time that the entry gets modified, for database #1
lastmod        on


Fine .
# Where to store the replica logs for database #1
(by jockerfox)
# replogfile /var/lib/ldap/replog


===VIDEO===
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
        by dn="cn=admin,dc=miodominio,dc=local" write
        by anonymous auth
        by self write
        by * none


====Utilizzare i driver Ati di default====
# Ensure read access to the base for things like
# supportedSASLMechanisms.  Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read


I driver Ati di default sono parzialmente accelerati. Dalla mia esperienza � possibile usarli tranquillamente (io ci modellavo con Blender con qualche problema, ad esempio durante le selezioni dei poligoni o vertici nella vista 3D). E' sufficiente avere le librerie mesa (<tt>libglu1-mesa libgl1-mesa-glx libgl1-mesa-dri</tt>) e modificare il file <tt>/etc/X11/xorg.conf</tt> o <tt>/etc/X11/XF86config-4</tt>. Riporto solo le sezioni da aggiungere o modificare:
# The admin dn has full write access, everyone else
<pre>Section "Module"
# can read everything.
        ...
access to *
        Load    "dbe"
         by dn="cn=admin,dc=miodominio,dc=local" write
         Load    "dri"
         by * read
         Load    "extmod"
        Load    "glx"
        Load    "GLcore"
        ...
EndSection


Section "Device"
# For Netscape Roaming support, each user gets a roaming
        Identifier      "ATI Technologies, Inc. RV350 [Mobility Radeon 9600 M10]"
# profile for which they have write access to
        Driver          "ati"
#access to dn=".*,ou=Roaming,o=morsnet"
        BusID          "PCI:1:0:0"
#        by dn="cn=admin,dc=miodominio,dc=local" write
EndSection
#        by dnattr=owner write


Section "DRI"
#######################################################################
        Mode    0666
# Specific Directives for database #2, of type 'other' (can be bdb too):
EndSection</pre>
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>


'''Ma se si vuole sfruttare al pieno il processore grafico...'''
# The base of your directory for database #2
#suffix "dc=debian,dc=org"
</pre>
<br/>
'''File <code>/etc/ldap/ldap.conf</code>'''
<pre>
# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.9 2000/09/04 19:57:01 kurt Exp $
#
# LDAP Defaults
#


La guida � qui: [[Installazione driver proprietari Ati]].
# See ldap.conf(5) for details
# This file should be world readable but not world writable.


Dopo le modifiche '''riavviamo X.'''
#BASE dc=example, dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666


====xorg.conf (XF86Config-4)====
BASE dc=miodominio,dc=local
URI ldap://localhost


Questo e' il mio xorg.conf:
#SIZELIMIT 12
<pre># /etc/X11/xorg.conf (xorg X Window System server configuration file)
#TIMELIMIT 15
#DEREF never
</pre>
<br/>
'''File <code>/etc/smbldap-tools/smbldap_bind.conf</code>'''
<pre>
############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=admin,dc=miodominio,dc=local"
slavePw="password"
masterDN="cn=admin,dc=miodominio,dc=local"
masterPw="password"
</pre>
<br/>
'''File <code>/etc/smbldap-tools/smbldap.conf</code>'''
<pre>
# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
# $Id: smbldap.conf,v 1.17 2005/01/29 15:00:54 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools
 
#  This code was developped by IDEALX (http://IDEALX.org/) and
#  contributors (their names can be found in the CONTRIBUTORS file).
#
#
# This file was generated by dexconf, the Debian X Configuration tool, using
#                 Copyright (C) 2001-2002 IDEALX
# values from the debconf database.
#
#
# Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
# This program is free software; you can redistribute it and/or
# (Type "man /etc/X11/xorg.conf" at the shell prompt.)
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
#
# This file is automatically updated on xserver-xorg package upgrades *only*
# This program is distributed in the hope that it will be useful,
# if it has not been modified since the last upgrade of the xserver-xorg
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# package.
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
#
# If you have edited this file but would like it to be automatically updated
# You should have received a copy of the GNU General Public License
# again, run the following command:
# along with this program; if not, write to the Free Software
#   sudo dpkg-reconfigure -phigh xserver-xorg
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
#  USA.


Section "ServerLayout"
#  Purpose :
Identifier    "Default Layout"
#      . be the configuration file for all smbldap-tools scripts
Screen      0  "aticonfig-Screen[0]" 0 0
InputDevice    "Keyboard"
InputDevice    "Mouse"
InputDevice    "Touchpad"
EndSection


Section "Files"
##############################################################################
# path to defoma fonts
#
FontPath    "/usr/share/fonts/X11/misc"
# General Configuration
FontPath    "/usr/share/fonts/X11/100dpi/:unscaled"
#
FontPath    "/usr/share/fonts/X11/75dpi/:unscaled"
##############################################################################
FontPath    "/usr/share/fonts/X11/Type1"
FontPath    "/usr/share/fonts/X11/100dpi"
FontPath    "/usr/share/fonts/X11/75dpi"
FontPath    "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
EndSection


Section "Module"
# Put your own SID
Load  "synaptics"
# to obtain this number do: net getlocalsid
Load  "bitmap"
SID="S-1-5-21-954358294-1158571263-591329423"
Load  "ddc"
Load  "dri"
Load  "extmod"
Load  "freetype"
Load  "glx"
Load  "int10"
Load  "type1"
Load  "vbe"
#      Load  "GLcore"
EndSection


Section "InputDevice"
##############################################################################
Identifier  "Keyboard"
#
Driver      "kbd"
# LDAP Configuration
Option     "CoreKeyboard"
#
Option     "XkbRules" "xorg"
##############################################################################
Option     "XkbModel" "pc105"
Option     "XkbLayout" "it"
EndSection


Section "InputDevice"
# Notes: to use to dual ldap servers backend for Samba, you must patch
Identifier  "Mouse"
# Samba with the dual-head patch from IDEALX. If not using this patch
Driver      "mouse"
# just use the same server for slaveLDAP and masterLDAP.
Option     "CorePointer"
# Those two servers declarations can also be used when you have
Option     "Device" "/dev/input/mice"
# . one master LDAP server where all writing operations must be done
Option     "Protocol" "ExplorerPS/2"
# . one slave LDAP server where all reading operations must be done
Option     "Emulate3Buttons" "true"
#  (typically a replication directory)
EndSection


Section "InputDevice"
# Ex: slaveLDAP=127.0.0.1
Identifier  "Touchpad"
slaveLDAP="127.0.0.1"
Driver      "synaptics"
slavePort="389"
Option     "Device" "/dev/psaux"
Option     "Protocol" "auto-dev"
Option     "LeftEdge" "1700"
Option     "RightEdge" "5300"
Option     "TopEdge" "1700"
Option     "BottomEdge" "4200"
Option     "FingerLow" "25"
Option     "FingerHigh" "30"
Option     "MaxTapTime" "180"
Option     "MaxTapMove" "220"
Option     "VertScrollDelta" "100"
Option     "MinSpeed" "0.10"
Option     "MaxSpeed" "0.30"
Option     "AccelFactor" "0.0150"
Option     "SHMConfig" "on"
        Option      "AlwaysCore" "true"
EndSection


### Alternative Touchpad Configuration ###
# Master LDAP : needed for write operations
#  
# Ex: masterLDAP=127.0.0.1
#  Section "InputDevice"
masterLDAP="127.0.0.1"
#    Identifier  "Touchpad"
masterPort="389"
#    Driver      "mouse"
 
#     Option      "Device" "/dev/input/mice"
# Use TLS for LDAP
#     Option      "Name" "AlpsPS/2 ALPS GlidePoint"
# If set to 1, this option will use start_tls for connection
#     Option      "Protocol" "explorerps/2"
# (you should also used the port 389)
#    Option      "Vendor" "Sysp"
ldapTLS="0"
#    Option   "LeftEdge" "1700"
 
#    Option   "RightEdge" "5300"
# How to verify the server's certificate (none, optional or require)
#    Option      "TopEdge" "1700"
# see "man Net::LDAP" in start_tls section for more details
#    Option   "BottomEdge" "4200"
verify="require"
#    Option   "FingerLow" "25"
#    Option   "FingerHigh" "30"
#    Option   "MaxTapTime" "180"
#     Option   "MaxTapMove" "220"
#     Option   "VertScrollDelta" "100"
#    Option   "MinSpeed" "0.10"
#    Option   "MaxSpeed" "0.30"
#    Option   "AccelFactor" "0.0150"
#    Option   "SHMConfig" "on"
#  EndSection
#
###


Section "Monitor"
# CA certificate
Identifier  "aticonfig-Monitor[0]"
# see "man Net::LDAP" in start_tls section for more details
HorizSync    30.0 - 70.0
cafile="/etc/smbldap-tools/ca.pem"
VertRefresh  50.0 - 100.0
Option     "VendorName" "ATI Proprietary Driver"
Option     "ModelName" "Generic Autodetecting Monitor"
Option     "DPMS" "true"
EndSection


Section "Monitor"
# certificate to use to connect to the ldap server
Identifier  "aticonfig-Monitor[1]"
# see "man Net::LDAP" in start_tls section for more details
Option     "DPMS" "true"
clientcert="/etc/smbldap-tools/smbldap-tools.pem"
EndSection


Section "Device"
# key certificate to use to connect to the ldap server
Identifier  "aticonfig-Device[0]"
# see "man Net::LDAP" in start_tls section for more details
Driver      "fglrx"
clientkey="/etc/smbldap-tools/smbldap-tools.key"
Option     "VideoOverlay" "on"
Option     "OpenGLOverlay" "off"
Option     "DesktopSetup" "horizontal,reverse"
BusID      "PCI:1:0:0"
EndSection


Section "Screen"
# LDAP Suffix
Identifier "aticonfig-Screen[0]"
# Ex: suffix=dc=IDEALX,dc=ORG
Device    "aticonfig-Device[0]"
suffix="dc=miodominio,dc=local"
Monitor    "aticonfig-Monitor[0]"
DefaultDepth    24
SubSection "Display"
Viewport  0 0
Depth    24
Modes    "1280x800" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection


Section "DRI"
# Where are stored Users
Mode        0666
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
EndSection
usersdn="ou=Users,${suffix}"


### End Of File ###
# Where are stored Computers
</pre>
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
computersdn="ou=Computers,${suffix}"


===AUDIO===
# Where are stored Groups
# Ex groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
groupsdn="ou=Groups,${suffix}"


Bisogna installare i paccheti ALSA:
# Where are stored Idmap entries (used if samba is a domain member server)
<pre># apt-get install alsa-base alsa-utils</pre>
# Ex groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
Poi fare un bel:
idmapdn="ou=Idmap,${suffix}"
<pre># alsaconf</pre>
seguire le istruzioni e poi:
<pre># alsamixer</pre>
per settare i volumi.


===Touchpad===
# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="sambaDomainName=MIODOMINIO,${suffix}"


Questo portatile ha un touchpad Alps, ma funziona anche con i driver Synaptics (a patto di rinunciare al tapping e allo scrolling, se non sbaglio).
# Default scope Used
scope="sub"


Per usare i driver Synaptics, la guida � qui: [[Synaptics touchpad]].
# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"


Se invece non volete usare i suddetti driver, quindi far funzionare il tapping e lo scrolling pi� felicemente, date un'occhiata al file <tt>xorg.conf</tt> riportato sopra: commentate la sezione che abilita il Synaptics Touchpad e decommentate la configurazione alternativa. Probabilmente i valori sono da aggiustare. Salvate e riavviate X.
# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"


'''Nota:''' Se utilizzate ksynaptics come tool di configurazione del touchpad, abilitate l'opzione ''ALPS touch pad''.
##############################################################################
#
# Unix Accounts Configuration
#
##############################################################################


===PCMCIA===
# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"


Su internet ho trovato che l'adattatore PCMCIA, su questo modello, � riconosciuto con il modulo <tt>yenta_socket</tt>.
# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"


===Gestione energetica===
# Gecos
userGecos="System User"


Per quanto riguarda il risparmio energetico, il centro di controllo di KDE dice che:
# Default User (POSIX and Samba) GID
''Il computer ha l'installazione ACPI parziale, bisogna abilitare "AC adaptor" e "Control method battery". Quindi ricompilare il kernel.''
defaultUserGid="513"


Date un'occhiata qui: [[Cpufreqd: Cpuscaling per Intel Pentium M]]
# Default Computer (Samba) GID
defaultComputerGid="515"


Io, per risolvere, ho attivato i seguenti moduli:
# Skel dir
<pre>acpi-cpufreq
skeletonDir="/etc/skel"
ac
battery
button
fan
processor
thermal
cpufreq_userspace
freq_table</pre>
� possibile farlo con <tt>modconf</tt>.
Comunque molti sono gia' attivati.
Inoltre vanno installati:
<pre>acpi cpufreqd cpufrequtils</pre>
Aggiungete le applet (se avete Gnome) "Variazione frequenza CPU" e "Carica batteria" e siete a posto.


Con il comando:
# Default password validation time (time in days) Comment the next line if
<pre>cpufreq-set</pre>
# you don't want password to be enable for defaultMaxPasswordAge days (be
potete cambiare la frequenza del processore. Esempio:
# careful to the sambaPwdMustChange attribute's value)
<pre>cpufreq-set -f 1.2GHz</pre>
defaultMaxPasswordAge="99"
oppure ottenere info con:
<pre>cpufreq-info</pre>


Se vi intendete di liguaggio C, o avete lavorato per Microsoft o Intel, potete provare a ricompilarvi la DSDT (Differentiated System Description Table). Questo vi permetter�, forse, di ottenere prestazioni migliori, di correggere qualche errore o di aggiungerne di nuovi. La guida � qui: [[ACPI e DSDT]].
##############################################################################
#
# SAMBA Configuration
#
##############################################################################


===Sensori===
# The UNC path to home drives location (%U username substitution)
# Ex: \\My-PDC-netbios-name\homes\%U
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
userSmbHome="\\lanserver\homes\%U"


Guida: [[I2c e lm-sensors]]
# The UNC path to profiles locations (%U username substitution)
# Ex: \\My-PDC-netbios-name\profiles\%U
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
userProfile="\\lanserver\profiles\%U"


Anche se questo laptop dovrebbe avere i sensori per le temperature e la ventola, <tt>lm-sensors</tt> non sembra rilevarli.
# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: H: for H:
userHomeDrive="H:"


===Note===
# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: %U.cmd
# userScript="startup.cmd" # make sure script file is edited under dos
userScript="%U.cmd"


Il mio mouse (Logitech Optical USB) � riconosciuto subito; il touchpad va cofigurato in /etc/X11/XF86config-4 .
# Domain appended to the users "mail"-attribute
Totem d� un messaggio di errore quando si cerca di riprodurre un file audio o video. Dopo la (re)installazione dei pacchetti ALSA funziona. Le altre applicazioni multimediali vanno bene, tranne XMMS che va solo se non sono in esecuzione altri media player.
# when smbldap-useradd -M is used
mailDomain="miodominio.local"


Una buona guida all'installazione a Debian Sarge � qui:
##############################################################################
[http://fabrizio.ciacchi.it/guide.php?pagina=sarge Guida veloce]
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################


==Debian Etch==
# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"


Il comando di boot per installare � questo:
# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
<pre>install acpi=yes vga=771</pre>
# but prefer Crypt:: libraries
Installando da zero la testing ho risolto alcuni problemi, tra cui la gestione energetica e il controllo della batteria.
with_slappasswd="0"
Durante il processo di installazione ho scelto: ambiente desktop, sistema base e portatile.
slappasswd="/usr/sbin/slappasswd"
</pre>
<br/>
'''File <code>/etc/nsswitch.conf</code>'''
<pre>
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.


Per quanto riguarda il PCMCIA, durante l'installazione di Etch non si hanno blocchi di sistema.
passwd:        compat ldap
group:          compat ldap
shadow:        compat ldap


----
hosts:          files dns
----
networks:      files
 
protocols:      db files
services:      db files
ethers:        db files
rpc:            db files
 
netgroup:      nis
</pre>
<br/>
'''File <code>/etc/pam.d/common-account</code>'''
<pre>
#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system.  The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account sufficient pam_ldap.so
account required pam_unix.so
</pre>
<br>
'''File <code>/etc/pam.d/common-auth</code>'''
<pre>
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth sufficient pam_ldap.so nullock_secure
auth required pam_unix.so use_first_pass
</pre>
<br/>
'''File <code>/etc/pam.d/common-password</code>'''
<pre>
#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define  the services to be
#used to change user passwords.  The default is pam_unix
 
# The "nullok" option allows users to change an empty password, else
# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.
 
password  sufficient pam_ldap.so
password  required  pam_unix.so try_first_pass nullok obscure min=4 max=8 md5
 
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required   pam_cracklib.so retry=3 minlen=6 difok=3
# password required   pam_unix.so use_authtok nullok md5
</pre>
<br/>
'''File <code>/etc/pam.d/common-session</code>'''
<pre>
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).  The default is pam_unix.
#
session sufficient pam_ldap.so
session required pam_unix.so
</pre>
== Approfondimenti ==
=== Debianizzati ===
[[Samba e OpenLDAP: creare un controller di dominio]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Etch]]<br/>
[[Samba e OpenLDAP: creare un controller di dominio con Debian Lenny]]<br/>
[[Implementare un'architettura ridondante master/slave OpenLDAP]]<br/>
[[Samba: guida estesa]]<br/>
[[Samba: creare un cestino di rete per le condivisioni]]<br/>
[[ClamAV: scansione antivirus delle condivisioni Samba]]


Chiunque volesse contribuire a questa guida � benvenuto (soprattutto e a maggior ragione se ho detto cose '''poco esatte''').
{{Autori
|Autore = [[Utente:Ferdybassi|Ferdybassi]] 04:46, 31 Dic 2006 (CST)
}}


----


Autore: [[Utente:Superflieriam|Superflieriam]]
[[Categoria:Reti con Windows]][[Categoria:Samba]]
[[Categoria:Laptop]]

Versione attuale delle 12:11, 6 giu 2015

Samba
Arrow left.png

Condivisione risorse

Controller di dominio

Altro

Arrow right.png
Debian-swirl.png Versioni Compatibili

soltanto:
Debian 3.1 "sarge"

Versioni compatibili

Introduzione

In questo articolo vedremo come installare un server basato su Debian e Samba 3 con backend di un database LDAP, affinché funga da Primary Domain Controller di una rete Windows. Lo stesso server LDAP verrà utilizzato anche per la gestione in contemporanea degli utenti Unix, in modo da avere un controllo unico e centralizzato sia sugli utenti Windows sia sugli utenti Linux.
Per la redazione di questa guida mi sono basato su questi ottimi HowTo:
http://www.slag.it/documenti/samba3_ldap_pdc/samba3_ldap_pdc_howto.php
http://www.pluto.it/files/journal/pj0605/samba3pdc.html
http://www.linuxtrent.it/documentazione/wikilinux/SambaLDAPcomePDCsuDebianSarge
e li ho integrati con annotazioni, appunti e configurazioni speciali che mi sono stati indispensabili per completare correttamente le operazioni di creazione di un dominio e di aggiunta al dominio stesso di macchine client Microsoft.

Sistema installato

Il presente HOWTO è stato realizzato utilizzando un sistema Debian 3.1 Sarge con tutti gli aggiornamenti di sicurezza ufficiali. La configurazione iniziale del sistema prevede un'installazione base Debian net install senza alcun componente aggiuntivo.
Durante tutto il processo si presuppone di agire come utente root.

Samba

Si consiglia di installare immediatamente Samba, in quanto alcuni strumenti che mette a disposizione saranno necessari anche per le configurazioni degli altri servizi.

# apt-get install samba smbclient cupsys cupsys-bsd

Per il momento come configurazione base rispondente nel seguente modo alle domande che vi verranno poste:

  • Nome del Dominio/Workgroup: MIODOMINIO
  • Utilizzare password cifrate: SI
  • Utilizzare DHCP per i nomi Netbios: NO
  • Avviare Samba come demoni (no inetd)
  • Creare il database delle password: NO

Non preoccupatevi per eventuali errori, perchè tutta la configurazione verrà ripresa in un secondo momento.

Installazione e configurazione del server LDAP

Il server LDAP è essenzialmente un database gerarchico che viene utilizzato per la memorizzazione dei dati degli utenti, dei computer del dominio e di tutto quanto si desideri gestire tramite una base dati condivisibile via rete tra più sistemi.
Si considera che il server in questione venga utilizzato all'interno di una rete aziendale altamente affidabile e non verranno, pertanto, trattati gli aspetti relativi alla crittografia delle comunicazioni. Questa scelta riduce la sicurezza, pertanto si consiglia di approfondire l'argomento.
Per utilizzare il server LDAP occorre installare il pacchetto slapd che costituisce un'implementazione di server LDAP, il pacchetto ldap-utils, un insieme di strumenti che ne permettono la gestione, e il pacchetto samba-doc, contentente alcuni file necessari per configurare LDAP per l'utilizzo con SAMBA.

# apt-get install slapd ldap-utils samba-doc

Durante l'installazione verranno richieste alcune informazioni necessarie a configurare il server LDAP. In particolare verrà richiesto il nome del dominio che può essere un dominio interno completamente inventato (es. miodominio.tld) o un dominio internet valido. La scelta è legata a politiche organizzative aziendali e tecniche che richiederebbero una trattazione approfondita e che esula da questo HOWTO.
Nei file riportati si considera che il dominio specificato è miodominio.local, un dominio interno non valido per Internet. In seguito verrà richiesta la password per l'utente amministratore. Scegliete una password particolarmente sicura, in quanto tramite essa si potrà avere accesso completo alla gestione degli utenti del vostro dominio e, pertanto, accedere a qualsiasi sistema presente sulla vostra rete. Questa password, inoltre, verrà utilizzata anche in seguito in alcuni file di configurazione, pertanto è bene ricordarsela.
Come nome dell'organizzazione mettete una descrizione della vostra organizzazione: Rete LAN di MioDominio.
Per tutte le altre opzioni possono essere confermate le impostazioni di default.

Passiamo ora alla configurazione del server LDAP.
Innanzitutto dobbiamo copiare in /etc/ldap/schema lo schema LDAP necessario per SAMBA.

# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

Ora occorre modificare il file di configurazione di slapd (/etc/ldap/slapd.conf) aggiungendo nella sezione Schema and objectClass definitions lo schema per samba:

include /etc/ldap/schema/samba.schema

Nella sezione Indexing options aggiungere una serie di indicizzazioni che ottimizzeranno le interogazioni per l'utilizzo del server SAMBA:

index 	objectClass	eq
index 	uid,uidNumber,gidNumber,memberUid 	eq
index 	cn,mail,surname,givenname	eq,subinitial
index 	sambaSID	eq
index 	sambaPrimaryGroupSID	eq
index 	sambaDomainName	eq

Bisogna consentire agli utenti di cambiare non solo la propria password LDAP, ma anche le password di SAMBA e contemporaneamente proteggere tali informazioni da un accesso pubblico sostituendo la riga:

access to attribute=userPassword

con:

access to attrs=userPassword,sambaNTPassword,sambaLMPassword

Infine aggiungere le informazioni per l'autenticazione:

rootdn          "cn=admin,dc=miodominio,dc=local"
rootpw          "passworddiadmindigitataprecedentemente"

Possiamo far ripartire slapd affinché tutte le modifiche apportate siano prese in considerazione.

# /etc/init.d/slapd restart

Si può controllare che il server sia correttamente partito eseguendo una query con il comando:

# ldapsearch -x

La risposta deve essere un file LDIF. Se invece si ottiene un errore di connessione ricontrollare tutte le impostazioni e i file di log. Per controllare il funzionamento di slapd può sempre tornare utile fermare il servizio e farlo partire, anziché con gli script standard debian con il comando:

# slapd -d 256

In tal modo viene avviato visualizzando varie informazioni di debug a video.

Configurazione dei client per LDAP

Ogni volta che un client accede ad un server LDAP deve impostare la base di ricerca e, nel caso si trovi su un server differente, l'URL del server LDAP. Queste informazioni possono essere impostate come default nel file /etc/ldap/ldap.conf aggiungendo le righe:

BASE dc=miodominio,dc=local
URI ldap://localhost

Una volta fatto questo è possibile verificare il corretto funzionamento di LDAP nuovamente con il comando:

# ldapsearch -x

che dovrebbe fornire tutti i dati presenti nel server LDAP. Sempre pochi, ma in numero maggiore rispetto a quanto elencato la volta precedente.

Configurare i SMBLDAP TOOLS

I smbldap-tools sostituiscono i comandi standard di UNIX per la gestione di gruppi, utenti e password in modo da dialogare direttamente con il server LDAP e fornire un metodo per gestire in contemporanea gli account UNIX e SAMBA.
Malgrado la documentazione ufficiale di SAMBA asserisca che smbpasswd sia in grado di gestire tali account, utilizzando quello strumento occorre prima creare l'utente UNIX, poi quello Samba, pertanto ne sconsiglio l'utilizzo.

Installazione

Installare il pacchetto smbldap-tools

# apt-get install smbldap-tools

Configurazione

Copiare i file smbldap.conf e smbldap_bind.conf in /etc/smbldap-tools.

# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz > /etc/smbldap-tools/smbldap.conf
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/smbldap_bind.conf

Modificare il file /etc/smbldap-tools/smbldap_bind.conf inserendo il DN dell'amministratore del server LDAP e la sua password. Il DN dell'amministratore è stato impostato automaticamente durante l'installazione del pacchetto Debian di slapd e corrisponde a "cn=admin,dc=miodominio,dc=local", in cui il dominio dipende dalle configurazioni sopra riportate per il server LDAP. La password è quella richiesta in fase di installazione del server LDAP.
Se non si è sicuri del DN da inserire lanciare il comando:

# slapcat

e cercare una riga che inizia con "dn: cn=". Il valore riportato è quello da inserire come DN. Nel file sono presenti le configurazioni sia per il master che per lo slave, in modo da poter gestire un server di backup per il sistema LDAP gestito tramite slurpd.
Al momento si presuppone di avere un solo server LDAP, pertanto le configurazioni coincideranno:

slaveDN="cn=admin,dc=miodominio,dc=local"
slavePw="passworddiadmindigitataprecedentemente"
masterDN="cn=admin,dc=miodominio,dc=local"
masterPw="passworddiadmindigitataprecedentemente"

Eseguire il comando:

# net getlocalsid

e copiare o prendere nota del codice che viene restituito.
Modificare il file /etc/smbldap-tools/smbldap.conf inserendo il SID appena ottenuto e controllare gli indirizzi dei 2 server LDAP in modo che coincidano con il server locale (127.0.0.1).

SID="S-1-5-21-2318037123-1631426476-2439636316"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"

Verificare che il TLS sia disabilitato.

ldapTLS="0"

Configurare il corretto suffisso per il dominio (quello specificato nella configurazione di LDAP) e il nome corretto per il dominio che si vuole configurare (MIODOMINIO).

suffix="dc=miodominio,dc=local"
sambaUnixIdPooldn="sambaDomainName=MIODOMINIO,${suffix}"

Potrebbe tornare utile anche impostare una differente scadenza per le password, in modo che non ne venga richiesta la sostituzione troppo di frequente:

defaultMaxPasswordAge="180"

Questo parametro è poi utilizzato al momento della creazione di un utente e ogni volta che un utente si cambia password.
Configurare infine i percorsi per le home degli utenti e per le cartelle che conterranno i profiles nel caso di roaming profiles.

userSmbHome="\\PDC-SERVER\%U"
userProfile="\\PDC-SERVER\profiles\%U"

PDC-SERVER deve essere sostituito con il nome SAMBA del server che funziona come PDC (il server che stiamo configurando; lo stesso nome che verrà impostato più avanti nel file di configurazione di Samba). In questo esempio, inoltre, si è ritenuto di fornire uno script di logon comune a tutti gli utenti, anziché di uno script personale per ogni utente, pertanto si è impostato il seguente parametro:

userScript="logon.bat"

Tale impostazione può essere poi cambiata per determinati utenti con esigenze particolari direttamente agendo sui dati LDAP dell'utente.
Impostare infine il suffisso per gli indirizzi mail, anche se nel presente HOWTO non vengono configurati.

mailDomain="miodominio.local"

Terminate le modifiche al file, bisogna cambiare i permessi per i file appena modificati al fine di aumentare la sicurezza del sistema ed impedire agli utenti di avere accesso alle password di amministratore di LDAP, scritta in chiaro nel file di configurazione precedentemente modificato.

# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf


Configurazione di SAMBA

A questo punto il backend per la memorizzazione degli utenti e la loro gestione è pronto; è quindi il momento di passare a SAMBA per farlo accedere a quanto fatto finora.

Creazione dei dati base

Per il funzionamento corretto SAMBA ha bisogno di diversi gruppi predefiniti e 2 utenti: Administrator e nobody.
Inoltre, affinché si riesca ad aggiungere computer al dominio in modo automantico (da macchine Windows), deve esistere un utente con uid = 0 da utilizzare per questa operazione. Tale utente può essere un utente root (da aggiungere a mano) o lo stesso Administrator cambiandogli l'uid. Quest'ultima è la scelta presa in questa configurazione, in modo da avere un utente Administrator che è Administrator per Samba e root per il "dominio" UNIX.
Per creare tali gruppi utilizzare i comandi:

# smbldap-populate -k 0
# smbldap-useradd -a -m -c "Admin" Administrator
# smbldap-usermod -G "Domain Admins" Administrator
# smbldap-usermod -u 0 Administrator
# smbldap-populate -a Administrator -k 0

Il parametro "-k 0" imposta l'UID di Administrator a 0, facendolo di fatto coincidere con l'utente root. Gli altri comandi fanno sì che Administrator sia aggiunto al gruppo dei Domain Admins. Durante l'esecuzione del comando vengono riepilogati i record aggiunti. In ogni caso è possibile controllare i dati inseriti con il comando:

# ldapsearch -x | less

e anche:

# ldapsearch -x uid=Administrator

Infine è bene cambiare la password di Administrator con il comando:

# smbldap-passwd Administrator

Questo sarà anche il comando che dovrà essere normalmente utilizzato per la gestione delle password.

Configurazione di NSS per lavorare con LDAP

Per far lavorare correttamente Samba è necessario configurare NSS con LDAP. Samba infatti si aspetta di trovare un utente di sistema con lo stesso nome di un utente Samba. Per questo occorre recuperare le informazioni sugli utenti dal database LDAP. È necessario quindi installare:

# apt-get install libnss-ldap

Verrà chiesto il server LDAP e il dominio (miodominio.local), poi dovrete cambiare la stringa per la connessione al database ldap, mettendo admin come utente e dc=miodominio,dc=local nei valori dc. Per tutte le altre domande è possibile mantenere le risposte di default. Dopo l'installazione è necessario modificare il file di configurazione di NSS (/etc/nsswitch.conf) come segue:

passwd:	compat ldap
group: 	compat ldap
shadow:	compat ldap

È possibile verificare le impostazioni con il comando

getent passwd

che dovrebbe riportare anche gli utenti Samba come Administrator.
Verificate anche che il file /etc/libnss-ldap.conf sia simile al seguente:

host 127.0.0.1
base dc=miodominio,dc=local
ldap_version 3
scope one
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
pam_password crypt
nss_base_passwd ou=users,dc=logic?one
nss_base_passwd ou=workstations,dc=logic?one
nss_base_shadow ou=users,dc=logic?one
nss_base_group ou=groups,dc=logic?one

I cambiamenti di NSS dovrebbero già essere sufficienti per determinate operazioni, ma l'accesso tramite alcuni strumenti come SSH ancora non funziona.
Per attivare i servizi in modo completo occorre lavorare su PAM e, in particolare, installare le librerie che consentono a PAM di accedere a LDAP.

# apt-get install libpam-ldap libpam-cracklib

Vi viene chiesto come per libnss-ldap, il DN dell'amministratore di LDAP e la sua password. Per il resto possono essere confermate le impostazioni predefinite. In questo modo il file /etc/pam_ldap.conf ha già tutte le impostazioni corrette e la password è stata memorizzata in /etc/ldap.secret.
Verificate il file /etc/pam_ldap.conf, che deve essere identico al file /etc/libnss-ldap.conf modificato poco prima.
Nella cartella /etc/pam.d modificare i seguenti files:

commom-account:
account sufficient	pam_ldap.so
account required 	pam_unix.so
commom-auth:
auth    sufficient      pam_ldap.so nullok_secure
auth    required        pam_unix.so use_first_pass
commom-password:
password    sufficient      pam_ldap.so
password    required      pam_unix.so try_first_pass nullok obscure min=4 max=8 md5
commom-session:
session    sufficient      pam_ldap.so
session    required        pam_unix.so

Per provare un servizio, tipo ssh, occorre far ripartire il demone corrispondente e provare ad autenticarsi con un nuovo utente contenuto nel database LDAP.

Configurazione del server Samba

E' possibile copiare un prototipo per il file di configurazione di samba (facendo una copia dell'originale!):

cp /usr/share/doc/smbldap-tools/examples/smb.conf /etc/samba/smb.conf

ATTENZIONE
Le voci da modificare sono parecchie; conviene un'attenta analisi del file d'esempio allegato nell'appendice, soprattutto per quanto riguarda il binding verso ldap, in modo che rispecchino queste opzioni:

[global]
	workgroup = MIODOMINIO
	server string = LAN Server %v
	
##### Per permettere un corretto login dei client XP #####
	wins support = yes
	; wins server = x.y.w.z
	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
	; include = /etc/samba/dhcp.conf
	dns proxy = no
	; name resolve order = lmhosts host wins bcast
	unix charset = ISO8859-1
	; character set = ISO8859-1
	
	### Each machina has its own log file ###
	log file = /var/log/samba/log.%m
	max log size = 1000
	; syslog only = no
	syslog = 0

	panic action = /usr/share/samba/panic-action %d
	
	### Authentication ###
	security = user
	encrypt passwords = true
	; passdb backend = tdbsam guest
	passdb backend = ldapsam:ldap://127.0.0.1
	obey pam restrictions = yes
	; guest account = nobody
	invalid users = root
	;unix password sync = no
	
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\sLinux\spassword:* %n\n *Retype\snew\sLinux\spassword:* %n\n .

	; pam password change = no

	##### LDAP Configuration #####

	ldap admin dn = cn=admin,dc=miodominio,dc=local
	ldap suffix = dc=miodominio,dc=local
	ldap group suffix = ou=Groups
	ldap user suffix = ou=Users
	ldap machine suffix = ou=Computers
	ldap idmap suffix = ou=Idmap
	ldap passwd sync = Yes
	
	##### Samba PDC #####

	os level = 255
	domain master = yes
	domain logons = yes
	preferred master = yes
	time server = yes
	logon home =
	logon path =
	
	##### File sharing #####

	; preserve case = yes
	; short preserve case = yes

	##### Misc #####

	; include = /home/samba/etc/smb.conf.%m
	socket options = TCP_NODELAY
	; idmap uid = 10000-20000
	; idmap gid = 10000-20000
	; template shell = /bin/bash

Abilitare l'autenticazione tramite username.

security = user

Sostituire il bakend predefinito:

passdb backend = tdbsam guest

con il backend LDAP:

passdb backend = ldapsam:ldap://127.0.0.1

Per utilizzare smbldap per gestire le password:

; Do ldap passwd sync
ldap passwd sync = Yes
passwd program = /usr/sbin/smbldap-passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*

e per gestire gli utenti e i gruppi da windows:

add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%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"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"

Rendere scrivibili le home directory (di default sono in sola lettura e personalmente non ne capisco il motivo).

[homes]
comment = Home Directories
browseable = no
writable = yes
create mask = 0700
directory mask = 0700

Infine decommentare la share [netlogon] e creare la share [profiles].

[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no

[profiles]
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory mask = 0700

Il file è pronto. Salvarlo e testarlo con il comando:

# testparm

Affinché i roaming profiles funzionino correttamente è necessario che la cartella puntata dalla share [profiles] esista e abbia permessi 1757.
Infine bisogna impostare la password per l'accesso a LDAP come admin

# smbpasswd -w <password>

e far ripartire SAMBA.

# /etc/init.d/samba restart

Creare infine le cartelle necessarie per netlogon e profiles.

# mkdir /var/lib/samba/netlogon
# mkdir /var/lib/samba/profiles
# chmod 1757 /var/lib/samba/profiles

Creare il primo utente

Adesso siamo pronti per la creazione del primo utente con il comando:

# smbldap-useradd -a -m -c "Nome Utente" username

Dove -a serve per creare anche i dati UNIX, -m crea l'home directory e -c specifica il nome completo. Infine impostare la password dell'utente con:

# smbldap-passwd username

Per verificare il tutto usare il comando:

# smbldap-usershow username

Creare un gruppo

# smbldap-groupadd "NomeGruppo"

Aggiunta di un utente a un gruppo

# smbldap-usermod -G "NomeGruppo" nome.utente


Creazione di un semplice script da eseguire al login di windows

E' possibile creare uno script che abbiamo chiamto "logon.bat" (come specificato nel file /etc/smbldap-tools/smbldap.conf) da mettere nella cartella indicata per la condivisione netlogon, quindi nel nostro caso /var/lib/samba/netlogon/ Tale script dovrà esser scritto in modalità dos, per far questo sfrutteremo il tool unix2dos contenuto nel pacchetto tofrodos.

# apt-get install tofrodos

creiamo lo script con l'editor che preferiamo

# vim /var/lib/samba/netlogon/logon.bat

syncronizziamo gli orologi del client windows con il nostro server scrivendo nello script.

net time %LOGONSERVER% /set /yes

infine

# unix2dos /var/lib/samba/netlogon/logon.bat

Allo script si possono aggiungere operazioni come il montaggio di unità di rete o altre condivisioni. Tenete conto che con queste impostazioni viene creata un'unità di rete collegata alla home dell'utente linux.

Connettersi al dominio

Il nostro server è ora pronto per essere utilizzato. Per testarne le funzionalità è possibile procedere per gradi, in modo da isolare quelli che sono i problemi di configurazione da quelli che sono i problemi di rete o dei client Windows.
A tal fine il primo accesso può essere fatto dal server stesso con il comando:

# smbclient -L localhost -U Administrator

Dovrebbe essere richiesta la password impostata precedentemente per l'utente Administrator e, di seguito, dovrebbero venire elencate le condivisioni samba impostate sul server.

La procedura di connessione dei client al dominio varia a seconda del sistema operativo utilizzato sulle macchine client:

Windows 95/98/ME

  1. Verificare che sia installato il "Client per Reti Microsoft" fra le proprietà di rete
  2. Assicurarsi che il Client per Reti Microsoft sia selezionato come protocollo di rete primario (Pannello di Controllo -> Rete -> Logon di rete primario).
  3. Andare su Pannello di Controllo -> Rete -> Client per reti Microsoft -> Proprietà -> Logon su Dominio NT.
  4. Se si è configurata su smb.conf l'opzione "add user script", selezionare il checkbox Crea un Computer Account, altrimenti creare a mano sul server Samba un utente con il nome della macchina Windows.
  5. Inserire il nome del proprio dominio e cliccare OK.

Windows NT

  1. Andare su Pannello di Controllo -> Rete -> Identificazione Rete -> Proprietà
  2. Selezionare Dominio e inserire il nome del prorio dominio
  3. Selezionare Crea un Computer Account
  4. Alla richiesta della password di un amministratore inserire la login e la password di Administrator, ricordarsi che l'utente root deve essere aggiunto a smbpasswd.
  5. Dovrebbe comparire un messaggio che ci da il benvenuto sul dominio.

Windows 2000

  1. Le procedure sono uguali a quelle per Windows NT tranne che i settaggi di rete sono trovati sotto Pannello di Controllo -> Sistema -> Identificazione Rete (oppure, sul Desktop, cliccare col tasto destro del mouse sull'icona Risorse del Computer, selezionare Proprietà, cliccare sulla tab Identificazione Rete e sul tasto Proprietà).

Windows XP
La procedura con Windows XP è più complessa (lamentele a Microsoft che usa cambiare le specifiche e le implementazioni dei suoi protocolli anche per rendere più complicata l'interoperabilità con soluzioni alternative). Notare che solo XP Professional Edition può essere usato per far parte di un dominio, Windows XP Home Edition non può far parte di un dominio (Samba o Windows based).

  1. Aprire l'editor delle policy di Sicurezza Locale (Start->Pannello di controllo->Strumenti di Aministrazione->Criteri di protezione locali->Criteri locali->opzioni di protezione)
  2. Disabilitare la voce "Domain member: Digitally encrypt or sign secure channel (always)" (Membro di dominio: aggiunta crittografia of irma digitale ai dati del canale protetto (sempre) )
  3. Disabilitare la voce "Domain member: Disable machine account password changes" (Controller di dominio: rifiuta cambio password account computer)
  4. Disabilitare la voce "Domain member: Require strong (Windows 2000 or later) session key" (Membro di dominio: richiesta chiave di sessione avanzata (Windows 2000 o versioni successive) )
  5. Scaricare da Samba.org la patch per il registro WinXP_SignOrSeal. Per applicarla cliccare due volte sul file .reg e rispondere Si alle domande
  6. A questo punto ci si può unire al dominio come su Windows NT/2000: Tasto destro su Risorse del Computer, selezionare Proprietà, Nome del Computer e tasto Modifica uppure cliccare su Identificazione di Rete ed eseguire il Wizard fornendo le credenziali di Administrator.

Linux/Unix
Anche dei sistemi Linux, ovviamente, possono unirsi ad un dominio con un PDC Samba e se sono dei file server, si può configurare Samba per permettere l'autenticazione tramite il dominio. Su smb.conf ci devono essere le seguenti righe:

[global]
       workgroup = <nome dominio>
       netbios name = <nome server samba>
       security = DOMAIN
       encrypt passwords = Yes
       password server = <nome/ip del PDC>
       preferred master = False
       domain master = False

Ovviamente sul PDC Samba deve essere creato un computer account per il nostro Samba locale (con il nome specificato in netbios name) e, anche in questo caso, il computer locale deve preventivamente unirsi al dominio, con una procedura che è paragonabile a quelle viste sopra per client Windows. Sul Linux/Unix locale basta scrivere:

smbpasswd -j <nome dominio> -r <nome PDC server> -U root

Bisogna fornire la password di root del PDC Samba (ricordarsi che è la password salvata in smbpasswd e non in passwd/shadow, nel caso fossero diverse).

Unire un server Samba al dominio

Nel caso si disponga di un secondo server e si voglia utilizzare un unico database degli utenti è possibile seguire 2 strade differenti:

  1. Configurare il secondo server per accedere a LDAP seguendo le indicazioni esposte per il server di dominio, ovviamente senza farlo diventare server di dominio, ma con autenticazione degli utenti
  2. Usare il server di dominio per l'autenticazione

Il primo caso non verrà trattato, mentre per il secondo occorre eseguire le seguenti operazioni sul server da aggiungere.
Modificare il file /etc/samba/smb.conf con la seguenti direttiva:

security = domain

Far ripartire Samba e dare il seguente comando per unire il server al dominio e creare l'utente relativo al pc:

net rpc join -U Administrator%password

Infine, affinché un utente sia riconosciuto correttamente da Samba deve essere anche un utente di sistema, pertanto occorre configurare il sistema affinché peschi la lista degli utenti dal server di dominio via LDAP, esattamente come era avvenuto per il server di dominio.
Installare il pacchetto libnss-ldap e configurarlo in modo da puntare al server LDAP installato sul PDC e fornendo la base LDAP corretta (dc=logic).
Modificare il file /etc/nsswitch.conf come fatto in precedenza.

passwd:	compat ldap
group: 	compat ldap
shadow:	compat ldap

A questo punto è possibile creare share e assegnare permessi in base a utenti e gruppi definiti nel dominio.

Promemoria dei comandi di Samba e LDAP

Creazione di utenti

# smbldap-useradd -a -m -c "Descrizione Utente" nome.utente
# smbldap-passwd nome.utente

Per verificare il tutto usare il comando

# smbldap-usershow nome.utente

Creazione di un gruppo

# smbldap-groupadd "NomeGruppo"

Aggiunta di un utente a un gruppo

# smbldap-usermod -G "NomeGruppo" nome.utente

Elencare i gruppi memorizzati in LDAP

# ldapsearch -x objectClass=posixGroup

Elencare gli utenti di un gruppo

# smbldap-groupshow "gruppo"

Backuppare una directory condivisa dal server usando le credenziali di un utente specifico

smbclient //nomeserver/nomecartella -U nome.utente%password.utente -N -Tc backup.tar /percorso/locale/del/backup

Elencare le risorse condivise di una macchina

smbclient -L nomeserver

Per fare delle modifiche nel DB in maniera semplice

  slapcat -l /tmp/backup.ldif    

  # stoppare il servizio

  /etc/init.d/slapd stop

  # una copia del vecchio db

  cp -r /var/lib/ldap  /var/lib/ldap.old
  mkdir /var/lib/ldap

  Modificare il file backup.ldif e quindi reimportarlo

  slapadd -c -l /tmp/backup.ldif

Comandi utili LDAP

ldapsearch -b "dc=miodominio,dc=local" -x

ldapsearch -b "dc=miodominio,dc=local" -LLL "cn=nomedellutente*" -x

ldapadd -x -W -D "cn=admin,dc=miodominio,dc=local" -f entry.ldif  # per importare un ldif

ldapdelete  -x  -D "cn=admin,dc=miodominio,dc=local" -W "cn= nomeutente,dc=logic"

Nel caso si reinstalli slapd controllare non ci sia un backup in /var/backups con lo stesso numero di versione, altrimenti un dpkg.reconfigure non ricrea il file di configurazione corretto.

Configurazioni addizionali attivabili in SAMBA

Disabilitare i roaming profiles
Così come è stato configurator Samba permette l'utilizzo dei roaming profiles, meccanismo per cui tutte le impostazioni di un utente sono caricate dal server al login e salvate sul server al logout in modo da poter utilizzare computer differenti ritrovando le proprie impostazioni.
Seppur questa funzionalità sia utile, nel caso di cartelle di profilo di elevate dimensioni (in questa cartella c'è la cache del browser, le e-mail, la cartella documenti, ...) i tempi di login e logout sono eterni. Il meccanismo dei roaming profiles può essere disabilitato per singolo computer o agendo sul server SAMBA a livello di impostazioni del singolo utente (e ovviamente di impostazioni di default da utilizzare durante la creazione degli utenti).
Per disabilitare i roaming profiles agendo sul server occorre, innanzitutto, modificare il file /etc/samba/smb.conf aggiungendo le seguenti righe:

logon home =
logon path =

Questi parametri, anche se vuoti, DEVONO esserci, altrimenti il client continua a cercare il profile generando un errore.
Per tutti gli utenti presenti occorre eliminare l'attributo sambaProfilePath. Per far ciò è possibile usare il comando smbldap-usermod, utilizzare un client di LDAP testuale o grafico o ancora usare gli strumenti di gestione utenti di Windows scaricando i srvtools.exe dal sito della Microsoft.
Infine, per far sì che i nuovi utenti non abbiano, come default, impostato il parametro in questione occorre commentare nel file /etc/smbldap-tools/smbldap.conf la riga:

userProfile="\\PDC-SAMBA\profiles\%U"

Nel caso, invece, si volessero mantenere i roaming profiles, ma disabilitarli solo su determinati computer, è possibile modificare un impostazione sui singoli computer che non devono utilizzarli nel seguente modo:

  1. Andare in menu di avvio - Esegui e scrivere mmc.
  2. Andare in "Console - Aggiungi rimuovi snap-in...".
  3. Andare in Aggiungi e selezionare "Criterio gruppo".
  4. Confermare tutto e chiudere le finestre fino a poter accedere allo snap-in appena aggiunto.
  5. Andare in "Criteri di protezione - Configurazione computer - Modelli amministrativi - Sistema - Profili utente" per XP e in "Criteri computer locale - Configurazione computer - Modelli amministrativi - Sistema - Accesso" per Windows 2000
  6. Cambiare il valore di "Consenti solo profili utente locali" da Non configurato a Attivo.

In questo modo al login e logout i profili sul server non sono più considerati.

db4

OpenLDAP ha la brutta abitudine di non risistemarsi per bene quando la donna delle pulizie inciampa nell'interruttore generale della corrente. Perciò conviene installare:

# apt-get install db4.2-util

Questo pacchetto contiene l'utility db4.2_recover che viene lanciata automaticamente ad ogni restart di ldap, risolvendo eventuali problemi di incongruenza del Barkley DB.

Impostare i charset corretti

Il meccanismo di gestione dei charset in Linux e in Windows è abbastanza complicato, anche a causa dell'elevato numero di strati logici e sistemi differenti che una stringa deve attraversare prima di essere letta o scritta. In larga parte ho ancora molte lacune sul funzionamento, ma di seguito riporto le configurazioni necessarie affinché eventuali lettere accentate nei nomi di file e cartelle siano coerenti sui client Windows, Linux e sul server Sambanel caso di charset Italiano (western european - ISO8859-1).
In primo luogo occorre aggiungere al file di configurazione di Samba (/etc/samba/smb.conf), nella sezione [global], la seguente direttiva:

unix charset = ISO8859-1

Questa direttiva dice a Samba con che charset deve scrivere sul file system e questo deve coincidere con il charset con cui è stato installato il server. Alla fine occorre impostare 2 opzioni su Linux affinché le share Samba siano montate con il charset corretto.

smbmount -o iocharset=iso8859-1,codepage=cp850 SHARE MOUNTPOINT


Appendice A - Files di configurazione

File /etc/samba/smb.conf

	[global]
	workgroup = MIODOMINIO
	server string = LAN Server %v
	wins support = yes
	; wins server = x.y.w.z
	socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
	; include = /etc/samba/dhcp.conf
	dns proxy = no
	; name resolve order = lmhosts host wins bcast
	unix charset = ISO8859-1
	; character set = ISO8859-1
	
	### Ogni macchina ha il suo file di log ###
	log file = /var/log/samba/log.%m
	max log size = 1000
	; syslog only = no
	syslog = 0

	panic action = /usr/share/samba/panic-action %d
	
	### Autenticazione ###
	security = user
	encrypt passwords = true
	; passdb backend = tdbsam guest
	passdb backend = ldapsam:ldap://127.0.0.1
	obey pam restrictions = yes
	; guest account = nobody
	invalid users = root
	;unix password sync = no
	
#	passwd program = /usr/bin/passwd %u
#	passwd chat = *Enter\snew\sLinux\spassword:* %n\n *Retype\snew\sLinux\spassword:* %n\n .

	; pam password change = no


	##### LDAP Configuration #####

	ldap admin dn = cn=admin,dc=miodominio,dc=local
	ldap suffix = dc=miodominio,dc=local
	ldap group suffix = ou=Groups
	ldap user suffix = ou=Users
	ldap machine suffix = ou=Computers
	ldap idmap suffix = ou=Idmap
	ldap passwd sync = Yes
	
	passwd program = /usr/sbin/smbldp-passwd %u
	passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*token*updated*
	
	add user script = /usr/sbin/smbldap-useradd -m "%u"
	ldap delete dn = Yes
	delete user script = /usr/sbin/smbldap-userdel "%u"
	add machine script = /usr/sbin/smbldap-useradd -w "%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"
	set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"


	##### Samba PDC #####

	os level = 255
	domain master = yes
	domain logons = yes
	preferred master = yes
	time server = yes
	logon home =
	logon path =

	
	##### Printing #####

	; load printers = yes
	; printing = bsd
	; printcap name = /etc/printcap
	; printing = cups
	; printcap name = cups
	; printer admin = @ntadmin

	
	##### File sharing #####

	; preserve case = yes
	; short preserve case = yes


	##### Misc #####

	; include = /home/samba/etc/smb.conf.%m
	socket options = TCP_NODELAY
	
	; idmap uid = 10000-20000
	; idmap gid = 10000-20000
	; template shell = /bin/bash


	##### Share definitions #####

	[homes]
	comment = Home Directories
	browseable = no
	writable = yes
	create mask = 0700
	directory mask = 0700

	[netlogon]
	comment = Network Logon Services
	path = /scuola/samba/netlogon
	guest ok = yes
	writable = no
	share modes = no

	[profiles]
	path = /scuola/samba/profiles
	read only = no
	create mask = 0600
	directory mask = 0700

	[VolShare]
	comment = Documenti della Rete
	path = /scuola/VolShare
	browsable = yes
	read only = no
	public = yes
	create mask = 0755


File /etc/ldap/slapd.conf

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

#######################################################################
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema
include		/etc/ldap/schema/samba.schema

# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck     on

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd.args

# Read slapd.conf(5) for possible values
loglevel        0

# Where the dynamically loaded modules are stored
modulepath	/usr/lib/ldap
moduleload	back_bdb

#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend		bdb
checkpoint 512 30

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend		<other>

#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        bdb

# The base of your directory in database #1
suffix          "dc=miodominio,dc=local"

# Where the database file are physically stored for database #1
directory       "/var/lib/ldap"

# Indexing options for database #1
index           objectClass eq
index           uid,uidNumber,gidNumber,memberUid eq
index		cn,mail,surname,givenname eq,subinitial
index		sambaSID eq
index		sambaPrimaryGroupSID eq
index		sambaDomainName eq

# Save the time that the entry gets modified, for database #1
lastmod         on

# Where to store the replica logs for database #1
# replogfile	/var/lib/ldap/replog

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,sambaNTPassword,sambaLMPassword
        by dn="cn=admin,dc=miodominio,dc=local" write
        by anonymous auth
        by self write
        by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms.  Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work 
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=admin,dc=miodominio,dc=local" write
        by * read

# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
#        by dn="cn=admin,dc=miodominio,dc=local" write
#        by dnattr=owner write

#######################################################################
# Specific Directives for database #2, of type 'other' (can be bdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database        <other>

# The base of your directory for database #2
#suffix		"dc=debian,dc=org"


File /etc/ldap/ldap.conf

# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.9 2000/09/04 19:57:01 kurt Exp $
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE	dc=example, dc=com
#URI	ldap://ldap.example.com ldap://ldap-master.example.com:666

BASE dc=miodominio,dc=local
URI ldap://localhost

#SIZELIMIT	12
#TIMELIMIT	15
#DEREF		never


File /etc/smbldap-tools/smbldap_bind.conf

############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=admin,dc=miodominio,dc=local"
slavePw="password"
masterDN="cn=admin,dc=miodominio,dc=local"
masterPw="password"


File /etc/smbldap-tools/smbldap.conf

# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
# $Id: smbldap.conf,v 1.17 2005/01/29 15:00:54 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools

#  This code was developped by IDEALX (http://IDEALX.org/) and
#  contributors (their names can be found in the CONTRIBUTORS file).
#
#                 Copyright (C) 2001-2002 IDEALX
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
#  USA.

#  Purpose :
#       . be the configuration file for all smbldap-tools scripts

##############################################################################
#
# General Configuration
#
##############################################################################

# Put your own SID
# to obtain this number do: net getlocalsid
SID="S-1-5-21-954358294-1158571263-591329423"

##############################################################################
#
# LDAP Configuration
#
##############################################################################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have 
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
#   (typically a replication directory)

# Ex: slaveLDAP=127.0.0.1
slaveLDAP="127.0.0.1"
slavePort="389"

# Master LDAP : needed for write operations
# Ex: masterLDAP=127.0.0.1
masterLDAP="127.0.0.1"
masterPort="389"

# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert="/etc/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey="/etc/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=miodominio,dc=local"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
usersdn="ou=Users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
computersdn="ou=Computers,${suffix}"

# Where are stored Groups
# Ex groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
groupsdn="ou=Groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="sambaDomainName=MIODOMINIO,${suffix}"

# Default scope Used
scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

##############################################################################
# 
# Unix Accounts Configuration
# 
##############################################################################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"

# Default Computer (Samba) GID
defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="99"

##############################################################################
#
# SAMBA Configuration
#
##############################################################################

# The UNC path to home drives location (%U username substitution)
# Ex: \\My-PDC-netbios-name\homes\%U
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
userSmbHome="\\lanserver\homes\%U"

# The UNC path to profiles locations (%U username substitution)
# Ex: \\My-PDC-netbios-name\profiles\%U
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
userProfile="\\lanserver\profiles\%U"

# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: H: for H:
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: %U.cmd
# userScript="startup.cmd" # make sure script file is edited under dos
userScript="%U.cmd"

# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
mailDomain="miodominio.local"

##############################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"


File /etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis


File /etc/pam.d/common-account

#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system.  The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account sufficient	pam_ldap.so
account	required	pam_unix.so


File /etc/pam.d/common-auth

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the
# traditional Unix authentication mechanisms.
#
auth	sufficient	pam_ldap.so nullock_secure
auth	required	pam_unix.so use_first_pass


File /etc/pam.d/common-password

#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define  the services to be
#used to change user passwords.  The default is pam_unix

# The "nullok" option allows users to change an empty password, else
# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.

password   sufficient pam_ldap.so
password   required   pam_unix.so try_first_pass nullok obscure min=4 max=8 md5

# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required	  pam_cracklib.so retry=3 minlen=6 difok=3
# password required	  pam_unix.so use_authtok nullok md5


File /etc/pam.d/common-session

#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive).  The default is pam_unix.
#
session sufficient	pam_ldap.so
session	required	pam_unix.so

Approfondimenti

Debianizzati

Samba e OpenLDAP: creare un controller di dominio
Samba e OpenLDAP: creare un controller di dominio con Debian Etch
Samba e OpenLDAP: creare un controller di dominio con Debian Lenny
Implementare un'architettura ridondante master/slave OpenLDAP
Samba: guida estesa
Samba: creare un cestino di rete per le condivisioni
ClamAV: scansione antivirus delle condivisioni Samba




Guida scritta da: Ferdybassi 04:46, 31 Dic 2006 (CST) Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized