Конфигурирование Самбы для авторизации в домене AD

Аватар пользователя VR__

Настройки в данной статье не претендуют на абсолютно верные. Настройка производилась после прочтения кучи разнообразных манов и факов.
На данный момент настройка работает в ASP 11.2, Fedora 6

При установке ничего не перекомпилировалось, использовались пакеты, идущие в дистрибутивах.

Название домена заменено, использовано DOMAIN.RU
Сетка использует поле 10.12.0.0/255.255.255.0

Итак:


Конфигурирование Самбы для авторизации в домене AD
Керберос

Для аутентификации в АД используется протокол керберос, настраивается для того что бы получить билет керберос.

В каталоге /etc находится файл krb5.conf, конфигурационный файл службы керберос,
Пример моего krb5.conf:

(Обязательно учитывается регистр букв)

[libdefaults]
     
 	default_realm = DOMAIN.RU	<- здесь нужно указать полное имя домена
 	kdc_timesync = 1
 	forwardable = true
  	proxiable = true
	dns_lookup_realm = true
	dns_lookup_kdc = true
[realms]
	DOMAIN.RU = {			<-Здесь параметры Вашего домена : Его имя,
	kdc = main.domain.ru			<- PDC 
	kdc = main.domain.ru			<- SDC и т.д
	admin_server = main.domain.ru
	kdc = main.domain.ru
  	}

[login]
	krb4_convert = false
	krb4_get_tickets = false

[domain_realm]
	domain.ru = DOMAIN.RU
	.domain.ru = DOMAIN.RU

После чего получам билет
Что бы получить билет нужно выполнить команду kinit используя логин и пароль администратора домена AD

kinit admin@DOMAIN.RU

после чего ввести пароль админа.
Для проверки билета ввести

klist

вывод программы должен быть наподобие:

Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@DOMAIN.RU

Valid starting Expires Service principal
01/11/07 13:19:22 01/12/07 23:19:22 krbtgt/DOMAIN.RU@DOMAIN.RU
renew until 01/11/07 13:19:22

Длина жизни билета зависит от ваших настроек безопастности, по прохождении этого времени следует обновить билет, используя команду kinit
Все на этом конфиг кербероса можно закончить.
Подробнее man krb5.conf

Самба

Настройка самбы производиться конфигурированием файла smb.conf
У меня он находился в каталоге /etc/samba/

Пример моего файла smb.conf:

(Опять же нужно учитывать регистр букв)

[global]
	log file = /var/log/samba/log.%m
	socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
	null passwords = yes
	interfaces = eth0
	hosts allow = 10.12.0. 127.0.0.1
	encrypt passwords = yes
	idmap uid = 10000-20000
	idmap gid = 10000-20000
	auth methods = winbind
	winbind enum groups = yes
	winbind enum users = yes
	winbind use default domain = yes
	name resolve order = hosts wins bcast lmhosts
	case sensitive = no
	dns proxy = no
	netbios name = LINUX
	server string = My Linux
	password server = main.domain.ru
	realm = DOMAIN.RU
	client use spnego = yes
	client signing = yes
	local master = no
	domain master = no
	preferred master = no
	workgroup = DOMAIN
	debug level = 2
	security = ads
	dos charset = 866
	unix charset = UTF-8
	max log size = 50
	os level = 0
	wins server = 10.12.0.5
	template shell = /bin/false
[share]
	comment = Share
	path = /home/user/share
	browseable = yes

Некоторые параметры подробнее.

Полный путь до файла куда будет вестись лог:
log file = /var/log/samba/log.%m

Разрешаем пустые пароли.:
null passwords = yes

Интерфейс на котором будет крутиться самба:
interfaces = eth0

Сети, с которых будет возможен доступ на компьютер:
hosts allow = 10.12.0. 127.0.0.1

Шифрование паролей включено:
encrypt passwords = yes

Метод аутентификации, используем winbind:
auth methods = winbind

Имя компьютера которое будет видно для виндовых машин, и прописано в Active Directory:
netbios name = LINUX

Подпись к компьютеру которая будет видна для виндовых машин:
server string = My Linux

Сервер, на котором поднят AD:
password server = main.domain.ru

Полное и короткое имя домена.
Например, если домен DOMAIN.WORK.RU, то короткое имя будет DOMAIN и т.п.

realm = DOMAIN.RU
workgroup = DOMAIN

Метод аутентификации AD:
security = ads

Кодировки виндовс и линукс соотвественно, указываются для корректного отображения русских названий:
dos charset = 866
unix charset = UTF-8

Если нужен WINS:
wins server = 10.12.0.5

Расшаренная папка:
[share]
comment = Share
path = /home/user/share
browseable = yes

Соответственно в квадратных скобках указывается название шары, как она будет видна с Windows-крмпьютеров.
Вторым параметром указывается комментарии, третим – путь до папки локально, четвертый параметр указывает что папка видна.

Дополнительно можно разрешить либо запретить запись в папку, так же разрешить определенным пользователям, указав параметры:
writable = yes <- разрешаем на запись
only guest = yes <- только гостевой доступ
valid users = fred <- юзеры которым можно выполнять указанные функции.

Для проверки можно запустить утилиту testparm - это утилита для проверки файла smb.conf

Приравниваем локального пользователя линукс с пользователем самба.
Для этого в каталоге /etc/samba/ создаем файл smbusers, в который пишем нечто вроде этого:
имя_в_линукс = имя_пользователя_самба1 имя_пользователя_самба2 ...
user_linux = user_windows
admin_linux = admin_windows
и т.д.

Если все правильно, запускаем службы smb и webdmin командой, из под рута:
/etc/rc.d/init.d/smb start
/etc/rc.dinit.d/winbind start

Компьютер нужно ввести в AD командами:

net ads join -U admin@DOMEN.RU

admin@DOMEN.RU's password:
Using short domain name -- DOMEN
Joined 'LINUX' to realm 'DOMEN.RU'

Проверка работоспособности

Для теста можно выполнить следующие действия.

Проверить работоспособность winbind:
wbinfo -p
Ping to winbindd succeeded on fd 4
^ так должно быть

Проверить секрет:
wbinfo -t
checking the trust secret via RPC calls succeeded
^ так должно быть

Получить список пользователей с AD:
wbinfo -u
- тут должны быть юзеры домена

Чтобы посмотреть шары на компютере в локальной сети:
smbclient -k -L server (или любой другой компютер домен)

Ответ должен содержать что-то вроде этого:

OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Удаленный IPC
        Share         Disk
        ADMIN$          Disk      Удаленный Admin
        C$              Disk      Стандартный общий ресурс
OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

На этом заканчиваю, всем спасибо за внимание.


Your rating: Нет Average: 6.9 (11 votes)

Комментарии

Аватар пользователя Гость

Re: Конфигурирование Самбы для авторизации в домене AD

Сам я могу входить в сеть Win2000(домен ynp, контроллер server1). Теперь хочу, чтобы и к моим расшаренным ресурсам имели доступ Win2000-пользователи.
krb5.conf изменить не смог (вернее, все меняется и сохраняется, только потом на экран выводится что-то вроде
>ICE default IO error handler doing an exit(), pid = 19453, errno = 0
Меняю smb.conf. Получается такое:
[global]
workgroup = ynp
netbios name = LINUX
server string = linux
hosts allow = 192.168.10. 127.0.0.1
security = ads
password server = server1.ynp
encrypt passwords = no
guest ok = yes
guest account = main
username map = /etc/samba/smbusers
[internet]
path = /home/main/internet
browseable = yes
valid users = main
[homes]
comment = Home Directories
browseable = no
writeable = yes
в /etc/samba/smbusers добавлен пользователь (входит в сеть с именем glecon с компьютера econom)
main = glecon
Результат-в сети Win2000 появился компьютер linux. Это хоорошо, а вот при попытке пользователя glecon войти в это компьютер, сообщается:
>Нет доступа к \\Linux
>Данная учетная запись не может быть использована для входа в сеть с этой станции
Чего ему надо?

RSS-материал