samba 4 active directory

samba 4 active directoryПривет,

Днес реших да споделя за новата ми играчка – а именно samba 4 active directory – или иначе казано, подкарах напълно функциониращ Active Directory сървър под линукс, и така спрях Windows 2008 R2 сървър който работеше само за това и ядеше 4 гб рам ей така.. от нищото..

Цялата работа с Active Directory е възможно благодарение на новата версия на samba – а именно версия 4, която позволява самият демон samba да работи като AD. След успешната му инсталация, AD сървъра може да се управлява през Windows машина след като се инсталира така нареченият : Microsoft’s Remote Server Administration Tools.

Този туул работи на Windows XP, Vista, 7 но трябва версията им да е Professional.

Ето и накратко как става работата, като примера който ще дам е за AD върху CentOS:

1. Трябва да се логнете като root в сървъра и да пуснете ъпдейт на пакетите:

# yum update

2. Трябва да се инсталират и следните пакети които са необходими за компилирането на Samba 4:

# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 openldap-devel

3. Проверяваме дали вече нямаме инсталирана по-стара версия на samba която трябва да премахнем:

# rpm -qa | grep samba

4. Ако имаме по-стара версия, махаме я чрез:

# yum remove samba-winbind-client samba-common samba-client

5. Инсталираме git чрез който ще изтеглим и samba 4:

# yum install git-core

6. Изтегляме последната версия на samba 4:

# git clone git://git.samba.org/samba.git samba-master

7. Рестартираме сървъра за да всеки случай:

# reboot

8. Логваме се отново като root и започваме с компилирането на samba 4:

# cd samba-master
# ./configure --enable-debug --enable-selftest
# make

9. Ако всичко е ок, продължаваме напред:

# make install

След успешно инсталиране, директорията и конфигурационните файлове на samba 4 се намират на : ‘/usr/local/samba’.

Следва и конфигурирането на Active Directory сървъра:

 

[root@samba ~]# /usr/local/samba/bin/samba-tool domain provision
Realm [ROOT.BG]: ROOTBG.DC
Domain [ROOTBG]: ROOT.BG
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [10.0.20.3]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=rootbg,DC=dc
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=rootbg,DC=dc
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba
NetBIOS Domain: ROOT.BG
DNS Domain: rootbg.dc
DOMAIN SID: S-1-5-21-520620405-2705991534-2248172295

Стартираме samba 4 демона чрез :

/usr/local/samba/sbin/samba

А за автоматично стартиране на сървъра, можем да добавим този ред в rc.local конфига :

echo "/usr/local/samba/sbin/samba" > /etc/rc.local

Накрая пускаме и проверка да видим дали е ок всичко:

[root@samba ~]# /usr/local/samba/sbin/samba -V
Version 4.2.0pre1-GIT-efad13a
[root@samba ~]#
[root@samba ~]# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[ROOT.BG] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-efad13a]

Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
box Disk Office docs
root.bg Disk root.bg docs
soft Disk Software
IPC$ IPC IPC Service (Samba 4.2.0pre1-GIT-efad13a)
Domain=[ROOT.BG] OS=[Windows 6.1] Server=[Samba 4.2.0pre1-GIT-efad13a]

Server Comment
--------- -------

Workgroup Master
--------- -------
[root@samba ~]#

 

[root@samba ~]# host -t SRV _ldap._tcp.rootbg.dc.
_ldap._tcp.rootbg.dc has SRV record 0 100 389 samba.rootbg.dc.
[root@samba ~]# host -t SRV _kerberos._udp.rootbg.dc.
_kerberos._udp.rootbg.dc has SRV record 0 100 88 samba.rootbg.dc.
[root@samba ~]# host -t A samba.rootbg.dc.
samba.rootbg.dc has address 10.0.20.2[

Следва и конфигурирането на Kerberos:

cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf

Трябва да се промени реда default_realm от ${REALM} на името на realm-a :

cat /etc/krb5.conf
[libdefaults]
default_realm = ROOTBG.DC
dns_lookup_realm = false
dns_lookup_kdc = true

И тестването да покаже това:

[root@samba samba]# kinit Administrator@ROOTBG.DC
Password for Administrator@ROOTBG.DC:
Warning: Your password will expire in 41 days on Sun May 4 02:54:08 2014
[root@samba samba]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@ROOTBG.DC

Valid starting Expires Service principal
03/23/14 18:12:28 03/24/14 04:12:28 krbtgt/ROOTBG.DC@ROOTBG.DC
renew until 03/24/14 18:12:25
[root@samba samba]#

Накрая инсталираме Windows Remote Administration Tools:

1. Изтегляме Windows Remote Server Administration Tools

2. Следваме инструкциите за ‘Install RSAT’

3. Инсталираме необходимите компоненти от ‘Control Panel > Programs > Turn Windows features on or off > Remote Server Administration Tools’

Ето и резултата:
samba 4 active directory

samba 4 active directory

Това е 🙂 Вече имаме работещ Active Directory сървър на нашият linux сървър, без да е необходимо да използваме услугите на Microsoft – и по-специално да имаме Windows Server!