Начиная знакомство с linux самое первое что мы пытаемся поставить это прокси-сервер squid и файл-сервер samba. Не смотря на обилие документации установка и настройка samba не редко вызывает множество проблем, как на старте, так и в процессе эксплуатации.
В этой статье я постараюсь описать процесс установки и настройки samba файл-сервера для функционирование в домене Windows.
1. Установка и настройка kerberos
Устанавливаем необходимы пакеты:
[root@srv-smb ~]# yum install krb5-workstation ntp
Для правильной работы kerberos необходима точная синхронизация времени с контроллером домена. Открываем файл /etc/ntp.conf, комментируем все теги server и добавляем наш контроллер домена:
server srv-dc.mydomain.local
Добавляем в автозапуск и запускаем сервис ntpd:
[root@smb-srv etc]# chkconfig ntpd on [root@smb-srv etc]# service ntpd start Starting ntpd: [ OK ]
Открываем файл /etc/hosts и проверяем соответствие IP-адресов и имен, не правильно заполненный /etc/hosts может стать причиной множества ошибок:
127.0.0.1 localhost
# IP сервера NetBios-имя DNS-имя
192.168.10.25 srv-smb srv-smb.mydomain.local
Приводим файл /etc/krb5.conf к следующему виду:
[libdefaults] default_realm = MYDOMAIN.LOCAL # имя нашего домена [realms] MYDOMAIN.LOCAL = { kdc = srv-dc.mydomain.local admin_server = srv-dc.mydomain.local default_domain = mydomain.local } [domain_realm] .mydomain.local = MYDOMAIN.LOCAL mydomain.local = MYDOMAIN.LOCAL
Получаем тикет от контроллера домена:
[root@srv-smb etc]# kinit administrator Password for administrator@MYDOMAIN.LOCAL:
Проверяем полученный тикет:
[root@srv-smb etc]# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@MYDOMAIN.LOCAL Valid starting Expires Service principal 02/05/11 11:50:58 02/05/11 21:51:00 krbtgt/MYDOMAIN.LOCAL@MYDOMAIN.LOCAL renew until 02/06/11 11:50:58 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached
2. Установка и настройка samba
Устанавливаем необходимые пакеты:
[root@srv-smb etc]# yum install samba3x samba3x-common samba3x-winbind
Приводим файл /etc/samba/smb.conf к следующему виду:
[global] dos charset = cp866 # Кодировка для работы с DOS-клиентами unix charset = utf-8 # Кодировка для преобразования текстовых # имен файлов, пользователей и групп между # сервером и клиентом display charset = utf-8 # Должен быть таким же как unix charset workgroup = MYDOMAIN # Имя рабочей группы realm = MYDOMAIN.LOCAL # Имя домена netbios name = SRV-SMB # Имя сервера для NetBios server string = Test File Server # Описание сервера security = ADS # Указываем режим работы samba-сервера, # как члена домена. auth methods = winbind # Аутентификация через winbind allow trusted domains = No # Запрещаем доступ к нашему серверу из # других доменов и рабочих групп password server = srv-dc.mydomain.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 # Отключаем чувствительность файлов к # регистру # для каждой расшаренной папки необходимо составить свою секцию описания [data] path = /mnt/data # Путь к папке на сервере, у поль- # зователя должны быть права на эту # папку, чтобы он мог получить дос- # туп к ней через samba valid users = "@MYDOMAIN\Пользователи домена" # Список пользователей или групп # которые могут подключаться к # папке, по умолчанию это любой # пользователь read list = "@MYDOMAIN\Пользователи домена" # Cписок пользователей или групп # с разрешением только на чтение write list = "@MYDOMAIN\Администраторы домена" # Список пользователей или групп # с разрешением на чтение и запись read only = No # Разрешаем запись create mask = 0644 guest ok = Yes # Разрешаем подключение анонимных # пользователей
Для проверки правильности конфигурационного файла у самбы есть замечательная утилита testparm:
[root@srv-smb samba]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[data]" Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER Press enter to see a dump of your service definitions
Вводим сервер в домен:
[root@srv-smb samba]# net ads join -U Administrator Enter Administrator's password: Using short domain name -- MYDOMAIN Joined 'SRV-SMB' to realm 'mydomain.local'
Включаем в автозапуск и запускаем сервисы smb и winbind:
[root@smb-srv ~]# chkconfig winbind on [root@smb-srv ~]# service winbind start Starting Winbind services: [ OK ] [root@smb-srv ~]# chkconfig smb on [root@smb-srv ~]# service smb start Starting SMB services: [ OK ]
Редактируем файлик /etc/nsswitch.conf и добавляем после следующих строчек слово winbind. Этим действием мы указываем в каком порядке и где системе искать имена-пароли пользователей и групп.
passwd: files winbind shadow: files winbind group: files winbind
Теперь сервер готов к работе.
3. Заключение
Я как-то пытался проанализировал экономический фактор установки бесплатной samba в качестве файл-сервера.
На сегодняшний день samba хоть и может использоваться в роли контроллера домена, но до полноценной Active Directory с групповыми политиками ей еще далеко, и использовать ее на 100 человек пользователей вряд ли кто будет. Отсюда получается, что один Windows-сервер у нас уже есть и необходимые CALs тоже.
Таким образом корпоративная лицензия Win2k8Std для файлового сервера обойдется приближенно в 700$. Будет ли дешевле установить, полноценно настроить и обслуживать samba с Shadow Copy, DFS и сетевой корзиной? По-моему нет.
22 Коммент. : “Настройка Samba для работы с Active Directory”
Трекбеки/Пинги
- Статьи за неделю не попавшие в ленту новостей (выпуск 147) - [...] «Настройка 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 компов, самба на центосе и длинковский интернет роутер. Тож все хомяки.
В обоих случаях никакой потребности в 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 года
Привет @daemon17
На клиентских компьютерах 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 виндового сервака?
P.S.: возможно, что-то не так объяснил, так что задавайте вопросы – попробую растолковать.
Привет @Алексей
Подсчет лицензий во втором случае будет вестись точно также как и в первом.
http://www.microsoft.com/rus/licensing/products/server/server_cal.aspx
Если ты хочешь, что бы все компы были в домене 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 корректно работает.
Здраствуйте, решил восползоватся данной статьёй ибо она самая одекватная но вот проблема в том что при получении билета от кнтролера пишит что время слишком разное вроде всё нормально написано вроде всё совпадает, почему так понять не могу…