Kontroler domeny na Linux’ie

4. Konfiguracja smbldap-tools Pakiet smbldap-tools jest potrzebne do łatwego zarządzania zawartością katalogu LDAP – jest to zbiór skryptów odpowiedzialnych za tworzenie użytkowników i grup domenowych, dodawanie stacji roboczych do domeny, […]

4. Konfiguracja smbldap-tools

Pakiet smbldap-tools jest potrzebne do łatwego zarządzania zawartością katalogu LDAP – jest to zbiór skryptów odpowiedzialnych za tworzenie użytkowników i grup domenowych, dodawanie stacji roboczych do domeny, zmianę haseł dostępowych, itp.

Zakładamy, iż serwer LDAP jest poprawnie skonfigurowany i uruchomiony. Natomiast utrzymywany katalog jest wciąż pusty.

4.1. Instalacja

Pakiet smbldap-tools należy ściągnąć ze strony producenta, pod adresem: http://www.idealx.org/prj/samba/dist
Uwaga: W chwili pisania dokumentu najnowszą wersją smbldap-tools była wersja 0.9.1.

Po zgraniu pakietu smbldap-tools na serwer należy umieścić go w tymczasowym katalogu (w naszym wypadku będzie to /tmp/smbldap-tools) i rozpakować poleceniem:
root / #tar zvf /tmp/smbldap-tools/smbldap-tools-0.9.1.tgz
Następnie rozmieszczamy poszczególne pliki w odpowiednich miejscach w drzewie systemu plików:


root / #cd /tmp/smbldap-tools/smbldap-tools-0.9.1
root / #mv smbldap_tools.pm /etc/samba
root / #mv smbldap-* /usr/local/bin
root / #mv configure.pl /usr/local/bin
root / #mv smbldap.conf /etc/smbldap-tools
root / #mv smbldap_bind.conf /etc/smbldap-tools

Uwaga: Należy koniecznie usunąć plik smbldap_tools.pm z katalogu /etc/samba.

Dla prawidłowego działania skryptów smbldap-tools należy – tym razem automatycznie -zainstalować kilka dodatkowych pakietów:


root / #emerge perl
root / #emerge perl-ldap
root / #emerge Digest-SHA1
root / #emerge Crypt-SmbHash

4.2. Konfiguracja skryptów smbldap-tools

Dla prawidłowej konfiguracji skryptów smbldap-tools powinniśmy posiadać wygenerowany domenowy SID.

Podstawowy plik konfiguracyjny znajduje się w pliku /etc/smbldap-tools/smbldap.conf i powinien mieć następującą zawartość:


#/etc/smbldap-tools/smbldap.confThis code was developped by IDEALX (http://IDEALX.org/) and
contributors (their names can be found in the CONTRIBUTORS file).
#
# Copyright (C) 2001-2002 IDEALX
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

Purpose :
# . be the configuration file for all smbldap-tools scripts

###########################################################################
# General Configuration
###########################################################################

# Put your own SID
# to obtain this number do: net getlocalsid
SID="S-1-5-21-1357073039-1896359966-460829502"

###########################################################################
# LDAP Configuration
###########################################################################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
#(typically a replication directory)

slaveLDAP="127.0.0.1"
slavePort="389"

# Master LDAP : needed for write operations
masterLDAP="127.0.0.1"
masterPort="389"

# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientcert="/etc/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
clientkey="/etc/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=bogus,dc=com,dc=pl"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
usersdn="ou=Users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
computersdn="ou=Computers,${suffix}"

# Where are stored Groups
# Ex groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
groupsdn="ou=Groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available
sambaUnixIdPooldn="sambaDomainName=BOGUS.COM.PL,${suffix}"

# Default scope Used
scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

##############################################################################
#
# Unix Accounts Configuration
#
##############################################################################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/flase"

# Home directory
# Ex: userHome="/home/%U"
userHome=""

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"

# Default Computer (Samba) GID
defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
#defaultMaxPasswordAge="99"

##############################################################################
#
# SAMBA Configuration
#
##############################################################################

# The UNC path to home drives location (%U username substitution)
# Ex: \\My-PDC-netbios-name\homes\%U
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
userSmbHome=""

# The UNC path to profiles locations (%U username substitution)
# Ex: \\My-PDC-netbios-name\profiles\%U
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
userProfile=""

# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: H: for H:
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: %U.cmd
# userScript="startup.cmd" # make sure script file is edited under dos
# userScript="%U.cmd"
userScript="startup.cmd"

# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
mailDomain="bogus.com.pl"

###########################################################################
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
###########################################################################
# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm)
# but prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

#------------- END --------------

Pusta wartość parametru userProfile oznacza iż profile użytkowników domeny będą profilami zachowywanymi lokalnie i niezależnie na każdej z używanych stacji roboczych.

Parametr userScript wskazuje na nazwę skryptu logowania kopiowanego na stację roboczą użytkownika i wykonywanego podczas procedury logowania. W powyższym przykładzie skrypt logowania nazywa się startup.cmd.

Druga faza konfiguracji polega na edycji pliku /etc/smbldap-tools/smbldap_bind.conf i ustawieniu parametrów dostępowych do katalogu LDAP – chwilowo dostęp będzie osiągany przez konto Manager-a.


#/etc/smbldap-tools/smbldap_bind.conf############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=Manager,dc=bogus,dc=com,dc=pl"
slavePw="moje_sekretne_haslo_dla_managera_LDAP"
masterDN="cn=Manager,dc=bogus,dc=com,dc=pl"
masterPw="moje_sekretne_haslo_dla_managera_LDAP"

#------------- END --------------

W związku z przechowywaniem hasła dostępowego do serwera LDAP należy bezwzględnie zmienić prawa odczytu dla pliku /etc/smbldap-tools/smbldap_bind.conf.


-rw------- root root& 568 Feb 01 13:43 smbldap_bind.conf
root / #chmod 600 /etc/smbldap-tools/ smbldap_bind.conf
root / #chown root:root /etc/ smbldap-tools /smbldap_bind.conf

4.3. Stworzenie podstawowych obiektów w katalogu LDAP

Uwaga: Poniższy rozdział opisuje procedurę tworzenia bazowych obiektów w katalogu LDAP. Procedura taka ma sens tylko dla konfiguracji PDC. Jeśli ktoś zawędrował do tego rozdziału w związku z konfiguracją innego typu serwera domenowego proponuje się zatrzymać, nie kontynuować i zastanowić, w jaki sposób się tu trafiło !.

W tym kroku zostanie stworzona podstawowa struktura katalogu LDAP potrzebna do utrzymywania obiektów domenowych – użytkowników, grup, stacji roboczych – w odpowiednich gałęziach katalogu.

Dystrybucja predefiniowanej struktury katalogu LDAP dla kontrolera domeny jest wykonywana przez podanie komendy smbldap-populate i wiąże się z koniecznością podania hasła administratora domeny (root-a):


root / #/usr/share/samba/scripts/smbldap-populate
New password: moje_sekretne_haslo_roota
Retype new password: moje_sekretne_haslo_roota

W kolejnym kroku dodajemy do katalogu zestaw kont dostępowych dla klientów serwera LDAP:
root / #ldapadd -x -h localhost -D “cn=Manager,dc=bogus,dc=com,dc=pl” -f smbldap-dsa.ldif -W
gdzie plik smbldap-dsa.ldif ma następującą strukturę:


#/smbldap-dsa.ldifdn: ou=DSA,dc=bogus,dc=com,dc=pl
objectClass: top
objectClass: organizationalUnit
ou: DSA
description: security accounts for LDAP clients

dn: cn=samba,ou=DSA,dc=bogus,dc=com,dc=pl
objectClass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: MAY_BE_CHANGED_LATER
cn: samba

dn: cn=nssldap,ou=DSA,dc=bogus,dc=com,dc=pl
objectClass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: MAY_BE_CHANGED_LATER
cn: nssldap

dn: cn=smbldap-tools,ou=DSA,dc=bogus,dc=com,dc=pl
objectClass: organizationalRole
objectClass: top
objectClass: simpleSecurityObject
userPassword: MAY_BE_CHANGED_LATER
cn: smbldap-tools

#------------ END --------------

W końcu po dodaniu kont dostępowych należy nadać im odpowiednie hasła:

– dla Samby:


root / #ldappasswd –x –h localhost –D “cn=Manager,dc=bogus,dc=com,dc=pl” –s \
moje_sekretne_haslo_dla_Samby –W „cn=samba,ou=DSA,dc=bogus,dc=com,dc=pl”

– dla systemu operacyjnego (nss_ldap):


root / #ldappasswd –x –h localhost –D “cn=Manager,dc=bogus,dc=com,dc=pl” –s \
moje_sekretne_haslo_dla_nssldap –W „cn=nssldap,ou=DSA,dc=bogus,dc=com,dc=pl”

– dla skryptów smbldap-tools:


root / #ldappasswd –x –h localhost –D “cn=Manager,dc=bogus,dc=com,dc=pl” –s \
moje_sekretne_haslo_dla_smbldap –W „cn=smbldap-tools,ou=DSA,dc=bogus,dc=com,dc=pl”

Weryfikacja zawartości bazy danych serwera LDAP może zostać wykonana poleceniami:


root / #slapcat
root / #ldapasearch –x –b ”dc=bogus,dc=com,dc=pl” ”(ObjectClass=*)”

4.4. Dostęp smbldap-tools do katalogu LDAP

Teraz, gdy katalog LDAP został zainicjowany pierwszymi kontami administracyjnymi, można zmodyfikować zawartość pliku /etc/smbldap-tools/smbldap_bind.conf:


#/etc/smbldap-tools/smbldap_bind.conf############################
# Credential Configuration #
############################
# Notes: you can specify two differents configuration if you use a
# master ldap for writing access and a slave ldap server for reading access
# By default, we will use the same DN (so it will work for standard Samba
# release)
slaveDN="cn=smbldap-tools,ou=DSA,dc=bogus,dc=com,dc=pl"
slavePw="moje_sekretne_haslo_dla_smbldap"
masterDN="cn=smbldap-tools,ou=DSA,dc=bogus,dc=com,dc=pl"
masterPw="moje_sekretne_haslo_dla_smbldap"

#------------- END --------------

5. Ekspozycja obiektów z lokalnego katalogu LDAP na systemie plików

Rozszerzenie konfiguracji baz danych systemu operacyjnego na zawartość katalogu LDAP pozwoli na uwidocznienie obiektów z katalogu LDAP – takich jak użytkownicy, grupy i stacje robocze – w systemie operacyjnym. Wówczas uwidocznione obiekty katalogu LDAP mogą być traktowane jako zwykli użytkownicy lub grupy stworzeni bezpośrednio na systemie operacyjnym.

Ekspozycja ma sens tylko, jeżeli lokalny serwer plików Samba będzie stosował kontrole dostępu do udostępnianych zasobów (pliki, drukarki) na bazie dostępnych użytkowników/grup lub na udostępnianych zasobach będą stosowane tzw. rozszerzone atrybuty systemu plików (extended attributes – patrz rozdział 17.3.2. Udział z dostępem dla wielu grupy ).

Ekspozycja będzie dotyczyć jedynie obiektów w katalogu LDAP posiadających atrybut objectClass: posixAccount.

Rozszerzenie polega na modyfikacji baz danych użytkowników (users), grup (groups) oraz haseł (shadow) i odbywa się w trzech etapach: modyfikacji PAM-a (pam_ldap), modyfikacji System Databaseses and Name Service Switch (nss_ldap) oraz zapewnieniu dostępu do katalogu LDAP.

Zakładamy, iż skojarzony serwer LDAP jest poprawnie skonfigurowany i uruchomiony.

5.1. Instalacja

Instalujemy dwa dodatkowe pakiety potrzebne do dokonania integracji:
root / #emerge pam_ldap nss_ldap

5.2. Konfiguracja Pluggable Authentication Module


#/etc/pam.d/system-auth#%PAM-1.0

auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_ldap.so
auth sufficient /lib/security/pam_unix.so likeauth nullok \ use_first_pass
auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so broken_shadow
account sufficient /lib/security/pam_succeed_if.so uid < 100 quiet
account [default=bad success=ok user_unknown=ignore] \
/lib/security/pam_ldap.so
account required /lib/security/pam_permit.so

password requisite /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_ldap.so use_authtok
password sufficient /lib/security/pam_unix.so nullok use_authtok shadow md5
password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so
session optional /lib/security/pam_ldap.so
session required /lib/security/pam_unix.so

#------------- END --------------


#/etc/pam.d/system-auth (OLD VERSION OLD VERSION OLD_VERSION)#%PAM-1.0

auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth sufficient /lib/security/pam_ldap.so use_first_pass
auth required /lib/security/pam_deny.so

account required /lib/security/pam_unix.so broken_shadow
account sufficient /lib/security/pam_succeed_if.so uid < 100 quiet
account [default=bad success=ok user_unknown=ignore] /lib/security/pam_ldap.so
account required /lib/security/pam_permit.so

password requisite /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_unix.so nullok use_authtok shadow md5
password sufficient /lib/security/pam_ldap.so use_authtok
password required /lib/security/pam_deny.so

session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
session optional /lib/security/pam_ldap.so

#------------- END --------------

5.3. Dostęp systemu operacyjnego do katalogu LDAP


#/etc/ldap.conf# Your LDAP server. Must be resolvable without using LDAP.
# Multiple hosts may be specified, each separated by a
# space. How long nss_ldap takes to failover depends on
# whether your LDAP client library supports configurable
# network or connect timeouts (see bind_timelimit).
host 127.0.0.1

# The distinguished name of the search base.
base dc=bogus,dc=com,dc=pl

# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/ldap.secret (mode 600)
rootbinddn cn=nssldap,ou=DSA,dc=bogus,dc=com,dc=pl

# RFC2307bis naming contexts
# Syntax:
# nss_base_XXX base?scope?filter
# where scope is {base,one,sub}
# and filter is a filter to be &'d with the
# default filter.
# You can omit the suffix eg:
# nss_base_passwd ou=People,
# to append the default base DN but this
# may incur a small performance impact.
nss_base_passwd ou=Users,dc=bogus,dc=com,dc=pl?one
nss_base_passwd ou=Computers,dc=bogus,dc=com,dc=pl?one
nss_base_shadow ou=Users,dc=bogus,dc=com,dc=pl?one
nss_base_group ou=Groups,dc=bogus,dc=com,dc=pl?one

# OpenLDAP SSL mechanism
# start_tls mechanism uses the normal LDAP port, LDAPS typically 636
ssl no

pam_password md5

#------------- END --------------

5.3.1. Konfiguracja hasła dostępowego do katalogu LDAP dla systemu operacyjnego

Aby ekspozycja zawartości katalogu LDAP udała się system operacyjny posiadać odpowiedni rodzaj dostępu do katalogu LDAP. Takie dostęp realizowany przez obiekt zdefiniowany przez atrybut rootbinddn w pliku /etc/ldap.conf (cn=nssldap,ou=DSA,dc=bogus,dc=com,dc=pl).

Hasło dostępowe dla systemu operacyjnego do katalogu LDAP jest zachowywane w osobnym pliku /etc/ldap.secret, który należy stworzyć i wpisać hasło (moje_sekretne_haslo_dla_nssldap). Dla bezpieczeństwa należy także zmienić prawa dostępu do takiego pliku:


-rw------- root root 568 Feb 01 13:43 ldap.secret
root / #chmod 600 /etc/ldap.secret
root / #chown root:root /etc/ldap.secret

5.4. Konfiguracja Name Service Switch dla LDAP

Konfiguracja NSS-a obejmuje zmiany w pliku /etc/nsswitch.conf, które polegają na
zmianie parametrów passwd, shadow i group na następujące:


#/etc/nsswitch.confpasswd: files ldap
shadow: files ldap
group: files ldap

#....

#------------- END --------------

W celu weryfikacji czy resolver NSS jest w stanie odpytać serwer LDAP wykonujemy polecenie:


root / #getent passwd | grep root
root:x:0:0:root:/root:/bin/bash
root:x:0:0:Netbios Domain Administrator:/dev/null:/bin/false

Ogólnie można uruchomić odczyt każdej ze zmodyfikowanych baz danych systemu operacyjnego i sprawdzić czy nie pojawiają się błędy:


root / #getentpasswd
root / #getentshadow
root / #getentgroup

Wraz z dodawaniem do katalogu LDAP kolejnych obiektów z atrybutem objectClass: posixAccount powyższe polecenia powinny zwracać takie obiekty jako obiekty systemu operacyjnego.

W razie wykrycia problemów przy wykonywaniu powyższych poleceń, można spróbować zmodyfikować plik /etc/ldap.conf w następujący sposób:


#/etc/ldap.conf (ONLY IF DEFAULT SETTINGS DO NOT WORK)#...

nss_base_passwd dc=bogus,dc=com,dc=pl?sub
nss_base_shadow dc=bogus,dc=com,dc=pl?sub
nss_base_group ou=Groups,dc=bogus,dc=com,dc=pl?one

#...

#------------- END --------------

6. Konfiguracja serwera plików Samba jako PDC

Zakładamy, iż skojarzony serwer LDAP jest poprawnie skonfigurowany i uruchomiony.

Ponieważ serwer plików Samba został już wstępnie uruchomiony, przed jego rekonfiguracją należy się upewnić, iż jest on zatrzymany:

root / #/etc/init.d/samba stop

6.1. Skrypt logowania

W pliku konfiguracyjnym narzędzi smbldap-tools zdefiniowaliśmy skrypt logowania (w parametrze userScript) o nazwie startup.cmd. Tak więc wymagany skrypt logowania powinien być stworzony przed uruchomieniem głównego kontrolera domeny.

Zakładamy, iż skrypt logowania będzie umieszczony w udziale [netlogon] Dla prawidłowego działania udziału [netlogon] należy w drzewie systemu plików stworzyć odpowiedni katalog. Lokalizacja udziału [netlogon] jest zdefiniowana w pliku konfiguracyjnym Samby – smb.conf – i w tym wypadku jest to katalog /home/netlogon.

Nadajemy katalogowi odpowiednie prawa – 755:


drwxr-xr-x root root 568 Feb 01 13:43 netlogon
root / #mkdir /home/netlogon
root / #chmod 755 /home/netlogon
root / #chown root:root /home/netlogon

Tworzymy skrypt logowania z następującymi prawami dostępu:
-rw-r--r-- root root 568 Feb 01 13:43 startup.cmd
Przykładowy skrypt może wyglądać następująco:


#/home/netlogon/startup.cmdNET USE * /DELETE /Y
NET USE I: \\PDC-BOGUS\projects /PERSISTENT:YES
NET TIME \\PDC-BOGUS /SET /YES

#------------- END --------------

Uwaga: Logon skrypty są przesyłane podczas logowania na stację roboczą użytkownika i wykonywane lokalnie na tej stacji, więc należy zadbać, by znaki końca lini w takich skryptach były zgodne ze standardem Windows (CR/LF).

6.2. Konfiguracja PDC z katalogiem LDAP jako backendem

Edytujemy plik smb.conf w następujący sposób


#/etc/samba/smb.conf
# Global parameters
[global]
workgroup = BOGUS.COM.PL
netbios name = PDC-BOGUS
server string =
security = user#bind interfaces only = Yes
interfaces = lo,eth0domain master = Yes
local master = Yes
preferred master = Yes
os level = 35

logon script =
logon path =

domain logons = Yes
logon home =
logon drive = H:

wins support = Yes
time server = Yes

#admin users= @"Domain Admins"
username map = /etc/samba/smbusers

passdb backend = ldapsam:ldap://127.0.0.1/
encrypt passwords = Yes
mangling method = hash2
unix password sync = Yes
passwd program = /usr/local/bin/smbldap-passwd %u
passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new \ password*" %n\n"
ldap passwd sync = Yes

#ldap replication sleep = 5000

log level = 0
syslog = 0
log file = /var/log/samba/log.%m
max log size = 100000

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

dos charset = 852
unix charset = ISO8859-2

ldap admin dn = cn=samba,ou=DSA,dc=bogus,dc=com,dc=pl
ldap suffix = dc=bogus,dc=com,dc=pl
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap delete dn = Yes
ldap ssl = off

idmap backend = ldap:ldap://127.0.0.1
idmap uid = 10000 - 65000
idmap gid = 10000 - 65000

map acl inherit = Yes
enable privileges = Yes

add user script = /usr/local/bin/smbldap-useradd -m "%u"
#delete user script = /usr/local/bin/smbldap-userdel "%u"
add machine script = /usr/local/bin/smbldap-useradd -w "%u"
add group script = /usr/local/bin/smbldap-groupadd -p "%g"
#delete group script = /usr/local/bin/smbldap-groupdel "%g"
add user to group script = /usr/local/bin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/bin/smbldap-groupmod -x "%u" \ "%g"
set primary group script = /usr/local/bin/smbldap-usermod -g "%g" "%u"

#[homes]
#comment = repertoire de %U, %u
#read only = No
#create mask = 0644
#directory mask = 0775
#browseable = No

[netlogon]
path = /home/netlogon/
browseable = No
read only = yes

#------------- END --------------

Uwaga: W powyższej konfiguracji nie został ustawiony zdalny katalog domowy użytkownika [homes].

6.3. Dostęp Samby do lokalnego katalogu LDAP

Samba komunikuje się z serwerem LDAP poprzez obiekt zdefiniowany w parametrze ldap admin dn (ldap admin dn = cn=samba,ou=DSA,dc=bogus,dc=com,dc=pl w pliku smb.conf). Hasło wykorzystywane przez serwer Samby do logowania się w bazie danych LDAP jest zapisane w pliku secrets.tdb – aby umieścić hasło dostępowe w tym pliku należy wykonać polecenie:
root / #smbpasswd –w moje_sekretne_haslo_dla_Samby
Uwaga: Od wersji 3.0.21b można używać polecenia ukrywającego hasło (atrybut –W):
root / #smbpasswd –W

6.4. Uruchomienie głównego kontrolera domeny

Po zapisaniu poniższej konfiguracji startujemy serwer Samby:
root / #/etc/init.d/samba start
I oto mamy w pełni działający główny kontroler domeny 🙂

6.5. Ostateczna weryfikacja

Weryfikacja prawidłowego rozwiązywania nazw użytkowników i grup przez Sambę:


root / #pdbedit -L
root / #net groupmap list

Polecenia powinny zwrócić informacje dotyczące użytkowników i grup domenowych stworzonych w bazie danych LDAP oraz istniejącego mappingu SID <—> UID/GID.

Strony: 1 2 3 4 5 6