The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Slackware 10.2 Samba AD Win 2003 (linux slackware samba ldap domain kerberos)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: linux, slackware, samba, ldap, domain, kerberos,  (найти похожие документы)
From: mcleod095 <mcleod095@gmail.com.> Newsgroups: email Date: Mon, 21 Apr 2006 14:31:37 +0000 (UTC) Subject: Slackware 10.2 Samba AD Win 2003 Возникла у меня такая задача как организовать небольшую файловую помойку на Linux для пользователей Windows, которыми руководит AD. Перечитал кучу документации, но, делая, как сказано в документации у меня ничего не получалось. Вот поэтому и решил написать данное небольшое руководство. Сразу оговорюсь, что за последствия, повлекшие за собой какие-либо деструктивные действия, ответственности не несу. И еще на статью меня подтолкнуло то, что почти вся документация написана для отличных от мню любимого дистрибутива Linux Slackware. Начнем. Итак, первое, что нам надо сделать это разобраться, как же, все-таки, работает домен на Windows 2003. Честно говоря, я и сам до сих пор в этом деле не разобрался, но могу сказать одно, что почти вся его работа с шарами происходит по протоколу Kerberos 5. Когда пользователь входит в систему он проходит несколько этапов проверки на правильность логина и пароля. И на одном из этих этапов сервером выдается пользователю так называемый билет Kerberos, который в дальнейшем и используется для работы. Если Windows использует Kerberos, то и Linux тоже надо научить общаться по этому протоколу. Но не стоит забывать, что Windows также работает и с протоколом LDAP. Ну, ничего научим. Начнем собирать необходимые программы для обучения Linux. Так как в Slackware 10.2 используется пакет Samba, то может показаться, что он нам и не понадобится, но на самом деле этот пакет нам придется удалить из системы т.к. он собран без поддержки всех нам так необходимых вещей. Удалить его можно с помощью (как я это сделал) утилиты pkgtool. Утилита довольно понятная и я думаю, сами с ней разберетесь. Далее нам понадобятся исходные коды: heimdal-0.7.tar.gz openldap-2.3.20.tgz samba-3.0.21c.tar.gz На момент моих долгих мучений с настройкой это были свежие версии. Сначала надо собрать heimdal-0.7.tar.gz, это реализация протокола Kerberos 5. Скачиваем из интернета, разархивируем и собираем с помощью ./configure make и make install. По умолчанию все собирается в папку отличную от /usr, меня лично это не устраивает т.к. потом при конфигурировании samba придется все ручками все указывать и, поэтому я собирал так. ./configure prefix=/usr make make install DESTDIR=/test/krb5 Добавлено 10.05.2006 При сборке данным способом на Slackware 10.2 нужно будет установить еще дополнительный пакет, Какой я вроде писал ниже. Для того чтобы не устанавливать его можно heimdal собрать так ./configure --prefix=/usr --disable-berkeley-db make make install DESTDIR=/test/krb5 Последняя команда копирует все файлы в каталог /test/krb5 (перед выполнением этой команды сначала надо создать данную директорию). Это делается для того, что бы потом можно было создать пакет для Slackware, т.к. все-таки управлять пакетами проще, чем потом удалять файлы в системе вручную. Если все прошло успешно, то переходим в каталог /test/krb5 и с помощью команды makepkg krb5.tgz собираем пакет и устанавливаем installpkg krb5.tgz. То же самое проделываем и с openldap-2.3.20.tgz, но при сборке в Slackware 10.2 просто так не соберется т.к. требуются еще несколько пакетов, если собираете в Slackware current, то должно собраться без вопросов, во всяком случае, у меня на current все собралось на ура. ./configure make depend make make install DESTDIR=/usr/ldap cd /usr/ldap makepkg ldap.tgz installpkg ldap.tgz Для Slackware 10.2 еще понадобится пакет db4-4.4.20-i486-1.tgz, он нужен для Kerberos (если собирать первым способом) и также для Ldap, можно ldap собрать и на Slackware 10.2, без требования этого пакета сделав ./configure -enable-bdb=no -enable-hdb=no Я не пробовал на Salckware 10.2 как собирается без этих опций, поэтому не могу сказать какие пакеты могут потребоваться еще. Вот теперь можно переходить к самой главной программе - samba. Samba надо собирать с поддержкой ldap kerberos AD и winbind. Разархивируем исходники и переходим в директорию, куда их разархивировали в поддиректорию source. Первое что надо сделать это посмотреть помощь по сборке с помощью ./configure -help будет выведен большой список с параметрами. Нам нужно только несколько из них. Я не буду описывать все, просто приведу команду с помощью, которой я сконфигурировал. ./configure -prefix=/usr --with-configdir=/etc/samba --with-winbind \ --with-ads --with-krb5 --with-smbmount -with-ldap make make install DESTDIR=/test/samba cd /test/samba makepkg samba.tgz (не забудьте удалить старую samba перед установкой) installpkg samba.tgz Для тех кто посчитает что пакет ldap не нужен для работы samba в режиме файлового сервера для пользователей AD, то хочу сразу предупредить, если не поставить пакет ldap, то при конфигурировании samba с параметром --with-ads будет выдаваться ошибка что нет ldap модулей в системе. Поэтому сборка ldap необходима. Теперь надо сконфигурировать все. Переходим в каталог /etc/rc.d и в файле rc.samba добавляем такие строки. samba_start() { if [ -x /usr/sbin/smbd -a -x /usr/sbin/nmbd -a -r /etc/samba/smb.conf -a -x /usr/sbin/winbindd ]; then echo "Starting Samba: /usr/sbin/smbd -D" /usr/sbin/smbd -D echo " /usr/sbin/nmbd -D" /usr/sbin/nmbd -D echo " /usr/sbin/winbind" /usr/sbin/winbindd fi } samba_stop() { killall smbd nmbd winbindd } Для того чтобы Samba стартовала при запуске системы файл /etc/rc.d/rc.samba должен быть исполняемым. Далее настраиваем Kerberos. Надо скопировать файл krb5.conf из папки, куда Вы разархивировали архив с исходниками в папку /etc и отредактировать его. Вот какой он у меня. [libdefaults] default_realm = LOCAL.NET [realms] LOCAL.NET = { kdc = SERV.LOCAL.NET } [domain_realm] .local.net = LOCAL.NET LOCAL.NET - это имя домена. SERV.LOCAL.NET - это имя компьютера под управлением Windows 2003, который является Primary Domain Controller. Редактируем файл /etc/nsswitch.conf. passwd: files winbind shadow: files winbind group: files winbind #passwd: compat #эти строчки должны быть #group: compat #обязательно закомментированы, иначе не будет работать. hosts: files dns networks: files services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files bootparams: files automount: files aliases: files Теперь надо отредактировать самый главный файл для нашей задачи, это /etc/samba/smb.conf. [global] auth methods = winbind #определяем метод аутентификации через winbind netbios name = McLeodLinux #netbios имя компьютера workgroup = LOCAL #рабочая группа (имя домена без суффикса .NET) realm = LOCAL.NET #имя домена password server = serv.local.net #имя компьютера PDC encrypt passwords = yes #при работе с AD шифровать пароли надо обязательно server string = File Server #описание нашего LINUX сервера security = ADS #говорим что мы в AD allow trusted domains = No #разрешить доверительные домены. socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 os level = 0 preferred master = No local master = No domain master = No dns proxy = No ldap ssl = no #отключаем ssl idmap uid = 10000-20000 #интервал uid для пользователей idmap gid = 10000-20000 #интервал gid для групп hosts allow = 172.16., 127. strict locking = No time server = Yes winbind use default domain = true #использовать домен по умолчанию log file = /var/log/samba/connect/samba.%m max log size = 50 log level = 1 unix charset = KOI8-R dos charset = cp866 [public] comment = Public path = /mnt/samba/public public = yes writable = yes printable = no create mask = 0666 valid users = @"LOCAL\Domain Admins" Если в описании шары в строке valid users поставить "LOCAL\Administrator", то вход будет разрешен только администратору. Знак @ обозначает группу. Тут вроде бы и все, но есть еще одна небольшая вещь, которую надо сделать, а именно, перейти в каталог, где лежат у Вас исходники Samba, в подкаталог source/nsswitch и скопировать файл libnss_winbind.so в каталог /lib. Далее надо сделать символические ссылки на этот файл. ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2 ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1 Ну, вроде все у нас готово для того чтобы ввести наш Linux в домен Windows. Сначала надо синхронизировать время на Linux с PDC Windows. net time set можно для большей уверенности сделать так net time set -S Name_Windows_PDC Далее получим билет от нашего PDC. kinit Administrator@LOCAL.NET Можно просмотреть каков результат командой. klist Если все нормально подсоединяемся к домену net ads join -U Administrator@LOCAL.NET Все должно пройти нормально, если нет, то роем Гугл. При удаче перезапускаем Samba /etc/rc.d/rc.samba restart и начинаем давать закрывать доступ на шары. Я не стал при расписывать процесс проверки работы всех служб, потому что в интернете очень много документации по этому вопросу, Я только описал те действия, которые надо сделать обязательно, потому как сам настраивал не одну неделю и всю информацию собирал по кусочкам из разных источников, включая даже эксперименты с другими дистрибутивами и поиск отличий. Если у кого ни будь работает команда smbmount //server/share /mountpoint -o krb с 2003 сервером в AD отпишите, как заставили на mcleod095@gmail.com знаю, что не работает т.к. даже сами разработчики об этом говорят, но может быть, у кого ни будь это дело проходит.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, psj, 09:38, 21/04/2006 [ответить] [смотреть все]
  • +/
    При таком подходе у меня есть только одна проблема: логоны и пароли на русском языке. Если логон имя и пароль на английском - всё ОЧЕНЬ хорошо работает, если на русском - вход в домен не проходит :( (Правда я все это делал на FreeBSD 5.x и 6.x). Кто нибудь пробовал сделать тоже самое, НО с русскими логонами?
     
  • 1.2, Voron, 10:11, 21/04/2006 [ответить] [смотреть все]
  • +/
    Керберос ставить совсем необязательно. У меня было даже наоборот, с ним не хотело работать. В итоге убил krb5.conf и все заработало.
    И самбу достаточно было собрать с поддержкой ADS.
     
     
  • 2.7, psj, 11:02, 21/04/2006 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    Значит у тебя домен был режиме совместимости с NT4, а там нет кербероса Если ст... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, Voron, 15:28, 21/04/2006 [^] [ответить] [смотреть все]  
  • +/
    Как-раз 2003-й и стоит И не надо говорить, что работать не будет Когда работае... весь текст скрыт [показать]
     
     
  • 4.16, sapran, 15:42, 21/04/2006 [^] [ответить] [смотреть все]  
  • +/
    в домене АД керберос нужен может Самба как-то по-своему его имплементирует, я н... весь текст скрыт [показать]
     
     
  • 5.23, Voron, 19:13, 21/04/2006 [^] [ответить] [смотреть все]  
  • +/
    Я не говорю, что не нужен Я этот вопрос насчет натравливания другого по на АД н... весь текст скрыт [показать]
     
  • 2.32, squirL, 15:12, 27/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    плакал а спор какой развернулся, нужен или не нужен Kerberos нужен а вот kr... весь текст скрыт [показать] [показать ветку]
     
  • 1.3, Аноним, 10:17, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Насколько знаю, с русскими логинами работать гарантировано не будет.
     
     
  • 2.4, psj, 10:29, 21/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    по моему все зависит от кривизны рук У меня кривоватые - поэтому и не получилос... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.15, sapran, 15:40, 21/04/2006 [^] [ответить] [смотреть все]  
  • +/
    не слыхал такого и у самого никогда не выходило.
     
     
  • 4.18, psj, 16:03, 21/04/2006 [^] [ответить] [смотреть все]  
  • +/
    А я слышал, но где не помню Вроде как проблема в кодировке, а как ее исправить ... весь текст скрыт [показать]
     
  • 1.5, ingoa, 10:35, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Samba можно без LDAP-а собирать
     
     
  • 2.6, psj, 10:59, 21/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    по-моему нельзя LDAP должен быть, т к Win AD есть форк от LDAP-a, то Samba дол... весь текст скрыт [показать] [показать ветку]
     
  • 1.8, peterwork, 11:09, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Уже ж были подобные статьи.
    Про win2003
    http://linuxrsp.ru/artic/samba_win2003_auth.html
    Про w2k
    http://volgograd.lug.ru/wiki/GrableVodstvo/articles/SquidNtlm
     
  • 1.9, Vaso Petrovich, 11:28, 21/04/2006 [ответить] [смотреть все]  
  • +/
    как глупо, все руками собирать, для одного сервера еще можно попыхтеть, а когда их более 20, особено с обновлениями будет весело...
     
     
  • 2.17, sapran, 15:44, 21/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    не путайте продакшн с тренеровками как наглядный пример заставляющий пытлдивы... весь текст скрыт [показать] [показать ветку]
     
  • 1.10, Deepwalker, 12:01, 21/04/2006 [ответить] [смотреть все]  
  • +/
    1. ldap для samba нужен только для pdc или что то в этом роде.
    2. В слаке самба АД не поддерживает по умолчанию, так что пересобирать приходится.
    3. Cобрать надо только на ОДНОМ серваке, а на остальные просто установить пакет полученный с помощью checkinstall.
     
  • 1.11, McLeod095, 12:06, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Да много написано про настройку, но дистры то там не Slackware, и там уже все это дело как Samba + krb + ldap + ad уже стоит, или можно из rpm поставить, а слаке самба не собрана с этими вещами. А я писал именно под слаку т.к. там нет графических утилит по умолчанию и т.п. Да и вообще если надо что-то настроить, то надо сначала разобраться как это работает. Я ковырял и узнал что-то новое, поэтому захотел поделиться.
    По поводу обновлений, скачай свежую версию, скомпиль на отдном серваке, далее makepkg *.tgz и upgradepkg *.tgz.
     
  • 1.12, Arnis, 13:03, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Отличная работа, mcleod095! Спасибо! И, хотя моя основная ОС - GentooLinux, я почерпнул много интересного.
     
  • 1.13, Аноним., 13:11, 21/04/2006 [ответить] [смотреть все]  
  • +/
    ставить на слаку pkgsrc и не морочиться
     
  • 1.19, ayan, 16:31, 21/04/2006 [ответить] [смотреть все]  
  • +/
    У меня отлично работает без керберес и Squid  + AD
     
  • 1.20, mit_yau, 17:30, 21/04/2006 [ответить] [смотреть все]  
  • +/
    И весь этот геморрой - только чтобы поднять файлопомойку? А на каком железе, если не секрет?
     
  • 1.21, McLeod095, 17:41, 21/04/2006 [ответить] [смотреть все]  
  • +/
    железо было тестовое такое
    p4 3.2 256RAM 160GB
    но это пока на тестировние было. потом может быть переведем на нормальный сервак.
    вообще задача состоит в том чтобы попробовать перенести рабочие станции с windows на linux.
    т.к. полный переход сразу невозможен, то приходится заморачиваться.
    Если кто-то делал аторизацию линух пользователей в вин домене не через PAM, то пишите, буду признателен.
     
     
  • 2.22, mit_yau, 18:14, 21/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А-а, а то я уж удивился, чего это в домене на W2K3 файлопомойку на иксах делают,... весь текст скрыт [показать] [показать ветку]
     
  • 1.24, Аноним, 22:30, 21/04/2006 [ответить] [смотреть все]  
  • +/
    Нда А кто-ибудь читал доки, которые идут вместе с Samba Там написано как и ... весь текст скрыт [показать]
     
     
  • 2.25, Витя, 11:42, 22/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А че, стремимся к международному языку - английскому, скоро все по нему потихонь... весь текст скрыт [показать] [показать ветку]
     
  • 1.26, PJ, 13:46, 22/04/2006 [ответить] [смотреть все]  
  • +/
    А проблем со сроком жизни билета не было? Мне так и не удалось заставить выдавать пожизненный ticket. И renew тоже не проходило. А каждый день ручками обновлять его как-то неудобно. Пришлось сцепить Samba с Win2K по rpc. Так и работает уже полгода...
     
     
  • 2.27, FK, 16:57, 22/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    гы, кстати по RPC и можно сцепить без пересборки....
    на Фре, кстати, есть обалденная команда mount_smbfs - почти аналог smbmount

    Насчет нужен или не нужен Krb и LDAP.

    Если нужна проверка подлинности машины или юзверя в домене, то Krb нужен, т.к. без него тикет не получишь (пример - использование *NIX сервака как файлопомойки). Кстати, по крайней мере у Фри 5 и выше тикеты нормально обновляются; а срок жизни тикета прекрасно выставляется через GPO (тут уж простор фантазии; самые злобные буратины ставят день и меньше... почему бы в таком случае IPSEC не привернуть?... - ну эт уже другая песня).

    Если нужно каким-либо образом обращаться к списку юзеров домена, то тогда LDAP нужен (пример - NTLM в сквиде).

     
  • 1.29, xray, 18:19, 25/04/2006 [ответить] [смотреть все]  
  • +/
    ребята, уже ктото писал, но повторюсь:
    без Kerberos работает если домен находится в режиме NT native, по умолчанию он вроде всегда так и ставится на 2000 и 2003
    Kerberos обязателен если режим домена windows 2000 native или windows 2003 native

    ps. с русскими логинами у меня тоже не заработала авторизация из шела, в squid'е работает всё ок

     
     
  • 2.30, xray, 18:31, 25/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    точнее по умолчанию ставится Windows 2000 mixed, это и есть совместимость с NT,
    где Kerberos не требуется
     
  • 2.31, psj, 08:18, 26/04/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >ребята, уже ктото писал, но повторюсь:
    >без Kerberos работает если домен находится в режиме NT native, по умолчанию
    >он вроде всегда так и ставится на 2000 и 2003
    >Kerberos обязателен если режим домена windows 2000 native или windows 2003 native

    Ну наговорил, ну наговорил :) , домен Win 2000-2003 в native режиме БЕЗ Kerberos работать не будет. Нужен клиент Kerberos.

    >
    >ps. с русскими логинами у меня тоже не заработала авторизация из шела,
    >в squid'е работает всё ок

    А вот с этого места пожалуйста поподробней. Меня авторизация в шелл через Win-домен не интересует в принципе. А как Вы добились авторизации с русскими логонами в squid-е? Видимо нечто подобное можно сделать и в Samba-сервере.

     
     
  • 3.33, vlad, 12:40, 05/05/2006 [^] [ответить] [смотреть все]  
  • +/
    >А вот с этого места пожалуйста поподробней. Меня авторизация в шелл через Win-домен не >интересует в принципе. А как Вы добились авторизации с русскими логонами в squid-е? >Видимо нечто подобное можно сделать и в Samba-сервере.

    Может нужно преобразовать логины в utf-8 перед засовыванием их в программу авторизации?

     
  • 2.34, vovan, 13:10, 05/05/2006 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    >>ps. с русскими логинами у меня тоже не заработала авторизация из шела, в squid'е >>работает всё ок

    А можно по-подробнее на эту тему?

     
  • 1.35, McLeod095, 16:02, 10/05/2006 [ответить] [смотреть все]  
  • +/
    попробовал собрать samba без установки пакета ldap на что мне выдало ошибку что для поддрежки ADS нужен ldap. так что для тех кто говорит что и без него можно, то говорите только проверенные на себе данные.
     
  • 1.36, Basmach, 23:10, 12/05/2006 [ответить] [смотреть все]  
  • +/
    вроде как ldap клиент есть на www.slackware.com в разделе packages так что можно там брать. А в остальном очень хороший ман, для тех кто это делает в первый раз. Респект автору. Сам не одну неделю на это же потратил пока все, что надо не нашел...
     
  • 1.37, artyom, 11:43, 23/05/2006 [ответить] [смотреть все]  
  • +/
    Решил написать глюки с которыми я столкнулся при сборке самбы 1 в самбе 3 14a... весь текст скрыт [показать]
     
  • 1.38, hydro, 14:54, 31/10/2007 [ответить] [смотреть все]  
  • +/
    Проблема: юзеров видит не LOCAL\User а user
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:





      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor