Дополнительные серверы и member-сервисы в домене ALT Linux

Материал из ALT Linux Wiki
Версия от 16:34, 2 июля 2015; 37.190.59.51 (обсуждение)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Демонстрационный стенд

Хост-машина с характеристиками не ниже:

  • Процессорных ядер 2, лучше 4. Рекомендуется процессор не хуже Intel Core i5
  • Оперативная память не менее 4 Гб, рекомендуется 8 Гб
  • Свободное дисковое пространство от 100 Гб

Виртуализатор VirtualBox. Для демонстрации потребуется не менее трёх виртуальных машин:

  1. Домен - первый сервер в сети, осуществляющий функции контроллера домена
  2. Клиент - рабочая станция, клиентский компьютер
  3. Сервер - сервер, не являющийся контроллером домена. Компьютер, предоставляющий свои ресурсы Клиенту с аутентификацией последнего на Домене.

Для установки всех виртуальных машин используется один и тот же установочный образ altlinux-7.0.4-centaurus-i586-ru-install-dvd5.iso

N.B. По завершении установки не забыть отключить дистрибутив от виртуального привода. Само по себе не мешает, но может создать проблему в случае переноса готового образа на другой хост.

Домен

  • Процессор класса i686 — один;
  • Оперативная память 1Гб;
  • Виртуальный диск 20 Гб, динамический;
  • Виртуальные сетевые интерфейсы — два. Адаптер 1 тип подключения NAT, с пробросом портов хоста 8081 и 2201 на 8080 (alterator) и 22 (ssh) гостя соответственно. Адаптер 2 тип подключения внутренняя сеть `intnet`.

Тип установки "Сервер", установка по умолчанию. Имя хоста dcserver, пароль суперпользователя пусть будет 123, системный пользователь admin тоже с паролем 123. Cетевому адаптеру в intnet необходим статический IP, в нашем случае 10.10.10.1/24. Если всё сделано правильно, интерфейс Alterator виртуальной машины должен быть доступен с хоста по адресу https://localhost:8081. Через меню Система-Домен настроим поддержку домена с именем (например) test.lab как описано в документации. Далее, через меню Пользователи, создадим в домене test.lab тестового пользователя user c паролем 123.

Клиент

  • Процессор класса i686 — один;
  • Оперативная память 1Гб;
  • Виртуальный диск 40 Гб, динамический;
  • Виртуальный сетевой интерфейс Адаптер 1 тип подключения внутренняя сеть `intnet`.

Тип установки "Рабочая станция", установка по умолчанию. Имя хоста client, пароль суперпользователя 123, системный пользователь admin с паролем 123. По завершении установки и перезагрузки, зайти системным пользователем admin и включить client в домен test.lab

Если всё сделано правильно, доменный пользователь user может открыть сеанс работы (войти с паролем 123) на рабочей станции client.

Сервер

  • Процессор класса i686 — один;
  • Оперативная память 1Гб;
  • Виртуальный диск 40 Гб, динамический;
  • Виртуальные сетевые интерфейсы — два. Адаптер 1 тип подключения NAT, с пробросом портов хоста 8082 и 2202 на 8080 (alterator) и 22 (ssh) гостя соответственно. Адаптер 2 тип подключения внутренняя сеть `intnet`.

Тип установки "Сервер", установка по умолчанию. Имя хоста server, пароль суперпользователя 123, системный пользователь admin тоже с паролем 123. Сетевому адаптеру intnet назначим статический IP 10.10.10.2/24. Если всё сделано правильно, интерфейс Alterator виртуальной машины должен быть доступен с хоста по адресу https://localhost:8082 С машиной server можно соединиться по ssh с хоста командой

$ ssh admin@localhost -p 2202

Файловый сервер Samba

Цель демонстрации - показать, как файловые ресурсы сервера server могут быть доступны пользователю user домена test.lab, открывшему сеанс на рабочей станции client. Для начала убедимся, что server доступен по сети:

[user@client ~]$ ping 10.10.10.2
PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_req=1 ttl=64 time=0.975 ms
[user@client ~]$ host server
Host server not found: 3(NXDOMAIN)

Чтобы иметь возможность обращаться к серверу по имени, его следует зарегистрировать в зоне test.lab на DNS сервере.

Masterclass-2-1.png

Настройка аутентификации пользователей

Для начала необходимо обеспечить опознание доменных пользователей сервером. Проще и надёжнее всего это сделать через web-интерфейс Alterator.

Masterclass-2-2.png

После перезагрузки getent passwd на сервере должен показать, в числе прочих, также и доменного пользователя user.

Настройка smb.conf

По умолчанию сервис Samba на server не включен и не настроен, для начала его следует просто включить

[root@server ~]# service smb status
smbd is stopped
[root@server ~]# chkconfig smb on
[root@server ~]# service smb start
Starting SMB services: Starting smbd service:                           [ DONE ]
[root@server ~]# service smb status
smbd is running

Практически к серверу уже теперь можно обратиться по адресу smb://server, однако на нём пока не настроено ни одного ресурса. Сохраним оригинальный smb.conf для справки, а за основу конфигурации возьмём smb.conf c контроллера домена dcserver.

[root@server samba]# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

а за основу конфигурации возьмём smb.conf c контроллера домена dcserver.

[root@dcserver samba]# cat smb.conf 
[global]
realm = TEST.LAB
server string = Samba server on %h (v. %v)
security = user
dedicated keytab file = /etc/krb5.keytab
kerberos method = dedicated keytab
log file = /var/log/samba/log.%m
max log size = 50
printcap name = cups
dns proxy = No
use sendfile = Yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=ldaproot,dc=test,dc=lab
ldap suffix = dc=test,dc=lab
ldap group suffix = ou=Group
ldap user suffix = ou=People
workgroup = TEST.LAB
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
add user script = /usr/sbin/ldap-useradd "%u"
delete user script = /usr/sbin/ldap-userdel "%u"
add group script = /usr/sbin/ldap-groupadd "%g"
delete group script = /usr/sbin/ldap-groupdel "%g"
add user to group script = /usr/sbin/ldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/ldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/ldap-usermod -g "%g" "%u"
add machine script = /usr/sbin/ldap-useradd -w -i "%u"
ldap machine suffix = ou=Computers
encrypt passwords = yes
ldap delete dn = no
logon script = netlogon.bat
[share]
comment = Commonplace
path = /srv/share
read only = No

Кое-что здесь требуется изменить. Прежде всего,

passdb backend = ldapsam:ldaps://10.10.10.1/

поскольку на контроллере ALT-домена LDAP работает только для 127.0.0.1 (loopback), по сети только LDAPS. А отсюда же следует

ldap ssl = no

чтобы Samba не делала бессмысленной попытки StartTLS поверх соединения LDAPS. Поправим параметры

local master = no
preferred master = no
domain master = no

поскольку мастер в домене уже есть, на (контроллере) dcserver. И обязательно задать пароль служебного пользователя ldaproot, для авторизации в службе LDAP. Пароль можно узнать на dcserver:

[root@dcserver openldap]# cat /etc/openldap/slapd-test.lab.conf | grep rootpw
rootpw euhou7thieyah8ch

Если пароль не задать или задать неправильно, сервис будет валиться с ошибкой [root@server samba]# cat /var/log/samba/log.smbd | tail pdb backend ldapsam:ldaps://10.10.10.1/ did not correctly init (error was NT_STATUS_NO_MEMORY) Пароль euhou7thieyah8ch это случайный пример и в вашем случае он будет, разумеется, совсем другой.

[root@server samba]# smbpasswd -w euhou7thieyah8ch
Setting stored password for "cn=ldaproot,dc=test,dc=lab" in secrets.tdb

Создание принципала и получение ключа Kerberos

На контроллере домена используем kadmin.local

# kadmin.local
kadmin.local:  listprincs
K/M@TEST.LAB
krbtgt/TEST.LAB@TEST.LAB
kadmin/admin@TEST.LAB
kadmin/changepw@TEST.LAB
kadmin/history@TEST.LAB
kadmin/dcserver.test.lab@TEST.LAB
nfs/dcserver.test.lab@TEST.LAB
cifs/dcserver.test.lab@TEST.LAB
host/dcserver.test.lab@TEST.LAB
pop3/dcserver.test.lab@TEST.LAB
http/dcserver.test.lab@TEST.LAB
HTTP/dcserver.test.lab@TEST.LAB
pop/dcserver.test.lab@TEST.LAB
imap/dcserver.test.lab@TEST.LAB
smtp/dcserver.test.lab@TEST.LAB
user@TEST.LAB
ldap/dcserver.test.lab@TEST.LAB

В списке пока нет записи принципала для server.test.lab. Создадим её.

kadmin.local:  addprinc -randkey cifs/server.test.lab
WARNING: no policy specified for cifs/server.test.lab@TEST.LAB; defaulting to no policy
Principal "cifs/server.test.lab@TEST.LAB" created. 
kadmin.local:  listprincs
K/M@TEST.LAB
krbtgt/TEST.LAB@TEST.LAB
kadmin/admin@TEST.LAB
kadmin/changepw@TEST.LAB
kadmin/history@TEST.LAB
kadmin/dcserver.test.lab@TEST.LAB
nfs/dcserver.test.lab@TEST.LAB
cifs/dcserver.test.lab@TEST.LAB
host/dcserver.test.lab@TEST.LAB
pop3/dcserver.test.lab@TEST.LAB
http/dcserver.test.lab@TEST.LAB
HTTP/dcserver.test.lab@TEST.LAB
pop/dcserver.test.lab@TEST.LAB
imap/dcserver.test.lab@TEST.LAB
smtp/dcserver.test.lab@TEST.LAB
user@TEST.LAB
ldap/dcserver.test.lab@TEST.LAB
cifs/server.test.lab@TEST.LAB 

Теперь экспортируем ключ в файл и передадим его на server

kadmin.local:  ktadd -e aes256-cts-hmac-sha1-96:normal -k /root/samba.keytab cifs/server.test.lab
Entry for principal cifs/server.test.lab with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab WRFILE:/root/samba.keytab.
[root@dcserver ~]# scp samba.keytab admin@server:/home/admin
The authenticity of host 'server (10.10.10.2)' can't be established.
ECDSA key fingerprint is 6a:43:6f:dd:35:b6:01:c2:0d:51:54:3b:4b:04:9b:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.10.10.2' (ECDSA) to the list of known hosts.
admin@server's password: 
samba.keytab                                  100%   86     0.1KB/s   00:00    
kadmin.local:  get_principals cifs/*
cifs/dcserver.test.lab@TEST.LAB
cifs/server.test.lab@TEST.LAB

Пользователь user, открывший сеанс на рабочей станции client, получает теперь билет не только для dcserver, но и для нового сервера server.

[user@client ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_5000
Default principal: user@TEST.LAB
Valid starting       Expires              Service principal
19.08.2014 14:45:19  20.08.2014 00:45:19  krbtgt/TEST.LAB@TEST.LAB
renew until 19.08.2014 14:45:19
19.08.2014 14:45:21  20.08.2014 00:45:19  cifs/dcserver.test.lab@
renew until 19.08.2014 14:45:19
19.08.2014 14:45:21  20.08.2014 00:45:19  cifs/dcserver.test.lab@TEST.LAB
renew until 19.08.2014 14:45:19
19.08.2014 14:45:22  20.08.2014 00:45:19  cifs/server.test.lab@
renew until 19.08.2014 14:45:19
19.08.2014 14:45:22  20.08.2014 00:45:19  cifs/server.test.lab@TEST.LAB
renew until 19.08.2014 14:45:19

И может в окне открыть по адресу smb://server.test.lab общий ресурс share, и получать доступ к находящимся в нём файлам под собственным именем и с соответствующими правами доступа.