Samba в домене Active Directory

Когда в очередной раз возникла необходимость настроить общие папки в Ubuntu Server с поддержкой аутентификации через Active Directory мне очень помогла статья «Samba, как член домена Active Directory». Поэтому хочу сохранить основные моменты этой статьи у себя.

Подготовка

Исходим из ситуации что Ubuntu Server 14.x уже установлен, обновлен и настроен делать что-то великое, и Вам вдруг понадобилось организовать доступ к файлам по сети.

Настройка сети

В качестве первичного DNS-сервера должен стоять адрес нашего контроллера домена.

Установка пакетов

Устанавливаем Samba, Winbind и Kerberos и NTP: # sudo apt-get install samba winbind krb5-user ntp.

Проверка имени сервера

Команда # hostname -f должна возвращать FQDN-сервера. Если что-то не так — смотрим в /etc/hostname.

Синхронизация времени с DC

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

Делаем # ntpdate -b <ИМЯ_КОНТРОЛЛЕРА_ДОМЕНА> затем в # nano /etc/ntp.conf добавляем строку server FQDN.КОНТРОЛЛЕРА.ДОМЕНА и перезагружаем службу NTP # /etc/init.d/ntp restart.

Настройка Name Service Switch

Настроим # nano /etc/nsswitch.conf для указания в каком порядке NSS осуществляет поиск имен пользователей, паролей, хостов, сетей и т.д. (указаны только модифицированные строки):

# nano /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind

hosts:          files dns wins

Настройка Samba

Зарезервируем оригинальный конфиг # mv /etc/samba/smb.conf /etc/samba/smb.conf.bak.

Конфигурация

Создаем свой файл конфигурации # nano /etc/samba/smb.conf.

[global]
netbios name = <ИМЯ-СЕРВЕРА>
bind interfaces only = yes
interfaces = lo eth0
hosts allow = 127. <АДРЕС.РАБОЧЕЙ.ПОДСЕТИ>
hide dot files = yes
smb ports = 139

workgroup = <ИМЯ-РАБОЧЕЙ-ГРУППЫ>
realm = <ИМЯ-ДОМЕНА.LOCAL>

server string = %h server (Samba, Ubuntu)

security = ADS
encrypt passwords = true
auth methods = winbind

dns proxy = no
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no

#Turning OFF printers support
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

idmap config * : range = 10000 - 20000
idmap config * : backend = tdb
winbind separator = ^

winbind enum groups = yes
winbind enum users = yes

winbind use default domain = yes
#winbind offline logon = yes

winbind refresh tickets = yes

[Share]
path = <ПУТЬ_К_ПАПКЕ>
comment = <ТЕКСТОВОЕ_ОПИСАНИЕ>
browseable = yes
read only = yes
hide unreadable = no
valid users = @<ИМЯ_ГРУППЫ>
admin users = @<ИМЯ_ГРУППЫ>
create mask = 0666
directory mask = 0777

Перезагрузка...

Тестирование авторизации

  • # kinit <ИМЯ_АДМИНИСТРАТОРА_ДОМЕНА>@<ИМЯ_ДОМЕНА> — авторизация в AD;
  • # wbinfo -u — список пользователей;
  • # wbinfo -g — список групп пользователей.

Ввод Samba в домен

Если тестирование прошло устешно, то можно переходить непосредственно к вводу в домен. Пробуем ввести машину в домен командой net ads join -U <ИМЯ_АДМИНИСТРАТОРА_ДОМЕНА>. После ввода в домен нужно перезапустить Samba и Winbind # service samba restart и # service winbind restart.

Оригиальная статья: «Samba, как член домена Active Directory»

Light Spirit Funky Solutions © 2010 ‒ 2024