Samba and windows 2003

Как подружить Samba и контроллер домена Windows 2003

ВНИМАНИЕ: команды предваряемые символом ‘ # ‘ должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su — для повышения уровня привелегий. Символы ‘ $ ‘ и ‘ # ‘ в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.

Содержание

Стандартный метод [ править ]

  1. Установить samba-winbind, samba, krb5-workstation, authconfig-gtk, sssd, sssd-client
  2. запустить system-config-authentication
  3. ввести настройки и выполнить вход:

Графическая интеграция [ править ]

Ручная интеграция [ править ]

Требования [ править ]

Samba собранная с опциями: —with-ldap —with-ads —with-krb5 —with-pam —with-winbind

или просто установите из rpm.

192.168.0.1 – server.domain.com – это сервер Windows 2003

192.168.0.10 – client.domain.com – клиентская машина Linux с Samba

Настройка разрешения имен [ править ]

Надеюсь что на вашем контроллере домена поднят DNS (Domain Names Server) с зонами прямого и обратного просмотра. Если поднят, то в файле /etc/resolv.conf прописываем следующее:

Если же в сети нет DNS (что вряд ли) сервера — можно воспользоваться файлами hosts на обеих машинах.

На машине в файл /etc/hosts добавляем:

На контроллере домена в файле %Systemroot%\

System32\drivers\etc\hosts пишем следующее:

%Systemroot% — папка WINNT или WINDOWS(на системном диске)

Настройка Kerberos [ править ]

Часть этого документа использует DOMAIN.COM прописными буквами. Удостоверьтесь, что в вашем конфиге krb5.conf правильный регистр!

Приводим файл krb5.conf в соответствие с настройками вашей сети(не забывайте про регистр!).

После этого выполняем команду(необходимо знать пароль администратора КД):

Возможные проблемы на этом этапе:

Надо проверить правильность ввода логина\пароль админа.

Проверьте правильность настроек DNS и конфига krb5.conf

Рассинхронизация времени на КД и клиенте – выполните команду net time set(в linux) Желательно выполнять данную команду раз в неделю(можно через cron).

Настройка Samba [ править ]

Пожалуй, самая легкая часть настройки.

Выкладываю уже готовый к эксплуатации конфиг (с комментариями к тому, на что надо обратить внимание):

Входим в Active Directory [ править ]

Убедившись, что на контроллере домена нет машин с именем, которое мы использовали в конфиге. Выполняем команду:

Настройка Winbind [ править ]

1. Откроем файл /etc/nsswitch.conf для редактирования и найдем следующие строчки:

2. Заменим их на:

3. Перезапустим сервис winbind:

4. Проверим работу:

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

5. Проверка пользователей и групп:

должно вывести пользователей домена и группы домена.

6. Проверяем аутентификацию в домене:

где user — пользователь домена, 123 — пароль. Если ответ:

значит аутентификация в домене работает.

7. Проверяем, чтобы наш Linux видел пользователей домена:

должно вывести id пользователя домена и к каким группам он относится.

Настройка PAM [ править ]

Перед выполнением нижеперечисленных действий рекомендуется сделать бэкап всех редактируемых файлов.

Файл /etc/pam.d/samba не требует редактирования, т.к. он уже содержит необходимое. Редактируем /etc/pam.d/login

Теперь на машину с linux можно заходить используя доменные аккаунты(DOMAIN\User).

Поддержка SSH [ править ]

Для того, чтобы можно было использовать доменные аккаунты для входа через ssh в файле /etc/pam.d/sshd делаем изменения аналогично /etc/pam.d/login.

Заключение [ править ]

Ну вот и все. Теперь можно запустить Samba:

Читайте также:  Rust ���������� ��� linux

настраиваем Samba для работы с Active Directory и Win 2003

Возникла у меня задача организовать небольшую файловую помойку на Linux для пользователей Windows, которыми руководит AD.

Перечитал кучу документации, но, делая, как сказано в документации, я никаких результатов не добился. Вот поэтому и решил написать данное небольшое руководство. Сразу оговорюсь, что за последствия, повлекшие за собой какие-либо деструктивные действия, ответственности не несу. Итак, первое, что нам надо сделать — это выяснить, как же, все-таки, работает домен на 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

При сборке данным способом на Slackware 10.2 нужно будет установить еще дополнительный пакет — db4-4.4.20-i486-1.tgz. Для того, чтобы не устанавливать его, можно heimdal собрать так:

./configure --prefix=/usr --disable-berkeley-db
make
make install DESTDIR=/test/krb5

Последняя команда копирует все файлы в каталог /test/krb5 (перед выполнением этой команды сначала надо создать данную директорию). Это делается для того, что бы потом можно было создать пакет для Slackware, так как все-таки управлять пакетами проще, чем потом удалять файлы в системе вручную. Если все прошло успешно, то переходим в каталог /test/krb5 и с помощью команды

собираем пакет и устанавливаем:

То же самое проделываем и с openldap-2.3.20.tgz. Замечу, что в Slackware 10.2 просто так он не собирался, так как требуется еще несколько пакетов. Если собираете в Slackware current, то должно собраться без вопросов, во всяком случае, у меня на current все собралось на ура. Для Slackware 10.2 еще понадобится пакет db4-4.4.20-i486-1.tgz, он нужен как для Kerberos (если собирать первым способом), так и для Ldap. Но можно собрать и без этого пакета:

./configure -enable-bdb=no -enable-hdb=no

Вот теперь можно переходить к самой главной программе — samba.

Samba надо собирать с поддержкой ldap, kerberos, AD и winbind.

Читайте также:  Angular cli установка windows

Разархивируем исходники и перейдем в директорию, куда их разархивировали, в поддиректорию source. Первое, что надо сделать – это посмотреть помощь по сборке. Команда

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

./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
>

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

Не забудьте, что стартап-скрипт должен быть исполняемым 😉

Далее настраиваем Kerberos. Надо скопировать файл krb5.conf из папки, куда вы разархивировали исходники, в папку /etc и отредактировать его. Вот какой он у меня:

[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

Теперь надо отредактировать самый главный файл для нашей задачи. Это /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. Далее надо сделать символические ссылки на этот файл.

Читайте также:  Dseo для windows 10

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 -S Name_Windows_PDC

Далее получим билет от нашего PDC:

Можно просмотреть, каков результат, командой

Если все нормально, подсоединяемся к домену:

net ads join -U Administrator@LOCAL.NET

Все должно пройти нормально. Если нет, то роем Google. При удаче перезапускаем Samba

и начинаем давать (или закрывать 🙂 доступ на шары.

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

Если у кого-нибудь работает команда

smbmount //server/share /mountpoint -o krb

с 2003 сервером в AD, отпишите, как заставили ее работать на mcleod095@gmail.com.

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

Сетевые решения. Статья была опубликована в номере 09 за 2006 год в рубрике sysadmin

Samba and windows 2003

Вопрос

I am working on moving our exchange 5.5 and samba domain environment to Win2k8R2 and Exchange 2010.

I've hit lots of obstacles as expected as we have around 200 users to mange and keep active whilst doing the migration, and have now decided that the best way forward now is to do a temporary migration to windows 2003 first.

I have in the past managed to setup fully working trusts between samba and windows 2003 but I have a few difficulties this time round, even though I'm almost there, I just need some help to get me over this particular hurdle.

Here's the situation:

Domain A is a samba domain and currently all the desktops, servers, users etc are in this domain. Domain B is an active directory domain based on windows 2003R2.

As far as the trust setup goes, two way trusts have been setup and are supposed to be working, but seems to work faultlessly one way, but partially the other way, let me expand on this.

If I log onto an XP workstation which is in domainB (AD) I can see both domains in the drop down list of domains at logon and I can access resources in both domains, no problems there

When I log onto an XP workstaion which is in domainA (Samba), I can only see resources in that domain, and the drop down list of domains at the logon screen only shows one domain.

Now this is the strange bit, if I log onto a windows 2003 server in domainA (Samba) I can see resources in both domains and I can see bothe domain names in the drop down list of domains.

Wins and DNS seem to be working fine, so I am at a loss to see what is going on.

Does anybody have any troubleshooting tips that I can go through or other gems of wisdom that might fix this problem with the XP machines?

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