Документация по ОС FreeBSD Пятница, 03.05.2024, 13:50
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Samba

Файловый сервер Samba с авторизацией в домене NT
Тут просили опытом поделиться, как я создал файловый сервер Samba с авторизацией в домене Windows NT 4.0 и раздаю права на папки на уровне домена.
Что ж. Тогда сразу оговорюсь на чем делал я:
1. Домен Windows NT 4.0
2. FreeBSD 5.2.1
3. Samba (исходники, в пекеджах не годятся) 2.2.8a (пробовал на ветке 3.х, работало, но были проблемы с выводом списка доменных пользователей и груп).

И так приступим.

1. Установка

Распаковываем исходники Samba:
tar -zxvf samba-2.2.8a.tar.gz

Конфигурим (параметры для дальнейшей работы критичны!):
cd \samba-2.2.8a\source
configure --with-winbind --with-winbind-auth-challenge --with-acl-support --with-syslog
Если хотите создавать дисковые квоты, то можно добавить --with-quotas, но они не будут работать пока вы не перекомпилируете ядро с поддержкой дисковых квот.

Ждем завершения.
Компилируем.
make
make modules

и инсталлируем
make install

2. Конфигурирование.

Для простоты привожу свой файл smb.conf:
#=======================
[global]
workgroup = FC
netbios name = SVALKA
server string = Garbage
hosts allow = 192.168.14. 192.168.3. 192.168.17. 192.168.18. 127.
log file = /var/log/log.%m
max log size = 500
security = domain
password server = *
encrypt passwords = yes
socket options = TCP_NODELAY
local master = no
dns proxy = no
dos charset = CP866
display charset = CP866
delete readonly = yes

username map=/usr/local/samba/lib/smbusers

idmap uid=10000-20000
idmap gid=10000-20000
winbind enum users=yes
winbind enum groups=yes

#======== Share Definitions =======
[homes]
comment = Home Directories for %u
browseable = no
writeable = yes
valid users='@FC\Domain Users'
create mask = 0775

[DiskQ]
comment = DiskQ (%u)
path = /home/mounted/diskq
browseable = no
public = no
writeable = yes
printable = no
valid users='@FC\Domain Users'
create mask = 6777
directory mask = 6777
veto files = /*.avi/*.mp*/*.jpg/*.bmp/*.gif/*.wav/

[DiskK]
comment = DiskK (%u)
path = /home/diskk
browseable = no
public = no
writeable = yes
printable = no
valid users='@FC\Domain Admins','@FC\CB_Group','@FC\TipaAdmin'
create mask = 0777
directory mask = 0777

[ForAdmins]
comment = Admins Share (%u)
path = /home/mounted/diskx
public = no
browseable = no
writeable = yes
printable = no
valid users='@FC\Domain Admins','@FC\TipaAdmin'
create mask = 6775
directory mask = 6777

[odbarchive]
comment = CopyGarbage (%u)
path = /home/archive
public = no
browseable = yes
writeable = yes
printable = no
valid users='@FC\Domain Admins','@FC\TipaAdmin'
create mask = 0775
directory mask = 0777

[Users]
comment = User Dir's (%u)
path = /home/mounted/diskq/exchange/usersdir
public = yes
browseable = yes
writeable = yes
printable = no
valid users='@FC\Domain Users'
create mask = 6777
directory mask = 6777
veto files = /*.avi/*.mp*/
#=======================

После изменения smb.conf можно попробовать зарегистрироваться в домене Windows NT.
net join -U имя_администратора_домена
команда запросит у Вас пароль админа и должна ответить положительно.
Joined domain FC. (тут должен стоять Ваш домен)

Запускаем
winbind -d9

и контролируем его работу:

команда wbinfo -p должна вернуть:
'ping' to winbindd succeeded

команда wbinfo -t должна вернуть:
checking the trust secret via RPC calls succeeded

Если это не так, заглядываем в логи winbind и разбираемся в чем дело.

Копируем библиотеку libnss_winbind.so в каталог /lib:
cp nsswitch/libnss_winbind.so /lib

создаем символические ссылки на нее:

ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2

Изменяем файл /etc/nsswitch.conf. Он должен содержать строки вида

passwd: files winbind
shadow: files
group: files winbind

Перезапустите winbindd.

Проверяем видимость доменных пользователей и груп:
winbind -u
winbind -g
Вы должны увидеть записи типа:
.....
FC\Username1
FC\User2
FC\Name3
....
Приставка домена с "\" обязательна - иначе нормальная раздача прав Вам не светит!

3. Автозапуск файлового сервера

Теперь осталось настроить все для автоматического запуска сервера. Можно запускать демонов самбы при запуске, но разумней (а возможно и правильней) будет запускать сервисы по мере обращения к ним. Соответственно мы получим запуск сервисов под учетными записями пользователей в домене НТ.
Для это в /etc/inetd.conf добавляем (или исправляем):
netbios-ssn stream tcp nowait root /usr/local/samba/sbin/smbd
netbios-ns dgram udp wait root /usr/local/samba/sbin/nmb
А в /etc/rc.local:
/usr/local/samba/sbin/winbindd -B

Кстати если запускать не от рута, то ничего не работает. Почему?

После чего соединяемся с ресурсом со станции Windows уже зашедшего пользователя домена НТ и делаем на Юниксе команду
top

Вот приблизительній результат:
last pid: 69416; load averages: 0.08, 0.03, 0.01 up 22+02:29:33 14:08:54
115 processes: 1 running, 114 sleeping
CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 0.0% idle
Mem: 125M Active, 232M Inact, 97M Wired, 28M Cache, 60M Buf, 15M Free
Swap: 1024M Total, 100K Used, 1024M Free
Order to sort: tal, 100K Used, 1024M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
390 root 96 0 23572K 20200K select 8:54 0.20% 0.20% winbin
54341 FC\JackSoft 96 0 13712K 9040K select 1:16 0.00% 0.00% smbd
397 root -8 0 7036K 3408K piperd 0:16 0.00% 0.00% winbin
68680 FC\SurgkoAN 96 0 8924K 4072K select 0:03 0.00% 0.00% smbd

Если есть такая картина и юзер зашел! Идем пить пиво!

4. Раздача прав на папки.

Тут все просто. Раздавайте себе права на уровне Юникса, но прописывайте сразу доменных юзеров и группы. Например,
chown FC\JackSoft DiskK
chown :FC\Domain Admins ForAdmins
и т.д.

5. Квотирование диска.

Квоты раздаются на уровне ОС FreeBSD в файле /etc/fstab:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1f /home ufs rw,userquota,groupquota
/dev/ad0s1e /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/ad2s1d /home/mounted/diskq ufs rw,userquota,groupquota
/dev/ad2s1e /home/mounted/diskx ufs rw,userquota,groupquota

проверяем работает ли квота:
quota -v

, а уже потом создаются/меняются для группы и ли пользователя:

edquota FC\JackSoft
man edquota

редактируем тектстовый файл и записываем его.
Все квота изменена.

P.S. Установленная система так работает уже пол-года. Скорость файлового сервера на Юниксе на порядок выше чем тот же сервак на Винде. Дело стоит заморочек с переносом.
 
 
Автор: JackSoft
Категория: Samba | Добавил: oleg (10.11.2007)
Просмотров: 1744 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024