Понедельник, 05 июня 2017 15:53

OpenMediaVault 3 и домен контроллер на Windows 2012R2

Автор
Оцените материал
(3 голосов)

Для начала ставим все что нам будет нужно в первую очередь

apt install mc htop net-tools samba sssd winbind  install krb5-user krb5-config libpam-krb5 winbind libnss-winbind

доменное имя SCS.NET (мне такой достался и моя задача запустить в работу OMV)
рисуем конфиг для кербероса

 cat /etc/krb5.conf
[libdefaults]
    default_realm = SCS.NET
    dns_lookup_kdc = no
    dns_lookup_realm = no
    ticket_lifetime = 24h
    default_keytab_name = /etc/t1000.keytab

# for Windows 2003
#    default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
#    default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
#    permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5

# for Windows 2008 with AES
    default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
    default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
    permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

[realms]
    SCS.NET = {
        kdc = scs-dc-new.scs.net
        admin_server = scs-dc-new.scs.net
        default_domain = scs.net
    }

[domain_realm]
    .scs.net = SCS.NET
    scs.net = SCS.NET

проверяем что мы можем получить "билетик", roksis это имя администратора домена

root@t1000:/home/n1mda# kinit  roksis
Password for roksis@SCS.NET: <-- вводим пароль, если следующая строка пустая, то все отлично
root@t1000:/home/n1mda#

и проверим

klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: roksis@SCS.NET

Valid starting       Expires              Service principal
05.06.2017 14:52:21  06.06.2017 00:52:21  krbtgt/SCS.NET@SCS.NET
        renew until 06.06.2017 14:52:17

Все получен и валидно, создадим файлик для кербероса, на контроллее домена из под администратора запускаем CMD и вводим

C:\Windows\system32>ktpass -princ t1000@SCS.NET -mapuser SCS\roksis -pass MyPassword$$$  -crypto All -ptype KRB5_NT_PRINCIPAL -out C:\t1000.keytab

Полученный файлик кладем в папку /etc/ 

теперь нарисуем конфиг для sssd

 cat /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = SCS.NET

[domain/SCS.NET]
id_provider = ad
access_provider = ad

# Use this if users are being logged in at /.
# This example specifies /home/DOMAIN-FQDN/user as $HOME.  Use with pam_mkhomedir.so
override_homedir = /home/%d/%u

# Uncomment if the client machine hostname doesn't match the computer object on the DC.
ad_hostname = SCS-DC-NEW.SCS.NET

# Uncomment if DNS SRV resolution is not working
ad_server = SCS-DC-NEW.SCS.NET

# Uncomment if the AD domain is named differently than the Samba domain
 ad_domain = SCS.NET

# Enumeration is discouraged for performance reasons.
 enumerate = true

Исправим конфиг самбы на нужный для нас

smb.conf
 [global]
   netbios name = t1000
   workgroup = SCS
   security = ADS
   realm = SCS.NET
   encrypt passwords = yes
	client signing = yes
	client use spnego = yes
	kerberos method = secrets and keytab
   allow trusted domains = No
   winbind use default domain = yes
   winbind enum users  = yes
   winbind enum groups = yes
   idmap config *:backend = tdb
   idmap config *:range = 1000000-1999999
   idmap config SCS:backend = rid
   idmap config SCS:range = 10000-999999

   template homedir = /home/%D/%U
   template shell = /bin/bash
   winbind refresh tickets = yes

   preferred master = No
   local master = No
   domain master = No

   load printers = No
   show add printer wizard = No
   printcap name = /dev/null
   disable spoolss = Yes

создаем папку для домашних папок

 mkdir /home/SCS/

и подправим nsswitch

cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat winbind sss
group:          compat winbind sss
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis sss

Перезапускаем самбу /etc/init.d/samba restart
Проверим информацию о домене

 net ads info
LDAP server: 192.168.88.13
LDAP server name: scs-dc-new.scs.net
Realm: SCS.NET
Bind Path: dc=SCS,dc=NET
LDAP port: 389
Server time: Пн, 05 июн 2017 14:58:52 MSK
KDC server: 192.168.88.13
Server time offset: -1
Last machine account password change: Чт, 01 янв 1970 03:00:00 MSK

Заведем теперь машинку в него

 net ads join -U roksis
Enter roksis's password:  <---вводим пароль от roksis
Using short domain name -- SCS
Joined 't1000' to dns domain 'scs.net'
root@t1000:/home/n1mda#

Перезапускаем winbind и sssd

systemctl restart winbind sssd

Теперь мы можем видеть всех пользователей, и свей системы и из АД
проверить это все можно командами

getent passws
wbinfo -u
wbinfo -g

Но для надежности данного решения, мы перезапустил систему и проверим выхлоп данных команд еще раз.
теперь ставим OpenMediaVault 3 из репозитория

echo "deb http://packages.openmediavault.org/public erasmus main" > /etc/apt/sources.list.d/openmediavault.list
apt-get update && apt-get upgrade
apt-get install openmediavault-keyring postfix apt-transport-https
cd /etc/apt/sources.list.d/
cp ../sources.list jessie.list

Вот содержимое пакетов от Jessie

deb http://mirror.yandex.ru/debian/ jessie main
deb-src http://mirror.yandex.ru/debian/ jessie main

deb http://security.debian.org/debian-security jessie/updates main
deb-src http://security.debian.org/debian-security jessie/updates main

обновим кеш пакетов и установим их

apt update
apt install openmediavault
omv-initsystem

поставим дполнительные репозитории с плагинами

wget https://bintray.com/artifact/download/openmediavault-plugin-developers/erasmus/pool/main/o/openmediavault-omvextrasorg/openmediavault-omvextrasorg_3.0.5_all.deb
dpkg -i openmediavault-omvextrasorg_3.0.5_all.deb
apt-get update

теперь добавляем в систему еще один диск(и), это будет нашим хранилищем всего
и через веб браузер запускаем его в работу.

Только rrdcached не будет сейчас работать правильно, ему надо заменить стартовый скрипт (/etc/init.d/rrdcached) на такой

#! /bin/bash
#
# rrdcached - start and stop the RRDtool data caching daemon
# http://oss.oetiker.ch/rrdtool/
#
# Based on the collectd init script.
#
# Copyright (C) 2005-2006 Florian Forster <octo@verplant.org>
# Copyright (C) 2006-2009 Sebastian Harl <tokkee@debian.org>
#

### BEGIN INIT INFO
# Provides:          rrdcached
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $network
# Should-Stop:       $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: start the RRDtool data caching daemon
### END INIT INFO

set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin

DISABLE=0

DESC="RRDtool data caching daemon"
NAME=rrdcached
DAEMON=/usr/bin/rrdcached

OPTS="-l unix:/var/run/rrdcached.sock"
OPTS="$OPTS -j /var/lib/rrdcached/journal/ -F"
OPTS="$OPTS -b /var/lib/rrdcached/db/ -B"

PIDFILE=/var/run/rrdcached.pid

MAXWAIT=30

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

if [ -r /etc/default/$NAME ]; then
        . /etc/default/$NAME
fi

if test "$DISABLE" != 0 -a "$1" == "start"; then
        echo "$NAME has been disabled - see /etc/default/$NAME."
        exit 0
fi

if test "$ENABLE_COREFILES" == 1; then
        ulimit -c unlimited
fi

d_start() {
        if test "$DISABLE" != 0; then
                # we get here during restart
                echo -n " - disabled by /etc/default/$NAME"
                return 0
        fi

        # make sure we have the needed directories
        mkdir -p /var/lib/rrdcached/journal/
        mkdir -p /var/lib/rrdcached/db/

        start-stop-daemon --start --quiet --oknodo --pidfile "$PIDFILE" \
                --exec $DAEMON -- $OPTS -p "$PIDFILE"
}

still_running_warning="
WARNING: $NAME might still be running.
In large setups it might take some time to write all pending data to
the disk. You can adjust the waiting time in /etc/default/$NAME."

d_stop() {
        PID=$( cat "$PIDFILE" 2> /dev/null ) || true

        start-stop-daemon --stop --quiet --oknodo --pidfile "$PIDFILE"

        sleep 1
        if test -n "$PID" && kill -0 $PID 2> /dev/null; then
                i=0
                while kill -0 $PID 2> /dev/null; do
                        i=$(( $i + 2 ))
                        echo -n " ."

                        if test $i -gt $MAXWAIT; then
                                echo "$still_running_warning" >&2
                                return 1
                        fi

                        sleep 2
                done
                return 0
        fi
}

d_status() {
        PID=$( cat "$PIDFILE" 2> /dev/null ) || true

        if test -n "$PID" && kill -0 $PID 2> /dev/null; then
                echo "$NAME ($PID) is running."
                exit 0
        else
                PID=$( pidof $NAME ) || true

                if test -n "$PID"; then
                        echo "$NAME ($PID) is running."
                        exit 0
                else
                        echo "$NAME is stopped."
                fi
        fi
        exit 1
}

case "$1" in
        start)
                echo -n "Starting $DESC: $NAME"
                d_start
                echo "."
                ;;
        stop)
                echo -n "Stopping $DESC: $NAME"
                d_stop
                echo "."
                ;;
        status)
                d_status
                ;;
        restart|force-reload)
                echo -n "Restarting $DESC: $NAME"
                d_stop
                sleep 1
                d_start
                echo "."
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
                exit 1
                ;;
esac

exit 0

# vim: syntax=sh noexpandtab sw=4 ts=4 :

 

.

Прочитано 5253 раз Последнее изменение Вторник, 13 июня 2017 16:33

Похожие материалы (по тегу)

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


Защитный код
Обновить