Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  ProFTP+PgSQL
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco
www.lissyara.su —> статьи —> FreeBSD —> программы —> Samba как PDC

Самба как контроллер домена без использования LDAP

Автор: lissyara.


    Это - обновление старой одноимённой статьи. Как и старая - эта полностью копи-пастная - всё работает "из коробки" =) Причина обновления - недоработки старой статьи, кривости в некоторых местах (дополнительные параметры пользователя не редактировались). Ну и столкнулся с практической реализаций решения - попросили сделать в одной конторе.
   Задача - поднять домен с целью централизованного хранения учётных записей пользователей, выполнения каких-то скриптов при логине и т.п. Больше оно и не может - ибо уровень домена - NT4.

   Система - FreeBSD 7.2-STABLE. Ставим самбу:
server$ cd /usr/ports/net/samba3
server$ make install clean

   В вылезшем окошке выбираем следующие опции:
[X] WINBIND      With WinBIND support
[X] ACL_SUPPORT  With ACL support
[X] SYSLOG       With Syslog support
[X] QUOTAS       With Disk quota support
[X] UTMP         With UTMP accounting support
[X] POPT         With system-wide POPT library
[X] PCH          With precompiled headers optimization

   Рисуем конфиг /usr/local/etc/smb.conf:
#
[global]
        workgroup = SRO
        netbios name = SERVER
        server string = SAMBA Domain Controller For SRO


        # Скрипт добавления пользователя
        add user script = /usr/local/etc/samba/add_user_script.sh "%u"
        # Скрипт удаления пользователя
        delete user script = /usr/sbin/pw userdel "%u" -r
        # Скрипт переименованя пользователя
        # (следующие две строки - на самом деле одна. невлезает ..)
        rename user script =
                 /usr/local/etc/samba/rename_user_script.sh "%uold" "%unew"
        # Скрипт перезапуска самбы (Вообще, в man smb.conf, предлагается
        # ребутить или класть всю машину. Перебор, по моему... Хотя -
        # у меня это не работает. Такчто - пофиг.)
        shutdown script = /usr/local/etc/samba/shutdown_script.sh
        # Скрипт добавления новой группы
        add group script = /usr/sbin/pw groupadd "%g"
        # Скрипт удаления группы
        delete group script = /usr/sbin/pw groupdel "%g"
        # Скрипт добавления пользователя в группу
        # (следующие две строки - это одна, в ширину сайта на вписывается)
        add user to group script =
                  /usr/local/etc/samba/add_user_to_group_script.sh "%g" "%u"
        # Скрипт установки первичной группы для пользователя
        set primary group script = /usr/sbin/pw usermod "%u" -g "%g"
        # Скрипт удаления пользователя из группы
        # (следующие две строки - это одна, в ширину сайта на вписывается)
        delete user from group script =
                  /usr/local/etc/samba/delete_user_from_group_script.sh "%g" "%u"
        # Скрпит для добавления аккаунта компьютера
        add machine script = /usr/local/etc/samba/add_machine_script.sh "%u"
        # Скрипт проверки пароля (чтобы не пихали 12345 и прочее. Должен вернуть 0
        # если пароль нормальный, и что-то другое - если нет. Пароль передаётся
        # на стандартный ввод скрпита)
        check password script = /path/to/password/check/script.sh
        # Скрпит - чё елать при получении сообщений по winpopup (из man`a)
        message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s

        # added by lissyara 2009-09-04 in 08:50
        passdb backend = tdbsam:/usr/local/etc/samba/passdb.tdb
        # added by lissyara 2009-09-04 in 09:36
        display charset         = koi8-r
        unix charset            = koi8-r
        dos charset             = koi8-r


        # Где лежат скрпиты, выполняемые доменными компами при загрузке
        #logon script = scripts\logon.bat
        logon script = net_map.bat
        domain logons = Yes
        os level = 85
        preferred master = Yes
        domain master = Yes
        idmap uid = 5000-9999
        idmap gid = 5000-9999

        # Кого не пускать
        # в итоге она у меня раскомментирована, но настройку
        # я делал с закомменченой.
        # настоятельно рекомендую расккомментить, после настройки и введения
        # самой машины в домен
        #invalid users = root


        #interfaces = 192.168.120.253/24
        security = user
        # Включаем поддержку WINS
        wins support = yes
        # Указываем виндовый WINS из другого домена - на время, пока он ещё жив
#       wins server = 192.168.0.251
        dns proxy = yes
        time server = True

        # Перемещаемые профили (если не указать эти пункты пустыми -
        # профили у пользователей будут перемещаемые)
#        logon path = \\lissyara\profiles\%U
        logon path =
        logon home =
        template homedir =

        # логгинг
#        log level = 10 passdb:10 auth:10 winbind:10
#       log level = 6
        log file = /var/log/samba/log.%m

        # added by lissyara 2009-09-04 in 16:22 MSK
        admin users     = "@SRO\Domain Admins"


[IPC$]
        path = /tmp


[print$]
        comment = Printer Drivers Share
        path = /usr/home/samba/drivers

[netlogon]
        path = /nethome/samba/netlogon
        read only = no
        browseable = yes

[profiles]
        path = /nethome/samba/profiles
        browseable = yes
        create mask = 0600
        directory mask = 0700
        read only = no
        guest ok = yes

   Набор шар - опционален, обязательны лишь первые три. Далее - рисуем описанные в конфиге скрипты по управлению пользователями и группами, но, не забываем добавить в /etc/rc.conf такую строку:
samba_enable="YES"

   Скрипт добавления пользователя для компьютера добавляемого в домен - add_machine_script.sh:
#!/bin/sh

# скрипт добавления машины
/usr/sbin/pw useradd "$1" -d /dev/null \
        -s /sbin/nologin -L "russian" -m \
        -g computers -c "computer_account"

# отладка
echo "added komp '$@' in `date +%Y-%m-%d` `date +%H:%M:%S`" \
            >> /tmp/`basename $0`.log

   Скрипт добавления пользователя - add_user_script.sh:
#!/bin/sh

# скрипт добавления пользователей
#/usr/sbin/pw useradd "$1" -d /usr/home/samba/profiles/"$1" \
#       -s /sbin/nologin -L "russian" -m -g ntusers -c "$1"
/usr/sbin/pw useradd "$1" -d /dev/null \
        -s /sbin/nologin -L "russian" -m -g ntusers -c "$1"
# отладка
echo "added user '$@' in `date +%Y-%m-%d` `date +%H:%M:%S`" \
      >> /tmp/`basename $0`.log

   Добавление пользователя в группу - add_user_to_group_script.sh:
#!/bin/sh

/usr/sbin/pw groupmod "$1" -m "$2"

# отладка
echo "added user '$2' to group '$1' ($@) in `date +%Y-%m-%d` \
            `date +%H:%M:%S`" >> /tmp/`basename $0`.log

   Скрипт для удаления пользователя из группы - delete_user_from_group_script.sh:
#!/bin/sh

/usr/sbin/pw groupmod $1 -d $2


echo "deleted user '$2' from group '$1' ($@) in `date +%Y-%m-%d` \
    `date +%H:%M:%S`" >> /tmp/`basename $0`.log

   Скрипт переименовывания пользователя - rename_user_script.sh:
#!/bin/sh

/usr/sbin/pw usermod $1 -l $2

echo "renamed user '$1' --> '$2' ($@) in `date +%Y-%m-%d` \
      `date +%H:%M:%S`" >> /tmp/`basename $0`.log

   Скрипт перезапуска сервиса - shutdown_script.sh:
#!/bin/sh

# Перезапукаем самбу (в бакгроунде - обязательно!)
/usr/local/etc/rc.d/samba restart &

   В принципе, все эти скрипты не обязательны. Все они состоят из одной строки, и прекрасно вставляются в конфиг самбы. Вот тока логгировать так проще, при отладке и т.п. Ну и потом по-быстрому глянуть - чё происходило на машине - тоже можно. Так что - ваш выбор - что хотите логгировать - через скрипты, что не хотите - пямо в конфиг команду вписывайте. На мой взгляд - как мимнимум - добавление/удаления пользователей, тоже самое для модификации групп пользователя.

   Написанные скрипты делаем исполняемыми и запускаем самбу:
server$ chmod +x /usr/local/etc/samba/*.sh
server$ /usr/local/etc/rc.d/samba restart

   Заводим пользователя root в самбе (в принципе, опять же, не обязательно - можно дальше действовать от административного пользователя, котрый и будет позднее постоянно использоваться. Но - на этом этапе так будет прощще):
server$ smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.

   Рисуем скрипт добавления нужных системных групп, и маппинга виндовых групп на системные:
#!/bin/sh
#!/bin/bash
#### Keep this as a shell script for future re-use

pw groupadd ntadmins
pw groupadd ntusers
pw groupadd computers


net groupmap add ntgroup="Domain Admins" unixgroup=ntadmins rid=512 type=d
net groupmap add ntgroup="Domain Users"  unixgroup=ntusers  rid=513 type=d
net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d
net groupmap add ntgroup="Domain Computers" unixgroup=computers type=d

   Как вы его обзовёте и куда положите - ваше дело. Использоваться он будет лишь один раз. Запускаем:
server$ sh samba_group.sh
Successfully added group Domain Admins to the mapping db as a domain group
Successfully added group Domain Users to the mapping db as a domain group
Successfully added group Domain Guests to the mapping db as a domain group
No rid or sid specified, choosing a RID
Got RID 3007
Successfully added group Domain Computers to the mapping db as a domain group

   Добавляем в администраторов будущего домена нужных пользователей (они, разуммется должны уже быть в системе. Я добавляю рута и nik - человек который будет на том конце провода заниматься машинками с виндой):
pw groupmod ntadmins -m root
pw groupmod ntadmins -m nik
server$ id nik
uid=1001(nik) gid=0(wheel) groups=0(wheel),1982(ntadmins)
server$   

   Зачем рута? Просто все кому делал первым делом пытались залезть на виндовые машины и порулить доменом именно им. (с учётом что я не описываю как заводил того же nik в самбе - так же как и рута - вполне наверно логично...)
   Вводим контроллер домена в домен:
server$ net join server
Password:
Joined domain SRO.
server$  

   Всё. Для верности можно рестартануть самбу и пытаться ввести в домен машины/залогиниться на них юзерами (опять же - если дословно по статье сделано - то только root получиться. ибо в самбе пока больше нет других пользователей).

   Оговорки и примечания. В общем - повторяюсь то же что и к предыдущей статье - при удалении пользователя из самбы - грохается системная учётка. Делайте проверку, или юзайте отдельную учётку. При наличии в системе учётки совпадающей по логину с создаваемой - новйо не создаётся - используется существующая.
   Сразу отвечаю на впорос - почему не самба 3.3 а 3.0. В 3.3 скрипты, по какой-то причине, выполняются от обычного пользователя, который в винде галки ставит - nik в данном случае. Естессно они не работают. Либо sudo мутить, и ловить остальные глюки, либо - использовать проверенное решение. Я предпочёл последнее.
   Для администрирования качаем утилиты отсюда. Если у кого-то не качается - идите в старую статью - там есть другой линк.

   Про LDAP - знаю, но ненавижу за убогий синтаксис.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=20292.

размещено: 2009-09-27,
последнее обновление: 2009-09-27,
автор: lissyara

оценить статью:




Хостинг HOST-FOOD


2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP.
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
2009-09-27, lissyara
Samba как PDC

Контроллер домена - аналог M$ NT4 домена под самбой, без использования LDAP и прочей хиромантии. Просто и быстро =)
2009-08-30, terminus
Подробное руководство по ipfw nat

Подробное руководство по ipfw nat, сложные случаи конфигурации.
2009-08-24, levantuev
HotSpot

Установка Hotspot системы в общественное заведение.
2009-08-18, lissyara
diskless

Создание бездисковых терминалов под управлением FreeBSD - с загрузкой по сети. Используются для старта rdesktop и подключения к виндовому серверу терминалов.
2009-07-29, BAV_Lug
Видеонаблюдение

Настройка бюджетного варианта видеонаблюдения на удаленном объекте
2009-07-22, Cancer
OpenLDAP адресная книга

Настройка и создание адресной книги на базе OpenLDAP + phpLDAPadmin
2009-06-30, SergeySL
AimSniff

Руководство по созданию системы мониторинга ICQ-переписки на базе AimSniff, использующей базу данных MySQL для хранения и Web-интерфейс WAS (Web Aim Sniff) для просмотра перехваченных сообщений
2009-06-25, atrium
Управление правами доступа

Полномочия пользователей и файлов, принадлежащих им, формирует концепцию ОС UNIX.
2009-06-16, DNK
Exim+PgSQL

Установка почтовой системы exim+pgsql на FreeBSD 7.1
2009-05-30, mvalery
HDD(mbr) -> HDD(gpt)

Как разбить диск размером более 2TB на разделы, сделать загрузочным, а затем перенести на него информацию с рабочей системы — донора.
2009-05-22, Cancer
SendXMPP

Отправка сообщений на Джаббер сервер по средствам SendXMPP
2009-05-11, Raven2000
Network UPS Tools

Network UPS Tools представляет собой набор программ, которые обеспечивают общий интерфейс для мониторинга и администрирование UPS оборудования.
2009-04-29, m0ps
IPSEC over GRE with RIP

Пример IPSEC over GRE и динамическим роутингом (RIP), с ADSL в качестве последней мили на оборудовании Cisco.
2009-04-24, WhiteBear777
qemu network

Появилась необходимость поставить на БСД эмулятор(qemu) и настроить в качестве гостевой ОС Windows XP, предоставив ей выход в локалку и в сеть internet...
2009-04-22, vp
freebsd + huawei 162 gsm modem

В статье описывается простой способ подключения модема huawei 162 к freebsd + первичная настройка smstools
2009-04-12, mvalery
Мониторинг RAID

Мониторинг из командной строки RAID компаний AMCC 3ware, HighPoint, Dell (Perc 5/i и PERC 6/i) и LSI (MegaRAID SAS 8408E и SAS1078)
2009-04-09, texnotronic
RAID1 via LAN

Функциональности DRBD во FreeBSD можно добиться примонтировав блочное устройство по сети при помощи GEOM Gate (ggate) и добавив его в зеркало с локальным диском средствами gmirror.
2009-04-03, Raven2000
Оптимизация хоста для CMS

В последнее время на старый и не очень быстрый ПК (Celeron 800 RAM 256) мною было навешано с десяток сайтов и некоторые были из серии тяжелых CMS. И так нам дано FreeBSD 7.1 и ~10 сайтов/CMS.
2009-04-01, atrium
VSFTPD + AD && MySQL

Настройка самого безопасного сервера FTP - vsftpd.
2009-03-31, Dron
Peoplenet + C-motech (3G)

Описание подключения к сети Peoplenet посредством 3G модема С-motech CCu-650U на FreeBSD
2009-03-25, lissyara
mod_auth_external

mod_auth_external - авторизация пользователей в apache c помощью внешней программы - например, системных пользователей.
2009-03-24, gx_ua
Lightsquid

Частично lightsquid может заменить sams: быстрая и простая инсталляция, быстрый парсер, cgi скрипт для динамической генерации отчета, нет привязки к БД, различные графические отчеты, мультиязычный инт
2009-03-18, LHC
Установка Zabbix-1.6

Установка и первоначальная настройка системы мониторинга Zabbix (версия 1.6)
2009-03-16, Cancer
Принт-Сервер Samba+LPD & AD

Простейшая настройка Принт-Сервера на FreeBSD используя Samba+LPD & AD
2009-03-04, Mad_caterpillar
ipsec_vpnc

Настройка VPN IPSec концентратора на FreeBSD 6.2 для клиента cisco с использованием ipsec-tools и авторизацией в активной директории
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 47 чел.
За последние 30 мин было: 301 человек
За сегодня было
23158 показов,
2994 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2531 секунд
Из них PHP: 37%; SQL: 63%; Число SQL-запросов: 81 шт.
Исходный размер: 172752; Сжатая: 31096