Файловый сервер на linux в домене windows

В данной статье будет рассмотрен вариант развёртывания файлового сервера Samba на базе операционной системы UBUNTU и организация его взаимодействия с доменов Windows.

Для примера использован следующие исходные данные:

дистрибутив: UBUNTU 16.04.4
имя сервера Linux: 2UBUNTU-16
домен Windows: TESTDOMAIN.LOCAL
контроллеры домена: 2SRV1.TESTDOMAIN.LOCAL, 2SRV2.TESTDOMAIN.LOCAL
администратор контроллера домена: adm

Подготовка

После установки дистрибутива выполняем обновление информации о пакетах и сами пакеты:

sudo apt-get update
sudo apt-get upgrade

Для удобства работы с сервером можно дополнительно установить Webmin (систему управления сервером LINUX через web-интерфейс).

Если есть необходимость, то меняем имя сервера:

hostnamectl set-hostname 2UBUNTU-16

Добавляем доменное имя сервера в файл hosts

sudo nano /etc/hosts

127.0.0.1 localhost
127.0.1.1 2ubuntu-16 2ubuntu-16.testdomain.local

После этого перезагружаем сервер:

sudo reboot

Установка Samba

Помимо установки Samba, так же устанавливаем пакеты Kerberos и Winbind (для возможности подключения и взаимодействия с доменом на Windows):

sudo apt install krb5-user winbind samba libnss-winbind libpam-winbind 

При установке Kerberos будет запрошена область по умолчанию — нужно указать адрес домена (в нашем случае TESTDOMAIN.LOCAL)

Kerberos5 install

Проверяем доступность контроллера домена:

ping -c 5 TESTDOMAIN.LOCAL

Для успешной работы с доменом нужно установить синхронизацию времени с контроллером домена.

Устанавливаем пакет:

sudo apt install ntp

Настраиваем файл конфигурации службы ntp 

sudo nano /etc/ntp.conf

Нужно закомментировать все текущие указанные серверы проверки время и добавить свой домен ( pool TESTDOMAIN.LOCAL)

Перезапускаем службу времени и проверяем статус синхронизации:

sudo systemctl restart ntp
ntpq -p

Запрашиваем тикет у Kerberos у контроллера домена:

kinit Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

Если не отобразилась информация об ошибке, то запрос прошёл верно и можно проверить результат:

klist

klist

Настройка Samba

Сохраним резервную копию файла конфигурации:

sudo cp /etc/samba/smb.conf /etc/samba/smb.default.conf

Далее редактируем файл конфигурации:

sudo nano /etc/samba/smb.conf

Пример заполнения раздела [global]

[global]
security = ADS
workgroup = TESTDOMAIN
realm = TESTDOMAIN.LOCAL
encrypt passwords = yes
# Default idmap config for local BUILTIN accounts and groups
idmap config * : backend = tdb
idmap config * : range = 3000-7999
# idmap config for the TESTDOMAIN domain
idmap config TESTDOMAIN : backend = rid
idmap config TESTDOMAIN : range = 10000-999999
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes

После сохранения изменений в файле smb.conf выполняем проверку:

testparm

testparm

Взаимодействие Samba с доменом Windows

Если ошибок не обнаружено, то подключаем сервер к домену:

sudo net ads join -U Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

ads join

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

Перезагружаем сервис Winbind:

service winbind restart

Проверяем связь с контроллером домена, а затем список пользователей и групп домена Windows:

wbinfo --ping-dc
wbinfo -u
wbinfo -g

ping вс

Чтобы UBUNTU могла использовать не только локальные группы и пользователей, но и доменные данные, нужно отредактировать настройки диспетчера службы имен NSS (Name Services Switch)

sudo nano /etc/nsswitch.conf

Необходимо дописать следующие значения:

passwd: compat winbind
group: compat winbind

После этого можно проверить возможность просмотра пользователей и групп:

getent passwd adm
getent group "пользователи домена"

getent

Добавляем папку общего ресурса:

sudo mkdir -p /srv/samba/public

Назначаем имя владельца и группу для созданной папки:

sudo chown "adm":"пользователи домена" /srv/samba/public

Редактируем файл конфигурации Samba, чтобы добавить поддержку Windows ACLs и сетевую папку public

sudo nano /etc/samba/smb.conf

[global]
# Windows ACLs Support
vfs objects = acl_xattr
map acl inherit = yes
store dos attributes = yes

[Public]
path = /srv/samba/public/
read only = no

Перезапустим службу Samba (чтобы применить изменения):

service smbd restart && service nmbd restart

Для удобства удалённой настройки разрешений сетевых ресурсов добавим администраторам домена привилегию SeDiskOperatorPrivilege:

net rpc rights grant "TESTDOMAIN\администраторы домена" SeDiskOperatorPrivilege -U "TESTDOMAIN\adm"

Проверяем подключение привилегий:

net rpc rights list privileges SeDiskOperatorPrivilege -U "TESTDOMAIN\adm"

rpc rights list

Теперь управлять разрешениями для общих ресурсов можно удалённо с сервера Windows. Для этого запускаем оснастку «Управление компьютером» от имени администратора домена, выбираем «Подключиться к другому компьютеру…» и выбираем имя сервера Linux ( 2UBUNTU-16.TESTDOMAIN.LOCAL)

В разделе «Служебные программы» — «Общие папки» — «Общие ресурсы» будут отображаться сетевые ресурсы, доступные на сервере Linux.

Дополнительно:

Дополнительно можно подключать «корзину» для отдельных ресурсов (чтобы сохранять удалённые файлы и папки).

Проверяем наличие соответствующего модуля:

dpkg -l |grep samba-vfs-modules

Устанавливаем, если он отсутствует:

apt install samba-vfs-modules

Добавляем поддержку корзины для общего ресурса Public

sudo nano /etc/samba/smb.conf

[Public]
path = /srv/samba/public/
read only = no
vfs object = recycle
recycle: repository = .recycle/%U
recycle: touch = yes
recycle: keeptree = yes
recycle: versions = yes

«vfs object = recycle» – включение корзины для общего ресурса;
«recycle: repository = .recycle/%U» – папка, куда будут перемещаться удаленные файлы;
«recycle: touch = yes» – обновлять дату при перемещении файла в корзину;
«recycle: keeptree = yes» – сохранять структуру каталогов удаленного файла;
«recycle: versions = yes» – при перемещении в корзину файла с существующим именем, добавлять к началу имени файла префикс «Copy #».

Для создания статьи использовались следующие материалы:

http://www.linuxrussia.com/samba-as-domain-controller.html
https://4skill.ru/fajlovyj-server-samba-v-domene-windows/

Время на прочтение5 мин

Количество просмотров158K

    В этой статье я рассмотрю по шагам подготовку к использованию Samba4 в роли контроллера домена вкупе с дополнительным файловым сервером так же на базе Samba4. Что в итоге мы получим? Два настроенных сервера с samba4, первый в роли domain controller, второй в роли member server с файлами пользователей. Функционирования этой связки я добивался около месяца, за сим, не поделится конечным рецептом просто не имею права…

    Немного предыстории: в компании используется файловый сервер на базе samba3.6 с LDAP Backend, который содержит список всех пользователей и групп с правами доступа. Права доступа на каталоги выставляются с помощью xattr_acl (Extended file attributes), в LDAP хранится список пользователей с соответствием группам доступа. Собственно требуется переехать с этой инфраструктуры на samba4…

1) Подготавливаем два сервера для samba4, я использую дистрибутив SUSE Linux Enterprise 11 Service Pack 3 (SLES11 SP3) как корпоративный стандарт, поэтому разворачивать все буду именно на его базе. Далее можно собрать самбу из исходников, это по желанию, я же использую готовую сборку от sernet, которую можно бесплатно получить просто зарегистрировавшись на портале — Portal Enterprise Samba

Sernet производит сборку самбы для нескольких дистрибутивов — Debian, Ubuntu, RHEL, CentOS, SLES, openSUSE.
Я использовал Samba4 версии 4.1.6

2) На первом сервере, который у нас выступит в роли DC, устанавливаем sernet-samba-ad. Если возникнут проблемы, можно заглянуть в официальную инструкцию — Samba AD DC HOWTO. Незабываем прописать имя нашего будущего домена в своем DNS сервере с указанием на наш новый сервер.

Далее выполняем создание домена с помощью samba-tools.

samba-tool domain provision --use-rfc2307 --interactive

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

Копируем вновь сконфигуренный самбой конфиг Kerberos в место по умолчанию.

cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

Для проверки верной работы Kerberos можно установить krb5-client и проверить работу аутентификации.

kinit administrator@EXAMPLE.COM
klist

klist должен показать информацию по тикетам, если все ок — идем дальше.

Нужно подправить файл /etc/default/sernet-samba
Правим строчку SAMBA_START_MODE= на следующую.

SAMBA_START_MODE="ad"

После этого можно запускать саму самбу

/etc/init.d/sernet-samba-ad start

Если запуск прошел удачно можно считать, что наш контроллер домена уже развернут.

Редактируем файл /etc/nsswitch.conf для того, что бы система увидела пользователей домена и группы, а так же могла нормально выставлять права на файлы. Приводим эти две строки к следующему виду:

passwd: compat winbind
group:  compat winbind

Перезапустим систему и проверим, работает ли… с помощью getent passwd и getent group. Мы должны увидеть группы и пользователей из нашего домена. Более подробно про этот шаг можно почитать официальную инструкцию — Samba4/Winbind

Осталось ввести в домен любую машину с Windows для администрирования, думаю с этим проблем не возникнет.

3) На машине с Windows, которую мы ввели в домен устанавливаем admin pack. Используем оснастку по управлению пользователями в AD.

Каждой группе и пользователю нужно присвоить unix uid\gid для будущей нормальной работы xattr_acl на нашем втором сервере.

4) Пора начать готовить наш второй сервер, который выступит в роли member server и будет являться файловым сервером в домене.

Устанавливаем sssd, в стандартном репозитории SLES11 имеется версия 1.9.4, она нам вполне подойдет. Так же устанавливаем sssd-tools. sssd нужен для получения пользователей с unix атрибутами с нашего домена. Более подробно про настройку можно почитать в официальной инструкции — Local user management and authentication/sssd
Мы будем настраивать связь с AD через Kerberos.

На первом сервере (DC) нужно экспортировать keytab из Kerberos.

samba-tool domain exportkeytab /etc/krb5.sssd.keytab --principal=имя_вашего_DC$
chown root:root /etc/krb5.sssd.keytab 
chmod 600 /etc/krb5.sssd.keytab

Для безопасности обрубим лишние права. Копируем keytab файл на наш второй сервер по этому же пути.

Редактируем sssd.conf

[sssd]
services = nss, pam
config_file_version = 2
domains = default

[nss]

[pam]

[domain/default]
ad_hostname = smbad.samba4.servdesk.ru
ad_server = smbad.samba4.servdesk.ru
ad_domain = samba4.servdesk.ru

ldap_schema = rfc2307bis
id_provider = ldap
access_provider = simple

# on large directories, you may want to disable enumeration for performance reasons
enumerate = true

auth_provider = krb5
chpass_provider = krb5
ldap_sasl_mech = gssapi
ldap_sasl_authid = smbad$@SAMBA4.SERVDESK.RU
krb5_realm = SAMBA4.SERVDESK.RU
krb5_server = smbad.samba4.servdesk.ru
krb5_kpasswd = smbad.samba4.servdesk.ru
ldap_krb5_keytab = /etc/krb5.sssd.keytab
ldap_krb5_init_creds = true

ldap_referrals = false
ldap_uri = ldap://smbad.samba4.servdesk.ru
ldap_search_base = dc=samba4,dc=servdesk,dc=ru

dyndns_update=false

ldap_id_mapping=false

ldap_user_object_class = user
ldap_user_name = samAccountName
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_user_home_directory = unixHomeDirectory
ldap_user_shell = loginShell

ldap_group_object_class = group
ldap_group_name = cn
ldap_group_member = member

Не забудьте исправить имя вашего DC и вашего домена на свои. Ставим sssd в автозапуск, перезагружаем сервер.
Далее можно сбросить кеш и проверяем наши группы с пользователями.

sss_cache -UG
getent group
...
Schema Admins:*:10110:Administrator
Domain Users:*:10103:
DnsAdmins:*:10117:
servdesk:*:10102:test

В списке должны быть наши группы и пользователями с uid\gid, которые мы задавали в AD остнастке в Windows.

5) Переходим к настройки samba4 на втором сервере, устанавливаем sernet-samba-nmbd, sernet-samba-smbd, sernet-samba-winbind и все зависимости для них. Более подробно про настройку можно почитать в официальной инструкции — Samba/Domain Member

Создаем smb.conf, мой файл выглядит вот так:

[global]

   workgroup = SAMBA4
   security = ADS
   realm = SAMBA4.SERVDESK.RU

#   map untrusted to domain = Yes

   idmap config *:backend = tdb
   idmap config *:range = 70001-80000

#   idmap config SAMBA4:default = yes
   idmap config SAMBA4:backend = ad
   idmap config SAMBA4:schema_mode = rfc2307
   idmap config SAMBA4:range = 500-40000
#   idmap_ldb:use rfc2307 = yes




    winbind nss info = rfc2307
    winbind trusted domains only = no
    winbind use default domain = yes
#    winbind enum users  = yes
#    winbind enum groups = yes

#create mask = 0777
#directory mask = 0777

vfs objects = acl_xattr btrfs
map acl inherit = Yes
store dos attributes = Yes


[data1]
   path = /data1/
   read only = no

Не забываем подправить конфиг под себя, нужно сменить имя домена на ваш.

Правим наш файл hosts в нем необходимо прямо указать имя нашего member server, иначе зоны DNS не будут автоматически обновляться в AD.

127.0.0.1       localhost
127.0.0.1	samba3.samba4.servdesk.ru	samba3

Запустим процедуру входа в наш домен.

net ads join -U administrator

Потребуется ввести пароль администратора.

Собственно после этого наш member server уже находится в домене.
Можно попробовать с Windows машины подключится на него под своим логином паролем и создать какую-нибудь папку, для проверки прав…
Создали папку 123, проверяем права.

getfacl /data1/123

# file: data1/123
# owner: test
# group: Domain\040Users
user::rwx
user:test:rwx
group::r-x
group:servdesk:rwx
group:Domain\040Users:r-x
mask::rwx
other::r-x
default:user::rwx
default:user:test:rwx
default:group::r-x
default:group:servdesk:rwx
default:group:Domain\040Users:r-x
default:mask::rwx
default:other::r-x

Как видим, все права верно выставляются.

Далее можно начинать перенос пользователей в наш новый домен, а так же выставлять права на папки в соответствии с вашими пожеланиями.
Так же можно использовать glusterfs вкупе с samba4 для создания отказоустойчивого файлового сервера, но это уже совсем другая история…

Если у кого-то есть вопросы, буду рад оказать помощь.

Для того, чтобы создать файловый сервер, интегрированный в домен Active Directory, вам в первую очередь потребуется ввести вашу машину с Ubuntu в домен. Этому посвящена отдельная статья:

Для создания файлового сервера вам не нужно настраивать PAM, достаточно добавить доменных пользователей и группы через Winbind в систему.

После успешного входа в домен вам останется всего лишь настроить расшаренные ресурсы на вашем компьютере.

Тут стоит сразу обратить внимание на одну очень важную вещь: Samba пытается спроецировать права на файлы Windows на права Unix, однако из-за кардинальных различий в механизмах присвоения прав сделать это не всегда возможно. Учтите, что права на файлы всегда и в любом случае контролируются вашей файловой ситемой на компьютере с Ubuntu, самба может лишь подстраиваться под них, но не менять их поведение.

Поэтому по умолчанию на расшаренных ресурсах будут весьма скудные возможности контроля доступа — назначение разных прав для пользователя, группы и всех остальных. Однако это легко исправить, добавив в вашу ФС поддержку POSIX ACL. В этом случае можно будет назначать различные права различным пользователям и группам практически как в Windows.

Поддержка POSIX ACL есть как минимум в ext3/4, для её активирования вам необходимо просто добавить к опциям монтирования нужного раздела параметр acl.

Важно, чтобы каталог, который вы хотите расшарить через Samba, лежал на диске, смонтированном с опцией acl. Иначе вы не сможете нормально использовать механизм разграничения прав доступа к файлам на шарах.

Есть и ещё один весьма немаловажный момент: POSIX ACL не поддерживают наследование прав доступа от родительских каталогов, а в Windows эта возможность присутствует. Поэтому в Samba реализован дополнительный механизм сохранения информации о наследовании прав доступа, который использует расширенные атрибуты файловой системы. Поэтому чтобы Samba могла корректно обрабатывать наследование прав кроме acl к опциям монтирования файловой системы необходимо добавлять параметр user_xattr, который как раз и отвечает за включение поддержки расширенных атрибутов.

Например, я всегда использую для организации расшаренных ресурсов отдельные LVM диски и у меня строчки в fstab для них выглядят примерно так:

/dev/mapper/data-profiles /var/data/profiles  ext3    defaults,noexec,acl,user_xattr        0       2

Опция noexec нужна потому, что на шарах для Windows 100% не должно быть исполняемых файлов Linux, и лишний раз перестраховаться не помешает.

Для работы с acl на Ubuntu необходимо установить пакет соответствующих утилит:

sudo aptitude install acl 

После чего посмотреть расширенные права (т.е. ACL) на файл или каталог можно будет командой

getfacl file

А установить командой

setfacl [options] file

На всякий случай хочу обратить внимание на то, что механизм POSIX ACL не имеет никакого отношения к Samba — это просто надстройка над стандартным механизмом разграничения прав в Linux. Соответственно Samba может его использовать, но не может как-либо изменить или обойти.

Для работы с расширенными атрибутами ФС потребуется очень похожий на acl пакет утилит — attr, поставить который можно командой

sudo aptitude install attr

Для просмотра расширенных атрибутов можно использовать команду

getfattr file

А для установки

setfattr [options] file

Однако тут есть одна небольшая загвоздка. Дело в том, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user.SAMBA_PAI. Поэтому поменять что-то с помощью setfattr вам не удастся, только разве что полностью удалить расширенные атрибуты (иногда такое может потребоваться сделать).

Ну а управлять наследованием прав вам придётся с Windows машины с помощью штатных инструментов этой системы. Либо же с помощью утилиты smbcacls, если вы разберётесь, как ей пользоваться.

Существует так же экспериментальный VFS модуль acl_xattr, который позволяет хранить NT ACL полностью в расширенных атрибутах. К сожалению, документации по нему нет, поэтому что-то вразумительное сказать по его поводу сложно. Ожидается, что в Samba 4 будет полная интегрированная поддержка NT ACL, а пока что можно пользоваться тем, что есть.

Если вам есть что добавить по поводу расширенных атрибутов в Samba и методах работы с ними — обязательно напишите в эту тему на форуме. Буду благодарен за любые ссылки, статьи и комментарии по теме.

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

Итак, будем считать что у вас есть в системе каталог, который вы хотите расшарить через Samba (и он находится на диске, подмонтированном с поддержкой acl и user_xattr). Теперь необходимо собственно настроить его расшаривание. Для этого нужно внести соответствующую информацию в файл /etc/samba/smb.conf.

Начнём с общих настроек, которые можно добавить в секцию [global] этого файла (это далеко не все возможные параметры, просто несколько достаточно полезных из них):

  # Отключить расшаривание принтеров. Если вы конечно и вправду не хотите их расшаривать.
  # Для полного отключения нужно указывать все 4 строки, приведённых ниже 
  load printers = no
  show add printer wizard = no
  printcap name = /dev/null
  disable spoolss = yes
  # Сделать скрытыми при просмотре с Windows файлы со следующими именами
  hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/
  # Использовать для шар с публичным доступом следующего UNIX пользователя в качестве Guest
  guest account = nobody
  # Воспринимать как guest незарегистрированных пользователей
  map to guest = Bad User

## Настройки, использующие расширенные атрибуты файловой системы 
 
  # Обрабатывать наследования прав с помощью расширенных атрибутов ФС
  map acl inherit         = yes
  # Использовать расширенные атрибуты ФС для хранения атрибутов DOS
  store dos attributes    = yes
  # Отключить маппинг DOS атрибутов на UNIX права, включённый по умолчанию
  # Согласно man smb.conf при использовании расширенных атрибутов эти опции обязаны быть отключены 
  map archive             = no
  map system              = no
  map hidden              = no 
  map readonly            = no

Теперь настройки непосредственно расшаренного ресурса. У меня он называется profiles, а физически на Ubuntu машине находится по адресу /var/data/profiles:

[profiles]
  # Комментарий
  comment = User Profiles
  # Путь до папки, которую расшариваем 
  path = /var/data/profiles/
  # Пользователи с неограниченными правами доступа к шаре
  # У меня стоит группа администраторов домена.
  # Эти пользователи при работе с файлами воспринимаются как локальный root 
  admin users = "@DOMAIN\Администраторы домена"
  # Скрыть папки, к которым у пользователя нет доступа 
  hide unreadable = yes
  # Доступ не только на чтение 
  read only = no
  # Маски для создаваемых файлов - можно задать по желанию
  #create mask = 0600
  #directory mask = 0700
  # Отключение блокировок - лучше отключить
  locking                 = no

Есть множество других опций — за подробностями стоит обратиться к документации по Samba.

Не забудьте поставить правильного владельца и права доступа на папку, которую вы расшариваете, а то несмотря на любые настройки самбы в неё может быть запрещена запись на уровне прав Linux. Я делаю обычно так:

sudo chmod ug+rwx /var/data/profiles
sudo chown root:"пользователи домена" /var/data/profiles

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

Проверьте правильность конфигурации Samba командой

testparm

После чего перезапустите Samba:

sudo /etc/init.d/samba restart

Теперь вы можете с любой машины домена получить доступ к расшаренному ресурсу.

Кстати, не забывайте про SGID и Sticky биты для каталогов. Они позволят вам наследовать группу-владельца и запрещать пользователям удаление не своих файлов — это может быть очень удобно для многопользовательских хранилищ. Однако в отличие от редактирования прав из Windows поменять эти биты на папках на расшаренном ресурсе не получится — только вручную непосредственно на Ubuntu компьютере.

Кроме всего прочего Samba позволяет организовывать хранение предыдущих версий файлов, что бывает иногда полезно при создании общих ресурсов с пользовательскими данными. Подробности в соответствующей статье:

Домен Active Directory есть далеко не у всех. Поэтому часто возникает необходимость организовать на Linux машине автономное файловое хранилище со своей собственной системой авторизации. Это сделать очень просто.

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

Самое главное — определиться с используемым способом доступа к ресурсу. Для его изменения надо правильно установить значение параметра security в секции [global] файла /etc/samba/smb.conf. Подробней об этом параметре можно почитать тут или же в официальной документации.

Обычно используется значение share или user.

Далее не забудьте поменять значение параметра workgroup на нужное, а все остальные настройки сильно зависят от ваших целей.

Подробнее настройка простого файлового сервера описана в основной статье про Samba.

Для дома удобно чтобы все видели всех. Это можно сделать если добавить 4 строчки в секцию [global] файла /etc/samba/smb.conf. Некоторые могут уже существовать.

[global]
workgroup = WORKGROUP
map to guest = Bad User
netbios name = NOTEBOOK
security = user

NOTEBOOK — имя компьютера которое будет в сети.
Кроме этого надо установить дополнительные программы :

sudo apt-get install samba 

Для kubuntu надо еще установить smb4k .
После редактирования конфигов надо перезапустить службы. В systemd (начиная с 15.04) перезапуск выглядит так:

sudo systemctl restart smbd.service nmbd.service

Посмотреть «шары» можно через файловый броузер nautilus, konkueror или так:

smbclient -L 127.0.0.1

. Официальная документация на английском.

В данной заметке описывается процесс как подключить Linux-сервер (CentOS 6.7) к существующему Windows-домену под управлением Microsoft Windows 2008-R2 и сделать из него файловый сервер на базе Samba (Version 3.6.23-20.el6) c разграничением прав доступа доменных пользователей.

Условия, при которых выполнялись шаги, описанные в заметке:

  • В качестве аппаратной платформы используется виртуальная машина VMware (version 11) на гипервизоре VMware ESXi, 6.0.0, 2494585.
  • Контроллер домена на базе Microsoft Windows Server 2008 R2
    Домен: filial.work.corp (Краткое название домена WORK-FILIAL)
    Контроллер домена: dc301.filial.work.corp (IP 10.58.96.4)
  • Цель — получить файловый сервер с именем fserver1.filial.work.corp (IP 10.58.96.24)
  1. Устанавливаем CentOS-minimal. (Я устанавливал, имеющийся на тот момент, CentOS 6.5 (i386), обновленный впоследствии на втором шаге до версии 6.7)

    P.S. В веб-консоле VMware мышь не работает, все делаем с клавиатуры – перемещение между кнопками – «TAB», подтвердить выбор – «Пробел»)

    При установке были заданы следующие параметры:

    • Язык Русский
    • Раскладка клавиатура – Английская (США)
    • Стандартные накопители
    • Имя узла задаем полностью fserver1.filial.work.corp
    • Настраиваем сеть:
      IP:10.58.96.24
      Маска:255.255.255.0
      Шлюз: 10.58.96.1
      Серверы DNS: 10.58.96.4
      Домены поиска: FILIAL.WORK.CORP
      Ставим галку «Подключаться автоматически»
    • Часовой пояс должен быть Европа/Москва
    • Задаём пароль ROOT
    • Всё пространство
    • Сохранить изменения на диск
    • Установка пакетов
    • Перезагрузка
  2. Подключаемся к серверу по SSH (Я использовал PuTTY)
  3. Обновим все необходимы модули в системе на актуальные версии::
    yum update -y
  4. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  5. Для удобства установим MC
    yum install mc -y
  6. Если используется виртуальная машина, то ставим VmWare Tools, если нет – переходим к шагу 8.
    Подготовка к установке пакета VmWare Tools
    • 1 вариант (для 32 битного CentOSa ): yum -y install http://packages.vmware.com/tools/esx/6.0/repos/vmware-tools-repo-RHEL6-9.10.0-1.el6.i686.rpm
    • 2 Вариант: Скачиваем rpm-пакет (для ESXi6: http://packages.vmware.com/tools/esx/6.0/repos/vmware-tools-repo-RHEL6-9.10.0-1.el6.x86_64.rpm — для 64 битного CentOSa, vmware-tools-repo-RHEL6-9.10.0-1.el6.i686.rpm – для 32 битной)
      Другие версии — http://packages.vmware.com/tools/esx/index.html
      Устанавливаем пакет:
      yum install vmware-tools-repo-RHEL6-9.10.0-1.el6.i686.rpm -y
  7. Устанавливаем VmWare Tools:
    yum install vmware-tools-esx-nox -y
    Проверяем, что VmWare tools установлен и запущен:
    initctl list | grep vmware-tools
    Вывод:vmware-tools start/running
    Чтобы узнать версию vmware-tools, выполните :
    vmware-toolbox-cmd -v
  8. Устанавливаем пакеты Samba:
    yum install samba samba-client samba-common –y
  9. Добавляем Samba в автозагрузку:
    chkconfig smb on
    chkconfig nmb on
  10. Отключаем SELinux.
    Редактируем файл /etc/selinux/config. Находим строку SELINUX, меняем значение с enforcing на disabled:
    SELINUX=disabled
  11. Чтобы ресурсы Samba были доступны по сети, необходимо добавить правила в iptables. Вводим по очереди следующие строки:
    iptables -I INPUT 4 -m state —state NEW -m udp -p udp —dport 137 -j ACCEPT
    iptables -I INPUT 5 -m state —state NEW -m udp -p udp —dport 138 -j ACCEPT
    iptables -I INPUT 6 -m state —state NEW -m tcp -p tcp —dport 139 -j ACCEPT
    service iptables save
    service iptables restart
  12. В корне создаем каталог data (его мы и будем для начала расшаривать):
    mkdir /data
    chmod -R 0777 /data
  13. Предварительная настройка Samba:
    • Переместим файл /etc/samba/smb.conf в папку /home.
    • Создадим новый файл smb.conf
    • Внесём в него следующие строки:

      [global]
      workgroup = WORKGROUP
      security = share
      map to guest = bad user
      [data]
      path = /data
      browsable =yes
      writable = yes
      guest ok = yes
      read only = no
      

    • Проверим конфигурацию Samba командой testparm
      Должны получить следующее:

      Load smb config files from /etc/samba/smb.conf
      rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
      Processing section "[data]"
      WARNING: The security=share option is deprecated
      Loaded services file OK.
      Server role: ROLE_STANDALONE
      Press enter to see a dump of your service definitions
      


      На предупреждения о «security = share» и «rlimit_max» внимание не обращаем.

    • Перезапустим Samba

      service smb restart
      service nmb restart
    • Пробуем подключиться
  14. Для правильной работы в домене требуется настроить автоматическую синхронизацию времени с доменом:
    a) yum install ntp -y
    b) В файл /etc/ntp.conf добавляем информацию о сервере времени:
    server filial.work.corp
    (перед остальными серверами типа server X.servet.pool.ntp.org поставим знак «#»)
    c) После чего перезапустим демон ntpd:
    service ntpd start
    d) Добавляем сервис в автозагрузку
    chkconfig ntpd on
    e) Проверяем как работает синхронизация командой:
    ntpq -p
    Должны увидеть примерно такое:
         remote           refid      st t when poll reach   delay   offset  jitter
    ==============================================================================
    *dc301.filial.wo 10.58.96.4       4 u  129  128  377    0.324   -3.265  10.328
    
  15. Устанавливаем пакет krb5-workstation и добавляем сервис winbind в автозагрузку:
    yum install krb5-workstation -y
    chkconfig winbind on
  16. Добавляем в начало файла /etc/hosts строку
    127.0.0.1 fserver1.filial.work.corp fserver1
  17. Устанавливаем лимит одновременно открытых файлов:
    В конец файла (перед #End of file) /etc/security/limits.conf вписываем строку
    * nofile 16384
  18. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  19. Добавление Winbind в качестве источника пользователей и групп.
    В файле /etc/nsswitch.conf внесём следующие изменения (отмечены жирным):
    passwd:     compat winbind
    group:      compat winbind
    hosts:    files dns winbind
  20. Настройка Samba.
    Для работы в домене, необходимо прописать правильные настройки в файле /etc/samba/smb.conf.
    Ниже – рабочий пример части файла конфигурации (Обратите внимание на то, что название и короткое наименование домена вводятся ПРОПИСНЫМИ БУКВАМИ):
    workgroup = WORK-FILIAL
    realm = FILIAL.WORK.CORP
    security = ADS
    auth methods = winbind
    allow trusted domains = no
    domain master = no
    local master = no
    preferred master = no
    os level = 0
    domain logons = no
    
    # Отключаем принтеры
    load printers = no
    show add printer wizard = no
    printcap name = /dev/null
    disable spoolss = yes
    
    smb ports = 139
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    
    idmap config * : range = 10000-20000
    idmap config * : backend = tdb
    winbind enum groups = yes
    winbind enum users = yes
    winbind use default domain = yes
    #Автоматическое обновление билета Kerberos
    winbind refresh tickets = yes
    #Возможность авторизации доменных пользователей когда домен недоступен (включить после тестирования)
    #winbind offline logon = yes
    
  21. Проверим конфигурацию 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
    
  22. Введем сервер в домен. Для этого введите команду:
    net ads join -U administrator -D FILIAL.WORK.CORP,где administrator — пользователь домена с правами ввода компьютеров в домен, название домена вводятся ПРОПИСНЫМИ БУКВАМИ.
    И в случае успеха вы увидите что-то похожее на:
    Using short domain name – WORK-FILIAL
    Joined 'FSERVER1' to dns domain 'filial.work.corp'

    Так же можно набрать команду:
    net ads testjoin
    Если все хорошо, можно увидеть:
    Wbinfo Join is OK

  23. Перезагружаем сервер (команда reboot). После перезагрузки снова подключаемся по SSH.
  24. После перезагрузки проверим, что Winbind установил доверительные отношения с доменом командой:
    wbinfo -t
    Если всё нормально, то увидим:
    checking the trust secret for domain DCN via RPC calls succeededКроме того, можно посмотреть кол-во пользователей и групп, должно быть больше 0:
    wbinfo –u |wc –l
    wbinfo –g |wc –l
  25. В файл /etc/samba/smb.conf добавляем строки:
    [data]
    path = /data
    valid users = @WORK-FILIAL\Администраторы домена
    write list = WORK-FILIAL\MainAdmin
    read only = yes
    browseable = yes
    create mask = 0666
    directory mask = 0777

    Пояснения:
    valid users — пользователи и/или группы, которым разрешен доступ в каталог
    write list — пользователи и/или группы, которым разрешена запись в каталог
    В строках, где значение параметра начинается с @ означит, что это правило применяется не к одному пользователю, а к группе.
    Т.е. в примере доступ в каталог data разрешён только пользователям, входящим в группу «Администраторы домена«, а вносить изменения (создавать, удалять, изменять данные) в каталоге может только пользователь «MainAdmin«. Если нужно дать права нескольким пользователям или группам, то их нужно указать через запятую:
    write list = WORK-FILIAL\MainAdmin, WORK-FILIAL\backupAdmin
    create mask = 0666 — задаёт маску прав создаваемых пользователями файлов
    directory mask = 0777 — задаёт права на создание каталогов и подкаталогов
    У расшариваемого каталога, в нашем случае /data, у «прочих» пользователей должны быть права rwx.
    Чтобы установить требуемые права на паку (в нашем случае /data), можно воспользоваться командой:
    chmod 0777 /data

    
    
  26. После внесения изменений в настройки Samba, перезапустим службу
    service smb restart

При работе над заметкой были использованы следующие материалы:

  1. Samba, как член домена Active Directory
  2. Linux в домене Active Directory
  3. Ввод компьютера в домен Windows
  4. Формат конфигурационного файла smb.conf
  5. Все о Samba

Содержание

  • 1 Общая информация
  • 2 Проверка требований
  • 3 Установка Samba
  • 4 Настройка Samba
  • 5 Проверка работы и отладка
  • 6 Дополнительная настройка
  • 7 Доступ к Samba из Windows 7 и 2008 r2
  • 8 Работа над ошибками
    • 8.1 Winbind не запускается
    • 8.2 Ошибка получения билета Kerberos
  • 9 Полезные комманды
  • 10 См. также
  • 11 Cсылки

Общая информация

Если вам нужно просто предоставить сетевой доступ к ресурсам Linux компьютера, то смотрите статью Samba.

В этой статье мы опишем как подключить Linux компьютер к домену под управлением Microsoft Active Directory и сделать из него файловый сервер.

После выполнения этой инструкции мы будем иметь в сети файловый сервер под управлением ОС Линукс, входящий в домен Windows 2003 и ничем не отличающийся от файлового сервера под Windows. Пользователи домена смогут обращаться к его ресурсам под своими учётными записями. Доступ регулируется группами домена AD.

По этой инструкции настраивались Debian (4, 5), Ubuntu 9.10, создавалась она на основе официальной документации и многих рекомендаций и инструкций из Интернета. Остальные Linux’ы настраиваются сходным образом.

Для Alt Linux написана хорошая инструкция http://freesource.info/wiki/AltLinux/Dokumentacija/SambaInWin2kDomain?v=omo&

Проверка требований

  • Проверяем что Samba собрана с поддержкой Kerberos:
# smbd -b | grep KRB

   HAVE_KRB5_H
   HAVE_ADDRTYPE_IN_KRB5_ADDRESS
   HAVE_DECODE_KRB5_AP_REQ
   HAVE_KRB5
   HAVE_KRB5_AUTH_CON_SETUSERUSERKEY
   HAVE_KRB5_C_ENCTYPE_COMPARE
   HAVE_KRB5_C_VERIFY_CHECKSUM
   HAVE_KRB5_ENCRYPT_BLOCK
   HAVE_KRB5_ENCRYPT_DATA
   HAVE_KRB5_FREE_AP_REQ
   HAVE_KRB5_FREE_DATA_CONTENTS
   HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS
   HAVE_KRB5_FREE_KTYPES
   HAVE_KRB5_FREE_UNPARSED_NAME
   HAVE_KRB5_GET_PERMITTED_ENCTYPES
   HAVE_KRB5_GET_RENEWED_CREDS
   HAVE_KRB5_KEYBLOCK_IN_CREDS
   HAVE_KRB5_KEYTAB_ENTRY_KEY
   HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM
   HAVE_KRB5_KT_FREE_ENTRY
   HAVE_KRB5_LOCATE_KDC
   HAVE_KRB5_MK_REQ_EXTENDED
   HAVE_KRB5_PRINCIPAL2SALT
   HAVE_KRB5_PRINC_COMPONENT
   HAVE_KRB5_SET_DEFAULT_TGS_KTYPES
   HAVE_KRB5_SET_REAL_TIME
   HAVE_KRB5_STRING_TO_KEY
   HAVE_KRB5_TKT_ENC_PART2
   HAVE_KRB5_USE_ENCTYPE
   HAVE_LIBGSSAPI_KRB5
   HAVE_LIBKRB5
   HAVE_MAGIC_IN_KRB5_ADDRESS
   HAVE_TICKET_POINTER_IN_KRB5_AP_REQ
   KRB5_VERIFY_CHECKSUM_ARGS
  • Также проверим что поддерживается LDAP
# smbd -b | grep LDAP

   HAVE_LDAP_H
   HAVE_LDAP
   HAVE_LDAP_ADD_RESULT_ENTRY
   HAVE_LDAP_DN2AD_CANONICAL
   HAVE_LDAP_INIT
   HAVE_LDAP_INITIALIZE
   HAVE_LDAP_SET_REBIND_PROC
   HAVE_LIBLDAP
   LDAP_SET_REBIND_PROC_ARGS
  • Для корректной работы Samba в домене Windows 2003 нужны версии MIT Kerberos version >=1.3.1. Проверим:
# dpkg -l | grep krb

ii  krb5-config    1.22                       Configuration files for Kerberos Version 5
ii  libkrb53       1.6.dfsg.4~beta1-5lenny1   MIT Kerberos runtime libraries
  • Для корректной работы с Windows 2008 серверами сама Samba должна быть достаточно свежая:
# smbd -V

Version 3.2.5

Установка Samba

  • Устанавливаем сервер и клиент samba.
# apt-get install samba samba-client krb5-config

При настройке krb5-config лучше указывать IP адреса контроллеров домена, а не их DNS имена.

Настройка Samba

  • Для подключения к домену Active Directory удобно использовать утилиту Likewise-Open.
  • Для администрирования Samba удобно использовать SWAT или webmin, которые предоставляют веб интерфейс. Попасть на него можно по адресу http://server_address:901 и https://server_address:10000 соответственно, указав для соединения пользователя root. Но будьте осторожны — он полностью переписывает smb.conf и некоторые параметры может просто игнорировать. Лучше предварительно сделать резервную копию файла. Я сначала использовал SWAT, а затем дорабатывал конфигурационный файл /etc/samba/smb.conf руками. Вот, что осталось у меня не закоментированным (принтеры к этому серверу не подключены):
[global]
        unix charset = LOCALE
        realm = WORKGROUP.DOMAIN.LOCAL
        server string = Storage samba server
        interfaces = eth0
        bind interfaces only = Yes
        security = ADS
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
        log level = 3
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 100
        name resolve order = lmhosts host wins bcast
        printcap name = CUPS
        local master = No
        domain master = No
        dns proxy = No        
        ldap ssl = no
        panic action = /usr/share/samba/panic-action %d
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        template shell = /bin/bash
        invalid users = root

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[distrib]
        path = /data/distrib
        valid users = @WORKGROUP\DistribGroup
        write list = @WORKGROUP\DistribGroup
        read only = No
        create mask = 0777
        directory mask = 0777

[backup]
        path = /data/backup
        valid users = @WORKGROUP\BackupGroup
        write list = @WORKGROUP\BackupGroup
        read only = No
        create mask = 0777
        directory mask = 0777

Мы описали два общих каталога:

  • backup — доступ имеют только пользователи входящие в группу BackupGroup в Active Directory. Они могут создавать и удалять файлы/каталоги
  • distrib — доступ имеют все пользователи входящие в группу DistribGroup в Active Directory

В приведённой конфигурации подразумевается, что eth0 — это сетевой интерфейс в локальную сеть, где домен имеет полное имя WORKGROUP.DOMAIN.LOCAL

  • редактируем /etc/nsswitch:
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns wins
networks:       files dns

protocols:      files
services:       files
ethers:         files
rpc:            files

netgroup:       files
  • Проверим, что в /etc/hosts есть корректная запись для нашего сервера, также можно добавить записи для контроллеров доменов:
10.0.0.15      storage.domain.local storage
10.0.0.85      dcwg1.domain.local dcwg1
10.0.0.245     dcwg2.domain.local dcwg2
  • Удаляем если есть (или переносим в резервные копии) файл /etc/samba/secrets.tdb и все файлы из /var/lib/samba/*.tdb
  • Проверяем конфигурацию (не обязательно):
  1. testparm -s

В Ubunto testparm находится в пакете samba-common-bin

  • Проверим как Samba-3 winbind общается с контроллером домена Active Directory посредством протокола Kerberos:
# net ads info

LDAP server: 10.0.0.85
LDAP server name: dcwg1.workgroup.domain.local
Realm: WORKGROUP.DOMAIN.LOCAL
Bind Path: dc=WORKGROUP,dc=DOMAIN,dc=LOCAL
LDAP port: 389
Server time: Срд, 03 Мар 2010 13:12:14 NOVT
KDC server: 10.0.0.85
Server time offset: -5

На рассхождение времени в секундах указывает строка «Server time offset: -5». Обратите внимание, что протокол Kerberos зависим от времени, и расхождение с часами контроллера домена допускается лишь незначительное, поэтому желательно настроить NTP клиент (см. статьи по настройке NTP). В Ubuntu это указывается в файле /etc/default/ntpdate:

NTPSERVERS="10.0.0.85 10.0.0.245"
  • В Debian (и его сыновьях, таких как Ubuntu и внуках вроде Linux Mint) при установке пакета krb5-cofig сразу предлагается его настройка. Лучше всего попробовать работать с этими настройками, но если ничего предложено не было или мы хотим что-то изменить, то редактируем /etc/krb5.conf (я для более стабильной работы использовал ip адреса вместо имён серверов):
[libdefaults]
        default_realm = WORKGROUP.DOMAIN.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
#
#...
#
# The following libdefaults parameters are only for Heimdal Kerberos.
        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
        fcc-mit-ticketflags = true

[realms]
        WORKGROUP.DOMAIN.LOCAL = {
                kdc = 10.0.0.85
                kdc = 10.0.0.245
                admin_server = 10.0.0.85
        }
#
#...
#
[login]
        krb4_convert = true
        krb4_get_tickets = false
  • Проверим работает ли Kerberos, постараемся получить билет и просмотреть его:
# kinit administrator@WORKGROUP.DOMAIN.LOCAL
Password for administrator@WORKGROUP.DOMAIN.LOCAL:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@WORKGROUP.DOMAIN.LOCAL

Valid starting     Expires            Service principal
03/06/10 14:51:41  03/07/10 00:51:47  krbtgt/WORKGROUP.DOMAIN.LOCAL@WORKGROUP.DOMAIN.LOCAL
        renew until 03/07/10 14:51:41
  • Удалим полученный билет:
# kdestroy
  • Присоединяемся к домену:
# net ads join -UAdministrator

Administrator's password:
Using short domain name -- WORKGROUP
Joined 'STORAGE' to realm 'WORKGROUP.DOMAIN.LOCAL'

Всё, компьютер включен в домен, что можно проверить на контроллере. Даже если после приведённых строк получили следующие:

[2010/03/06 15:04:00,  0] libads/kerberos.c:332(ads_kinit_password)
  kerberos_kinit_password STORAGE$@WORKGROUP.DOMAIN.LOCAL failed: Client not found in Kerberos database DNS update failed!

Проверка работы и отладка

  • Для удобства отладки сделаем ссылку на каталог журналов:
# ln -s /var/log/samba /etc/samba/log
  • Запускаем samba и winbind:
# /etc/init.d/samba start
# /etc/init.d/winbind start
  • Для проверки правильно ли подключение к домену можно посмотреть список пользователей и групп домена (не обязательно):
# wbinfo -u
# wbinfo -g

Если нас не понимают, то подсказываем пароль для wbinfo и смотрим: список доменов в сети, информацию о домене WORKGROUP, список пользователей и групп домена:

# wbinfo --set-auth-user=root%root_password
# wbinfo --all-domains
# wbinfo -D WORKGROUP
# wbinfo -t
  • Проверяем, как работает NSS. Команда getent показывает инфо о пользователе, который может быть как в домене, так и юниксовый:
# getent passwd | grep pm
pm:x:15000:15000::/home/WORKGROUP/pm:/bin/false

# getent passwd | grep pavel
pavel:x:500:500:Pavel Malahov:/home/pavel:/bin/bash
  • Теперь можно использовать ресурсы на линукс-сервере, на которые мы дали доступ, как обычные доменные ресурсы.

Дополнительная настройка

  • Можно также сопоставить (но это не обязательно) локальные учётные данные и из домена Windows. Для сопоставления пользователей редактируем файл /etc/samba/smbusers.conf:
root = admin administrator
  • для сопоставления (мапирования от англ. Map) групп домена и групп UNIX выполняем:
# net groupmap modify ntgroup="Domain Admins" unixgroup=root
# net groupmap modify ntgroup="Domain Users" unixgroup=users
# net groupmap modify ntgroup="Domain Guests" unixgroup=nobody
  • После того как всё отлажено, можно понизить уровень записи в журнал до «1». В /etc/samba/smb.conf:
log level = 1

Доступ к Samba из Windows 7 и 2008 r2

Начиная с этих версий параметры авторизации у MS поменялись. Скорее всего Samba вскоре это учтёт, а пока подружить системы можно изменив на Win7 свойства сетевой безопасности:

Пуск — Панель управления — Администрирование — Локальная политика безопасности — Локальные политики — Параметры безопасности

  • Сетевая безопасность: минимальная сеансовая безопасность для клиентов на базе NTLM SSP — убрать галочку с «Требовать 128-битное шифрование». Таких параметра два — выполнить для обоих
  • Сетевая безопасность: уровень проверки подлинности LAN Manager — выбрать в списке пункт «Отправлять LM- и NTML-ответы»

Работа над ошибками

Winbind не запускается

При запуске Samba обнаруживаем, что winbind не запустился:

# /etc/init.d/winbind status
 * winbind is not running

В журнале log.winbindd обнаруживаем запись:

[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain BUILTIN  S-1-5-32
[2010/03/06 13:54:34,  2] winbindd/winbindd_util.c:235(add_trusted_domain)
  Added domain STORAGE  S-1-5-21-3963871611-1338977097-196861091
[2010/03/06 13:54:34,  0] winbindd/winbindd_util.c:782(init_domain_list)
  Could not fetch our SID - did we join?
[2010/03/06 13:54:34,  0] winbindd/winbindd.c:1385(main)
  unable to initialize domain list

Видим, что добавлен «встроенный домен» (BUILTIN) и домен «название компьютера» (STORAGE), подключиться к домену AD не удалось.

Решение: Переподключить компьютер в домен. Удалять придётся с самого контроллера, т.к. комадна net ads leave скорее всего не поможет.

Ошибка получения билета Kerberos

При попытке получить билет Kerberos получили:

kinit: KDC reply did not match expectations while getting initial credentials

Решение: указать имя домена в другом регистре. Скорее всего нужны все заглавные

Полезная ссылка: http://subscribe.ru/archive/comp.soft.win.linuxsa/200510/19115643.html

Полезные комманды

$ smbclient -N -L 10.0.0.117 показывает ресурсы компьютера с адресом 10.0.0.117
$ smbclient //10.0.0.117/common Вход в расшаренную директорию. Пользователь unix от которого выполняется команда должен быть зарегистрирован в домене.
# net ads join -U pavel -d 3 Добавить в домен пользователя pavel
# winbindd -d 3 -i Режим отладки (-d), winbindd запускается не как демон (-i)
# wbinfo -a mydomain\\myuser%mypasswd авторизируемся в домене (через winbindd, wbinfo входит в этот пакет)
# ldapsearch запросы к LDAP серверу, в нашем случае к MS Active Directory
# tdbdump /etc/samba/secrets.tdb просмотреть содержимое файла *.tdb

См. также

  • Статья Samba даёт краткий общий обзор пакета Samba утилит для него, а также описывает простой (без авторизации в домене) способ предоставления каталогов в общий доступ.

Cсылки

  • http://linux.yaroslavl.ru//docs/serv/samba/samba-win2000.html — Samba и доменная аутентификация Windows2000
  • http://us6.samba.org/samba/docs/man/Samba-Guide/unixclients.html#adssdm- Active Directory Domain with Samba Domain Member Server — подробная инструкция как подключить Linux сервер с помощью Samba 3 к домену под управлением AD Windows 2003.
  • http://us6.samba.org/samba/docs/man/Samba-Guide/kerberos.html#id397375 — пример настройки доступа для пользователей Active Directory
  • Samba-HOWTO-Collection.pdf, стр.54-57 (поставляется с исходниками) или
  • http://jcifs.samba.org/ntstatus.txt — описание статусов

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Windows 10 не видит диск raw
  • Как установить блютуз на компьютер windows 10 ютуб
  • Как убрать папку windows old windows 10
  • Автоматизация установки софта на чистую windows
  • Как добавить неразмеченную область к диску windows 10