Samba como ADDC en Solaris 11.4

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

imagen

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.

Source: https://habr.com/ru/post/438910/


All Articles