Настройка Samba сервера с авторизацией через Active Directory в Debian
Есть в сети сервер, выполняющий функции файлопомойки, под управлением Linux. Помимо сервера в сети есть виндовые машины, которые должны хранить файлы на этом сервере. У каждого пользователя на сервере должна быть личная папка и одна общая для всех пользователей.
Все вроде бы просто — поставил Самбу, наделал пользователей идентичных виндовым и радуйся жизни. Так в принципе оно и было какое-то время, но захотелось перемен — решил немного автоматизировать и упростить администрирование своей файлопомойки, т.к. юзеры растут как грибы и «надо шото делать».
Исходя из этого, было решено построить такую схему:
развернуть АД и прикрутить к нему файлсервер Samba с аутентификацией через Active Directory. При этом, когда пользователь впервые подключается к серверу, автоматически создается личная папка, которая доступна как шара только конкретному пользователю.
С настройкой АД все понятно (скучно). А вот с настройкой Самбы пришлось поиграться. Как сделать это в Debian lenny я и расскажу в данной статье.
Рассчитываем что контроллер домена и ДНС у нас уже настроены.
Winbind — это демон, который позволяет Самбе узнавать пользователей AD и общаться с ними как с локальными.
Kerberos используется для интеграции Samba в Active DIrectory. Открываем его конфиг и подставляем свои параметры (выделил красным):
Проверяем правильность настроек:
domain_user — пользователь с правами входа в домен. Если все правильно — команда завершиться без вывода на экран. У меня все прошло без ошибок, но вот самые распространенные из них:
kinit: krb5_get_init_creds: Client (domain_user@DOMAIN.COM) unknown
Неправильный логин или пароль пользователя domain_user.
Стоит проверить правильность конфига и настройки ДНС.
Несоответствие времени на контроллере домена и на нашем сервере. Синхронизировать время с Active Directory можно командой:
Теперь настроим Самбу и Winbind. Мой работающий конфиг ниже, можно просто скопировать его подставив свои данные (выделил красным):
Внимание! Имя домена указывается в верхнем регистре.
Раздел [Homes] и расшаренные папки могут отличаться от указанных. В моем конфиге они настроены в соответствии с требованиями, описанными в начале статьи.
В моем случае smbusers — группа в Active Directory, пользователи которой будут иметь доступ к общей папке и к личным папкам. Что бы домашняя директория создавалась автоматически в /home/samba/имя_пользователя, когда пользователь впервые подключается к серверу Samba, помимо настроек в /etc/samba/smb.conf, нужно прописать также определенную запись в /etc/pam.d/samba:
umask=0077 — соответствует правам доступа 0700.
skel=/etc/samba/skel/ — путь к папке, содержимое которой будет скопировано в созданную директорию.
Далее открываем /etc/nsswitch.conf и редактируем указанные строки:
Вводим компьютер в домен:
domain_user — пользователь домена, у которого достаточно привилегий для присоединения компьютера к домену.
Проверим работу winbindd:
Эти команды должны вывести список пользователей и список групп соответственно.
Что бы проверить воспринимаются ли доменные пользователи как локальные, можно воспользоваться командой:
Должны получить что-то типа:
Теперь, при подключении к нашему серверу с винды под доменной учетной записью domain_user, мы должны видеть 2 расшаренные папки — «domain_user» и «Public». При этом папка domain_user будет создана в /home/samba если не существовала ранее.
Поделиться ссылкой:Настройка Samba сервера с авторизацией через Active Directory в Debian : 17 комментариев
не информативно как- то
вы не нашли ответ на свой вопрос в по этой теме? так задайте его в комментах, мб я смогу помочь. или вы просто тролите? :)
Вот именно с этой статьи начинаю читать этот блог. Плюс один подписчик :)
Статья лучшая из тех что нашёл. Спасибо Вопрос такой как поменять директорию расположения файлов пользователей, не общую шару.
Директория с каталогами пользователей задается опцией «template homedir = /home/samba/%U» (в конфиге выше). Если же имеется ввиду домашний каталог конкретного пользователя, то я в свое время использовал «mount» с опцией «bind», таким образом у меня самба-шары монтировались к личным фтп-директориям пользователей. Как-то так в общем….:) Более подробно не помню…давно это было…
Спасибо, самый путний мануал! Мозг выгрыз пока прикручивал Debian к AD. Нашел твой мануал — все сделал на раз-два.
з.ы. Ты специально допустил ошибки в конфиге? :) типа для тех людей кто не просто копирует конфиг, а все-таки хочет разобраться в нем.
Рад что статья оказалась полезной. В статье приведены примеры конфигов, в любом случае нужно подставлять свои переменные, бездумное копирование не сработает :)
Прошу прощения. Новичок. Не могли бы вы дать ман по настройки AD. Спасибо.
и реально сделать что бы была не одна общая папка, а несколько и подскажите пожалуйста как настроить доступ к общей папке определеному кругу пользователей (отделу)
Не могли бы вы дать ман по настройки AD
в ближайшее время как раз собирался написать пару статей по этому поводу, а если горит — извините, но в гугл :)
и реально сделать что бы была не одна общая папка, а несколько
подскажите пожалуйста как настроить доступ к общей папке определеному кругу пользователей (отделу)
создается в АД группа пользователей (в моем примере это smbusers) и в нее добавляются пользователи, которые должны иметь доступ к общей папке. если нужно несколько отделов со своей общей папкой — создаете несколько групп и каждой группе прописываете свою папку в конфиге по шаблону:
[Public] path = /home/samba/public comment = Public directory browseable = yes readonly = no writable = yes guest ok = No create mask = 0777 valid users = @»DOMAIN smbusers» read list = @»DOMAIN smbusers» write list = @»DOMAIN smbusers»
подставляя свои значения.
Не горит. буду ждать ман)
Доброе время суток. А не подскажете как подружить Squid + Squidguard+AD и хочу что бы шлюз раздавал ip по DHCP с привязью по МАС. И подскажите пожалуйста как я понимаю DNS в любом случае у нас на сервере с AD, а не на шлюзе?
насчет прокси — не подскажу, но видел такие связки, поэтому гуглите. Для DHCP — поднимите dhcpd на шлюзе, по поводу DNS — все верно.
Спасибо. буду пробовать. Про результаты могу отписаться если интересно.
В логах: smbd/service.c:805(make_connection_snum) create_connection_session_info failed: NT_STATUS_ACCESS_DENIED
Сетевые папки отображает, в каталоге /home/samba нет папок. Просит авторизацию при попытке пойти в любую из отображаемых папок.
Можете чего подсказать? OS Debain Wheezy
логах пишет smbd/service.c:805(make_connection_snum) create_connection_session_info failed: NT_STATUS_ACCESS_DENIED папка /home/samba пуста. на сервере оттображаются папки как положенно. При попытке зайти в любую из папок просит авторизоваться как Гость! Если есть какие-нибудь мыли, жду. ОС Debian Wheezy
Александр, к сожалению, не особо располагаю временем что бы помочь разобраться, посоветую только проверить права на папку /home/samba а так же посмотреть статью http://hutpu4.net/linux-open-source/oshibka-s-avtorizaciej-samba.html в которой я описывал проблему с авторизацией, после обновления. Не уверен, что это идентичные случаи, но т.к. решения этой проблемы я тогда не нашел, то могу предположить что данный мануал не совсем подходит для более новой версии Samba. Я думаю, работоспособность данной конфигурации для Debian Wheezy могут подтвердить, или опровергнуть другие камрады здесь в комментариях :)
Пост старый, но мне помог. Только нужно еще поставить libpam-krb5 libpam-winbind libnss-winbind