Настройка samba домене windows

Настройка Samba для работы с Active Directory

Начиная знакомство с linux самое первое что мы пытаемся поставить это прокси-сервер squid и файл-сервер samba. Не смотря на обилие документации установка и настройка samba не редко вызывает множество проблем, как на старте, так и в процессе эксплуатации.

В этой статье я постараюсь описать процесс установки и настройки samba файл-сервера для функционирование в домене Windows.

1. Установка и настройка kerberos

Устанавливаем необходимы пакеты:

Для правильной работы kerberos необходима точная синхронизация времени с контроллером домена. Открываем файл /etc/ntp.conf, комментируем все теги server и добавляем наш контроллер домена:

Добавляем в автозапуск и запускаем сервис ntpd:

Открываем файл /etc/hosts и проверяем соответствие IP-адресов и имен, не правильно заполненный /etc/hosts может стать причиной множества ошибок:

Приводим файл /etc/krb5.conf к следующему виду:

Получаем тикет от контроллера домена:

Проверяем полученный тикет:

2. Установка и настройка samba

Устанавливаем необходимые пакеты:

Приводим файл /etc/samba/smb.conf к следующему виду:

Для проверки правильности конфигурационного файла у самбы есть замечательная утилита testparm:

Вводим сервер в домен:

Включаем в автозапуск и запускаем сервисы smb и winbind:

Редактируем файлик /etc/nsswitch.conf и добавляем после следующих строчек слово winbind. Этим действием мы указываем в каком порядке и где системе искать имена-пароли пользователей и групп.

Теперь сервер готов к работе.

3. Заключение

Я как-то пытался проанализировал экономический фактор установки бесплатной samba в качестве файл-сервера.

На сегодняшний день samba хоть и может использоваться в роли контроллера домена, но до полноценной Active Directory с групповыми политиками ей еще далеко, и использовать ее на 100 человек пользователей вряд ли кто будет. Отсюда получается, что один Windows-сервер у нас уже есть и необходимые CALs тоже.

Таким образом корпоративная лицензия Win2k8Std для файлового сервера обойдется приближенно в 700$. Будет ли дешевле установить, полноценно настроить и обслуживать samba с Shadow Copy, DFS и сетевой корзиной? По-моему нет.

42 Коммент. : “Настройка Samba для работы с Active Directory”

Самба очень хорошо закрывает задачу “файл-сервер для микрорабочих групп”. В фирмах до 10-20 компьютеров смысла разворачивать полноценную AD в большинстве случаев нет, да и финансово это затратно. Мало того что надо покупать windows server, так еще и на каждую рабочую станцию придется покупать полноценную версию windows. Обычно, из экономии в таких фирмах используются на пользовательских компьютерах предустановленные HOME OEM версии windows, где никакими доменами и не пахнет(я не рассматриваю случай с полностью пиратским ПО).

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

да на малых предприятиях никакого экономического обоснования ставить АД нету, а статья отличная =)

исправь, пожалуйста – “В этой статье я постАрАюсь подробно….”

@miha
Многое зависит от того на сколько малое предприятие собирается развиваться. Если попробовать рассчитать на сколько дороже будет стоить вариант с виндой на 20 компьютеров (Win7prof – Win7Home + Srv CAL) * 20 + Srv2k8Std = (5300-2600+900) * 20 + 21000 = 93000 получиласть не маленькая сумма, но теперь все это делим на средний срок жизни фирм из 10-20 человек – 3года и получаем 2583р в месяц – не большая плата за возможность достаточно легкого развития.

Как-то сталкивался с организацией где более 40 компов со сборной солянкой 2k/XP, плюс 5 с ubuntu все в рабочей группе – припечальное зрелище… душераздирающее… Отсюда вывод – возможность развития ИТ структуры лучше закладывать изначально.

В плане использования samba для маленьких контор пользующихся услугами стороннего ИТ специалиста и не имеющих перспектив развития – совершенно согласен.

@andrey
Спасибо за исправления, на моей орфографии сказывается честно заработанная твердая четверка по русскому языку. Если хочешь оставь аську, я тебе перед каждой публикацией буду скидывать ссылку на статью для проверки.

“Многое зависит от того на сколько малое предприятие собирается развиваться.”
Я наблюдал довольно много мелких фирм на старте, их всех объединяло одно – категорическое отсутствие денег. Поэтому, если есть возможно платить не сейчас, а “когда-нибудь” – это прекрасно. Компы народ всё равно купит, предустановленная абстрактная HOME OEM вида у них будет/
Ну а дальше ползучее развитие.
Если черех год-два, выросли, так что и AD надо, и бабло есть, можно и потратится, а нет- то и смысла нет из своего кармана выкидывать 3000$ на сомнительную перспективу развития когда нибудь.

@alsigned
Я админю два промышленных предприятия: завод и транспортную фирму. На заводе не более 30 компов, самба полностью перекрывает все потребности уже более шести лет.Вся винда – хомяк, самба – на федоре шестилетней давности. Отдельно на центосе сервер для 1с, интернет – шлюз на клеарос и всё путем…
Транспортная фирма – менее 20 компов, самба на центосе и длинковский интернет роутер. Тож все хомяки.

Читайте также:  Mac os open app from terminal

В обоих случаях никакой потребности в AD и никакого намека на расширение. Наоборот, с 2008 года съеживаемся: кризис пока еще не ушел.

Так что статья правильная, нужная. Единственно, что я бы добавил, это пример описания нескольких папок с разными правами доступа для групп пользователей.

@дядя Миша
Года четыре назад я работал в одной чудесной аутсорсинговой компании и периодично натыкался на небольшие фирмы состоящие начиная от 2-х человек и кончая 30. Особенно радовали юристы кучковавшиеся по 2-3 человека в разных фирмах и частях города, самое печальное что во всех случаях с небольшими фирмами получался дремучий лес, у одних так и у других этак. Даже помнится записи по всем делал что бы не путать
Расскажи как у тебя сделано:
1. Имена локальных пользователей
2. Раздельный доступ к ресурсам
3. Доступ в интернет
4. Пакет офисных програм
5. Почта

@miha
Здесь думаю стоит с тобой согласиться, выкладывать из своего кармана дело трудное. Видимо я уже просто привык работать с населением около 200 человек и рассчитывать экономию средств по принципу затрачено в месяц.

Я использую самбу только в филиалах по 10-15 человек, для которых немножко урезали финансирование ИТ из-за не высокой прибыли. Мои кеи увы не хотят работать с Linux или BSD, поэтому приходится придерживаться MS, что бы не завязывать все на себя.

@Alsigned
Рассказываю. Самый клинический случай – транспортная фирма. Хотя и областной монополист, но очень примитивные потребности и твердая уверенность руководства, что как-то ограничивать серфинг сотрудников по интернету – не есть правильно. И едитнственное применение интернета для работы -”банк-клиент” и передача отчетов в налоговую с пенсионной службой. Никакой почты и никакой переписки, поскольку клиенту не отвертеться от услуг монополиста.

Единственный общий ресурс – папки самбы “Парус”для бухгалтерии и “Консультанта” для всех.
Короче, две рабочих группы – “руководство” и “бухгалтерия” и всё. Все сотрудники предпенсионного и пенсионного возраста, и всех всё устраивает.

Всё легально, в том числе MS-Office и Касперский – как без него?

Думаю, таких фирм хватает…

сейчас штуки типа Zentyal разворачивают смолбизнес сервер с прорвой служб, включая домен, управляемых из GUI галками, очень запросто. Необходимость AD в мелких (до

100 узлов) вообще сомнительна.

@SirYorik
Zentyal заслуживает внимания, разработчики молодцы сделали все красиво и доступно, возможно как раз этого и не хватало для небольших офисов. Но я по простоте своей душевной не люблю работать с такими продуктами

Active Directory – это не необходимость для работы компьютеров, это в первую очередь удобство администрирования, это экономия времени персонала, это изначально заложенная возможность расширения.

Предположим в организации имеется около 50 компьютеров и Samba в роли PDC, есть задача “Установить на все компьютеры RAdmin”, на каждый компьютер уйдет около 15 минут, на все получиться по 12,5ч времени системного администратора и времени пользователя. Если предположить что сотрудники компании получают по 35кр – получится (35кр/168)*12,5*2 = 5кр. Теперь рассмотрим вариант с нормальной AD – стоит это все 21кр (win2k8std) + 45кр(50 CAL) = 66кр единовременных затрат, и наша задача займет ровно 3 минуты при запуске системы.

Таким образом если в организации с 50-ю пользователями раз в месяц возникает задача что-то установить или внести какие-либо изменения сразу на всех компьютерах, то использование AD полностью окупит себя за год.

До 50 человек – любой каприз, хоть голая Samba PDC, хоть Zentyal Office, хоть рабочая группа, так или иначе один сисадмин успеет вокруг всех обежать. Бывают ситуации когда сисадмин быстро бегает или спектр изменений в информационной структуре организации равен нулю, только в этих случаях количество хостов может достигнуть 100.

Использую Samba + LDAP + Gosa(админка) на FreeBSD, в офисе 100 чел.
Все разделено по правам. Все летает уже 2 года

На клиентских компьютерах Windows XP? Какой прикладной софт используется?

Всем доброго времени суток.
У меня есть к вам вопрос на обсуждение.
Исходные данные:
— Организация 120 человек;
— Домен на Windows 2003 Ent Server, 120 клиентских лицезий
— Файловый сервак с авторизацией в домене (samba), диск с поддержкой ACL;
— Клиенты на хрюше;
— Шары лежат в основном на samba, но есть некоторые проблемки с ACL (иногда сами слетают и выставляется параметр на файл “Read Only”);
Итак, как мне кажется, есть 2 ситуации решения небольшой проблемки, указанной выше, а также проблемки лицензирования. Домен на винде не учитываем. Рассматриваем только организацию файлового хранилища.
Ситуация 1 (стандартная):
Покупаем Windows Server 2003 (2008). К нему стандартно прилагается 5 клиентских лицензий. Стоимость лицензии около $1000, что не является для организации небольшими деньгами .
Покупаем 115 клиентских лицензий для пользователей (

60000 руб.), что уже существенно;
Настраиваем шары на винде. Или на самбе, но с авторизацией в домене. Но могут возникнуть выше описанные проблемки.
Клиенты работают и радуются
Ситуация 2 (в основном и хочу обсудить ее):
Покупаем Windows Server 2003 (2008). К нему стандартно прилагается 5 клиентских лицензий. Клиентские лицензии не покупаем либо 1 лицензию на устройство.
Устанавливаем Linux (FreeBSD). Монтируем шары с виндового сервера.
Настраиваем шары в самбе на примонтированную папку.
Пользователи работают
Вопрос вот в чем:
Как во втором случае происходит подсчет клиентских коннектов к виндовому серваку (мне кажеться, что только один – от линуксового сервака)?
И будет ли возможность НОРМАЛЬНОЙ работы с правами на ntfs виндового сервака?

Читайте также:  Canon pixma mp510 драйвер для windows 10

P.S.: возможно, что-то не так объяснил, так что задавайте вопросы – попробую растолковать.

Подсчет лицензий во втором случае будет вестись точно также как и в первом.

Если ты хочешь, что бы все компы были в домене Windows, то тебе так или иначе придется купить CALs на всех пользователей или все устройства, хотя бы для того чтобы они могли легально авторизироваться на контроллере домена.

Другой вариант – полностью отказаться от Windows Server и использовать Samba в качестве контроллера домена. Но переводить 120 пользователей с обычного домена на samba не так-то просто, и затраты как раз будут равносильны покупке CAL.

@Alsigned
Спасибо за разъяснения. Я так и думал, но надеялся на лазейку .

Но все-же?
Клиентская лицензия “на устройство” позволяет любому числу пользователей осуществлять доступ к серверному программному обеспечению с одного устройства
Во втором, описанном мною, случае коннект ведь идет с одного устройства: с samba сервера? Ведь он уже производит проверку на доступ к своей шаре и он же отправляет запрос на проверку доменного имени через свой krb тикет? Если я не прав, то обьясните, пожалуйста. Заранее все спасибо.

А про мультиплексоры я и раньше читал, но как-то это не очень есть гуд, так ка я могу дать комплексную шару (шара непосредственно samba сервера + примонтированная шара виндового сервера). Здесь у на буду конфликтовать 2 лицензии: Виндовая и GPL.

@Алексей
Когда доменный пользователь входит в систему на своем компьютере он так или иначе обращается к контроллеру домена, следовательно этому компьютеру уже нужен CAL. Что бы не покупать CAL нужно выводить пользователей и компьютеры из домена – это единственное решение, никакие варианты с мультиплексированием не помогут.

PS: Я обычно стараюсь предложить какое-нибудь изящное решение, но здесь если не планируется переход на СПО и из недостающих лицензий только один Windows Server и 120 шт CAL, то эффективнее купить лицухи.

Приветствую, коллега!
На самом деле, при auth methods = winbind, ставить пакет krb5-workstation не обязательно. Samba и без него через winbind корректно работает.

Здраствуйте, решил восползоватся данной статьёй ибо она самая одекватная но вот проблема в том что при получении билета от кнтролера пишит что время слишком разное вроде всё нормально написано вроде всё совпадает, почему так понять не могу…

У всех ПК в доменной сети не должно быть разницы во времени более 5 минут. Иначе билет тебе не выдастся. Как лечить? Я вылечил ntpd )))
Удачи!

Статья прекрасная и единственная толковая, спасибо огромное.
Одна только проблема: при присоединении к домену дает Fail to join domain: failed to find DC for domain

Вроде и hosts проверил, и krb5.conf – все верно. Тикеты получает, а в домен не хочет идти, не видит долбанный контроллер. Контроллер пингуется, даже по имени, а толку нет.

Ошибка скорее всего все-таки в конфигах krb5.conf и smb.conf, к примеру krb5.conf очень придирчив к большим и маленьким буквам. Также причиной может быть отсутствие соединение с DC или ошибка в DNS записях служб из _msdcs.

Без текста конфигов диагностики не получится.

Спасибо за настолько быстрый ответ) Перепроверил все конфиговские файлы и вроде бы все ок. Зато, по совету, полез в DNS на контроллере домена (не знаю что ожидал там увидеть) – и вручную создал ему узел A c именем и ip моего Samba server
И сразу все заработало. У меня вопросы, может глупые, но если есть время ответь пожалуйста:
1) Я зря вручную создал узел А, оно само должно было друг друга понять, или все верно?
2) Хоть убей в час разница времени между контроллером и самбой. Службы ntp работают, все прописано, но – час.
3) Как добавить нескольких пользователей в конфиг самбы, не создавая для них отдельной группы в AD: valid users = “@WBS\user1″, “@WBS\user2″ и т.д.
4) Все вроде вышло ок, но при попытке попасть на папки samba логин-пароль от админа домена, которого я прописал в конфиге самбы не проходит)) Куда копать?

Извини за кучу вопросов, заранее благодарен за ответ

1. A-запись должна обновляться сама, но этому могут мешать настройки зоны, либо samba может быть собрана без –with-dns-updates.
2. Видимо у тебя очень старый CentOS, который существовал еще до отмены перевода летнего и зимнего времени. Нужно правильно выставить часовой пояс.
3. Именно так только добавлять нужно в valid users, read users и write users.
4. Кроме разрешений в конфиге самбы, есть еще и разрешения на папку, если у админа нет прав на папку, то его туда не пустит.

Спасибо огромное, по твоим последним комментам все вопросы решил, кроме DNS но с ним разберусь. Остался тот самый последний, возможно офф топ вопрос – помимо разрешений самбы как раздать разрешения на папку так чтобы разрешения для различных доменных групп самбы работали? Вряд ли всем все? Сейчас действительно там все только руту разрешено.

Читайте также:  Sony vaio не видит wifi windows 10

Можно раздать права для виндовых групп и пользователей непостредсвенно на папки, с того момента как мы дописали winbind в файл /etc/nsswitch.conf виндовые пользователи и группы могут использоваться в системе наравне с локальными.

Добрый день! Пытаюсь подключить CentOS 5.6 к домену W2008R2. Пытаюсь стартануть Kerberos:
Код:
service krb5kdc start
Запускается Kerberos 5 KDC: krb5kdc: cannot initialize realm TEST.LOCAL – see log file for details
[ СБОЙ ]

Логи:
Код:
cat /var/log/krb5kdc.log
krb5kdc: No such file or directory – while initializing database for realm TEST.LOCAL

Настройки Kerberos:
Код:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = TEST.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
TEST.LOCAL = <
kdc = dc.test.local:88
admin_server = kerberos.example.com:749
default_domain = test.local
>

[domain_realm]
.test.local = TEST.LOCAL
test.local = TEST.LOCAL

[appdefaults]
pam = <
debug = false
ticket_lifetime = 36000
renew_lifetime = 36000
forwardable = true
krb4_convert = false
>

Не пойму в чем причина, подскажите пожалуйста.

krb5-kdc – это kerberos-сервер необходимый для аутентификации клиентов, он уже есть на контроллере домена Win2k8 и для подключения CentOS 5.6 к домену устанавливать его не надо. Необходимость в нем может возникнуть если ты захочешь развернуть либо вторичный kerberos-сервер в домене, либо отдельный.

Для простого подключения к домену достаточно получить тикет через kinit.

Спасибо за ответ, получается krb-kdc мне не нужен)) ошибку я победил созданием базы для krb-kdc утилитой krb5_util.

kinit сработал нормально, однако после команды net ads join -U Admin выдало ошибку. krb-kdc я отключил.

Host is not configured as a member server.
Invalid configuration. Exiting….
Failed to join domain: Invalid domain role

Как я понял сейчас CentOS не настроен как клиент? Куда смотреть?

Понимаешь ли в чем дело, net ads join обращается к smb.conf и работает согласно параметров заданных в нем. Что у тебя в /etc/samba/smb.conf?

cat /etc/samba/smb.conf
[global]

[global]
dos charset = cp866 # Кодировка для работы с DOS-клиентами
unix charset = utf-8 # Кодировка для преобразования текстовых
# имен файлов, пользователей и групп между
# сервером и клиентом
display charset = utf-8 # Должен быть таким же как unix charset
workgroup = TEST.LOCAL # Имя рабочей группы
realm = TEST.LOCAL # Имя домена
netbios name = Saturn # Имя сервера для NetBios
server string = SQL SERVER # Описание сервера
security = ADS # Указываем режим работы samba-сервера,
# как члена домена.
auth methods = winbind # Аутентификация через winbind
allow trusted domains = No # Запрещаем доступ к нашему серверу из
# других доменов и рабочих групп
password server = DC.galactica.local # Список контроллеров домена
time server = No # Не использовать samba как сервер времени
domain master = No # Не использовать samba как мастер-браузер
# для домена
dns proxy = Yes # Если имя не найдено в WINS, разрешаем его
# поиск на DNS-сервере
ldap ssl = no
idmap uid = 10000-20000 # Определяем диапазон uid для сопоставления
# с SID пользователей домена
idmap gid = 10000-20000 # Определяем диапазон gid для сопоставления
# с группами домена
winbind enum users = Yes # Разрешаем Winbind перечислять пользовате-
# лей домена
winbind enum groups = Yes # Разрешаем Winbind перечислять доменные
# группы
winbind use default domain = Yes # Не использовать доменное имя при аутенти-
# фикации доменных пользователей.
winbind refresh tickets = Yes # Разрешаем winbind обновлять тикеты
case sensitive = No # Отключаем чувствительность файлов к
# регистру

# для каждой расшаренной папки необходимо составить свою секцию описания
[distrib]
path = /home/distrib # Путь к папке на сервере, у поль-
# зователя должны быть права на эту
# папку, чтобы он мог получить дос-
# туп к ней через samba
valid users = “@MYDOMAIN\Пользователи домена” # Список пользователей или групп
# которые могут подключаться к
# папке, по умолчанию это любой
# пользователь

read list = “@MYDOMAIN\Пользователи домена” # Cписок пользователей или групп
# с разрешением только на чтение
write list = “@MYDOMAIN\Администраторы домена” # Список пользователей или групп
# с разрешением на чтение и запись

read only = No # Разрешаем запись
create mask = 0644
guest ok = Yes # Разрешаем подключение анонимных
# пользователей

В конфиге есть две ошибки:
1. workgroup = TEST.LOCAL должно быть TEST
2. password server = DC.galactica.local по идее должно быть dc.test.local
В остальном конфиг совершенно рабочий. Ошибка Host is not configured as a member server – появляется когда мы пытаемся заводить в домен машину с security = user или security = share.

Выдал тоже самое. DC называется mars.galactica.local. Тестовая linux машина Saturn. Проверил еще раз настройки, не могу понять, где ошибка.

[global]
dos charset = cp866
unix charset = utf-8

display charset = utf-8
workgroup = GALACTICA
realm = GALACTICA.LOCAL
netbios name = SATURN
server string = SQL SERVER
security = ADS

auth methods = winbind
allow trusted domains = No

password server = mars.galactica.local
time server = No
domain master = No

ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000

winbind enum users = Yes
winbind enum groups = Yes

winbind use default domain = Yes
winbind refresh tickets = Yes
case sensitive = No

[distrib]
path = /home/distrib
valid users = “@MYDOMAIN\Пользователи домена”

read list = “@MYDOMAIN\Пользователи домена”

write list = “@MYDOMAIN\Администраторы домена”

read only = No
create mask = 0644
guest ok = Yes

Оцените статью