Testmiljø for AD2-synk

Informasjon om oppsett av testmiljø for AD for Windows Server 2012 R2.

1   Sette opp Active Directory Domain Controller

Dette dokumentet beskriver oppsett av en Active Directory Domain Controller for test-bruk i Cerebrum. For oppsett av produksjon, se ./sync/setup-windows.html.

1.1   Testmaskiner og domener

Per i dag har vi følgende maskiner satt opp for bruk med cere-utv04:

  • ceretestad01.uio.no (domene: DC=ceretest-ad01,DC=local)
  • ceretestad02.uio.no (domene: DC=ceretest-ad02,DC=local)
  • ceretestad03.uio.no (domene: DC=ceretestad03,DC=local)
  • ceretestad04.uio.no (domene: DC=ceretest-ad04,DC=local)

Du skal kunne bruke RDP og WinRM mot desse.

Dei ligg i kat 5, altså sandboks-nettet, så tilgang kan vere trøblete. Om WinRM ikke fungerer frå Cerebrum, kan du evt. køyre gjennom ein tunnell via td. ulrik:

cere-utv04 $ ssh -L 20110:ceretestad01.uio.no:5985 -N ulrik.uio.no

1.2   Oppsett av AD-domene

1.2.1   Opprett innloggingsbruker

Opprett en lokal bruker cereauth, og meld den inn i lokal sikkerhetsgruppe Administrators:

$dn = "cn=Users,dn=<domene>…"
$a = New-ADUser -Name cereauth -AccountExpirationDate $null -PasswordNeverExpires $true -Enabled $true -AccountPassword (Read-Host -AsSecureString "AccountPassword") -Path "$dn" -PassThru
$g = Get-ADGroup "cn=Administrators,$dn"
Add-ADGroupMember $g -Member $a

TODO: Finn ut hvordan cereauth kan få påloggingstilgang uten å være administrator.

MERK: Husk å lage passordfil for brukeren på maskinen som AD-synken kjører fra!

1.2.2   Lag OU

Lag et nytt OU, «Cerebrum», som AD-integrasjonen kan administrere.

New-ADOrganizationalUnit -Name Cerebrum -Path "dc=<domene>…"

1.2.3   Opprett Domene-administrator

Opprett lokal gruppe cerebrum_administrators. Opprett en lokal bruker cerebrum_service, og meld denne inn i cerebrum_administrators:

$dn = "dn=<domene>,dn=<tld>"
$a = New-ADUser -Name cerebrum_service -AccountExpirationDate $null -PasswordNeverExpires $true -Enabled $true -AccountPassword (Read-Host -AsSecureString "AccountPassword") -Path "cn=Users,$dn" -PassThru
$g = New-ADGroup -Name cerebrum_administrators -GroupScope "DomainLocal" -Path "cn=Users,$dn" -PassThru
Add-ADGroupMember $g -Member $a

MERK: Husk å lage passordfil for brukeren på maskinen som AD-synken kjører fra!

1.2.4   Gi tilgang til å administrere OU

Deleger tilgang til OU-en Cerebrum til lokal gruppe cerebrum_administrators.

  • Åpne «Active Directory Users and Computers», velg OU-en «Cerebrum»
  • [Høyreklikk] → «Delegate Control…»
  • Legg til gruppen cerebrum_administrators
  • Velg «Create a custom task to delegate»
  • Velg «This folder…»
  • Velg alt (huk av for «Full Control»)
  • «Finish»

1.2.5   Sett opp GPO for Cerebrum

Lag en ny GPO for Cerebrum:

New-GPO -Name CerebrumPolicy -Domain <domene…> | New-GPLink -target "ou=Cerebrum,dc=<domene>,dc=<tld>"

Sett opp password policy-regler i GPO-en:

  • Åpne «Group Policy Management», velg CerebrumPolicy under <domene>\Group Policy Object
  • [Høyreklikk] → «Edit…»
  • Computer Configuration\Windows Settings\Security Settings\Account Policies\Password Policy
    • Enforce password history: 0
    • Maximum password age: 0
    • Minimum password age: 0
    • Minimum password length: 0
    • Password must meet complexity requirements: Disabled
    • Store passwords using reversible encryption: Disabled

1.3   Sertifikater (self-signed)

  1. Installer Certificate Authority
    • Server Manager → Add roles and services
    • Active Directory Certificate Services
  2. Konfigurer CA
    • Server Manager → Configure Active Directory Certificate Services on the destination server
    • Velg rolle «Certification Authority»
    • Velg «Standalone CA»
    • Velg «Root CA»
    • Velg «Create new private key»
    • Velg «SHA512» og «Allow administrator…»
    • Gi CA-sertifikatet lang varighet, 10 år burde holde
  3. Eksporter CA-sertifikat
    • Start certlm
    • Velg «Personal» → «Certificates» → <din CA>
    • [Høyreklikk] → «All tasks» → «Export»
    • IKKE ekporter private key!
    • «Base-64 encoded X.509 (.CER)
    • Lagre til fil
  4. Lag certificate request
    • Start certlm
    • [Høyreklikk] → «All tasks» -> «Advanced operations» -> «Create custom request»
    • Velg «Proceed without enrollment»
    • Velg «(no template CNG-key», «PKCS#10»
    • «Certificate Information», velg «Custom request» -> «Details» -> «Properties»
    • Fyll inn:
      • General → Friendly name: <fqdn>
      • Subject → Subject-name: Common Name – <fqdn>
      • Extensions → Extended key usage: Server Authentication og Client Authentication
      • Private key → Key options: Key Size – 4096
      • Private key → Key options: «Make private key exportable»
      • Private key → Key options: «Allow private key to be archived»
      • Private key → Select Hash Algo: SHA512
    • Lagre request-fil
  5. Signer request
    • Start «Certification Authority» (certsrv), velg din CA.
    • [Høyreklikk] → «All tasks» → «Submit new request»
    • Finn frem til request-fil
    • Velg «Pending request» → <din request> → [Høyreklikk] → «All tasks» → Issue
  6. Eksporter sertifikat
    • I «Certification Authority» (certsrv), finn det signerte sertifikatet («Issued Certificates»)
    • [Høyreklikk] → «Open»
    • «Details» → «Copy to file…»
    • «Base-64 encoded X.509 (.CER)
    • Lagre til fil
  7. Importer signert sertifikat i certlm
    • Åpne certlm
    • Velg «Personal» → «Certificates»
    • [Høyreklikk] → «All tasks» → «Import…»
    • Velg det signerte sertifikatet du nettopp eksporterte
  8. Overfør de eksporterte sertifikatene til maskinen AD-synken kjører fra (DB_AUTH_DIR), og lag en PEM-fil som inneholder begge sertifikatene.

1.4   WinRM

1.4.1   Sett opp GPO for WinRM

Lag en ny GPO for WinRM-/RemoteShell-innstillinger:

New-GPO -Name CerebrumRemote -Domain <domene…> | New-GPLink -target "dc=<domene>…"

Sett opp inntillinger i GPO-en

  • Åpne «Group Policy Management», velg CerebrumRemote under <domene>\Group Policy Object
  • [Høyreklikk] → «Edit…»
  • Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Remote Management\WinRM Server
    • Allow remote server management through WinRM: Enabled (IPv4/IPv6 filter: *)
    • Allow Basic authenticaton: Enabled
    • Allow unencrypted traffic: Disabled
  • Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Remote Shell
    • Allow Remote Shell Access: Enabled
    • Specify idle Timeout: Enabled (10800000)
    • MaxConcurrentUsers: Enabled (100)
    • Specify maximum amount of memory in MB per Shell: Enabled (500)
    • Specify maximum number of processes per Shell: Enabled (1000)
    • Specify maximum number of remote shells per user: Enabled (1000)
  • I Powershell, kjør gpupdate.exe for å la endringene ta effekt

1.4.2   Sett opp HTTPS-listener

Merk: bruk cmd.exe, og ikke powershell for å utføre kommandoene

  • Hent SHA-fingerprint fra sertifikatet vi lagde

  • Kjør:

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{CertificateThumbprint="<thumbprint>"})
    
  • I «Server Manager» → «All Servers» → «Services», finn og velg «WinRm»

  • [Høyreklikk] → Restart

1.4.3   Firewall

  • Åpne «Windows Firewall with Advanced Security»
  • Fjern «Incoming» → «Windows Remote Management (HTTP-In)»
  • I «Incoming» → «New Rule…»
    • Velg «Port»
    • Velg «TCP» «5986»
    • Velg «Allow»
    • Gi et furnuftig navn («WinRM (HTTPS-In)»)

1.5   Teste

Lag en adconf.py som inneholder:

SYNCS = {
    'test': {
        'server': <fqdn til AD-domenekontroller>,
        'domain': <domene>,
        'auth_user': 'cereauth',
        'domain_admin': r'<domene>\cerebrum_service',
        'encrypted': True,
        'ca': os.path.join(cereconf.DB_AUTH_DIR, '<sertifikat-fil>'),
    },
}

Kjør:

python powershell --type test echo 'Foo'
Av fhl
Publisert 17. juni 2015 15:40 - Sist endret 31. mai 2016 09:31