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 в сървъра и да пуснете ъпдейт на пакетите:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# yum update
# yum update
# yum update

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 openldap-devel
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 openldap-devel
# yum install glibc glibc-devel gcc python* libacl-devel krb5-workstation krb5-libs pam_krb5 openldap-devel

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# rpm -qa | grep samba
# rpm -qa | grep samba
# rpm -qa | grep samba

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# yum remove samba-winbind-client samba-common samba-client
# yum remove samba-winbind-client samba-common samba-client
# yum remove samba-winbind-client samba-common samba-client

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# yum install git-core
# yum install git-core
# yum install git-core

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# git clone git://git.samba.org/samba.git samba-master
# git clone git://git.samba.org/samba.git samba-master
# git clone git://git.samba.org/samba.git samba-master

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# reboot
# reboot
# reboot

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cd samba-master
# ./configure --enable-debug --enable-selftest
# make
# cd samba-master # ./configure --enable-debug --enable-selftest # make
# cd samba-master
# ./configure --enable-debug --enable-selftest
# make

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# make install
# make install
# make install

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

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

 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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
[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
[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 демона чрез :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/usr/local/samba/sbin/samba
/usr/local/samba/sbin/samba
/usr/local/samba/sbin/samba

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo "/usr/local/samba/sbin/samba" > /etc/rc.local
echo "/usr/local/samba/sbin/samba" > /etc/rc.local
echo "/usr/local/samba/sbin/samba" > /etc/rc.local

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[root@samba ~]# /usr/local/samba/sbin/samba -V
Version 4.2.0pre1-GIT-efad13a
[root@samba ~]#
[root@samba ~]# /usr/local/samba/sbin/samba -V Version 4.2.0pre1-GIT-efad13a [root@samba ~]#
[root@samba ~]# /usr/local/samba/sbin/samba -V
Version 4.2.0pre1-GIT-efad13a
[root@samba ~]#
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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 ~]# /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 ~]# /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 ~]#

 

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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[
[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[
[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:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf
cp /usr/local/samba/share/setup/krb5.conf /etc/krb5.conf

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cat /etc/krb5.conf
[libdefaults]
default_realm = ROOTBG.DC
dns_lookup_realm = false
dns_lookup_kdc = true
cat /etc/krb5.conf [libdefaults] default_realm = ROOTBG.DC dns_lookup_realm = false dns_lookup_kdc = true
cat /etc/krb5.conf
[libdefaults]
default_realm = ROOTBG.DC
dns_lookup_realm = false
dns_lookup_kdc = true

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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]#
[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]#
[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!