: :

ПнВтСрЧтПтСбВс

2017-12-01 15:16:55 5535 0

Настройка файлового севрера Samba с авторизацией на сервере Freeipa

Samba - самый популярный выбор для файлового сервера в смешанной среде Linux и Windows машин. Теперь благодаря пакету SSD v1.12.2+ стало легче интегрировать Samba с доменом Freeipa, для использования таких удобных инструментов как SSO и поддержка пользователей Active Directory в доменах с доверительными отношениями.

Аутентификация файлового сервера Samba в домене Freeipa работает только через протокол Kerberos, это означает что доступ к файловому серверу могут получить Windows клиенты домена Active Directory, только если этот домен имеет доверительные отношения с доменом Freeipa

Для настройки Samba будем использовать сервер CentOs7 с доменным именем test-centos.test.un. В качестве сервера Freeipa используется сервер CeotOs7 c именем freeipa.test.un, на котором уже развернут IPA сервер

Настройка сервера Freeipa

Имя хоста должно совпадать с FQDN

hostname

freeipa.test.un

Если нет, то изменим его в файле /etc/hostname

На сервере Freeipa устанавливаем пакет

sudo yum install ipa-server-trust-ad

Запускаем утилиту

sudo ipa-adtrust-install

This program will setup components needed to establish trust 
to AD domains for the IPA Server.

This includes:
  * Configure Samba
  * Add trust related objects to IPA LDAP server

To accept the default shown in brackets, press the Enter key.

Configuring cross-realm trusts for IPA server requires
 password for user "admin". This user is a regular system account 
 used for IPA server administration.

admin password: 

WARNING: The smb.conf already exists. Running ipa-adtrust-install 
will break your existing samba configuration.


Do you wish to continue? [no]: yes
Do you want to enable support for trusted domains in Schema Compatibility plugin?
This will allow clients older than SSSD 1.9 and non-Linux
clients to work with trusted users.

Enable trusted domains support in slapi-nis? [no]: yes

Enter the NetBIOS name for the IPA domain.
Only up to 15 uppercase ASCII letters, digits and dashes are allowed.
Example: EXAMPLE.


NetBIOS domain name [TEST]: 


WARNING: 3 existing users or groups do not have a SID identifier assigned.
Installer can run a task to have ipa-sidgen Directory Server plugin generate
the SID identifier for all these users. Please note, the in case of a high
number of users and groups, the operation might lead to high replication
traffic and performance degradation. Refer to ipa-adtrust-install(1) man page
for details.

Do you want to run the ipa-sidgen task? [no]: yes

The following operations may take some minutes to complete.
Please wait until the prompt is returned.

Configuring CIFS
  [1/24]: validate server hostname
  [2/24]: stopping smbd
  [3/24]: creating samba domain object
  [4/24]: creating samba config registry
  [5/24]: writing samba config file
  [6/24]: adding cifs Kerberos principal
  [7/24]: adding cifs and host Kerberos principals to the adtrust agents group
  [8/24]: check for cifs services defined on other replicas
  [9/24]: adding cifs principal to S4U2Proxy targets
  [10/24]: adding admin(group) SIDs
  [11/24]: adding RID bases
  [12/24]: updating Kerberos config
"dns_lookup_kdc" already set to "true", nothing to do.
  [13/24]: activating CLDAP plugin
  [14/24]: activating sidgen task
  [15/24]: configuring smbd to start on boot
  [16/24]: adding special DNS service records
  [17/24]: enabling trusted domains support for older clients via 
  Schema Compatibility plugin
  [18/24]: restarting Directory Server to take MS PAC and LDAP plugins
  changes into account
  [19/24]: adding fallback group
  [20/24]: adding Default Trust View
  [21/24]: setting SELinux booleans
  [22/24]: starting CIFS services
  [23/24]: adding SIDs to existing users and groups
This step may take considerable amount of time, please wait..
  [24/24]: restarting smbd
Done configuring CIFS.

=======================================================================
Setup complete

You must make sure these network ports are open:
	TCP Ports:
	  * 135: epmap
	  * 138: netbios-dgm
	  * 139: netbios-ssn
	  * 445: microsoft-ds
	  * 1024..1300: epmap listener range
	  * 3268: msft-gc
	UDP Ports:
	  * 138: netbios-dgm
	  * 139: netbios-ssn
	  * 389: (C)LDAP
	  * 445: microsoft-ds

See the ipa-adtrust-install(1) man page for more details

=======================================================================

Переходим на файловый сервер Samba

В файле /etc/hostname указываем полное FQDN имя

cat /etc/hostname

test-centos.test.un

Устанавливаем необходимые зависимости

sudo yum install ipa-client sssd-libwbclient samba samba-client

Добавляем сервер в область Freeipa

sudo ipa-client-install --mkhomedir

Discovery was successful!
Client hostname: test-centos.test.un
Realm: TEST.UN
DNS Domain: test.un
IPA Server: freeipa.test.un
BaseDN: dc=test,dc=un

Continue to configure the system with these values? [no]: yes
Synchronizing time with KDC...
Attempting to sync time using ntpd.  Will timeout after 15 seconds

###Вводим имя пользователя под которым будем добавлять компьютер

User authorized to enroll computers: admin

## Вводим пароль

Password for admin@TEST.UN: 

Successfully retrieved CA cert
    Subject:     CN=Certificate Authority,O=TEST.UN
    Issuer:      CN=Certificate Authority,O=TEST.UN
    Valid From:  2017-11-26 12:26:10
    Valid Until: 2037-11-26 12:26:10

Enrolled in IPA realm TEST.UN
Created /etc/ipa/default.conf
New SSSD config will be created
Configured sudoers in /etc/nsswitch.conf
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm TEST.UN
trying https://freeipa.test.un/ipa/json
[try 1]: Forwarding "schema" to json server
"https://freeipa.test.un/ipa/json"
trying https://freeipa.test.un/ipa/session/json
[try 1]: Forwarding "ping" to json server
"https://freeipa.test.un/ipa/session/json"
[try 1]: Forwarding "ca_is_enabled" to json server
"https://freeipa.test.un/ipa/session/json"
Systemwide CA database updated.
Hostname (test-centos.test.un) does not have A/AAAA record.
Missing reverse record(s) for address(es): 172.20.1.162.
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
[try 1]: Forwarding "host_mod" to json server
"https://freeipa.test.un/ipa/session/json"
SSSD enabled
Configured /etc/openldap/ldap.conf
NTP enabled
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config
Configuring test.un as NIS domain.
Client configuration complete.
The ipa-client-install command was successful

Сервер успешно добавлен в домен Freeipa

На сервере Freeipa создаем cifs принципал

sudo ipa service-add cifs/test-centos

-------------------------------------------
Добавлена служба «cifs/test-centos@TEST.UN»
-------------------------------------------
  Principal name: cifs/test-centos@TEST.UN
  Principal alias: cifs/test-centos@TEST.UN
  Managed by: test-centos.test.un

Переходим на сервер Samba и установим keytab файл

Получаем билет от сервера kerberos:

kinit admin

Password for admin@TEST.UN: 

Проверяем получение билета

klist

Ticket cache: KEYRING:persistent:0:0
Default principal: admin@TEST.UN

Valid starting       Expires              Service principal
28.11.2017 15:46:22  29.11.2017 15:46:18  ldap/freeipa.test.un@TEST.UN
28.11.2017 15:46:20  29.11.2017 15:46:18  krbtgt/TEST.UN@TEST.UN

sudo ipa-getkeytab -s freeipa.test.un \

-p cifs/test-centos -k /etc/samba/samba.keytab
Keytab successfully retrieved and stored in: /etc/samba/samba.keytab

Произведем настройку Samba для работы с сервером Freeipa

cat /etc/samba/smb.conf

[global]
	## NetBIOS имя домена
	workgroup = TEST

	# Область домена
	realm = TEST.UN

	# режим безопасности
	security = ads

	# тип и расположиние keytab файла
    dedicated keytab file = FILE:/etc/samba/samba.keytab

    # метод kerberos
    kerberos method = dedicated keytab

    # расположение лог файла
    log file = /var/log/samba/log.%m


# Обие директории
[share]
	# Комментарий к шаре
	comment = Testing share

	# Расположение общей директории
	path = /share

	# Возможность записи в директорию
	writeable = yes

	# Отображение в сетевом поиске
	browseable = yes

	# Доменной группе  пользователей admins разрешен доступ к общей папке
	valid users = @samba_users

	# Разрешение записи для доменно группы пользователей admins
	write list = @samba_users

Проверяем отсутствие ошибок в файле конфигурации Samba

testparm

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[share]"
Loaded services file OK.
idmap range not specified for domain "*"
ERROR: Invalid idmap range for domain *!

Server role: ROLE_DOMAIN_MEMBER

Press enter to see a dump of your service definitions

Перезапускаем демона samba

sudo systemctl restart smb

Проверяем доступ к шаре (kerberos аутентификация)/p>

smbclient -k //test-centos/share

OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \> ls
  .                                   D        0  Tue Nov 28 15:55:42 2017
  ..                                 DR        0  Tue Nov 28 15:52:15 2017
  test.txt                            N        0  Tue Nov 28 15:55:42 2017

		18307072 blocks of size 1024. 17204884 blocks available
smb: \> 

Подключение к шаре с указанием учетной записи пользователя

smbclient -U admin //test-centos/share

Enter TEST\admin"s password: 
OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \>

Подключение для Windows клиентов в домене Freeipa

\\test-centos\share

При подключении обязательно необходимо использовать имя сервера, не ip-адрес

Подключение может осуществить любой клиент в домене или в домене с которым настроены доверительные отношения.






Введите ответ:

+

=