Pull to refresh

Samba в роли ADDC в Solaris 11.4

Reading time5 min
Views2.6K

Введение


Когда я в первые установил пакет Samba в Solaris, выяснилось, что роли ADDC в данном пакете нету. Долгие поиски в интернете привели меня к ответам такого рода — пакет Samba в Solaris эту роль не поддерживает, а на некоторых писали о том, что данную роль вообще невозможно реализовать в Solaris. Дальнейшее исследование привели меня к тому, что всё упирается в отсутствие в zfs Posix ACL, а также в python который используется в Solaris. Для решения данных проблем необходимо использовать жёсткий диск с файловой системой ufs, а также собрать из исходного кода python(а также Samba).

Подготовка


Все действия я произвожу в VMware ESXI, перед установкой системы добавьте в виртуальную машину ещё один жёсткий диск. Далее необходимо скачать исходный код Python и Samba(в корень файловой системы).

wget https://download.samba.org/pub/samba/stable/samba-4.8.8.tar.gz
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz

Распакуем архивы и переименуем папки для большего удобства

gzip -d samba-4.8.8.tar.gz
gzip -d Python-2.7.15.tgz
tar -xvf Python-2.7.15.tar
tar -xvf samba-4.8.8.tar
mv Python-2.7.15 python
mv samba-4.8.8 samba

Далее необходимо установить gcc и некоторые зависимости

pkg install gcc
pkg install pkgconfig
pkg install automake
pkg install autoconf

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

export CPP="/usr/gcc/7/bin/gcc -E"
export CC="/usr/gcc/7/bin/gcc"
export CFLAGS="-m64 -std=gnu99 -fPIC -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
export LDFLAGS="-m64 -L/usr/lib -R/usr/lib"
export CXXFLAGS="-m64"

Создадим файловую систему ufs на дополнительном жёстком диске(укажите имя которое используется у Вас)

newfs /dev/dsk/c1t1d0s2

Далее необходимо прописать данный жёсткий диск в файл vfstab(не опечатка, в Solaris этот файл называется именно так). Добавьте в данный файл такую строку.

/dev/dsk/c1t1d0s2       /dev/dsk/c1t1d0s2       /ADDC   ufs     fsck    yes     -

Создайте каталог для монтирования и смонтируйте в него жёсткий диск

mkdir /ADDC
mount /dev/dsk/c1t1d0s2 /ADDC

Сборка и установка


Можно приступать к сборке Samba и Python. Перейдите в каталог с распакованным исходным кодом Solaris и выполните сборку. Сборка Samba занимает довольно длительное время.

cd /samba
./configure --prefix=/ADDC
gmake
gmake install

Для сборки python дополнительных параметров указывать не нужно, установка будет произведена в каталог /usr/local

cd /python
./configure
gmake
gmake install

После сборки python необходимо добавить путь до только, что собранного python в переменную path

export PATH="/usr/local/bin:/usr/sbin:/usr/bin"

ВАЖНО: Для того что-бы всё корректно сработало, необходимо указать переменную PATH как указано в данном примере, путь /usr/local/bin должен быть на первом месте.
После данных действий использовать Samba в роли ADDC не составит проблем, для этого необходимо выполнить скрипт samba-tool

/ADDC/bin/samba-tool domain provision --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=office.virusslayer.su --domain=virusslayer --host-name=ad --host-ip=192.168.1.105 --function-level=2008_R2 --adminpass=Password123456

Укажите realm, domain, host-name которые необходимы Вам, в также host-ip который используется у данного хоста.

Следующем шагом будет настройка kerberos, для этого необходимо изменить следующие файлы

/etc/krb5/krb5.conf
/etc/krb5/kdc.conf

Файл krb5.conf необходимо привести к виду

[libdefaults]
        default_realm = OFFICE.VIRUSSLAYER.SU
        dns_lookup_realm = false
        dns_lookup_kdc = true
        default_tgs_enctypes = aes256-cts-hmac-sha1-96
        default_tkt_enctypes = aes256-cts-hmac-sha1-96
        permitted_enctypes = aes256-cts-hmac-sha1-96

[realms]
OFFICE.VIRUSSLAYER.SU = {
              kdc = kdc.office.virusslayer.su
              admin_server = kdc.office.virusslayer.su
      }

kdc.conf

[realms]
        OFFICE.VIRUSSLAYER.SU = {
                profile = /etc/krb5/krb5.conf
                acl_file = /etc/krb5/kadm5.acl
                kadmind_port = 749
                max_life = 8h 0m 0s
                max_renewable_life = 7d 0h 0m 0s
                default_principal_flags = +preauth
        }

Для автозапуска и остановки мне пришлось написать простой скрипт на bash

#!/usr/bin/bash

case $1 in

    start|-start)
        /ADDC/sbin/samba
        /ADDC/sbin/smbd
        /ADDC/sbin/nmbd
        ;;
    stop|-stop)

        rm /ADDC/var/run/*.pid
        pkill -15 samba
        pkill -15 smbd
        pkill -15 nmbd
        ;;
    v|-v)
        /ADDC/sbin/samba -V
        ;;
    config|-config)
        cat /ADDC/etc/smb.conf
        ;;
    restart|-restart)
        rm /ADDC/var/run/*.pid
        pkill -15 samba
        pkill -15 smbd
        pkill -15 nmbd
        /ADDC/sbin/samba
        /ADDC/sbin/smbd
        /ADDC/sbin/nmbd
        ;;
esac

Данный скрипт поместите в файл(предварительно его создав) /usr/bin/sambactl, сделайте его исполняемым и скопируйте его в каталоги rc3.d, rc0.d для автозапуска и остановки Samba

touche /usr/bin/sambactl
chmod +x /usr/bin/sambactl
cp /usr/bin/sambactl /etc/rc3.d/Ssambactl
cp /usr/bin/sambactl /etc/rc0.d/Ksambactl

Для дальнейшей корректной работы необходимо изменить dns сервер системы(файл resolve.conf не нужно изменять, изменения сохраняться только до перезагрузки), для этого отредактируем службу и обновим статус(в качестве сервера укажите ip адрес текущей системы)

svccfg -s dns/client setprop config/nameserver="192.168.1.105"
svcadm refresh dns/client

После данных манипуляций можно запустить Samba, а также добавить dns запись

/usr/bin/sambactl
/ADDC/bin/samba-tool dns add office.virusslayer.su -U administrator office.virusslayer.su kdc.office.virusslayer.su A 192.168.1.105

Проверим работу kerberos

kinit administrator

Если всё корректно и пароль введён правильно, билет будет создан в каталоге /tmp/volatile-user/0
На этом настройка kerberos не закончена, также необходимо настроить сервер синхронизации времени, для этого создайте файл /etc/inet/ntp.conf, запустите службу времени и внесите в данный файл необходимые изменения

server 127.127.1.0 prefer

server 0.europe.pool.ntp.org
server 1.europe.pool.ntp.org
server 2.europe.pool.ntp.org
server 3.europe.pool.ntp.org

driftfile /var/ntp/ntp.drift
restrict 192.168.1.0 255.255.255.0 nomodify notrap

В строке restrict укажите подсеть которой будет разрешен доступ к серверу времени

Запустите и обновите службу

svcadm enable ntp
svcadm refresh ntp

Для редактирования групповых политик можно использовать средства удалённого администрирования(RSAT), данные средства можно скачать от сюда

Windows 8.1
https://www.microsoft.com/ru-ru/download/details.aspx?id=39296

Windows 10
https://www.microsoft.com/ru-RU/download/details.aspx?id=45520

Windows 7
https://www.microsoft.com/ru-ru/download/details.aspx?id=7887

После установки RSAT в Windows 7, данные средства необходимо включить в панели управления(Включение и отключение компонентов Windows). После того как компьютер будет введён в домен, запустите редактор групповых политик, в Default Domain Policy отредактируйте политику отвечающею за сервер времени

image

В данном разделе необходимо включить параметр «Включить NTP-клиент Windows», «Настроить NTP-клиент Windows», тип выставить NTP, NtpServer указать office.virusslayer.su

Дополнительно можно настроить firewall, отредактируйте файл /etc/firewall/pf.conf(приведя его к следующему виду).

set skip on lo0

pass quick on lo0 from any to any no state


pass in quick on net0 proto {tcp,udp} from any to any port {22,53,123,135,137,464,389,515,636,631,445,139,88,3268,3269,49152:65535} flags S/SA modulate state

pass out quick on net0 proto tcp from any to any port {80,443,21,20,53} flags S/SA modulate state
pass out quick on net0 proto udp from any to any port=53 keep state
pass out quick on net0 proto icmp from any to any

block from any to any fragment
block from any to any
block all

Запустите службу и укажите файл с правилами

svcadm enable firewall
pfctl -f /etc/firewall/pf.conf

Заключение


Как видно из данной публикации в Solaris возможно использовать Samba в роли ADDC, хоть это намного сложнее чем любой другой операционной системе.
Tags:
Hubs:
Total votes 9: ↑8 and ↓1+7
Comments18

Articles