|
|
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 такую строку:
Скрипт добавления пользователя для компьютера добавляемого в домен - 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
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
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 и прочей хиромантии. Просто и быстро =)
|
Комментарии пользователей [32 шт.]