
La consapevolezza di essere finito in un'importazione sostitutiva non è arrivata subito. Solo quando le nuove forniture di PC dalla mia organizzazione superiore hanno iniziato a arrivare regolarmente con il sistema operativo 'Alt Linux' a bordo, ho cominciato a sospettare qualcosa di strano.
Tuttavia, durante il processo di accettazione dell'inevitabile, mi sono lasciato coinvolgere e ho persino iniziato a provare un certo piacere nel processo. A un certo punto, ho pensato che, a questo ritmo, prima o poi avrei dovuto separarmi dalle soluzioni di gestione del servizio directory di Microsoft e dirigermi verso qualcosa di più esotico. Pertanto, per prepararmi all'inevitabile in anticipo e cercare di evitare il maggior numero possibile di insidie, è stato deciso di allestire un banco di prova, includendo:
- DC1 — Windows Server 2012R2
- DC2 — Alt Server 8.2
- File Server — Windows Server 2012R2
- PC1 — Windows 7
- PC2 — Alt Workstation 8.2
Compiti del banco di prova:
- Eseguire un dominio basato su w2k12r2. Creare un insieme minimo di criteri di gruppo (analoghi a quelli utilizzati nell'infrastruttura di lavoro), inclusa la politica per lo spostamento delle cartelle utente (Download / Documenti / Scrivania). Alla fine, vorremmo che, cambiando il posto di lavoro da Windows a Linux e viceversa, l'utente avesse un accesso comodo ai propri documenti di lavoro.
- Introduzione di Samba DC come secondo controller. Verifica della replica dei servizi di directory e DNS.
- Configurazione dei client Linux per lavorare con le cartelle spostabili.
Attuazione:
- Installazione e introduzione di un nuovo controller.Con l'installazione di MS Windows 2012R2 è tutto semplice e piuttosto chiaro. Ci sono mille e uno manuali online su come eseguire il dominio su Windows sia tramite GUI che con strumenti PowerShell, quindi non ripeterò ancora una volta, lascerò solo la documentazione ufficiale, per i curiosi e coloro che vogliono rinfrescare la memoria.
Tuttavia, c'è un aspetto importante in questo punto. Al giorno d'oggi, Samba non riesce a lavorare con schemi di directory superiori a 2008R2.
Titolo del riquadro collapsible In realtà, gli sviluppatori hanno dichiarato questo supporto come sperimentale. Ma nella pratica, il tentativo di utilizzare Samba come secondo DC in un dominio Windows con schema 69 incontrerà il seguente errore.
DsAddEntry failed con stato WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’).
Il problema è che Windows 2012 e 2012R2 utilizzano strumenti WMI per gestire domini e foreste, il cui supporto stabile è stato annunciato solo per la versione Samba 4.11, prevista per la fine di quest'anno.
Ne deriva che l'unica opzione per inserire Samba in un dominio AD, distribuito su un server 2012R2, è la riduzione dello schema da 69 a 47. Naturalmente, su un'infrastruttura operativa, non è necessario farlo senza motivi validi, ma qui abbiamo un ambiente di test, quindi perché no?Installiamo Alt Server 8.2. Durante l'installazione, selezioniamo il profilo «Server Samba-DC (controllore AD)». Sul server distribuito, eseguiamo un aggiornamento completo del sistema e installiamo il pacchetto task-samba-dc, che porterà tutto il necessario.
# apt-get install task-samba-dcSe per caso task-samba-dc, contrariamente a quanto garantito dalla documentazione di Alta, si rifiuta di installare tutto il necessario.
# apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-develPassiamo ora alla configurazione di Kerberos e all'ottenimento del biglietto. Apriamo il file krb5.conf, andiamo alla sezione [libdefaults] e portiamola nella seguente forma:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALRichiediamo un biglietto
# kinit administrator Password for administrator@TEST.LOCAL:Controlliamo l'elenco dei biglietti Kerberos ottenuti
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: administrator@TEST.LOCAL Valid starting Expires Service principal 16.05.2019 11:51:38 16.05.2019 21:51:38 krbtgt/TEST.LOCAL@TEST.LOCAL renew until 23.05.2019 11:51:35Ora rimuoviamo o rinominiamo la configurazione esistente di Samba.
# mv smb.conf smb.conf.bak1E infine inseriamo nel dominio AD come secondo controller:
# samba-tool domain join test.local DC -U"TESTadministrator"L'inserimento avrà successo e sarà accompagnato dal seguente log
Trova un DC scrivibile per il dominio 'test.local' DC trovato: DC1.TEST.LOCAL Password per [TESTadministrator]: Riconnettendosi al master di denominazione e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL Il nome DNS del nuovo master di denominazione è DC1.TEST.LOCAL Gruppo di lavoro: TEST Reame: TEST.LOCAL Aggiungendo CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Aggiungendo CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Aggiungendo CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Aggiungendo SPN a CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Impostando la password dell'account per DC2$ Abilitando l'account Chiamando bare provision Ricerca degli indirizzi IPv4 Ricerca degli indirizzi IPv6 Nessun indirizzo IPv6 verrà assegnato Configurando share.ldb Configurando secrets.ldb Configurando il registro Configurando il database dei privilegi Configurando il database idmap Configurando il database SAM Configurando le partizioni e impostazioni di sam.ldb Configurando rootDSE di sam.ldb Pre-caricamento dello schema Samba 4 e AD È stata generata una configurazione Kerberos adatta per Samba AD in /var/lib/samba/private/krb5.conf Provision OK per il DN di dominio DC=TEST,DC=LOCAL Inizio della replica Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] oggetti[402/1426] collegati_valori[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] oggetti[804/1426] collegati_valori[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1206/1426] collegati_valori[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1608/1426] collegati_valori[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1743/1426] collegati_valori[0/0] Analizza e applica oggetti dello schema Partizione[CN=Configuration,DC=TEST,DC=LOCAL] oggetti[402/2240] collegati_valori[0/24] Partizione[CN=Configuration,DC=TEST,DC=LOCAL] oggetti[804/2240] collegati_valori[0/24] Partizione[CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1206/2240] collegati_valori[0/24] Partizione[CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1608/2240] collegati_valori[0/24] Partizione[CN=Configuration,DC=TEST,DC=LOCAL] oggetti[1772/2240] collegati_valori[24/24] Replicazione di oggetti critici dal DN base del dominio Partizione[DC=TEST,DC=LOCAL] oggetti[109/110] collegati_valori[26/29] Partizione[DC=TEST,DC=LOCAL] oggetti[394/5008] collegati_valori[29/29] Fatta con NC sempre replicato (base, config, schema) Replicazione di DC=DomainDnsZones,DC=TEST,DC=LOCAL Partizione[DC=DomainDnsZones,DC=TEST,DC=LOCAL] oggetti[42/42] collegati_valori[0/0] Replicazione di DC=ForestDnsZones,DC=TEST,DC=LOCAL Partizione[DC=ForestDnsZones,DC=TEST,DC=LOCAL] oggetti[20/20] collegati_valori[0/0] Exop su[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] oggetti[3] collegati_valori[0] Impegno del database SAM Aggiungendo 1 record DNS remoto per DC2.TEST.LOCAL Aggiungendo record A DNS DC2.TEST.LOCAL per l'IP IPv4: 192.168.90.201 Aggiungendo record CNAME DNS 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL per DC2.TEST.LOCAL Tutti gli altri record DNS (come i record SRV _ldap) verranno creati con samba_dnsupdate al primo avvio Replicazione dei nuovi record DNS in DC=DomainDnsZones,DC=TEST,DC=LOCAL Partizione[DC=DomainDnsZones,DC=TEST,DC=LOCAL] oggetti[1/42] collegati_valori[0/0] Replicazione dei nuovi record DNS in DC=ForestDnsZones,DC=TEST,DC=LOCAL Partizione[DC=ForestDnsZones,DC=TEST,DC=LOCAL] oggetti[1/20] collegati_valori[0/0] Invio di DsReplicaUpdateRefs per tutte le partizioni replicate Impostazione di isSynchronized e dsServiceName Configurazione del database segreti Entrato nel dominio TEST (SID S-1-5-21-3959064270-1572045903-2556826204) come un DCNell'ADUC dovrebbe apparire una voce per il nuovo DC nel dominio TEST.LOCAL, e nel gestore DNS una nuova registrazione A corrispondente a DC2.
- Replica tra i controllerIniziamo a controllare il funzionamento del servizio di replica dei cataloghi (DRS)
# samba-tool drs showreplTutti i tentativi di replica nell'output devono risultare riusciti. Nella lista degli oggetti KCC, entro 15 minuti dall'immissione, deve apparire il nostro DC1 su Windows.
Default-First-Site-NameDC2 Opzioni DSA: 0x00000001 GUID oggetto DSA: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf ID invocazione DSA: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== VETTORI INBOUND ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:56:31 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:56:32 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:56:32 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:56:32 2019 MSK DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:56:32 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:56:33 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:56:33 2019 MSK ==== VETTORI OUTBOUND ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Gio May 23 16:40:03 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Gio May 23 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Gio May 23 16:40:03 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Gio May 23 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Gio May 23 16:40:08 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Gio May 23 16:40:08 2019 MSK DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Gio May 23 16:40:08 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Gio May 23 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC GUID oggetto DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Ultimo tentativo @ Lun May 27 12:12:17 2019 MSK è stato un successo 0 fallimenti consecutivi. Ultimo successo @ Lun May 27 12:12:17 2019 MSK ==== OGGETTI DI CONNESSIONE KCC ==== Connessione -- Nome connessione: 6d2652b3-e723-4af7-a19f-1ee48915753c Abilitato : TRUE Nome DNS server : DC1.test.local Nome DN server : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local TipoTrasporto: RPC opzioni: 0x00000001 Attenzione: Nessun NC replicato per la connessione!Avviso «Nessuna replica NC per la connessione!» può essere ignorato tranquillamente. Si presenta perché durante la registrazione di un nuovo DC, Samba imposta erroneamente alcuni flag di replica.
È anche consigliabile controllare la replica LDAP.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorIl comando sopra riportato confronterà i valori degli attributi degli oggetti in tutto il catalogo su DC1 e DC2.
Esempio di replica riuscita
* Confronto del contesto [DOMAIN]... * Oggetti da confrontare: 249 * Risultato per [DOMAIN]: SUCCESSO * Confronto del contesto [CONFIGURATION]... * Oggetti da confrontare: 1750 * Risultato per [CONFIGURATION]: SUCCESSO * Confronto del contesto [SCHEMA]... * Oggetti da confrontare: 1739 * Risultato per [SCHEMA]: SUCCESSO * Confronto del contesto [DNSDOMAIN]... * Oggetti da confrontare: 42 * Risultato per [DNSDOMAIN]: SUCCESSO * Confronto del contesto [DNSFOREST]... * Oggetti da confrontare: 20 * Risultato per [DNSFOREST]: SUCCESSOIn alcuni casi, gli attributi degli oggetti sui diversi controller possono differire, e l'output del comando lo segnalerà. Ma non in tutti i casi questo sarà un segnale di un problema di replica.
Il passaggio successivo consiste nel configurare manualmente una replica stabile del catalogo SysVol.
Il fatto è che Samba attualmente non supporta DFS-R, proprio come non ha supportato il precedente FRS. Pertanto, l'unica soluzione funzionante per la replica tra un DC Samba e Windows è al momento la replica unidirezionale tramite l'utilità. Robocopy del pacchetto .Gli sviluppatori di Samba, per evitare problemi di compatibilità, raccomandano prima di installare il pacchetto di utilità su una normale workstation e solo dopo di copiare Robocopy sul controller nella cartella «C:Program Files (x86)Windows Resource KitsTools».
Dopo l'installazione, nel pianificatore delle attività sul controller Windows creiamo un'attività per eseguire la replica con i seguenti parametri:
— Esegui per tutti gli utenti
— Trigger per eseguire Ogni giorno ogni 5 minuti durante il giorno
— Negli azioni scriviamo il percorso dell'utilità robocopy, specificando come argomenti:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secNel caso specifico copiamo il contenuto della directory SysVol da DC1 a DC2.
- Cartelle utenti trasferibili utilizzando la configurazione pam_mount.Dopo vari tentativi, ho identificato due opzioni praticabili per risolvere questo problema con il suo aiuto.
- Montaggio completo della cartella profilo dalla rete nella directory /home. Una soluzione semplice che funziona bene se i nomi delle cartelle Documenti, Download e Desktop coincidono in entrambi i sistemi operativi. Si presuppone che il PC Linux sia già stato inserito nel dominio e che gli utenti accedano con i propri account di dominio, utilizzando sssd come meccanismo di autenticazione e autorizzazione.
# vim /etc/security/pam_mount.conf.xml<volume uid="100000000-2000000000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)" mountpoint="~" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>dove:
- uid="100000000-2000000000" — intervallo UID assegnato agli utenti di dominio da SSSD
- server="dfs" — nome del file server
- path="Profile_Users/%(USER)" — risorsa sul file server con il profilo utente
- mountpoint="~" — percorso di montaggio nella home directory dell'utente
Il login dell'utente viene passato nella variabile macro "%(USER)", utilizzata da pam_mount, per connettere la nostra risorsa di rete esattamente come è stata inserita nel gestore di display. Pertanto, è importante che nel gestore di display il login venga inserito senza specificare esplicitamente il nome del dominio.
In sssd.conf si risolve commentando o impostando il valore False nell'opzione use_fully_qualified_names, che include la modalità di nomi completi (incluso il dominio) per utenti e gruppi.
- Il secondo metodo è meno diretto e un po' più rozzo, ma a mio avviso è più comodo e preferibile. L'unica differenza dal primo è nella configurazione di pam_mount.
# vim /etc/security/pam_mount.conf.xmlCioè, montiamo semplicemente separatamente ogni nostra cartella nella sua directory corrispondente.
- Montaggio completo della cartella profilo dalla rete nella directory /home. Una soluzione semplice che funziona bene se i nomi delle cartelle Documenti, Download e Desktop coincidono in entrambi i sistemi operativi. Si presuppone che il PC Linux sia già stato inserito nel dominio e che gli utenti accedano con i propri account di dominio, utilizzando sssd come meccanismo di autenticazione e autorizzazione.
Conclusioni
Nel corso di un mese di lavoro su un banco di prova, questa configurazione ha superato con successo diverse disconnessioni temporanee e prolungate di entrambi i controller, praticamente senza conseguenze per i clienti (una volta un cliente su Windows7 ha perso la fiducia).
Nel complesso, ho avuto impressioni piuttosto positive lavorando con questo prodotto, nonostante tutte le sfide incontrate sia nell'articolo che "dietro le quinte".
Ci sono molte insidie, e durante il lavoro con Samba dovrò affrontarne un gran numero. Tuttavia, attualmente non ci sono altre soluzioni che consentano di organizzare un ambiente ibrido, utilizzando un servizio directory senza Windows.
Fonte: habr.com
