## page was renamed from Server/Directory Server
## page was renamed from GuidaDsServer
#format wiki
#language it
<
>
<>
= Introduzione =
Un ''servizio di directory'' ha bisogno innanzitutto di una struttura ad albero dei nomi (server DNS) e di una analoga struttura associata basata sul protocollo LDAP (slapd).
Inoltre, per fornire anche il servizio di file server a macchine Windows, è necessario il server SAMBA e, per utilizzare la crittografia basata sul protocollo Kerberos, il server Kerberos.
Questo consente di avere un servizio di directory scalabile da utilizzare come ''backend'' per tutti i servizi aziendali, dai servizi di posta agli utenti remoti che si collegano via RADIUS al server FTP.
= Installazione =
Per installare i pacchetti necessari, in un terminale, copiare quanto segue: {{{
apt-get -y install samba smbldap-tools krb5-ftpd krb5-telnetd
}}}
= Descrizione dell'architettura =
Si consideri una configurazione d'esempio di questo tipo:
* LDAP master con DNS master on-board
* LDAP replica con DNS slave per fault tolerance
* un file server SAMBA come PDC
* un altro file server SAMBA come BDC
* un KDC
* i server protetti da '''Kerberos''' (tutti i client, le macchine SAMBA e la replica LDAP)
Ogni entry citata è su una macchina separata.
= Configurare il master LDAP =
Innanzitutto procedere alla configurazione del DNS master creando la zona diretta e inversa per il proprio dominio.
Installare il pacchetto ''bind9'', da terminale, digitando: {{{
apt-get -y install bind9
}}} ed effettuare le configurazioni indicate nella guida [:Server/Dns:alla configurazione di un server DNS].
Fatto ciò, installare i pacchetti necessari per il server LDAP. Da terminale, digitare: {{{
apt-get -y install slapd migrationtools ldap-utils
}}}
Qualora vogliamo amministrare il server LDAP direttamente dal terminale e non da una workstation remota installiamo anche il pacchetto per la gestione grafica del server LDAP: {{{
apt-get -y install gq
}}}
Poi procedere come segue :
* Nel file `/usr/share/migrationtools/migrate_common.ph` sostituire: {{{
$DEFAULT_MAIL_DOMAIN = vostrodominio
$DEFAULT_BASE = "dc=miodominio,dc=com"
$EXTENDED_SCHEMA = 1
}}}
* Poi eseguire come root i comandi : {{{
cd /usr/share/migrationtools
./migrate_base.pl > /etc/ldap/base.ldif
./migrate_hosts.pl /etc/hosts > /etc/ldap/hosts.ldif
./migrate_group.pl /etc/group > /etc/ldap/group.ldif
./migrate_passwd.pl /etc/passwd > /etc/ldap/passwd.ldif
slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/base.ldif
slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/hosts.ldif
slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/group.ldif
slapadd -b "dc=mydomain,dc=com" -f /etc/ldap/passwd.ldif
}}}
* Generiamo poi le password dell'utente '''admin''' : {{{
slappasswd -h {crypt} -s adminpassword
}}}
* A questo punto testiamo la configurazione con il comando : {{{
ldapsearch -x -H ldap://IP master LDAP -b "dc=miodominio,dc=com" "(cn=nomeutente)"
}}}
* Modificare il file `/etc/ldap/slapd.conf` come segue : {{{
replica host = replicaFQDN bindmethod=simple \
binddn="cn=replicator,ou=miaOU,dc=miodominio,dc=com" \
credentials=replicatorpassword
}}}
* Installare l'utilità '''smbldap-tools''' come: {{{
sudo apt-get -y install smbldap-tools
}}}
* Eseguire il comando : {{{
sudo cp /usr/share/doc/smbldap-tools/samba.schema /etc/ldap/schema/samba.schema
}}}
* Ed inserire nel file `/etc/ldap/slapd.conf` dopo l'ultima direttiva `include....` quella che segue: {{{
include /etc/ldap/schema/samba.schema
}}}
* Ora procediamo alla configurazione del servizio di autenticazione crittografata installando il pacchetto ''Kerberos'' come segue : {{{
apt-get -y install krb5-kdc
apt-get -y install krb5-admin-server
}}}
* Eseguire come root i seguenti comandi : {{{
kdb5_util create -s
kadmin.local
kadmin: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin
kadmin: ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/changepw
kadmin: addprinc -pw secret krbadm@MIODOMINIO.COM
kadmin: q
/etc/init.d/krb5-kdc start
/etc/init.d/krb5-admin-server start
}}}
= Configurare la replica LDAP =
Innanzitutto procedere alla configurazione del DNS slave (ricordiamo che bisogna soltanto modificare il file `/etc/bind9/named.conf.local` aggiungendovi la zona diretta e l'inversa del vostro dominio e specificando l'IP del DNS master per la sincronizzazione delle zone).
Pertanto installate il pacchetto ''bind9'' con il comando : {{{
sudo apt-get -y install bind9
}}} ed effettuate le configurazioni come indicato nel wiki [:Server/Dns:Configurare un server DNS].
Procedere come segue :
* In `/etc/ldap/slapd.conf` inserire direttive : {{{
referral ldap://
updatedn "cn=replicator,ou=miaOU,dc=miodominio,dc=com"
updateref ldap://
access to attrs = userPassword,sambaLMPassword,sambaNTPassword
by dn = "cn=admin,ou=miaOU,dc=miodominio,dc=com" write
by dn = "cn=samba,ou=miaOU,dc=miodominio,dc=com" write
by dn = "cn=nssuser,ou=miaOU,dc=miodominio,dc=com" read
by anonymous auth
by self write
by * none
access to *
by dn = "cn=admin,ou=miaOU,dc=miodominio,dc=com" write
by anonymous auth
by * none
}}}
Ricordarsi di creare nel database LDAP sia l'utente '''samba''' che l'utente '''nssuser'''.
Se volete usate l'utility '''gq''' da installare o sul server LDAP o su una workstation remota da cui amministrare master e replica LDAP.
* Installare i pacchetti per il supporto all'autenticazione Kerberos lato client {{{
apt-get -y install libpam-krb5
apt-get -y install krb5-user
}}}
* Monfigurare i pacchetti per il supporto all'autenticazione Kerberos lato client
* Modificare il file `/etc/pam.d/common-account` come segue : {{{
account sufficient pam_krb5.so
account required pam_unix.so
}}}
* Modificare il file `/etc/pam.d/common-auth` come segue : {{{
auth sufficient pam_krb5.so nullok_secure
auth required pam_unix.so nullok_secure
}}}
* Modificare il file `/etc/pam.d/common-session` come segue : {{{
session sufficient pam_krb5.so
session required pam_unix.so
}}}
= Configurare il PDC SAMBA =
* Installate il pacchetto '''samba''' nel modo seguente : {{{
apt-get -y install samba
}}}
* Modificate il file `/etc/samba/smb.conf` come segue : {{{
workgroup = MIODOMINIO.COM
domain master = yes
domain logons = yes
encrypt passwords = yes
security = user
os level = 65
wins support = yes
name resolver order = wins lmhosts hosts bcast
logon path = \\%N\profiles\%U
logon drive = H:
logon home = \\%N\%U\winprofile
logon script = logon.bat
log level = 1
printcap name = CUPS
show add printer wizard = No
shutdown script = /var/lib/samba/scripts/shutdown.sh
abort shutdown script = /sbin/shutdown -c
utmp = Yes
map acl inherit = Yes
printing = cups
passdb backend = ldapsam:ldap:/// ldap:///
ldap admin dn = cn=admin,dc=miodominio,dc=com
ldap suffix = dc=miodominio,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=People
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=People
add user script = /usr/sbin/smbldap_useradd -m '%u'
delete user script = /usr/sbin/smbldap-userdel -r "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap_groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
add machine script = /usr/sbin/smbldap_useradd -w '%u'
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
ldap delete dn = Yes
[homes]
comment = Home Directories
path = /home/%U
browseable = yes
writable = yes
create mask = 0775
directory mask = 0775
valid users = %S
[netlogon]
comment = Network Logon Service
path = /usr/local/netlogon
guest ok = yes
writable = yes
share modes = no
browseable = yes
[profiles]
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = yes
writable = yes
directory mode = 0755
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[whole_linux_server]
comment = whole_linux_box
path = /
valid users = admin root dtrask
admin users = admin root dtrask
write list = admin root dtrask
public = no
writable = yes
}}}
* Create la share `var/lib/samba/profiles` e rendetela leggibile e scrivibile da tutti gli utenti del sistema: {{{
mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles
}}} questo è necessario poichè i client Microsoft accedono in scrittura a tale directory per creare il profilo degli utenti di rete.
* Creare l'utente '''samba''' e memorizzarne la password nel file `/var/lib/samba/secrets.tdb` come segue : {{{
#read -s -p "Digita la password dell'utente samba : " LDAP_BINDPW
#smbpasswd -w $LDAP_BINDPW
}}}
* Memorizzare il '''SID''' del server nel file `/var/lib/samba/secrets.tdb` come segue : {{{
#/etc/init.d/samba start
#net getlocalsid
#net rpc getsid miodominio.com
}}}
* Installare e configurare il pacchetto '''smbldap-tools''' come segue : {{{
apt-get -y install smbldap-tools
}}}
* Controllare la configurazione dei files : {{{
smbldap.conf
smbldap-bind.conf
}}}
* Lanciare i comandi : {{{
smbldap-populate
smbldap-passwd Administrator
net rpc join miodominio.com -UAdministrator%password
}}}
* Creare i nuovi utenti utilizzando le utilities '''smbldap-tools''' come negli esempi : {{{
smbldap-useradd -a -g 512 -m -s /bin/sh -d /home/user_admin -F "" -P user-admin
}}} consultate le man pages per tutte le opzioni (il valore di '''-F''' è il roaming profile dell'utente).
* Testare la vostra configurazione tramite i comandi : {{{
smbclient //SRV/public -Uuser_admin%password
pdbedit -Lv user_admin
}}}
* Aggiornate le policies SAMBA con i comandi : {{{
pdbedit -P "password_history" -C 5
pdbedit -P "maximum_password_age" -C 180
pdbedit -P "min_password_length" -C 6
}}}
* Installare i pacchetti per il supporto all'autenticazione Kerberos lato client {{{
apt-get -y install libpam-krb5
apt-get -y install krb5-user
}}}
* Configurare i pacchetti per il supporto all'autenticazione Kerberos lato client
* Modificare il file `/etc/pam.d/common-account` come segue : {{{
account sufficient pam_krb5.so
account required pam_unix.so
}}}
* Modificare il file `/etc/pam.d/common-auth` come segue : {{{
auth sufficient pam_krb5.so nullok_secure
auth required pam_unix.so nullok_secure
}}}
* Modificare il file `/etc/pam.d/common-session` come segue : {{{
session sufficient pam_krb5.so
session required pam_unix.so
}}}
= Altre utilità LDAP =
Se dovete modificare le passwords agli utenti del DB LDAP creato potete usare il comando: {{{
ldappasswd -x -D "cn=admin,dc=miodominio,dc=com" -W -s nuovapasswordutente
"cn=utente,ou=miaOU,dc=miodominio,dc=com"
}}}
= Configurare BDC SAMBA =
* Installate il pacchetto '''samba''' nel modo seguente : {{{
apt-get -y install samba
}}}
* Modificate il file `/etc/samba/smb.conf` come segue : {{{
workgroup = MIODOMINIO.COM
domain master = no
domain logons = yes
encrypt passwords = yes
security = user
os level = 65
wins support = yes
name resolver order = wins lmhosts hosts bcast
logon path = \\%N\profiles\%U
logon drive = H:
logon home = \\%N\%U\winprofile
logon script = logon.bat
log level = 1
printcap name = CUPS
show add printer wizard = No
shutdown script = /var/lib/samba/scripts/shutdown.sh
abort shutdown script = /sbin/shutdown -c
utmp = Yes
map acl inherit = Yes
printing = cups
passdb backend = ldapsam:ldap:/// ldap:///
ldap admin dn = cn=admin,dc=miodominio,dc=com
ldap suffix = dc=miodominio,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=People
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=People
add user script = /usr/sbin/smbldap_useradd -m '%u'
delete user script = /usr/sbin/smbldap-userdel -r "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap_groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
add machine script = /usr/sbin/smbldap_useradd -w '%u'
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
ldap delete dn = Yes
[homes]
comment = Home Directories
path = /home/%U
browseable = yes
writable = yes
create mask = 0775
directory mask = 0775
valid users = %S
[netlogon]
comment = Network Logon Service
path = /usr/local/netlogon
guest ok = yes
writable = yes
share modes = no
browseable = yes
[profiles]
path = /var/lib/samba/profiles
read only = no
create mask = 0600
directory mask = 0700
browseable = yes
writable = yes
directory mode = 0755
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
[whole_linux_server]
comment = whole_linux_box
path = /
valid users = admin root dtrask
admin users = admin root dtrask
write list = admin root dtrask
public = no
writable = yes
}}}
* Create la share `var/lib/samba/profiles` e rendetela leggibile e scrivibile da tutti gli utenti del sistema: {{{
mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles
}}} questo è necessario poichè i clients Microsoft accedono in scrittura a tale directory per creare il profilo degli utenti di rete.
* Il comando `wins_server = yes` unito ad una opportuna (vedi sezione dedicata alla configurazione dei clients) qualifica il server SAMBA come WINS server e permette pertanto di impedire di inutili broadcasts dei clients per localizzare il loro NETBIOS server.
* Acquisire il '''SID''' del PDC con il comando: {{{
net rpc getsid
}}}
* Installare i pacchetti per il supporto all'autenticazione Kerberos lato client {{{
apt-get -y install libpam-krb5
apt-get -y install krb5-user
}}}
* Configurare i pacchetti per il supporto all'autenticazione Kerberos lato client
* Modificare il file `/etc/pam.d/common-account` come segue: {{{
account sufficient pam_krb5.so
account required pam_unix.so
}}}
* Modificare il file `/etc/pam.d/common-auth` come segue: {{{
auth sufficient pam_krb5.so nullok_secure
auth required pam_unix.so nullok_secure
}}}
* Modificare il file `/etc/pam.d/common-session` come segue: {{{
session sufficient pam_krb5.so
session required pam_unix.so
}}}
= Configurare i client =
* Installare come root la libreria per il supporto LDAP con il comando: {{{
apt-get -y install libnss-ldap
}}}
* Modificare il file `/etc/ldap/ldap.conf` come segue: {{{
BASE dc=miodominio,dc=com
URI ldap:// ldap://
}}}
* Modificare il file `/etc/pam.d/common-account` come segue: {{{
account sufficient pam_ldap.so
account required pam_unix.so
}}}
* Modificare il file `/etc/pam.d/common-auth` come segue: {{{
auth sufficient pam_ldap.so nullok_secure
auth required pam_unix.so nullok_secure
}}}
* Modificare il file `/etc/pam.d/common-session` come segue: {{{
session sufficient pam_ldap.so
session required pam_unix.so
}}}
* Se volete usare soltanto LDAP e non permettere l'accesso ai client agli utenti locali dovete usare nei tre files visti le direttive: {{{
account required pam_ldap.so
account required pam_ldap.so nullok_secure
account required pam_ldap.so
}}}
* Eseguire il join al dominio SAMBA con il comando: {{{
net rpc join miodominio.com -UAdministrator%password
}}}
* Per poter accedere al filesystem SAMBA installare l'utility '''smbfs''': {{{
apt-get -y install smbfs
}}}
* Per montare un filesystem remoto SAMBA utilizzare il comando: {{{
smbmount //SRV/public /mnt/smb -o username=user_admin
}}}
* Se volete abilitare l'automount del filesystem SAMBA utilizzate il programma '''autofs''' installandolo come segue: {{{
apt-get -y install autofs
}}}
* Ora modificate il file `/etc/auto.master` come segue: {{{
/auto /etc/auto.smb
}}}
* Ed il file `/etc/auto.smb` come segue: {{{
smb -fstype=smbfs,rw,guest ://SRV/public
}}}
* E riavviate il servizio '''autofs''' con il comando : {{{
/etc/init.d/autofs restart
}}}
* Ora per impedire il broadcast sulla rete per l'individuazione del server WINS modificare il file `/etc/samba/smb.conf` come segue : {{{
wins server =
}}}
* installare i pacchetti per il supporto all'autenticazione Kerberos lato client {{{
apt-get -y install libpam-krb5
apt-get -y install krb5-user
}}}
* Configurare i pacchetti per il supporto all'autenticazione Kerberos lato client
* Modificare il file `/etc/pam.d/common-account` come segue : {{{
account sufficient pam_krb5.so
account required pam_unix.so
}}}
* Modificare il file `/etc/pam.d/common-auth` come segue : {{{
auth sufficient pam_krb5.so nullok_secure
auth required pam_unix.so nullok_secure
}}}
* Modificare il file `/etc/pam.d/common-session` come segue : {{{
session sufficient pam_krb5.so
session required pam_unix.so
}}}
= Ulteriori risorse =
* [[InternetRete/Condivisione/Autofs|Guida a autofs]]
----
CategoryServer CategoryDaRevisionare