от run-time(2-11-2007)

рейтинг (32)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване



SAMBA като първичен домейн контролер - инсталация, настройка, управление



1. Въведение
2. Инсталация
3. Настройка
4. Създаване на групи
5. Вход в домейна
6. Добавяне на потребители
7. Проверка
8. Списък на команди за управление на домейна
8.1. Управление
8.2. Информация


1. Въведение


В статията се разглежда създаването и настройката на първичен домейн контролер с няколко споделени ресурси.
Администрирането на домейна ще може да се извършва и отдалечено с помощта на инструмента net. Тестванo е на slackware 12, но в статията ще обърнем внимание и ако инсталираме от изходни файлове

Списък на споделените ресурси които ще ползваме в статията:

  • home – личната директория на потребителя
  • joint – обща директория

  • Всеки потребител ще може да чете и записва в личната си и общата директория,но няма да вижда лични директории на останалите потребители.

    2. Инсталация

    Сваляме самба от www.slackware.org

    или изходните файлове от www.samba.org

    Инсталираме пакета

    # installpkg samba-3.0.23c-i486-1.tgz

    или за изходните файлове:
    # tar xzvf samba-latest.tar.gz
    # cd samba-3.0.26a/
    # cd source
    # ./configure --with-smbmount --prefix=/usr/local/samba --bindir=/usr/sbin
    # make
    # su make install


    За slackware: Задаваме стартиращият скрипт да е изпълним

    # chmod a+x /etc/rc.d/rc.samba

    Ако сме инсталирали от изходни файлове.. или си създаваме такъв скрипт или стартираме с:
    # /usr/sbin/smbd -D && /usr/sbin/nmbd -D

    Създаваме конфигурационния файл на самба.За slackware в

    # pico /etc/samba/smb.conf
    за изходните файлове:
    /usr/local/samba/lib/smb.conf

    И добавяме следният:

    Примерен код
    workgroup = DOMAIN #Името на домейна
     netbios name = PDCSERVER #Името на сървъра
     server string = DOMAIN SERVER #Коментар на сървъра
     passdb backend = tdbsam
     log level = 1
     log file = /var/log/samba/workstations/%m.log
     max log size = 50
     
     #За други дистрибуции сменете пътя!
     add user script = /usr/sbin/useradd -m %u  
     delete user script = /usr/sbin/userdel -r %u
     add group script = /usr/sbin/groupadd %g
     delete group script = /usr/sbin/groupdel %g
     add user to group script = /usr/bin/gpasswd -a %u %g
     delete user from group script = /usr/bin/gpasswd -d %u %g
     add machine script = /usr/sbin/useradd -g nt_workstations -s /bin/false -d /dev/null %u
     set primary group script = /usr/sbin/usermod -g %g %u
     
     logon path =
     logon drive =
     logon home =
     logon script = login.bat #Скрипт който да се зарежда при стартиране на машината
     domain logons = yes
     socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
     hosts allow = 192.168. 127. # Позволени мрежи
     time server = yes
     preferred master = yes # Aко стойността на параметъра е yes, то Samba сървъра ще стане MASTER BROWSER 
     domain master = yes #Управляващ в DOMAIN
     local master = yes #”упрявляващ” в локалната мрежата
     os level = 255 # Коефициент за управляващия
     unix charset = utf8
     dos charset = cp1251
     display charset = cp1251
     load printers = yes
     printing = cups
     printcap name = cups
     wins support = yes 
     
     # Директории на потребителите на DOMAIN
     [homes]  
     comment = Home Directories
     browseable = no
     writable = yes
     
     # Служебна директория
     [netlogon
     path = /srv/samba/netlogon
     read only = yes
     browseable = no
     
     # Обща директория
     [joint]
     path = /srv/samba/joint
     writable = yes
     create mask = 0775
     directory mask = 0775
     force group = users
    Създаване на директориите:
    # mkdir -p /srv/samba/{netlogon,joint }

    3. Настройка
    Всички потребители в домейна трябва да имат права за четне/запис в директорията joint. Сменяме групата на тази директория с users и и даваме права за запис.

    # chgrp -R users /srv/samba/joint

    # chmod -R g+w /srv/samba/joint


    Създаваме самба потребител root с парола 123
    # smbpasswd -a root

    Проверяваме конфигурационния файл за грешки
    # testparm

    Пускаме samba - за slackware
    # /etc/rc.d/rc.samba start


    за други дистрибуции базирани на Debian
    # /etc/init.d/samba start
    или ръчно:
    # /usr/sbin/smbd -D && /usr/sbin/nmbd -D

    Проверяваме дали samba успешно е стартирала
    # ps ax | grep mbd

    29724 ? Ss 0:00 /usr/sbin/smbd -D
    29726 ? Ss 0:00 /usr/sbin/nmbd -D
    29727 ? S 0:00 /usr/sbin/nmbd -D
    29728 ? S 0:00 /usr/sbin/smbd -D
    29748 pts/3 R+ 0:00 grep mbd



    Пробваме да се завържем и да видим мрежовите ресурси

    # smbclient -L localhost -U root%123

    4. Създаване на групи


    Създаваме необходимите linux групи за да може после да ги съпоставим с аналогичните Windows групи. В Windows по подразбиране съществуват следните групи:

    1. Guests
    2. Users
    3. Administrators

    Съответстващи групи Windows / Linux

    Guests – nobody
    Users – users
    Administrators – nt_admins

    Създаваме групите:
    # groupadd nt_workstations
    # groupadd nt_admins


    Всяка Windows група трябва да бъде съпоставена със съответната Linux група. Първоначално няма никакво съпоставяне.

    Съпоставяме групите:

    • Гости:
    # net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=nobody

    • Потребители:
    # net groupmap add rid=513 ntgroup="Domain Users" unixgroup=users

    • Windows машини - компютри:
    # net groupmap add rid=515 ntgroup="Domain Computers" unixgroup=nt_workstations

    • Администратори:
    # net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=nt_admins

    Числото след rid= - е идентификатор на основните Windows групи. Таблицата на RID за основните Windows групи

    Domain Admins - 512
    Domain Users - 513
    Domain Guests - 514
    Domain Computers - 515


    Създаваме потребител "fanta", който ще ни е администратор на домейна (първична група - nt_admins)
    # useradd -m -c "Admin" -G nt_admins -g users fanta

    Добавяме администратора към БД на SAMBA
    #smbpasswd -a fanta

    След като създадохме потребител - администратор, от тук нататък ще ползваме net за управление на домейна.
    С негова помощ ще извършваме администраторските действия.

    Проверяваме дали е добавен към групата на "Domain Admins"
    # net rpc group members "Domain Admins" -U fanta%123 DOMAIN\fanta

    По подразбиране в групата на Domain Admins няма никакви права за това ги създаваме.

    # net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -Ufanta%123

    5. Вход в домейна


    Сега можем да вкараме нашия сървър в домейна :)
    # net rpc join -U fanta%123

    Joined domain DOMAIN.
    Проверяваме дали е минала успешно процедурата

    # net rpc testjoin

    Join to 'DOMAIN' is OK

    Сега можем да видим общите данни за домейна
    # net rpc info -U fanta%123

    Domain Name: DOMAIN
    Domain SID: S-1-5-21-1896400801-767198480-4227753087
    Sequence number: 1171055599
    Num users: 1
    Num domain groups: 5
    Num local groups: 0

    На теория вече трябва да е възможно един Windows който е регистриран в Domain да може да се свърже с него, затова сега отиваме в Properties->My Computer->Computer Name->Change… И променяме стойността на Domain: да бъде Domain (както се казва нашият Domain) След като направи компютъра връзка с Domain-а пита за администраторският акаунт, който създадохме по – горе. След като го въведете “би трябвало” да изкара “Welcome to DOMAIN”.

    6. Добавяне на потребители


    Добавяне на всички работни станции към БД SAMBA. По подразбиране те ще принадлежат към групата "Domain Computers".

    # net rpc user add comp1$ -U fanta%123
    # net rpc user add comp2$ -U fanta%123
    # net rpc user add comp3$ -U fanta%123


    Добавяме към БД на SAMBA потребителите. По подразбиране те ще принадлежат към групата на "Domain Users".
    # net rpc user add user1 -U fanta%123
    # net rpc user add user2 -U fanta%123
    # net rpc user add user3 -U fanta%123

    Задаваме паролите за всички потребители:
    # smbpasswd user1
    # smbpasswd user2
    # smbpasswd user3


    7. Проверка


    Списъкът с всички групи на домейна
    # net rpc group -U fanta%123

    Domain Users
    Domain Computers
    Domain Admins
    Domain Guests
    Managers

    Списъка с всички потребители на домейна
    # net rpc user -U fanta%123

    fanta
    user1
    user2
    user3
    comp1$
    comp2$
    comp3$

    Списъка с администраторите (група "Domain Admins")
    # net rpc group members "Domain Admins" -U fanta%123 DOMAIN\fanta

    Списъка на компютрите в домейна (група "Domain Computers")
    # net rpc group members "Domain Computers" -U fanta%123

    DOMAIN\comp1$
    DOMAIN\comp2$
    DOMAIN\comp3$

    Ако искате да ползвате някой “login script” - Скрипт който да се зарежда при стартиране на Windows машините може да го създадете като login.bat и да го вкарате в /srv/samba/netlogon

    Например аз съм направил login.bat и съм вкарал следните 2 реда в него:

    net use w: \\PDCSERVER\joint
    net use z: \\PDCSERVER\%username%


    като първия мап-ва общата папка като “w”, а вторият личната директория като “z”.


    Е сега вече може да пробвате да вържете и Windows работна станция към домейна 

    Но не винаги е така.
    Ако Ви изпише някои от тези грешки то:
    “A domain controller for the domain DOMAIN could not be contacted.” – Провереде дали услугата Samba е пусната или дали сте задали правилно IP адресите.

    “Username or password incorrect” – ако сте сигурни, че администраторският акаунт е правилен тогава не сте създали машината във Domain. Това е обяснено по – горе как да я създадете.

    Сега наистина трябва да може да се Log-не в Domain.

    8. Списък с команди за управление и информация на домейна
    8.1 Управление


    1. Добавяне/изтриване на потребител:
    # net rpc user {add,delete} user1 -U fanta%123

    2. Добавяне/изтриване на компютър:
    # net rpc user {add,delete} comp1$ -U fanta%123

    3. Смяна на основната група на потребител:
    # usermod -g nt_managers user3

    4. Задаване на парола за потребител:
    # smbpasswd user1

    5. Вкарване на сървъра в домейна:
    # net rpc join -U fanta%123

    6. Проверка дали е влязъл:
    # net rpc testjoin

    7. Добавяне на права за определена група:
    # net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -U fanta%123

    8.2. Информация


    1. Списък на съпоставянето:
    # net groupmap list

    2. Списък с всички потребители:
    # net rpc user -U fanta%123

    3. Списък с всички групи:
    # net rpc group -U fanta%123

    4. Списък на потребители, принадлежащи към определена група:
    # net rpc group members "nt_admins" -U fanta%123

    5. Списък на компютрите (група "Domain Computers"):
    # net rpc group members "Domain Computers" -U fanta%123

    6. Група към която принадлежат определени потребители:
    # net rpc user info user3 -U fanta%123

    7. Обща информация за домейна:
    # net rpc info -U fanta%123



    Информация и цитати са вземани от:

    http://www.bg-freebsd.org/
    www.samba.org

    Част 2 >>



    << SAMBA PDC - инсталация, настройка, управление - Част 2 | Възможности за правна защита в България на софтуер поста >>