Статті / Domain Controller на базі Ubuntu 8.04.2 LTS, Samba, OpenLDAP

Domain Controller на базі Ubuntu 8.04.2 LTS, Samba, OpenLDAP

Встановлення Domain Controller на базі Ubuntu 8.04.2 LTS, Samba, OpenLDAP

PDC on Ubunru Samba with 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.  Джерела

http://www.howtoforge.com/

http://ubuntuforums.org/

http://forum.ubuntu.ru/

https://help.ubuntu.com/

12. Обов'язково!

Прочитайте текст внизу сторінки.

Успіхів!