How-to настройка samba 3 (pdc) openldap 2

І так, є свіжовстановленому Ubuntu 10.04 в процесі установки був обраний LAMP сервер, в зв'язку з цим я тут не буду описувати настройку apache2 + php5.

Всі дії в цій статті виконуються від користувача root.

Насамперед викачуємо Gosa 2.6.13 з оф. сайту. У ній знаходиться ряд схем які знадобляться під час налаштування LDAP.

Розпаковуємо вміст архіву

Копіюємо в / usr / share / gosa

Створюємо каталоги необхідні Gosa

Дозволимо групі www-data запис в каталоги

Встановлюємо необхідні пакети

Підключаємо базові схеми

Тепер потрібно підключити схеми необхідні для роботи Gosa і samba.

Копіюємо схему samba в каталог / etc / ldap / schema

Схему samba3.schema необхідно перевести в формат ldif. Для цього переходимо в каталог / etc / ldap

і створюємо файл schema_convert.conf

Потім створимо тимчасовий каталог і конвертуємо в нього схему

Переходимо в каталог з отриманої схемою

В кінці схеми видаляємо рядки приблизно такого змісту

Тобто видаляємо все починаючи з structuralObjectClass: і до кінця файлу.

Ну і на останок копіюємо і перейменовуємо файл схеми

Далі необхідно подібним чином відредагувати всі ldif файли знаходяться в / usr / share / gosa / contrib / openldap /

Наприклад візьмемо файл trust.ldif.

При редагуванні схем Gosa НЕ ЗАБУВАЙТЕ в першому рядку по мимо видалення дужок з номером дописувати, cn = schema, cn = config інакше схеми Gosa НЕ будуть підключені що в подальшому призведе до безлічі помилок.

Тепер копіюємо їх в каталог / etc / ldap / schema

Підключаємо схеми в наступному порядку

Переходимо в каталог / etc / ldap

Створюємо базу LDAP з якої надалі і будемо працювати. Для цього створюємо файл db.ldif

Виправте в створеному файлі ім'я домену. Наприклад, якщо ваш сервер називається servak.kontora.ru, то вам потрібно замінити dc = example, dc = com на dc = kontora, dc = ru в усьому тексті.

Встановіть пароль адміністратора у відповідному рядку файлу

olcRootPW: Xr4ilOzQ4PCOq3aQ0qbuaQ == в даному прикладі пароль буде secret

для отримання шифрованого пароля була використана утиліта slappasswd, використовувати її треба в такий спосіб

Запам'ятайте ім'я і пароль адміністратора - GOsa потім запитає. Тепер завантажимо цю конфігруацію:

Далі включаємо шифрування для нашого LDAP.

Встановлюємо пакет gnutls-bin

Створюємо ключ для Certificate Authority (CA)

Створюємо файл /etc/ssl/ca.info

Example Company міняємо на своє

Тепер створюємо self-signed CA сертифікат

Створюємо закритий ключ для нашого сервера При створенні замініть ldap01 на hostname вашого сервера

Щоб підписати сертифікат сервера з СА, створимо файл /etc/ssl/ldap01.info

такого змісту (При створенні замініть ldap01 на hostname вашого сервера):

Example Company міняємо на своє

ldap01.example.com міняємо на «hostname -f» вашого сервера

ldap01.example.com необхідно обов'язково поміняти на «hostname -f» вашого сервера бо значення параметра «cn» має збігатися з ім'ям хоста який буде використовувати цей сертифікат, в протилежному випадку можливості підключитися до LDAP з даними талоном не буде що призведе в подальшому до безлічі помилок

Створюємо сертифікат для сервера (При створенні замініть ldap01 на hostname вашого сервера)

Тепер ми маємо certificate, key, і CA cert для установки, використовуємо утиліту ldapmodify для додавання нових опцій в конфігурацію

Вводимо в консолі

потім вставляємо наступне:

Після чого тиснемо двічі enter повинна з'явиться напис modifying entry «cn = config» і Ctrl + D для виходу.

Далі редагуємо / etc / default / slapd опцію SLAPD_SERVICES

Тепер користувач openldap дорлжен мати доступ до сертифіката (не забуваємо міняти ldap01 на своє)

Тепер додамо індекси для samba

Додаємо в базу

Додамо індекси для gosa

Додаємо в базу

Редагуємо /etc/ldap/ldap.conf Вказуємо суфікс бази, в даному випадку це dc = example, dc = com

Якщо при цьому slapd на перезавантажиться, а команда

то видаліть файл /etc/ldap/slapd.d/cn=config/olcDatabase=hdb.ldif

і спробуйте ще раз перезавантажити LDAP

Все настройка LDAP закінчена.

Встановлюємо необхідні пакети

На питання відповідаємо наступним чином:

Якщо в процесі відповідей на питання ви помилилися, виправити можна запустивши переконфігурацію пакета ldap-auth-config командою

Вносимо зміни в аутентифікацію на сервері

Налаштовуємо pam аутентифікацію, для цього виконуємо

і активуємо профілі аутентифікації LDAP і UNIX.

Встановлюємо необхідні пакети

Запускаємо скрипт конфігурації smbldap-tools

І починаємо відповідати на питання:

Тепер нам необхідно перевірити SID нашого домену. Для цього робимо наступне, набираємо команду

відповіддю має бути рядок наступного виду

Тепер йдемо в файл /etc/smbldap-tools/smbldap.conf знаходимо там опцію SID і перевіряємо, має збігатися з тим що ми отримали вище.

Якщо при конфігуруванні на питання «default password validation time (time in days) [45]>» ви поставили «. »Точку, тоді шукаємо опцію

Заповнюємо базу LDAP.

Необхідно дізнатися адміністратора samba, для цього виконуємо команду

Відповіддю має показати двох користувачів, один з них nobody а другий і є адміністратор samba (в моєму випадку це admins)

Формуємо ldif файл sambadb.ldif

Замість admins вказуєте свого адміна samba.

Переходимо в / etc / ldap

Необхідно відредагувати sambadb.ldif Виконуємо команду

Шукаємо «User SID», записуємо його (копіюємо або запам'ятовуємо :)), далі відкриваємо sambadb.ldif для редагування, шукаємо опис адміністратора, починається воно так

шукаємо в описі sambaSID і міняємо його значення на те що отримали вище.

Я ще зробив наступне, поміняв значення gidNumber і uidNumber на 1000, прописав homeDirectory: / home / admins і loginShell: / bin / sh (це значення локального користувача admins), і в описі домену

змінив gidNumber і uidNumber на 1001. Думаю ви можете цього не робити.

Заповнюємо нашу базу

Встановлюємо пароль адміністратора samba в LDAP

Додамо нового користувача

Тепер перевіримо бачить наш сервер користувачів в LDAP чи ні, для цього можна спробувати увійти в систему під ново створеним користувачем username або в mc вибравши будь-який файл перейти в меню Файл → Права (розширені) і розгорнути список груп, там повинні бути всі групи з LDAP які ми додали при заповненні бази, такі як Domain Admins, Domain Users і т.д.

Переходимо до конфігурації samba. Йдемо в / etc / samba

і робимо копію дефолтного конфіга

Нижче приведу конфиг моєї самби:

Створюємо необхідні каталоги, в моєму випадку це

Тепер samba необхідно вказати пароль адміністратора LDAP

замість secret поставте ваш пароль.

Встановлюємо пароль адміну samba такий же як встановили в LDAP командою smbldap-passwd

Перевіряємо як працює samba для цього отримаємо список груп в домені

відповіддю повинно бути

Все настройка samba закінчена. Пробуємо додати віндового машину в домен. Якщо все ок продовжуємо налаштовувати далі.

Дамо групі Domain Admins права адміністратора домена для цього виконаємо наступне:

Відповіддю має бути Successfully granted rights.

Тепер будь-який користувач входить в цю групу матиме права адміністратора домена.

Додамо наш сервер в домен

Відповіддю має бути Joined domain EXAMPLE.

Перевірити доданий сервер в домен чи ні можна командою

Відповіддю має бути Join to # 'EXAMPLE #' is OK

Команди для адміністрування samba c допомогою smbldap-tools

Додавання користувача: smbldap-useradd -a -P username

Видалення користувача: smbldap-userdel username

Додавання групи: smbldap-groupadd -a groupname

Додавання користувача до групи: smbldap-groupmod -m username groupname

Видалення користувача з групи: smbldap-groupmod -x username groupname

Додавання комп'ютера в домен: smbldap-useradd -t 0 -w username

Встановити основну групу користувача: smbldap-usermod -g groupname username

Якщо для адміністрування буде використовуватися Gosa то цими командами користуватися не можна, так так користувачів і групи додані цими командами Gosa бачити не буде.

Створимо в каталозі /etc/apache2/conf.d файл gosa

Встановлюємо необхідні пакети для gosa

Заходимо в каталог з gosa і запускаємо update-gosa

Оновлюємо інтернаціоналізацію gosa

Заходимо на сервер через браузер

і приступаємо до конфігурації:

Тут вас попросять виконати безпосередньо на сервері команду приблизно такого змісту

команда вказана на сторінці.

Вибираємо мову інтерфейсу. На жаль переклад на російську ще не закінчений тому при виборі російської інтерфейс буде російсько-англійський

Тут виконується перевірка модулів РНР якщо є error їх необхідно виправити, до встановивши відсутні модулі, перш ніж продовжити подальше конфігурація.

Розділ ліцензії. Природно потрібно прийняти :)

Тут вказуються настройки для з'єднання з LDAP.

Місцезнаходження - пишемо що хочемо

TLS connection - yes

DN адміністратора - cn = admin

Пароль адміністратора - secret

Ставимо галочку на «Automatically append LDAP base to admin DN»

Use rfc2307bis compliant groups - no

Поле Інформація повинна бути підсвічена зеленим.

Перевірка схем LDAP.

Enable schema validation when logging in - yes Check status повинен бути Schema check succeeded в іншому випадку щось не так зі схемами і це необхідно усунути перш ніж продовжити настройку.

Налаштування Gosa етап перший. Тут я вкажу лише те що я змінив, всі інші настройки залишив як є.

People DN attribute - uid

People storage subtree - ou = Users

Group storage subtree - ou = Groups

Password encryption algorithm - md5

Налаштування Gosa етап другий.

Samba SID - S-1-5-21-2252343921-2211050572-3431777101

Workstation container - ou = Computers

Samba SID mapping - yes

Налаштування Gosa етап третій. Тут я все залишив як є

Тут Gosa перевіряє базу LDAP. Якщо є помилки або попередження їх необхідно виправити, благо Gosa може це виправити самостійно. Для цього необхідно натиснути на кнопку Migrate, а далі або ще раз Migrate або поставити галочки на потрібних елементах і Застосувати. Тут же вам необхідно буде створити адміністратора gosa.

В цьому етапі Gosa також запропонує мігрувати комп'ютери наявні в LDAP. як мінімум це буде ваш сервер який ви додали в домен в попередньому розділі, як максимум це будуть всі машини вже додані в домен. Мігрувати комп'ютери НЕ ПОТРІБНО залиште їх як є і продовжуйте настройку.

Тут я нічого не писав а просто натиснув Next

Конфігурація Gosa законченна. Викачуємо конфігураційний файл натисканням на кнопку Download configuration і поміщаємо його на сервер в папку / etc / gosa, після чого призначаємо йому права

Більш докладно про всі етапи налаштування можна почитати тут.

Тепер створимо додаткові каталоги, щоб в gosa не з'являвся попередження

Замість створення каталогів можна видалити плагін asterisk, але я не став на цьому морочитися.

Ну ось і все, настройка Gosa законченна.

Спробуємо створити користувача за допомогою Gosa.

Також необхідно відкрити адміністратора samba перейти на вкладку Samba і натиснути кнопку Застосувати. Це потрібно зробити для внесення необхідних параметрів для Gosa.

Якщо вам необхідно щоб після створення, видалення, зміни користувача виконувався який-небудь скрипт, то вам необхідно виконати наступне:

Додати в кінець файлу / etc / sudoers наступний рядок

У /etc/gosa/gosa.conf знаходимо комент нижче його йде блок в якому описані всі вкладки діалогу зі створення користувача, наприклад ви хочете щоб після створення користувача створювався його домашній каталог, тоді необхідно змінити

якщо необхідно щоб ще виконувалися скрипти при видаленні і зміні користувача то необхідно додати наступне

% Uid - це змінна підставляти своє ім'я користувача, /etc/gosa/scripts/createuserfolder.sh - це повний шлях до скрипта.

Скрипти повинні мати права 750 і бути доступні для групи www-data.

Якщо ж вам необхідно щоб скрипти виконувалися наприклад тільки при створенні samba акаунта користувача тоді замість рядка

Якщо ж хочемо виконувати скрипти після створення, видалення, зміни групи то шукаємо комент і змінюємо рядок

% Cn - це змінна надається назва групи

Ну ось власне і все. Сподіваюся кому небудь ця інформація стане в нагоді

P.S. Gosa досить потужний інструмент для адміністрування, трохи в ньому покопавшись я виявив що в Gosa реалізована можливість адміністрування поштового сервера Postfix. Так, що я вирішив перевести свій поштовик на LDAP і адмініструвати його через Gosa. Про те що у мене вийшло я напишу в наступній статті

Обговорити цю статтю можна на форумі.