User Tools

Site Tools


truenas

This is an old revision of the document!


FreeIPA/Samba integration

This was more complicated than it probably should have been due to the IPA domain not matching the truenas host domain, I think.

  • Setup FreeIPA servers for Samba, run the following on all servers:
    dnf install ipa-server-trust-ad
    ipa-adtrust-install
  • Setup TrueNAS
    • Credentials→Directory Services→Show Advanced
    • Add Kerberos Realm
      • Realm: IPA.SIHNON.NET
      • Primary KDC: pick one of the IPA servers
      • KDC/admin servers/password servers: List all the IPA servers
    • Add a host/fqdn@IPA.SIHNON.NET keytab
    • Configure Directory Services
      • Configuration type: IPA
      • Enable Service, Enable Account Cache, Enable DNS Updates
      • Timeout: 10s
      • Kerberos Realm: IPA.SIHNON.NET
      • Credential type: Kerberos Principal
      • Kerberos Principal: The host keytab uploaded previously
      • Target Server: pick one of the IPA servers
      • TrueNAS hostname: short hostname
      • Domain: ipa.sihnon.net
      • Base DN: dc=ipa,dc=sihnon,dc=net
      • Validate Certificates
      • For SMB, don't use defaults
        • Name: IPA
        • Domain: ipa.sihnon.net
        • Rest of the attributes at default
    • Edit /etc/krb5.conf:
      [libdefaults]
              dns_lookup_realm = false # change from true
              dns_lookup_kdc = false # change from true
      
      [domain_realms]
              # Add these two lines
              jellybean.sihnon.net = IPA.SIHNON.NET
              .jellybean.sihnon.net = IPA.SIHNON.NET
    • Restart winbind service

When connecting from a non-domain joined Windows, it won't prompt for credentials and will fail. Must explicitly map a drive, using IPA domain creds first. Subsequent connections to the same hostname will reuse the credentials, so not all shares need to be mapped.

ACME

For the first server, follow the below instructions.

  • Create a tsig key for nsupdate:
    tsig-keygen -a HMAC-SHA512
  • Update the key name to truenas.
  • Distribute the key to nameservers via puppet (hiera key profile::freeipa::named::keys), and make sure bind has been restarted to pick up the change
  • Create data/system/acme datasets
  • SSH to the host as truenas_admin and run the following:
    sudo chown truenas_admin /mnt/data/system/acme
    git clone --depth 1 https://github.com/acmesh-official/acme.sh.git
  • Save the tsig key to /mnt/data/system/acme/.nsupdate.key (making sure the key name and secret match puppet)

For subsequent servers, clone the acme filesystem

For all servers:

  • Navigate to Credentials→Certificates
  • Add an ACME DNS-Authenticator
    • Name: freeipa
    • Authenticator: shell
    • Script: /mnt/data/system/dns_acme.sh
    • User: root
    • Timeout: 60
    • Delay: 90
  • Add a Certificate Signing Request. Follow the wizard. LetsEncrypt doesn't use any of the subject attributes so set any values.
  • Once added, click three dots next to the CSR Create ACME certificate
    • Name: letsencrypt
    • Accept ToS
    • Directory UI: LetsEncrypt Production
    • Set Freeipa for each domain
  • Once the letsencrypt CSR appears in the list, navigate to System-General
  • Click the GUI Settings button
  • Select letsencrypt certificate under GUI SSL Certificate and save changes, confirming thr restart
truenas.1765705839.txt.gz · Last modified: by ben

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki