Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 2 del 06/04/2007 20.14.59

Nascondi questo messaggio

BR

Configurazione di un Servizio di Directory

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 avrete bisogno del server SAMBA (samba) e per utilizzare la crittografia basata sul protocollo Kerberos avete bisogno del server Kerberos e del software per il server delle chiavi (krb5-admin-server e krb5-kdc).

Questo vi permetterà di avere un servizio di directory scalabile che potrete utilizzare come backend per tutti i servizi della vostra azienda , dai vostri servizi di posta ai vostri utenti remoti che si collegano via RADIUS, al server FTP.

Installazione

Vi servono i pacchetti :

#apt-get -y install samba

#apt-get -y install smbldap-tools

#apt-get -y install krb5-ftpd

#apt-get -y install krb5-telnetd

Descrizione dell'architettura

Consideriamo una configurazione tipo con :

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 servers protetti da Kerberos (tutti i clients e le 2 macchine SAMBA + la replica LDAP)

ogni entry citata è su una macchina separata.

Configurazione del master LDAP

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

Pertanto installate il pacchetto bind9 con il comando :

#apt-get -y install bind9

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

Fatto ciò installiamo poi i pacchetti necessari per il server LDAP :

#apt-get -y install slapd

#apt-get -y install migrationtools

#apt-get -y install 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 procediamo come segue :

  • nel file /usr/share/migrationtools/migrate_common.ph effetuaimo le sostituzioni :

    $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'utility smbldap-tools come root :

    #apt-get -y install smbldap-tools
  • eseguire il comando :

    #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

Configurazione della 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 :

#apt-get -y install bind9

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

Procedere come segue :

  • in /etc/ldap/slapd.conf inserire direttive :

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

N.B. : ricordatevi di creare nel DB 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
  • 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

Configurazione del PDC SAMBA

  • installate il pacchetto samba nel modo seguente :

    #apt-get -y install samba
  • modificate il file /etc/samba/smb.conf come segue :

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

#mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles

questo è necessario poichè i clients 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).

  • testate 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" 

Configurazione del BDC SAMBA

  • installate il pacchetto samba nel modo seguente :

    #apt-get -y install samba
  • modificate il file /etc/samba/smb.conf come segue :

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

#mkdir /var/lib/samba/profiles && chmod -R 777 /var/lib/samba/profiles

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

  • il comando wins_server = yes unito ad una opportuna (vedi sezione dedicata alla configurazione

dei clients) qualifica il server SAMBA come WINS server e permette pertanto di impedire di inutili broadcasts dei clients per localizzare il loro NETBIOS server.

  • acquisire il SID del PDC con il comando :

#net rpc getsid
  • installare i pacchetti per il supporto all'autenticazione Kerberos lato client

#apt-get -y install libpam-krb5

#apt-get -y install krb5-user
  • configurare i pacchetti per il supporto all'autenticazione Kerberos lato client
  • modificare il file /etc/pam.d/common-account come segue :

account sufficient pam_krb5.so

account required pam_unix.so
  • modificare il file /etc/pam.d/common-auth come segue :

auth sufficient pam_krb5.so nullok_secure

auth required pam_unix.so nullok_secure
  • modificare il file /etc/pam.d/common-session come segue :

session sufficient pam_krb5.so

session required pam_unix.so

Configurazione dei clients

  • installare come root la libreria per il supporto LDAP con il comando :

#apt-get -y install libnss-ldap
  • modificare il file /etc/ldap/ldap.conf come segue :

BASE dc=miodominio,dc=com

URI ldap://<FQDN o IP LDAP master>   ldap://<FQDN o IP LDAP replica>
  • modificare il file /etc/pam.d/common-account come segue :

account sufficient pam_ldap.so

account required pam_unix.so
  • modificare il file /etc/pam.d/common-auth come segue :

auth sufficient pam_ldap.so nullok_secure

auth required pam_unix.so nullok_secure
  • modificare il file /etc/pam.d/common-session come segue :

session sufficient pam_ldap.so

session required pam_unix.so

N.B. : se volete usare soltanto LDAP e non permettere l'accesso ai clients agli utenti locali dovete usare nei 3 files visti le direttive :

account required pam_ldap.so

account required pam_ldap.so nullok_secure

account required pam_ldap.so
  • eseguire il join al dominio SAMBA con il comando :

#net rpc join miodominio.com -UAdministrator%password
  • per poter accedere al filesystem SAMBA installare l'utility smbfs :

#apt-get -y install smbfs
  • per montare un filesystem remoto SAMBA utilizzare il comando :

#smbmount //SRV/public /mnt/smb -o username=user_admin
  • se volete abilitare l'automount del filesystem SAMBA utilizzate il programma

autofs installandolo come segue :

#apt-get -y install autofs
  • ora modificate il file /etc/auto.master come segue :

    /auto   /etc/auto.smb

ed il file /etc/auto.smb come segue :

smb  -fstype=smbfs,rw,guest   ://SRV/public

e riavviate il servizio autofs con il comando :

#/etc/init.d/autofs restart
  • ora per impedire il broadcast sulla rete per l'individuazione del server WINS

modificare il file /etc/samba/smb.conf come segue :

wins server = <IP o FQDN SAMBA PDC>
  • installare i pacchetti per il supporto all'autenticazione Kerberos lato client

    #apt-get -y install libpam-krb5
    
    #apt-get -y install krb5-user
  • configurare i pacchetti per il supporto all'autenticazione Kerberos lato client
  • modificare il file /etc/pam.d/common-account come segue :

    account sufficient pam_krb5.so
    
    account required pam_unix.so
  • modificare il file /etc/pam.d/common-auth come segue :

    auth sufficient pam_krb5.so nullok_secure
    
    auth required pam_unix.so nullok_secure
  • modificare il file /etc/pam.d/common-session come segue :

    session sufficient pam_krb5.so
    
    session required pam_unix.so


CategoryServer CategoryNuoviDocumenti