Дополнительные серверы и member-сервисы в домене ALT Linux
Материал из ALT Linux Wiki
Pauli (обсуждение | вклад) (→Файловый сервер Samba) |
|||
(8 промежуточных версий не показаны.) | |||
Строка 55: | Строка 55: | ||
=== Настройка аутентификации пользователей === | === Настройка аутентификации пользователей === | ||
- | + | Для начала необходимо обеспечить опознание доменных пользователей сервером. Проще и надёжнее всего это сделать через web-интерфейс Alterator. | |
[[Файл:Masterclass-2-2.png]] | [[Файл:Masterclass-2-2.png]] | ||
Строка 61: | Строка 61: | ||
После перезагрузки getent passwd на сервере должен показать, в числе прочих, также и доменного пользователя user. | После перезагрузки getent passwd на сервере должен показать, в числе прочих, также и доменного пользователя user. | ||
- | === Настройка | + | === Настройка smb.conf === |
По умолчанию сервис Samba на server не включен и не настроен, для начала его следует просто включить | По умолчанию сервис Samba на server не включен и не настроен, для начала его следует просто включить | ||
[root@server ~]# service smb status | [root@server ~]# service smb status | ||
Строка 121: | Строка 121: | ||
поскольку на контроллере ALT-домена LDAP работает только для 127.0.0.1 (loopback), по сети только LDAPS. А отсюда же следует | поскольку на контроллере ALT-домена LDAP работает только для 127.0.0.1 (loopback), по сети только LDAPS. А отсюда же следует | ||
ldap ssl = no | ldap ssl = no | ||
- | чтобы Samba не делала бессмысленной попытки StartTLS поверх соединения LDAPS. | + | чтобы Samba не делала бессмысленной попытки StartTLS поверх соединения LDAPS. Поправим параметры |
- | local master = | + | local master = no |
- | preferred master = | + | preferred master = no |
- | domain master = | + | domain master = no |
- | поскольку мастер в домене уже есть, на (контроллере) dcserver. И обязательно задать пароль служебного пользователя ldaproot, для авторизации в службе LDAP. Пароль можно | + | поскольку мастер в домене уже есть, на (контроллере) dcserver. И обязательно задать пароль служебного пользователя ldaproot, для авторизации в службе LDAP. Пароль можно узнать на dcserver: |
<code> | <code> | ||
[root@dcserver openldap]# cat /etc/openldap/slapd-test.lab.conf | grep rootpw | [root@dcserver openldap]# cat /etc/openldap/slapd-test.lab.conf | grep rootpw | ||
Строка 139: | Строка 139: | ||
=== Создание принципала и получение ключа Kerberos === | === Создание принципала и получение ключа Kerberos === | ||
- | + | На контроллере домена используем kadmin.local | |
+ | |||
# kadmin.local | # kadmin.local | ||
kadmin.local: listprincs | kadmin.local: listprincs | ||
Строка 159: | Строка 160: | ||
user@TEST.LAB | user@TEST.LAB | ||
ldap/dcserver.test.lab@TEST.LAB | ldap/dcserver.test.lab@TEST.LAB | ||
+ | |||
+ | В списке пока нет записи принципала для server.test.lab. Создадим её. | ||
kadmin.local: addprinc -randkey cifs/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 | WARNING: no policy specified for cifs/server.test.lab@TEST.LAB; defaulting to no policy | ||
Principal "cifs/server.test.lab@TEST.LAB" created. | Principal "cifs/server.test.lab@TEST.LAB" created. | ||
- | |||
kadmin.local: listprincs | kadmin.local: listprincs | ||
K/M@TEST.LAB | K/M@TEST.LAB | ||
Строка 183: | Строка 185: | ||
ldap/dcserver.test.lab@TEST.LAB | ldap/dcserver.test.lab@TEST.LAB | ||
cifs/server.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 | kadmin.local: ktadd -e aes256-cts-hmac-sha1-96:normal -k /root/samba.keytab cifs/server.test.lab | ||
Строка 198: | Строка 202: | ||
cifs/dcserver.test.lab@TEST.LAB | cifs/dcserver.test.lab@TEST.LAB | ||
cifs/server.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, и получать доступ к находящимся в нём файлам под собственным именем и с соответствующими правами доступа. | ||
- | + | {{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}} | |
- | + | {{Category navigation|title=Centaurus|category=Centaurus|sortkey={{SUBPAGENAME}}}} | |
- | + | {{Category navigation|title=Мастер-классы|category=Мастер-классы|sortkey={{SUBPAGENAME}}}} |
Текущая версия на 13:34, 2 июля 2015
Содержание |
Демонстрационный стенд
Хост-машина с характеристиками не ниже:
- Процессорных ядер 2, лучше 4. Рекомендуется процессор не хуже Intel Core i5
- Оперативная память не менее 4 Гб, рекомендуется 8 Гб
- Свободное дисковое пространство от 100 Гб
Виртуализатор VirtualBox. Для демонстрации потребуется не менее трёх виртуальных машин:
- Домен - первый сервер в сети, осуществляющий функции контроллера домена
- Клиент - рабочая станция, клиентский компьютер
- Сервер - сервер, не являющийся контроллером домена. Компьютер, предоставляющий свои ресурсы Клиенту с аутентификацией последнего на Домене.
Для установки всех виртуальных машин используется один и тот же установочный образ 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 сервере.
Настройка аутентификации пользователей
Для начала необходимо обеспечить опознание доменных пользователей сервером. Проще и надёжнее всего это сделать через web-интерфейс Alterator.
После перезагрузки 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"<code> "%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, и получать доступ к находящимся в нём файлам под собственным именем и с соответствующими правами доступа.