Ubuntu 10.10 Samba Server Integrated With Active Directory

Posted by

В данном примеры я покажу как настроить Samba сервер под операционной системой в интеграции совместо с Active Directory (polygon.local)  и как использовать WinBind.

IP-адрес домен контроллера: 10.0.2.15

Имя домен контроллера: dc1.polygon.local

IP-адрес рабочей станции с операционной системой Ubuntu 10.10 – 10.0.2.16

ekzorchik@ekv:~$ sudo apt-get remove network-manager

ekzorchik@ekv:~$ sudo nano /etc/network/interfaces

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 10.0.2.16

netmask 255.255.255.0

ekzorchik@ekv:~$ cat /etc/resolv.conf

nameserver 10.0.2.15

domain polygon.local

search polygon.local

Исходные данные:

домен у нас установлен — это polygon.local

IP адрес домен контроллера — 10.0.2.15

Ubuntu Server 10.10 установлен

Обновляем репозитарии Ubuntu 10.10

ekzorchik@ekv:~$ sudo apt-get update

Устанавливаем в систему samba, krb5-user и winbind:

ekzorchik@ekv:~$ sudo apt-get install samba krb5-user winbind

На этапе установке пакетом предлагается предопределить настройки Kerberos 5 — ничего не вводим и нажимаем OK:

На этапе установке ПО, kerberos не настраиваем.

 

update-alternatives: используется `/usr/bin/smbstatus.samba3' для предоставления `/usr/bin/smbstatus' (smbstatus) в автоматический режим.

Generating /etc/default/samba...

Importing account for nobody...ok

Importing account for ekzorchik...ok

smbd start/running, process 2226

start: Job failed to start

Настраивается пакет winbind (2:3.5.4~dfsg-1ubuntu8.5) ...

* Starting the Winbind daemon winbind [ OK ]

Обрабатываются триггеры для libc-bin ...

ldconfig deferred processing now taking place

Создаем резервную копию конфигиругационного файла krb5.conf:

ekzorchik@ekv:~$ sudo cp /etc/krb5.conf /etc/krb5.conf.backup

Редактируем конфигурационный файл krb5.conf:

ekzorchik@ekv:~$ sudo nano /etc/krb5.conf

мой конфиг:

[libdefaults]

default_realm = POLYGON.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.

krb4_config = /etc/krb.conf

krb4_realms = /etc/krb.realms

kdc_timesync = 1

ccache_type = 4

forwardable = true

proxiable = true

# The following encryption type specification will be used by MIT Kerberos

# if uncommented. In general, the defaults in the MIT Kerberos code are

# correct and overriding these specifications only serves to disable new

# encryption types as they are added, creating interoperability problems.

#

# Thie only time when you might need to uncomment these lines and change

# the enctypes is if you have local software that will break on ticket

# caches containing ticket encryption types it doesn't know about (such as

# old versions of Sun Java).

# default_tgs_enctypes = des3-hmac-sha1

# default_tkt_enctypes = des3-hmac-sha1

# permitted_enctypes = des3-hmac-sha1

# The following libdefaults parameters are only for Heimdal Kerberos.

v4_instance_resolve = false

v4_name_convert = {

host = {

rcmd = host

ftp = ftp

}

plain = {

something = something-else

}

}

fcc-mit-ticketflags = true

[realms]

POLYGON.LOCAL = {

kdc = 10.0.2.15:88

admin_server = dc1.polygon.local

default_domain = polygon.local

}

[domain_realm]

.polygon.local = POLYGON.LOCAL

[login]

krb4_convert = true

krb4_get_tickets = false

Тестируем авторизацию Kerberos:

ekzorchik@ekv:~$ sudo kinit Administrator@POLYGON.LOCAL

kinit: Improper format of Kerberos configuration file while initializing Kerberos 5 library (Неправильный формат файла конфигурации Kerberos при инициализации библиотеки Kerberos 5 )

ekzorchik@ekv:~$ sudo kinit Administrator@POLYGON.LOCAL

kinit: Cannot resolve network address for KDC in realm "POLYGON.LOCAL" while getting initial credentials

Для решения нужно в файле /etc/krb5.conf в строке kdc = dc1.polygon.local, прописать вместо имени сервера его IP — адресс: kdc = 10.0.2.15:88

После запускаем инициализацию домена:

ekzorchik@ekv:~$ sudo kinit Administrator@POLYGON.LOCAL

Password for Administrator@POLYGON.LOCAL:

Password expired. You must change it now.

Enter new password:

Enter it again:

kinit: Cannot resolve network address for KDC in realm "POLYGON.LOCAL" while getting initial credentials

После внесению изменений в /etc/hosts:

ekzorchik@ekv:~$ sudo nano /etc/hosts

10.0.2.16 ekv # Added by NetworkManager

10.0.2.16 dc1

10.0.2.16 dc1.polygon.local

Инициализируем подключение к Polygon.local:

ekzorchik@ekv:~$ sudo kinit Administrator@POLYGON.LOCAL

Password for Administrator@POLYGON.LOCAL:

Password expired. You must change it now.

Enter new password: 712mbddr@

Enter it again: 712mbddr@

Password change rejected: . Please try again.

Вводим рабочие станции/сервера в домен вот с этим паролем:

Enter new password: 812mbddr@

Enter it again: 812mbddr@

ekzorchik@ekv:~$ sudo kinit Administrator@POLYGON.LOCAL

Password for Administrator@POLYGON.LOCAL: ввожу измененный пароль 812mbddr@

Как видим token я получил

ekzorchik@ekv:~$ sudo klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: Administrator@POLYGON.LOCAL

Valid starting Expires Service principal

08/16/12 11:33:55 08/16/12 21:33:58 krbtgt/POLYGON.LOCAL@POLYGON.LOCAL

renew until 08/17/12 11:33:55

 

Настраиваем SAMBA:

Создаем резервную копию конфигиругационного файла smb.conf:

ekzorchik@ekv:~$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Редактируем конфигурационный файл smb.conf:

ekzorchik@ekv:~$ sudo nano /etc/samba/smb.conf

удаляем все из файла и приводим его к виду указанному ниже

[global]

workgroup = POLYGON

realm = POLYGON.LOCAL

netbios name = ekv (имя локальной станции Ubuntu)

server string = %h server (Samba %v, Ubuntu)

dns proxy = no

log file = /var/log/samba/log.%m

max log size = 1000

syslog = 0

panic action = /usr/share/samba/panic-action %d

security = ADS

domain master = no

idmap uid = 10000-20000

idmap gid = 10000-20000

template shell = /bin/bash

template homedir = /home/%D/%U

winbind enum groups = yes

winbind enum users = yes

winbind use default domain = yes

winbind separator = +

usershare allow guests = yes

Проверяем конфигурационный файл на предмет корректности:

ekzorchik@ekv:~$ sudo testparm.samba3

Load smb config files from /etc/samba/smb.conf

rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)

Loaded services file OK.

'winbind separator = +' might cause problems with group membership.

Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

[global]

workgroup = POLYGON

realm = POLYGON.LOCAL

server string = %h server (Samba %v, Ubuntu)

security = ADS

syslog = 0

log file = /var/log/samba/log.%m

max log size = 1000

domain master = No

dns proxy = No

usershare allow guests = Yes

panic action = /usr/share/samba/panic-action %d

idmap uid = 10000-20000

idmap gid = 10000-20000

template shell = /bin/bash

winbind separator = +

winbind enum users = Yes

winbind enum groups = Yes

winbind use default domain = Yes

Перезапускаем winbind сервис и Samba сервер:

Once the Samba configuration test has finished, then stop and start the winbind service and restart the Samba service:

ekzorchik@ekv:~$ sudo /etc/init.d/winbind stop

Stopping the Winbind daemon winbind [ OK ]

ekzorchik@ekv:~$ sudo service smbd restart

smbd start/running, process 2678

ekzorchik@ekv:~$ sudo /etc/init.d/winbind start

* Starting the Winbind daemon winbind [ OK ]

Добавляем систему Ubuntu 10.10 в Active Directory:

Понадобится учетная запись с правом добавления компьютера в домен, например учетка администратора домена POLYGON.LOCAL\ekzorchik.

ekzorchik@ekv:~$ sudo net.samba3 ads join -U ekzorchik -S DC1.POLYGON.LOCAL

Enter ekzorchik's password:

Using short domain name -- POLYGON

Joined 'EKV' to realm 'polygon.local'

[2012/08/16 13:14:34.749308, 0] utils/net_ads.c:1147(net_update_dns_internal)

net_update_dns_internal: Failed to connect to our DC!

DNS update failed!

Странно вроде выдается ошибка, но в Active Directory polygon.local создается запись о заведенном компьютере:

C:\Users\ekzorchik>dsquery computer -name ekv

"CN=ekv,CN=Computers,DC=polygon,DC=local"

Создаем резервную копию:

ekzorchik@ekv:~$ sudo cp /etc/nsswitch.conf /etc/nsswitch.conf.backup

Настроим специальный демон, служащий для связи локальной системы управления пользователями и группами Linux с сервером Active Directory:

nsswitch.conf, задает источники информации об учетных записях. Учетные записи у нас теперь будут на контроллере домена, а источником информации о них будет служить winbind. Редактируем:

ekzorchik@ekv:~$ sudo nano /etc/nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind
hosts:          files dns
networks:       files dns
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis

После успешного внесения всех настроек перезагружаем samba и winbind сервисы:

ekzorchik@ekv:~$ sudo /etc/init.d/winbind stop

Stopping the Winbind daemon winbind [ OK ]

ekzorchik@ekv:~$ sudo service smbd restart

smbd start/running, process 2678

ekzorchik@ekv:~$ sudo /etc/init.d/winbind start

* Starting the Winbind daemon winbind [ OK ]

Убеждаемся, что winbind работает (показать пользователей домена):

ekzorchik@ekv:~$ sudo wbinfo -u

EKV+nobody

EKV+ekzorchik

administrator

guest

keiz

krbtgt

ekzorchik

dctest

test

Убеждаемся что winbind работает (показать группы домена):

ekzorchik@ekv:~$ sudo wbinfo -g

domain computers

domain controllers

schema admins

enterprise admins

cert publishers

domain admins

domain users

domain guests

group policy creator owners

ras and ias servers

allowed rodc password replication group

denied rodc password replication group

read-only domain controllers

enterprise read-only domain controllers

dnsadmins

dnsupdateproxy

dhcp users

dhcp administrators

Теперь, для проверки, подключился ли наш winbind к контроллеру и функционирует ли нормально, запустим:

ekzorchik@ekv:~$ sudo getent passwd | grep -E "POLYGON"

В результате мы должны увидеть наши локальные учетки и длинный список наших доменных учеток.

administrator:*:10001:10005:Administrator:/home/POLYGON/administrator:/bin/bash
guest:*:10002:10006:Guest:/home/POLYGON/guest:/bin/bash
keiz:*:10000:10005:keiz:/home/POLYGON/keiz:/bin/bash
krbtgt:*:10003:10005:krbtgt:/home/POLYGON/krbtgt:/bin/bash
ekzorchik:*:10004:10005:ekzorchik:/home/POLYGON/ekzorchik:/bin/bash
dctest:*:10005:10005:dctest:/home/POLYGON/dctest:/bin/bash
test:*:10006:10005:test:/home/POLYGON/test:/bin/bash

Отображаем информация о домен контроллер:

ekzorchik@ekv:~$ sudo net.samba3 ads info

LDAP server: 10.0.2.15

LDAP server name: dc1.polygon.local

Realm: POLYGON.LOCAL

Bind Path: dc=POLYGON,dc=LOCAL

LDAP port: 389

Server time: Чт., 16 авг. 2012 13:50:06 MSD

KDC server: 10.0.2.15

Server time offset: 0

Ну вот собственно и всё, я показал и разобрал, как напримере завести систему с операционной системой Ubuntu 10.10 в домен и авторизовать ее там.

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

пять × 2 =