Rendere una macchina Samba Domain Member di un Dominio Windows 2000

From RVM Wiki
Jump to navigation Jump to search

Debian Squeeze

  • Assicurarsi di avere i clock allineati, altrimenti kerberos darà problemi di autenticazione:
sudo apt-get install ntp
sudo invoke-rc.d ntp restart
date
  • Installare i componenti kerberos necessari
sudo apt-get install krb5-user
  • Verificare che la comunicazione con il DC funzioni.
sostituire MYCOMPANY.COM (IN MAIUSCOLO, con nome del dominio AD), ed inserire la password del Domain Administrator:
kinit administrator@MYCOMPANY.COM
  • Installare samba e winbind:
sudo apt-get install samba winbind
  • Creare il file di confi su questo template:
sudoedit /etc/samba/smb.conf
[global]
        netbios name = sambafileserver
        workgroup = MYCOMPANY
        realm = MYCOMPANY.COM
        server string = Samba Domain Member
        smb ports = 445
        security = ADS
        encrypt passwords = yes
        winbind enum users = yes
        winbind enum groups = yes
        winbind use default domain = yes
        winbind nested groups = yes
        winbind separator = +
        idmap uid = 10000-20000
        idmap gid = 10000-20000

        client use spnego = yes
        client ntlmv2 auth = yes

[store]
        comment = file store
        path = /store
        read only = no
        # To specify domain user, use teh following syntax
        #valid users = MYCOMPANY+administrator
  • Dichiarare l'uso di winbind per utenti e gruppi:
sudoedit /etc/nsswitch.conf
passwd:         compat winbind
group:          compat winbind
  • Verificare che l'hostname sia corretto
hostname
hostname -f
  • Se così non fosse, inserirlo in
sudoedit /etc/hosts
127.0.0.1               sambafileserver.mycompany.com sambafileserver
  • Stoppare e startare (NON restartare !!!) samba e winbind:
sudo invoke-rc.d samba stop
sudo invoke-rc.d samba start
sudo invoke-rc.d winbind stop
sudo invoke-rc.d winbind start
  • Fare il join al dominio AD:
sudo net ads join -U administrator
  • Se si ottiene l'errore:
DNS update failed
verificare che l'hostname sia corretto. Riprovare o fare reboot.
  • Verificare che winbind parli con il PDC:
sudo wbinfo -t
  • Verificare che winbind veda gli utenti ed i gruppi AD:
sudo getent passwd
sudo getent group


Riferimenti


Debian Etch

Per inserire una macchina Samba (Debian Etch) in un dominio Windows 2000, e fare in modo di gestire autenticazione e permission appoggiandosi ad un server Windows 2000, configurare Samba come segue.

Operazioni preliminari

  • Installare e configurare NTP per far si che gli orologi del server Win e Debian siano sincronizzati, altrimenti l'autenticazione Kerberos non funziona.

Installazione Pacchetti

sudo apt-get install samba \
                     smbfs \
                     smbclient \
                     winbind \
                     krb5-user \
                     krb5-config \
                     krb5-doc \
                     libkrb53 \
                     libpam-krb5

Durante la configurazione di Samba, inserire come

  • Workgroup il nome NETBIOS del domini

Durante la configurazione di Kerberos, inserire come

  • REALM il nome del Dominio ADS IN MAIUSCOLO
  • DCSERVER il nome del server domain controller COMPRESO DI DOMINIO IN MAIUSCOLO

Inserire poi il nome del DC in /etc/hosts

sudoedit /etc/hosts
192.168.1.100 dcserver.localdomain.net dcserver

Test configurazione Kerberos

  • Inserire la password sudo
sudo ls
  • Creare il ticket Kerberos (inserire la password di administrator del dominio)
sudo kinit Administrator@LOCALDOMAIN.NET
Password for Administrator@LOCALDOMAIN.NET: ********
  • Verificare che il ticket sia valido:
sudo klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@LOCALDOMAIN.NET

Valid starting Expires Service principal
10/18/06 15:43:51 10/19/06 01:43:55 KRBTGT/LOCALDOMAIN.NET@LOCALDOMAIN.NET
Renew until 10/19/06 15:43:51

Kerberos 4 ticket cache: /tmp/tkt0
Klist: You have no tickets cached
  • Se tutto è ok, rilasciare il ticket
sudo kdestroy

Configurazione di Samba

Inserire le voci aggiuntive necessarie

sudoedit/etc/samba/smb.conf
[global]
workgroup = LOCALDOMAIN
realm = LOCALDOMAIN.NET
wins server = 192.168.1.100
password server = DCSERVER
enable privileges =Yes
allow trusted domains = No
dns proxy = no
name resolve order = host wins bcast
security = ADS
encrypt passwords = true
socket options = TCP_NODELAY
time server = Yes
map to guest = nobody
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
  • Controllare la configurazione
sudo testparm
  • Riavviare i demoni:
sudo /etc/init.d/winbind stop
sudo /etc/init.d/samba stop
sudo /etc/init.d/samba start
sudo /etc/init.d/winbind start

Inserimento nel Dominio

  • Allineare gli orologi:
sudo net time set
  • Fare il Join del dominio:
sudo net ads join –U Administrator
Administrator’s password:******
Using short domain name – LOCALDOMAIN
Joined ‘Ubuntuserver’ to realm ‘LOCALDOMAIN.NET’

Configurazioen di Winbind

Per poter visualizzare gli utenti del dominio nelle permission unix, bisogna usare Winbind.

  • Fermare i demoni
sudo /etc/init.d/winbind stop
sudo /etc/init.d/samba stop
  • Impostare la risoluzione delle entità:
sudoedit /etc/nsswitch.conf
passwd: compat winbind
group: compat winbind
shadow: compat winbind

hosts: files dns wins
networks: files dns

protocols: files
services: files
ethers: files
rpc: files
netgroup: files
publickey: nisplus
automount: files
aliases: files nisplus


  • Riavviare i demoni
sudo /etc/init.d/winbind stop
sudo /etc/init.d/samba stop
  • Controllare che Winbind legga gli utenti:
sudo wbinfo –u
LOCALDOMAIN\Administrator
LOCALDOMAIN\Guest
LOCALDOMAIN\Mhinrichsen
LOCALDOMAIN\User
…
  • Che legga i gruppi:
sudo wbinfo –g
LOCALDOMAIN\Domain Computers
LOCALDOMAIN\Admins
LOCALDOMAIN\Guests
LOCALDOMAIN\Domain Users
…
  • Verificare che gli utenti di sistema siano letti sia da passwd che dal dominio:

sudo getent passwd

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
...
LOCALDOMAIN\Domain Computers
LOCALDOMAIN\Admins
LOCALDOMAIN\Guests
LOCALDOMAIN\Domain Users
…
  • Verificare che venga acceduto correttamente il dominio AD:
sudo net ads info
LDAP server: 192.168.1.100
LDAP server name: DCSERVER
Realm: LOCALDOMAIN.NET
Bind Path: dc=LOCALDOMAIN, dc=NET
LDAP port: 389
Server time: Wed, 18 Oct 2006 18:02:18 EDT
KDC server: 192.168.1.100
Server time offset: 0

Impostazione dell'autenticazione di Sistema via Winbind

(Verificare se necessario per autenticare le workstation)

sudoedit /etc/pam.d/samba
@include common-auth
@include common-account
@include common-session
@include common-password


sudoedit /etc/pam.d/common-account
account required pam_unix.so


sudoedit /etc/pam.d/common-auth
auth required pam_env.so
auth required pam_unix.so


sudoedit /etc/pam.d/common-password
password sufficient pam_windbind.so
password required pam_unix.so nullok obscure min=4 max=8 md5


sudoedit /etc/pam.d/common-session
session required pam_limits.so
session required pam_unix.so
  • Controllare che ci si riesca a loggare da console con gli account unix.
  • Controllare che si riesca ad applicare le permission ad un file per un utente windows:
touch /tmp/testfile
chown ‘localdomain\administrator:localdomain\Domain Users’ /tmp/testfile
ls -al /tmp/testfile
-rwxr-xr-x 2 LOCALDOMAIN\administrator LOCALDOMAIN\domain users 4096 Jun 23 18:49 testfile

Riferimenti