Présentation
Lorsque j'ai installé le package Samba pour la première fois sur Solaris, il s'est avéré qu'il n'y avait pas de rôle ADDC dans ce package. De longues recherches sur Internet m'ont conduit à des réponses de ce type - le package Samba sur Solaris ne prend pas en charge ce rôle, et certains ont écrit que ce rôle était généralement impossible à implémenter sur Solaris. Des recherches plus poussées m'ont conduit au fait que tout repose sur l'absence d'une ACL Posix dans zfs, ainsi que dans python, qui est utilisé dans Solaris. Pour résoudre ces problèmes, vous devez utiliser un disque dur avec le système de fichiers ufs, ainsi que construire python (ainsi que Samba) à partir du code source.
La préparation
Toutes les actions que j'effectue dans VMware ESXI, avant d'installer le système, ajoutez un autre disque dur à la machine virtuelle. Ensuite, vous devez télécharger le code source de Python et Samba (à la racine du système de fichiers).
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
Décompressez les archives et renommez les dossiers pour plus de commodité
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
Ensuite, vous devez installer gcc et certaines dépendances
pkg install gcc pkg install pkgconfig pkg install automake pkg install autoconf
Définir des variables pour créer des versions 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"
Créez le système de fichiers ufs sur un disque dur supplémentaire (spécifiez le nom que vous utilisez)
newfs /dev/dsk/c1t1d0s2
Ensuite, vous devez enregistrer ce disque dur dans le fichier vfstab (pas une faute de frappe, dans Solaris ce fichier est appelé de cette façon). Ajoutez cette ligne à ce fichier.
/dev/dsk/c1t1d0s2 /dev/dsk/c1t1d0s2 /ADDC ufs fsck yes -
Créez un répertoire de montage et montez le disque dur dedans
mkdir /ADDC mount /dev/dsk/c1t1d0s2 /ADDC
Assemblage et installation
Vous pouvez commencer à construire Samba et Python. Accédez au répertoire contenant le code source Solaris décompressé et la version. L'assemblage de Samba prend un certain temps.
cd /samba ./configure --prefix=/ADDC gmake gmake install
Vous n'avez pas besoin de spécifier de paramètres supplémentaires pour construire python, l'installation sera effectuée dans le répertoire / usr / local
cd /python ./configure gmake gmake install
Après avoir construit python, vous devez ajouter le chemin au python qui vient d'être construit dans la variable path
export PATH="/usr/local/bin:/usr/sbin:/usr/bin"
IMPORTANT: pour que tout fonctionne correctement, vous devez spécifier la variable PATH comme indiqué dans cet exemple, le chemin / usr / local / bin doit être en premier lieu.
Après ces étapes, l'utilisation de Samba comme ADDC ne sera pas un problème, pour cela, vous devez exécuter le 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
Indiquez le domaine, le domaine et le nom d'hôte dont vous avez besoin, dans l'adresse IP hôte utilisée pour cet hôte.
L'étape suivante consiste à configurer Kerberos, pour cela, vous devez modifier les fichiers suivants
/etc/krb5/krb5.conf /etc/krb5/kdc.conf
Le fichier krb5.conf doit être converti en
[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 }
Pour démarrer et arrêter automatiquement, j'ai dû écrire 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
Placez ce script dans le fichier (après l'avoir créé) / usr / bin / sambactl, rendez-le exécutable et copiez-le dans les répertoires rc3.d, rc0.d pour démarrer automatiquement et arrêter 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
Pour un fonctionnement correct, vous devez changer le serveur DNS du système (le fichier resol.conf n'a pas besoin d'être modifié, les modifications ne sont enregistrées que jusqu'au redémarrage), pour cela nous éditerons le service et mettrons à jour le statut (spécifiez l'adresse IP du système actuel comme serveur)
svccfg -s dns/client setprop config/nameserver="192.168.1.105" svcadm refresh dns/client
Après ces manipulations, vous pouvez démarrer Samba, et également ajouter une entrée 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
Vérifiez le travail des kerberos
kinit administrator
Si tout est correct et que le mot de passe est entré correctement, le ticket sera créé dans le répertoire / tmp / volatile-user / 0
L'installation de Kerberos n'est pas terminée à ce sujet, vous devez également configurer le serveur de synchronisation de l'heure, pour cela, créez le fichier /etc/inet/ntp.conf, démarrez le service de temps et apportez les modifications nécessaires à ce fichier
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
Dans la ligne de restriction, spécifiez le sous-réseau auquel l'accès au serveur de temps sera autorisé
Démarrer et mettre à jour le service
svcadm enable ntp svcadm refresh ntp
Pour modifier les stratégies de groupe, vous pouvez utiliser les outils d'administration à distance (RSAT), ces outils peuvent être téléchargés à partir d'ici
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
Après avoir installé RSAT dans Windows 7, ces outils doivent être activés dans le panneau de configuration (Activer ou désactiver les fonctionnalités Windows). Une fois l'ordinateur entré dans le domaine, démarrez l'éditeur de stratégie de groupe, dans la stratégie de domaine par défaut, modifiez la stratégie responsable du serveur de temps

Dans cette section, vous devez activer l'option "Activer le client NTP Windows", "Configurer le client NTP Windows", définir le type NTP, spécifier NtpServer office.virusslayer.su
De plus, vous pouvez configurer le pare-feu, éditer le fichier /etc/firewall/pf.conf (l'amener sous la forme suivante).
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
Démarrez le service et spécifiez le fichier avec les règles
svcadm enable firewall pfctl -f /etc/firewall/pf.conf
Conclusion
Comme vous pouvez le voir dans cette publication sur Solaris, il est possible d'utiliser Samba en tant qu'ADDC, bien qu'il soit beaucoup plus compliqué que tout autre système d'exploitation.