Introduccion
Cuando instalé por primera vez el paquete Samba en Solaris, resultó que no había una función ADDC en este paquete. Las largas búsquedas en Internet me llevaron a respuestas de este tipo: el paquete Samba en Solaris no admite esta función, y algunos escribieron que esta función es generalmente imposible de implementar en Solaris. Investigaciones posteriores me llevaron al hecho de que todo se basa en la falta de una ACL Posix en zfs, así como en Python, que se usa en Solaris. Para resolver estos problemas, debe usar un disco duro con el sistema de archivos ufs, así como construir python (así como Samba) a partir del código fuente.
Preparación
Todas las acciones que realizo en VMware ESXI, antes de instalar el sistema, agregan otro disco duro a la máquina virtual. A continuación, debe descargar el código fuente de Python y Samba (a la raíz del sistema de archivos).
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
Desempaquete los archivos y cambie el nombre de las carpetas para mayor comodidad.
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
A continuación, debe instalar gcc y algunas dependencias.
pkg install gcc pkg install pkgconfig pkg install automake pkg install autoconf
Establecer variables para construir versiones 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"
Cree el sistema de archivos ufs en un disco duro adicional (especifique el nombre que utiliza)
newfs /dev/dsk/c1t1d0s2
A continuación, debe registrar este disco duro en el archivo vfstab (no es un error tipográfico, en Solaris este archivo se llama así). Agregue esta línea a este archivo.
/dev/dsk/c1t1d0s2 /dev/dsk/c1t1d0s2 /ADDC ufs fsck yes -
Cree un directorio de montaje y monte el disco duro en él
mkdir /ADDC mount /dev/dsk/c1t1d0s2 /ADDC
Montaje e instalación
Puedes comenzar a construir Samba y Python. Vaya al directorio con el código fuente de Solaris desempaquetado y compile. El montaje de samba lleva bastante tiempo.
cd /samba ./configure --prefix=/ADDC gmake gmake install
No necesita especificar parámetros adicionales para construir Python, la instalación se realizará en el directorio / usr / local
cd /python ./configure gmake gmake install
Después de construir Python, debe agregar la ruta al Python recién construido en la variable de ruta
export PATH="/usr/local/bin:/usr/sbin:/usr/bin"
IMPORTANTE: para que todo funcione correctamente, debe especificar la variable PATH como se indica en este ejemplo, la ruta / usr / local / bin debe estar en primer lugar.
Después de estos pasos, usar Samba como un ADDC no será un problema, para esto necesita ejecutar el script 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
Indique el reino, dominio, nombre de host que necesita, en la ip de host que se utiliza para este host.
El siguiente paso es configurar kerberos, para esto debe cambiar los siguientes archivos
/etc/krb5/krb5.conf /etc/krb5/kdc.conf
El archivo krb5.conf debe convertirse a
[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 }
Para autostart y stop tuve que escribir un script simple en 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
Coloque este script en el archivo (habiéndolo creado previamente) / usr / bin / sambactl, hágalo ejecutable y cópielo en los directorios rc3.d, rc0.d para iniciar automáticamente y detener 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
Para una operación correcta adicional, es necesario cambiar el servidor dns del sistema (el archivo resolve.conf no necesita ser cambiado, los cambios se guardan solo hasta el reinicio), para esto editamos el servicio y actualizamos el estado (especifique la dirección IP del sistema actual como el servidor)
svccfg -s dns/client setprop config/nameserver="192.168.1.105" svcadm refresh dns/client
Después de estas manipulaciones, puede iniciar Samba y también agregar una entrada 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
Comprueba el trabajo de kerberos
kinit administrator
Si todo es correcto y la contraseña se ingresa correctamente, el ticket se creará en el directorio / tmp / volatile-user / 0
La configuración de Kerberos no ha finalizado en esto, también debe configurar el servidor de sincronización de hora, para esto, cree el archivo /etc/inet/ntp.conf, inicie el servicio de hora y realice los cambios necesarios en este archivo
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
En la línea de restricción, especifique la subred a la que se permitirá el acceso al servidor horario.
Iniciar y actualizar el servicio.
svcadm enable ntp svcadm refresh ntp
Para editar las políticas de grupo, puede usar las Herramientas de administración remota (RSAT), estas herramientas se pueden descargar desde aquí
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
Después de instalar RSAT en Windows 7, estas herramientas deben habilitarse en el panel de control (activar o desactivar las características de Windows). Después de que la computadora ingrese al dominio, inicie el editor de políticas de grupo, en la Política de dominio predeterminada edite la política responsable del servidor horario

En esta sección, debe habilitar la opción "Habilitar cliente NTP de Windows", "Configurar cliente NTP de Windows", establecer el tipo de NTP, especificar NtpServer office.virusslayer.su
Además, puede configurar el firewall, editar el archivo /etc/firewall/pf.conf (llevándolo al siguiente formulario).
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
Inicie el servicio y especifique el archivo con las reglas.
svcadm enable firewall pfctl -f /etc/firewall/pf.conf
Conclusión
Como puede ver en esta publicación en Solaris, es posible usar Samba como un ADDC, aunque es mucho más complicado que cualquier otro sistema operativo.