Встановлення Domain Controller на базі Ubuntu 8.04.2 LTS, Samba, OpenLDAP
Для початку, потрібно встановити базову систему. Я зупинився
на Ubuntu 8.04.2 LTS. До цього варто підходити досить серйозно, адже
такі речі як сервер потрібно встаноаити раз по мірі необхідності
доконфігуровавути. А саме правельніше настроїти і забути ;-)
Дану шпаргалку писав для себе, щоб вразі необхідності можна було згадати, але також хочу поділитись зі всіма, оскільки сам перерив багато сайтів і з першого разу разу ніколи не получається встановити. Часто вилізають різні "підводні камні". Пишу по свіжій пам'яті, тому все малоб і у Вас запрацювати з першого разу.
Вважаємо, що базова система у Вас вже стоїть. Для початку
потрібно оприділитись наступними параметрами будучого домену.
Назва комп'ютера: RADAR
Повне доменне ім'я: radar.akn.network
Назва каталогу LDAP: akn.network
Пароль: ******** (Постарайтесь собі придумати якийсь не
простий пароль)
Надалі в описі буду вживати саме ці параметри, звісно що в
себе ви будете підставляти свої значення.
Всі документації, якими я користувався, пропонують задати пароль для користувача root. Як на мене, безбечніше буде не чіпати і залишити все як є.
В більшості випадків сервер - це сервер, а не робоча машина. Тому поставимо OpenSSH сурвер, ы настроювати будем віддалено (хоча дивіться самі). Всі наступні команди потрібно виконувати від користувача root
sudo -s
1. Встановлюємо OpenSSH
сервер
apt-get install openssh-server
Для приємнішого користування можна поставити Midnight
Commander.
apt-get install mc
2. Встановлюємо OpenLDAP
apt-get install slapd ldap-utils migrationtools
Після встановлення система запрропонує Вам ввести пароль
адміністратора. Пишите свій пароль.
Наступним кроком переконфігуровуємо OpenLDAP
dpkg-reconfigure slapd
На питання відповідайте наступним чином:
No DNS domain name: akn.network Name of your organization: akn.network Admin password: ******** Confirm password: ******** BDB No Yes No
Після цих змін потрібно перезавантажити LDAP
/etc/init.d/slapd restart
3. Встановлюємо Samba сервер
apt-get install samba smbldap-tools smbclient samba-doc
4. Налаштування OpenLDAP для
використання у зв'язці з Samba
Для цього копіюємо samba.schema в директорію /etc/ldap/schema/
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/ gzip -d /etc/ldap/schema/samba.schema.gz
Далі редагуємо файл /etc/ldap/slapd.conf
nano /etc/ldap/slapd.conf
Віддаю перевагу редактору nano. vi як на мене складненький. Ви ж користуйтесь тим, чим Вам до вподоби.
Після тих схем, які там є потрібно добавити наступні:
include /etc/ldap/schema/samba.schema include /etc/ldap/schema/misc.schema
Шукаємо лінійку яка починається access to attrs і змініюємо її
на
access to
attrs=userPassword,sambaNTPassword,sambaLMPassword
Зберігаємо (В nano тиснемо Ctrl+O Ctrl+X). Після чого перезавантажуємо LDAP
/etc/init.d/slapd restart
5. Налаштування Samba
Заходимо в папку з конфігураційними файлами Samba. Робимо
резервну копію і починаємо редагувати.
cd /etc/samba/ cp smb.conf smb.conf_original nano smb.conf
Змінюємо наступні параметри (на свої):
workgroup = AKN security = user passdb backend = ldapsam:ldap://localhost/ obey pam restrictions = no
Далі потрібно вставити натупні рядки, але зробити зміни в
перших двох рядках
####################################################################### # Початок # Скопіюйте та вставте після рядка "OBEY PAM RESTRICTIONS = NO" # Оригінал даної статті можна знайти на <a href="http://brun.if.ua/<br /> #######################################################################<br /> #<br /> #" title="http://brun.if.ua/<br /> #######################################################################<br /> #<br /> #">http://brun.if.ua/<br /> #####################################################...</a> Begin: Custom LDAP Entries # ldap admin dn = cn=admin,dc=akn,dc=network ldap suffix = dc=akn, dc=network ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Users ; Do ldap passwd sync ldap passwd sync = Yes passwd program = /usr/sbin/smbldap-passwd %u passwd chat = *New*password* %nn *Retype*new*password* %nn *all*authentication*tokens*updated* add user script = /usr/sbin/smbldap-useradd -m "%u" ldap delete dn = Yes delete user script = /usr/sbin/smbldap-userdel "%u" add machine script = /usr/sbin/smbldap-useradd -w "%u" add group script = /usr/sbin/smbldap-groupadd -p "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" domain logons = yes ####################################################################### # Кінець:Custom LDAP Entries #######################################################################
Всі документації, які я читав, рекомендують закоментувати рядок
invalid users = root
Я ж не рекомендую. Залиште без змін. У цілях безпеки.
Шукаємо змінну logon path. Вона закоментована. Всталяємо
наступне
logon path =
Розкоментовуємо netlogon та profiles і параметри які до них
відносяться.
Перевіряємо конфігкраційний файл на ймовірність помилок
testparm
Якщо не викинуло помилок, тоді рухаємось далі і
перезаванажуємо Samba.
/etc/init.d/samba restart
Сворюємо пароль для користувача admin
smbpasswd -w ********
6. Налаштовуємо пакет
SMBLDAP-Tolols
Копіюємо приклади і заходимо в
папку /etc/smbldap-tools/
cd /usr/share/doc/smbldap-tools/examples/ cp smbldap_bind.conf /etc/smbldap-tools/ cp smbldap.conf.gz /etc/smbldap-tools/ gzip -d /etc/smbldap-tools/smbldap.conf.gz cd /etc/smbldap-tools/
Получимо SID нашого компёютера, який нам знадобиться в
настуному кроці
net getlocalsid
В мене вийшло наступне:
S-1-5-21-3915248652-937295037-2772881030
Копіюємо його і починаємо редагувати smbldap.conf
nano smbldap.conf
Змінюємо SID на те значення, яке ви отримали в попередньому кроці. Далі шукаємо наступні параметри і змінюєте на свої значення
sambaDomain="AKN" ldapTLS="0" suffix="dc=akn,dc=network" userLoginShell="/bin/false" userHome="/home/samba/profiles/%U" userSmbHome= userProfile= userHomeDrive= userScript= mailDomain="akn.network"
Зберігаємось. І створюємо наступні директорії:
mkdir /home/samba/ mkdir /home/samba/profiles mkdir /home/samba/netlogon
Редагуємо smbldap_bind.conf
nano smbldap_bind.conf slaveDN="cn=admin,dc=akn,dc=network" slavePw="***********" masterDN="cn=admin,dc=akn,dc=network" masterPw="***********"
Зберігаємо.
Не параноя, але так надійніше. Забороняємо всім і вся дивитись на наші паролі, крім системи звичайно ;-)
chmod 0600 /etc/smbldap-tools/smbldap_bind.conf chmod 0644 /etc/smbldap-tools/smbldap.conf
7. Заповнюємо наш каталог
LDAP
smbldap-populate -u 30000 -g 30000
Водимо пароль admin'а
*********
Перевіряємо інформацію каталогу
ldapsearch -x -b dc=akn,dc=network | less
Додаємо користувачів до системи. Задаємо пароль.
smbldap-useradd -a -m -M brun -c "Igor Bronovsky" brun smbldap-passwd brun
-a вказує, що користувач є користувачем Windows (інакше тільки користувачем Posix)
-m створює домашню дтректорію
-M задає email користувача @akn.network
-c додає «Повне і'мя користувача». Пишу завжди на латині.
Через phpLDAPAdmin завжди можна поправити.
Далі даємо користувачу права доменного адміністратора. В Samba прав доменного адміна не достатньо, для того чоб він мав право вносити комп'ютери в домен. Тому треба додати користувача в групу локальних адміністраторів домена.
smbldap-groupmod -m brun "Domain Admins" smbldap-groupmod -m brun Administrators
8. Налаштування
аутентифікації LDAP
apt-get install auth-client-config libpam-ldap libnss-ldap
На питання відповідаємо наступним чином:
Yes ldapi://127.0.0.1 dc=akn,dc=network 3 Yes No cn=admin.dc=akn.dc=network ******** #наш пароль =)
Редагуємо /etc/ldap.conf
nano /etc/ldap.conf
Змінюємо наступні значення
host 127.0.0.1 base dc=akn,dc=network uri ldap://127.0.0.1/ rootbinddn cn=admin,dc=akn,dc=network bind_policy soft
Зберігаємо та копіюємо файл /etc/ldap.conf в
/etc/ldap/ldap.conf, але перед тим зробимо копію /etc/ldap/ldap.conf
cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf_original cp /etc/ldap.conf /etc/ldap/ldap.conf
Створюємо новий файл
/etc/auth-client-config/profile.d/open_ldap
nano /etc/auth-client-config/profile.d/open_ldap
Вставляємо наступне
[open_ldap] nss_passwd=passwd: compat ldap nss_group=group: compat ldap nss_shadow=shadow: compat ldap pam_auth=auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so pam_account=account sufficient pam_unix.so account sufficient pam_ldap.so account required pam_deny.so pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok password sufficient pam_ldap.so use_first_pass password required pam_deny.so pam_session=session required pam_limits.so session required pam_mkhomedir.so skel=/etc/skel/ session required pam_unix.so session optional pam_ldap.so
Робимо копію /etc/pam.d/ файлів
cd /etc/pam.d/ mkdir backup cp * backup/
Включаємо аутентифікацію LDAP
auth-client-config -a -p open_ldap
9. Завершення
Тепер, якщо все відбулось без помилок, а якщо й були, то варто повторити кроки по новому і не копіювати текст, а набирати. Перезавантажуємось.
reboot
10. Основні команди
Додати користувача
smbldap-useradd -a -m -M brun -c "Igor Bronovsky" brun
Задати пароль користувачу
smbldap-passwd brun
Змінити групу користувачу
smbldap-groupmod -m brun "Domain Admins" smbldap-groupmod -m brun Administrators
Змінити shell користувачу для Linux машин
smbldap-usermod -s /bin/bash brun
11. Джерела
12. Обов'язково!
Прочитайте текст внизу сторінки.
Успіхів!