Когда в очередной раз возникла необходимость настроить общие папки в 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»