І так, є свіжовстановленому 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. Про те що у мене вийшло я напишу в наступній статті
Обговорити цю статтю можна на форумі.