Samba + LDAP

Потребовалось на предприятии поставить сервер, который будет раздавать шары. Решил пойти таким путем: поставить самбу и лдап сервер, в котором будут группы и пользователи самбы. На сервере стоит ОС FreeBSD 8.1.

Вначале ставим LDAP:

# cd /usr/ports/net/openldap24-server
# make install clean

Все параметры я оставил как есть. После успешной установки идем править конфиг - /usr/local/etc/openldap/slapd.conf. У меня он получился такого содержания

#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include        /usr/local/etc/openldap/schema/core.schema
include        /usr/local/etc/openldap/schema/cosine.schema
include        /usr/local/etc/openldap/schema/inetorgperson.schema
include        /usr/local/etc/openldap/schema/misc.schema
include        /usr/local/etc/openldap/schema/nis.schema
include        /usr/local/etc/openldap/schema/openldap.schema

# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral    ldap://root.openldap.org

pidfile        /var/run/openldap/slapd.pid
argsfile    /var/run/openldap/slapd.args

# Load dynamic backend modules:
modulepath    /usr/local/libexec/openldap
moduleload    back_bdb
# moduleload    back_hdb
# moduleload    back_ldap

# Sample security restrictions
#    Require integrity protection (prevent hijacking)
#    Require 112-bit (3DES or better) encryption for updates
#    Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64

# Sample access control policy:
#    Root DSE: allow anyone to read it
#    Subschema (sub)entry DSE: allow anyone to read it
#    Other DSEs:
#        Allow self write access
#        Allow authenticated users read access
#        Allow anonymous users to authenticate
#    Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
#    by self write
#    by users read
#    by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn.  (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!

access to attrs=userPassword
    by self write
    by anonymous auth
    by * none

access to *
    by self write
    by users read
    by anonymous read
    by * none

#######################################################################
# BDB database definitions
#######################################################################

database    bdb
suffix        "dc=dush4,dc=ru"
rootdn        "cn=root,dc=dush4,dc=ru"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw        {SSHA}*****
# The database directory MUST exist prior to running slapd AND 
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory    /var/db/openldap-data
# Indices to maintain
index    objectClass    eq
index    cn        eq

Пароль для админа в OpenLDAP генерируется командой slappasswd, полученный результат работы команды нужно просто скопировать в конфиг.
Добавляем следующие записи в /etc/rc.conf

slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/"'

Далее пробуем запустить сервис

# /usr/local/etc/rc.d/slapd start

Проверяем запустился ли сервис:

# sockstat | grep slapd
ldap     slapd      693   3  dgram  -> /var/run/logpriv
ldap     slapd      693   6  stream /var/run/openldap/ldapi
ldap     slapd      693   7  tcp4   127.0.0.1:389         *:*

Если вы видите что-то на подобии этого, то значит - все прошло нормально.
Наполняем лдап начальными данными, для этого создаем файл main.ldif следующего содержания:

dn: dc=dush4,dc=ru
objectClass: dcObject
objectClass: organization
objectClass: top
dc: dush4
o: dush4

dn: cn=root,dc=srv-home,dc=local
objectClass: organizationalRole
ou: root

dn: ou=users,dc=dush4,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: users

dn: ou=groups,dc=dush4,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: groups

dn: ou=computers,dc=dush4,dc=ru
objectClass: top
objectClass: organizationalUnit
ou: computers

Чтобы добавить записи, выполняем следующую команду:

# ldapadd -x -D "cn=root,dc=dush4,dc=ru" -W -f main.ldif

С настройкой OpenLDAP пока закончили, переходим к установке Samba.

# cd /usr/ports/net/samba
# make install clean

Из всех опций я оставил следующие:

  • LDAP
  • ACL_SUPPORT
  • QUOTAS
  • POPT

После установки самбы нужно добавить новую схему в OpenLDAP, для этого делаем следующее

# cp /usr/local/share/examples/samba/LDAP/samba.schema /usr/local/etc/openldap/schema

Далее правим конфиг, добавляем следующую строчку

include        /usr/local/etc/openldap/schema/samba.schema

И перезапускаем сервер

# /usr/local/etc/rc.d/slapd restart

После этих не сложных действий правим конфиг самбы - /usr/local/etc/smb.conf. У меня он получился таким:

#======================= Global Settings =====================================
[global]
  workgroup = DUSH-4
  server string = DUSH-4 File Server
  netbios name = srv-data.local

  security = user
  hosts allow = 192.168.4. 127.
  load printers = no
;   printcap name = /etc/printcap
;   printcap name = lpstat
;   printing = cups
;  guest account = pcguest

  log file = /var/log/samba/log.%m
  max log size = 50

  encrypt passwords = yes
  passdb backend = ldapsam:ldap://localhost/
  ldap suffix = dc=dush4,dc=ru
  ldap user suffix = ou=users
  ldap group suffix = ou=groups
  ldap machine suffix = ou=computers
  ldap admin dn = "cn=root,dc=dush4,dc=ru"
  ldap delete dn = no
  ldap ssl = no

  socket options = SO_RCVBUF=32768 SO_SNDBUF=32768

  interfaces = 192.168.4.251/24 127.0.0.1/8
  bind interfaces only = yes
  local master = yes
  os level = 65
  domain master = yes 
  preferred master = yes
  domain logons = no
  wins support = yes
  dns proxy = no
  hide dot files = yes
  hide files = /.*
  dfree cache time = 60
  dfree command = /usr/local/bin/dfree

  display charset = koi8-r
  unix charset = koi8-r
  dos charset = cp866

# Use inherited ACLs for directories
;    nt acl support = yes
;    inherit acls = yes
;    map acl inherit = yes

# These scripts are used on a domain controller or stand-alone 
# machine to add or delete corresponding unix accounts
;  add user script = /usr/sbin/useradd %u
;  add group script = /usr/sbin/groupadd %g
;  add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
;  delete user script = /usr/sbin/userdel %u
;  delete user from group script = /usr/sbin/deluser %u %g
;  delete group script = /usr/sbin/groupdel %g


#============================ Share Definitions ==============================
[homes]
  comment = Home Directories
  browseable = no
  writable = yes

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
;   comment = Network Logon Service
;   path = /usr/local/samba/lib/netlogon
;   guest ok = yes
;   writable = no
;   share modes = no


# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
;    path = /usr/local/samba/profiles
;    browseable = no
;    guest ok = yes


# NOTE: If you have a BSD-style print system there is no need to 
# specifically define each individual printer
[printers]
  comment = All Printers
  path = /var/spool/samba
  browseable = no
# Set public = yes to allow user 'guest account' to print
  guest ok = no
  writable = no
  printable = yes

[distrib]
  comment = Distrib
  path = /mnt/media/samba/distrib
  public = no
  writable = yes
  force create mode = 0640
  force directory mode = 0750
  force user = smb_user
  force group = smb_write
  valid users = @smb_read
  read list = @smb_read
  write list = @smb_write

[temp]
  comment = Temporary files
  path = /mnt/media/samba/temp
  public = no
  writable = yes
  force create mode = 0640
  force directory mode = 0750
  force user = smb_user
  force group = smb_write
  valid users = @smb_read
  read list = @smb_read
  write list = @smb_read

После чего нужно сказать пароль самбе от указанной учетной записи лдап, для этого делаем следующее:

# smbpasswd
New password: ***
Retry new password: ***

Вводим пароль за запускаем самбу:

# /usr/local/etc/rc.d/samba start
Starting nmbd.
Starting smbd.

На этом установка и настройка пакетов закончена. Для простоты администрирования учетных записей в LDAP можно дополнительно установить пакет ldapscripts.

Гость (не проверено)

I'm a huge fann of good vintage wine. From a locwl vineyard or imported,


it just elevates any occasion. Anyone else here love wine?








Also visit my bloig post ... ขายไวน์

Добавить комментарий

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.

Последние комментарии

Яндекс.Метрика