Показать полную графическую версию : Настройка файлового сервера на базе FreeBSD в домене Windows.
Аlchemist
14-07-2008, 00:14
Кстати, где можно найти толковое разъяснение этих прав доступа под win?) »
А что там непонятного может быть? Это же венда =) В чем конкретно запутались?
dmitryst
14-07-2008, 13:10
Это же венда »
вот именно....
Короче, создаю папку под Администратором. Там мои данные, которые не должен видеть никто, кроме меня. Пробовал выставлять галочки по логике, потом уже в случайном порядке... Короче, все равно видят папку все, или я сам её не вижу :o
Если нужно прятать папки/файлы на шаре от юзеров, которые их не имеют права читать/писать - параметры smb.conf hide unreadable, hide unwriteable в помощь
dmitryst
14-07-2008, 15:36
Dimon, это вырез гланд ректально, не наш метод :biggrin: Нужно всё-таки добраться до этих "unreadable"...
DJ Mogarych
15-07-2008, 00:27
Dimon, вы собирали Самбу из пакета. В вашей инструкции написано:
# Командами tar -zxvf samba-.3.0.23d.tar.gz распакуем пакет, cd samba-3.0.23/source перейдем в каталог сборки. Теперь необходимо произвести конфигурацию, компиляцию и, собственно, установку программы. Разобьем этот процесс на три этапа.
* Для конфигурирования сборки Samba существует множество опций, список которых можно посмотреть командой ./configure -help. Из всего многообразия команд нам для выполнения поставленной задачи необходимы следующие опции: --prefix=/usr/local/samba --with-ads --with-ldap --with-winbind --with-included-popt --with-acl-support --with-utmp -with-libsmbsharemodes --with-libmsrpc -with-syslog --enable-cups=no
Хотелось бы узнать всё с начала...
1) tar -zxvf samba-.3.0.23d.tar.gz - это после какой команды? Что-то там fetch?
2) И дальше: cd samba-3.0.23/source. Папка samba-3.0.23 - это что, в корне?
3) И, наверное, самое важное: если ставить Самбу через команду
pkg_add -r samba3, то ставится она без поддержки ADS. А она-то как раз и нужна. В связи с этим вопрос: можно ли поставить Самбу с диска, указав приведённые вами опции? Она ведь довольно свежая на диске с FreeBSD 7.0.
dmitryst
15-07-2008, 01:09
Она ведь довольно свежая на диске с FreeBSD 7.0. »
А зачем такие сложности????
cd /usr/ports/net/samba3
make ( качаем свеженькую версию, 3,0,28,1 - около 4Мб)
(после закачки выбираем то, что нужно)
make install
Всё :)
DJ Mogarych
15-07-2008, 09:23
Сложности в том, что почему-то сборка из портов вылетает с ошибкой, и, к тому же, зачем качать из интернета ту же самую версию, которая есть на диске?
Аlchemist
15-07-2008, 10:13
Сложности в том, что почему-то сборка из портов вылетает с ошибкой, »
# cd /usr/ports/net/samba3
# make clean
# make config
# make install clean
к тому же, зачем качать из интернета ту же самую версию, которая есть на диске? »
Хотябы потому, что от того что есть на диске мало толку :)
DJ Mogarych,
Имеется ввиду установка из _исходников_ - не из портов или бинарных пакетов. Небольшая путаница в терминах, миль пардон :)
Насчет бинарных пакетов: как-то практически никогда не пользовался ими во freebsd, всегда хватало портов, в крайнем случае - исходники, так что тут не подскажу ничего толкового...
DJ Mogarych
16-07-2008, 16:28
Небольшая путаница в терминах»
Да, действительно, запутался. Ладно, шут с ним, развели портов, пакетов каких-то... :)
Самба собралась, когда я выкинул CUPS из конфигуратора сборки.
Теперь хочется обойтись без ненужных настроек. Итак, что я выяснил:
1) Что Керберос устанавливать и настраивать не надо. Сразу после установки системы, если был сконфигурирован сетевой интерфейс, команда kinit -p _имя_администратора_домена_ с последующим указанием его пароля без проблем даёт билетик.
2) Что в smb.conf не нужна строка:
password server =
потому что стоит security = ADS, а не security = domain. А также можно обойтись без обозначения размеров лог-файлов и прочего, оставить всё по умолчанию, и ладно.
Без чего ещё можно обойтись?
Я подумал - да бог с ними, с галками этими под Windows. В принципе, достаточно создать папку, и дать разрешения группам или отдельным пользователям домена, и всё. И пусть бы эти пользователи создавали дальше папки сами, какие им нужно. А если что - можно и зайти на сервер раз в полгода, и создать ещё один ресурс с разрешениями.
Просто хочется минимального размера конфигурационного файла.
Ещё несколько вопросов:
1) Обязательно ли править nsswitch.conf?
2) Какие минимально возможные настройки сборки Самбы из портов, чтобы получить функциональность файлового сервера-члена AD?
3) Нужны ли всякие там ACL, если галки из-под Windows отпадают, и достаточно обычного разграничения доступа по доменным пользователям?
Аlchemist
16-07-2008, 16:48
1) Да
2) ADS, Winbind
3) нужна ли лопата, если копать не будем? :)
dmitryst
16-07-2008, 18:13
Самба собралась, когда я выкинул CUPS из конфигуратора сборки. »
у меня из портов собралась нормально
Я подумал - да бог с ними, с галками этими под Windows. »
нууу..... Лишать себя такого удовольствия? Я против :)
Ещё несколько вопросов: »
1) да, иначе оно работать не будет
2) ADS (чтоб в домен войти), winbind (получить список пользователей и групп) точно нужны, можно до кучи выключить поддержку syslog
3) нет, в них не будет тогда смысла
ЗЫ. В соавторы статейки возьмёте? ;)
1) Обязательно ли править nsswitch.conf?
2) Какие минимально возможные настройки сборки Самбы из портов, чтобы получить функциональность файлового сервера-члена AD?
3) Нужны ли всякие там ACL, если галки из-под Windows отпадают, и достаточно обычного разграничения доступа по доменным пользователям? »
1. Без правки nsswitch система не будет знать в каких локальных базах искать юзеров/группы/хосты и прочее относящееся к домену. Если не добавлять строку "winbind" то не будет происходить "отображение" (map) юзеров домена на локальную машину. Иначе говоря, если есть строка winbind в nsswitch то фря будет обрабатывать доменных юзеров точно так же (точно такими же системными вызовами, например gethostbyname() ), как и своих локальных из /etc/passwd, /etc/group например. man nsswitch.conf более подробно расскажет зачем это нужно.
2. Членом домена можно быть в режиме совместимости - NT-style и в "родном" режиме. В первом случае нужна аутентификация NTLM(2), winbind и все. Во втором случае - kerberos, winbind, ads.
3. Параметры к acl нужны если нужна функциональная вкладка "Безопасность" в свойствах папки с вин-машины.
DJ Mogarych
16-07-2008, 20:17
нужна ли лопата, если копать не будем? »
Копать будем, только хочется копать там, где помягче, а ещё лучше - воспользоваться экскаватором. :)
А почему я махнул рукой на галки - потому что для того, чтобы поменять разрешения в Windows-среде, надо всё равно лезть на сервер.
Так, ADS, winbind и ACL. LDAP не нужен?
Вычитал в журнале "Системный администратор" за февраль 2007-го, что из файла nsswitch.conf надо удалить всё, и оставить такие строчки:
passwd: files winbind
group: files winbind
hosts: files dns
Достаточно компактно, во всех остальных инструкциях nsswitch.conf более многословен. Достаточно ли этих трёх параметров?
Достаточно. Строка "files winbind" говорит о том, что вначале будет произведен поиск юзеров, паролей, групп и хостов в локальных базах типа /etc/group, при ненахождении будет запрос к winbindd, который произведет поиск всего этого через самбу в домене.
При сборке самбы с поддержкой ADS необходимо также включать и поддержку LDAP (хотя, возможно при включении ADS оно автоматом само подхватывает и ЛДАП - уж не помню щас - если же нет - должна быть ошибка сборки).
DJ Mogarych
30-07-2008, 11:10
Так, друзья, наконец-то я смог настроить сие.
Вот предварительный вариант статьи, уточнения и дополнения с удовольствием приму.
Простейшая настройка файлового сервера на FreeBSD 7.0 с интеграцией в Active Directory на контроллере домена Windows.
Дано: Небольшая Windows-сеть с контроллером домена Windows 2000 server. На контроллере домена, естественно, стоит Active Directory. Домен, для простоты, назовём DOMAIN, а администратора домена - Administrator.
Задача: сделать файловый сервер под управлением бесплатной операционной системы, с контролем доступа пользователей, записанных в Active Directory на контроллере домена Windows 2000-2003. Сервера печати, квот и прочих чудес не будет. Просто папочки с доступом определённых пользователей или групп.
Почему FreeBSD? Потому что эта система воспринимает большее число серверных устройств, к примеру, RAID-контроллеров, без установки дополнительных драйверов (которые просто так зачастую не устанавливаются, или их просто не существует под UNIX-системы), и потому что нет такой путаницы с дистрибутивами, как у Linux.
Описывать установку FreeBSD не буду, скажу лишь, что желательно при установке включить доступ по SSH. Данная настройка файлового сервера не подразумевает управление разрешениями с клиентских машин с Windows, и для удалённого доступа к файловому серверу можно использовать программу Putty. А можно и вообще удалённого доступа не делать, это уже хозяин-барин.
Почему не сделать управление доступом к разрешениям на папки галочками из Windows? Да потому что полезность этого стремится к нулю - разрешения на папки меняются не каждый день; чаще всего создаётся папка, даются права какому-то пользователю или группе, а потом всё это не меняется годами. В конце концов, можно дать пользователю или группе полные права в этой папке - пусть делает там что ему заблагорассудится. И с настройкой есть проблемы: у меня, например, никак не хотели изменяться права на файловую систему; не хотела она отмонтироваться, чтобы поменять права, и всё тут! Ни в монопольном режиме, никак. В общем, лишняя головная боль. Оставим эту возможность.
Графических оболочек для создания файлового сервера не нужно: всё ограничится несколькими командами в консоли, да небольшими правками конфигурационных файлов. Можно установить Midnight Commander, по вкусу.
Также при установке FreeBSD не нужно создавать пользователей. Они тоже ни к чему. Настроив сервер, выйдем из сеанса суперпользователя, и сервер будет работать себе дальше. Надо что-то поправить - опять зайдём под суперпользователем, и настроим что нужно. В конце концов, пользователя можно элементарно завести из консоли когда угодно.
Обновлять порты и пересобирать ядро не будем. И так сойдёт.
И, наконец, пакет, необходимый для взаимодействия с Windows-окружением - Samba3 - ставить из пакетов, идущих в дистрибутиве FreeBSD 7.0, не будем, потому что в этом пакете нет поддержки Active directory, которая нам как раз и нужна.
Итак, FreeBSD 7.0 установлена, сетевая карта настроена, сервер имеет доступ в интернет, и в систему зашли под root-ом. Теперь надо ставить Samba3. В дереве портов она находится по адресу
/usr/ports/net/samba3
Забавно, но поиск нужного порта по команде
# whereis samba3
выдаёт ссылку на японский порт:
/usr/ports/japanese/samba3
Его-то я и ставил. :-) Но японский ставить или нет, совершенно неважно.
Для установки пишем:
# cd /usr/ports/net/samba3 && make install clean
Всплывает окно конфигурации. Я убрал CUPS (сервер печати), поставил крестик на ADS (поддержке Active directory) и, на всякий случай, на ACL_SUPPORT. Больше ничего не менял. Нажимаем OK и не спеша идём пить чай - скачиваться и устанавливаться будет небыстро.
Во многих подобных инструкциях дальше указывается ставить и настраивать kerberos5. Так вот - не надо ничего ни ставить, ни настраивать. Kerberos5 входит в состав FreeBSD начиная ещё с версии 5.1, и дополнительной настройки требует в случаях сложной организации сети. Пропускаем этот пункт.
Дальше нужно отредактировать файл nsswitch.conf. Это конфигурационный файл диспетчера службы имён, и в нём задаётся порядок просмотра тех или иных источников информации по спискам пользователей, паролям, сетевым протоколам и другим вещам.
Во FreeBSD есть простенький консольный текстовый редактор, он называется "ee".
Итак, редактируем:
# ee /etc/nsswitch.conf
Перечисленные ниже параметры надо привести к такому виду:
group: files winbind
group_compat: nis
hosts: files dns
networks: files dns
passwd: files winbind
passwd_compat: nis
shells: files
services: compat
services_compat: nis
protocols: files
rpc: files
Чтобы выйти из редактора, нажмите кнопку Esc и выберите пункт "leave editor". Далее выберите "save changes", чтобы сохранить изменения.
Теперь надо заняться конфигурированием непосредственно файл-сервера. Сначала создадим саму папку, которая будет общей. В данном случае папка называется share, и находится она в корне файловой системы.
# mkdir /share
Настраиваем Самбу. Её конфигурационным файлом является smb.conf.
Набираем:
# ee /usr/local/etc/smb.conf
Потом стираем всё, что есть в конфигурации (нажимаем и держим Ctrl+k), и пишем следующее:
[global]
# В какую группу компьютеров входит наш сервер
workgroup = domain
# Имя домена
realm = domain
# Режим работы сервера (безопасность) - Active Directory
security = ADS
# Имя нашего сервера в "Сетевом окружении"
netbios name = FreeBSD
# Диапазон раздаваемых идентификаторов групп внешних пользователей (чтобы не пересекались с локальными)
idmap gid = 10000-20000
# Диапазон раздаваемых идентификаторов внешних пользователей (чтобы не пересекались с локальными)
idmap uid = 10000-20000
# Кодировки отображения имён файлов (надо, чтобы имена нормально показывались в консоли)
display charset = cp1251
unix charset = cp1251
dos charset = 866
# Название предоставляемого ресурса
[share]
# Путь к папке
path = /share
# Режим "только для чтения" отключен
read only = no
# У кого права на чтение (@ означает группу; если надо написать пользователя, то пишите без @)
# Разделитель - запятая с пробелом
read list = @"DOMAIN\Domain users"
# У кого права на запись
write list = @"DOMAIN\Domain admins"
# У кого права администратора (привилегии суперпользователя)
admin users = @"DOMAIN\Domain admins"
Можно и исходный файл отредактировать, но лучше написать только то, что нужно, убрав весь мусор (и комментарии тоже). Так как файл smb.conf часто перечитывается, лучше, чтобы он был наименьшего размера. Выходим из "ee", сохранив результат.
Дальше получаем билетик kerberos от имени администратора домена:
# kinit Administrator
Administrator@DOMAIN's Password: [набираем пароль]
kinit: NOTICE: ticket renewable lifetime is 1 week
Теперь можно присоединить наш сервер к домену:
# net ads join -U Administrator
Administrator's password: [набираем пароль]
Using short domain name -- DOMAIN
Joined 'FreeBSD' to realm 'DOMAIN'
Отлично. Теперь редактируем файл rc.conf. Это конфигурационный файл с некоторыми системными параметрами и список служб, загружаемых вместе со стартом системы.
# ee /etc/rc.conf
Ничего не трогаем, только в конец файла записываем:
samba_enable="YES"
Выходим из "ee", сохранив результат.
Перезагружаем наш сервер командой reboot.
Всё!
P. S. Я не знаю, достаточно ли обычного указания кодировок в Самбе для нормального отображения русских названий файлов в консоли. Я думал, что дело в кодировке консоли, и переделал её сначала под cp1251. Но это не помогло (только Midnight commander стал русским - приятный сюрприз). Только после этого я добавил строки с указанием кодировок в smb.conf. После этого всё стало на свои места. И я не знаю, надо переделывать консоль в cp1251, или нет. Может быть, можно обойтись и без этого.
А может быть, не трогать консоль, а установить Midnight commander, и выставить кодировку там. В Коммандэре всё ж удобнее файлы-то просматривать.
dmitryst
30-07-2008, 12:44
И я не знаю, надо переделывать консоль в cp1251, или нет. Может быть, можно обойтись и без этого. »
Я переделал, доволен :)
Кстати, удалось ли решить проблему с наследованием свойств, как на обычной ntfs системе?
DJ Mogarych
30-07-2008, 14:15
А в чём эта проблема заключается?
:nnn: Спасибо всем! Из всего что читал, это оказалось самым конкретным!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC