truenas
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.
- Remove DNS for the host from freeipa if setup previously, and connect to the truenas by IP for the next steps
- 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
- Configure Directory Services
- Configuration type: IPA
- Enable Service, Enable Account Cache, Enable DNS Updates
- Timeout: 10s
- Kerberos Realm: IPA.SIHNON.NET
- Credential type: Kerberos User (admin, and the domain password)
- Target Server: pick one of the IPA servers
- TrueNAS hostname: short hostname
- Domain: jellybean.sihnon.net (temporary hack to ensure computer objects are created using canonical hostname)
- 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
- Verify the Host object, cifs/nfs service accounts, and DNS records have been created in FreeIPA with the jellybean domain
- Disable directory services and change the domain from
jellybean.sihnon.nettoipa.sihnon.netand re-enable the services - Restart
winbindservice - Verify that
getent passwd benshows the account
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/acmedatasets - SSH to the host as
truenas_adminand 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/acme/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
letsencryptCSR appears in the list, navigate toSystem-General - Click the GUI
Settingsbutton - Select
letsencryptcertificate underGUI SSL Certificateand save changes, confirming thr restart
truenas.txt · Last modified: by ben
