Time Machine CentOS 7 авторизация через Active Directory

В предыдущей статье было описано что такое AFP, netatalk, зачем это все нужно.
Здесь же мы рассмотрим настройку Netatalk на CentOS 7 с авторизацией через контроллер домена.

Входные параметры

  • Сервер TimeMachine (CentOS 7)
  • Сервер контроллера домена (Windows Server 2012)
  • Netatalk (afpd v.3.1.8)

Настройка Windows Server 2012

Здесь поговорим об основных моментах, которые нам нужны от Windows Server 2012.

Для включения Unix параметров открыть консоль Power Shell от имени Администратора.
~~~
Dism.exe /online /enable-feature /featurename:adminui /all
Dism.exe /online /enable-feature /featurename:nis /all
Dism.exe /online /enable-feature /featurename:psync /all
~~~

После этого перезагрузить компьютер, и если все сделано верно то в параметрах пользователей Windows должны появится Unix атрибуты.

unix-atributes

Настройка CentOS 7

После успешной установки CentOS 7 нам нужно ввести сервер в домен.

Проверим hostname — он должен быть формата %имя хоста%.%имя домена%
Например timemachine.exz.local

Проверим resolve.conf — там должен быть прописан nameserver %ip вашего контроллера домена%

Проверим что время между серверами одинаковое

Установим дополнительные пакеты для ввода в домен

# yum install oddjob-mkhomedir oddjob samba-winbind-clients samba-winbind samba-common sssd realmd

Установим дополнительные пакеты для сборки netatalk

# yum install avahi-devel bison cracklib-devel dbus-devel dbus-glib-devel docbook-style-xsl flex libacl-devel libattr-devel libdb-devel libevent-devel libgcrypt-devel libxslt krb5-devel mysql-devel openldap-devel openssl-devel pam-devel quota-devel systemtap-sdt-devel tcp_wrappers-devel libtdb-devel tracker-devel rpm-build gcc make dconf

Ввод в домен (Лучше сделать отдельного пользователя root в AD для ввода в домен Linux серверов)

# realm join --user=root@exz.local EXZ.LOCAL

Проверить настройки можно так

# realm list
exz.local
type: kerberos
realm-name: EXZ.LOCAL
domain-name: exz.local
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common
login-formats: %U@exz.local
login-policy: allow-permitted-logins
# id root@exz.local
uid=1915401112(root@exz.local) gid=1915400513(администраторы домена@exz.local) группы=1915400513(администраторы домена@exz.local)

Соберем пакет netatalk 3.1.8

# pwd
/root
# wget http://www003.upp.so-net.ne.jp/hat/files/netatalk-3.1.8-0.1.5.fc25.src.rpm
# rpm -ivh netatalk-3.1.8-0.1.5.fc25.src.rpm
# cd ~/rpmbuild/SPECS/
# rpmbuild -bb netatalk.spec
# rpm -ivh ~/rpmbuild/RPMS/x86_64/netatalk-3.1.8-0.1.5.el7.centos.x86_64.rpm

Проверим что afpd установился корректно

# afpd -v
afpd 3.1.8 - Apple Filing Protocol (AFP) daemon of Netatalk

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version. Please see the file COPYING for further information and details.

afpd has been compiled with support for these features:

AFP versions: 2.2 3.0 3.1 3.2 3.3 3.4
CNID backends: dbd last tdb mysql

afp.conf: /etc/netatalk//afp.conf
extmap.conf: /etc/netatalk//extmap.conf
state directory: /var/lib/netatalk/
afp_signature.conf: /var/lib/netatalk/afp_signature.conf
afp_voluuid.conf: /var/lib/netatalk/afp_voluuid.conf
UAM search path: /usr/lib64/netatalk//
Server messages path: /var/lib/netatalk/msg/

Настроим pamd netatalk авторизацию через sssd

# cat /etc/pam.d/netatalk

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth [default=1 success=ok] pam_localuser.so
auth [success=done ignore=ignore default=die] pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so

account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so

password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_sss.so use_authtok
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so

Настройка netatalk

# cat /etc/netatalk/afp.conf

[Global]
vol preset = default_for_all_vol
log file = /var/log/netatalk.log
mimic model = TimeCapsule6,116

[default_for_all_vol]
file perm = 0770
directory perm = 0770
cnid scheme = dbd

[Homes]
basedir regex = /home/*
time machine = yes

[private]
path = /home/private/
valid users = "@private@exz.local"
time machine = yes

Запустим netatalk

# systemctl start netatalk
# systemctl enable netatalk

 

Добавить комментарий

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