update freeipa smart card notes
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
- [Quickstart Production Setup](#quickstart-production-setup)
|
- [Quickstart Production Setup](#quickstart-production-setup)
|
||||||
- [Tips](#tips)
|
- [Tips](#tips)
|
||||||
- [Adding a user](#adding-a-user)
|
- [Adding a user](#adding-a-user)
|
||||||
|
- [Adding a Smart Card Certificate](#adding-a-smart-card-certificate)
|
||||||
- [PIV](#piv)
|
- [PIV](#piv)
|
||||||
- [Sources](#sources)
|
- [Sources](#sources)
|
||||||
- [Set up PIV Auth on the Host where you Installed FreeIPA](#set-up-piv-auth-on-the-host-where-you-installed-freeipa)
|
- [Set up PIV Auth on the Host where you Installed FreeIPA](#set-up-piv-auth-on-the-host-where-you-installed-freeipa)
|
||||||
@@ -17,6 +18,8 @@
|
|||||||
- [Finding devices in sysfs WIP](#finding-devices-in-sysfs-wip)
|
- [Finding devices in sysfs WIP](#finding-devices-in-sysfs-wip)
|
||||||
- [Finding p11 devices WIP](#finding-p11-devices-wip)
|
- [Finding p11 devices WIP](#finding-p11-devices-wip)
|
||||||
- [Arch Client WIP](#arch-client-wip)
|
- [Arch Client WIP](#arch-client-wip)
|
||||||
|
- [Troubleshooting](#troubleshooting)
|
||||||
|
- [Changing IP address](#changing-ip-address)
|
||||||
|
|
||||||
An AD Server.
|
An AD Server.
|
||||||
|
|
||||||
@@ -71,6 +74,10 @@ dnf install ipa-server-dns bind-dyndb-ldap -y
|
|||||||
# 2. We don't need to scan for additional zones
|
# 2. We don't need to scan for additional zones
|
||||||
ipa-server-install --setup-dns
|
ipa-server-install --setup-dns
|
||||||
|
|
||||||
|
# Setup firewall
|
||||||
|
firewall-cmd --add-service=freeipa-ldap --add-service=freeipa-ldaps --add-service=dns --permanent
|
||||||
|
firewall-cmd --reload
|
||||||
|
|
||||||
# Install flatpak
|
# Install flatpak
|
||||||
dnf install flatpak
|
dnf install flatpak
|
||||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
@@ -98,8 +105,8 @@ Now skip to [Get PIV Working](#piv)
|
|||||||
- Open ports:
|
- Open ports:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
firewall-cmd --add-service=freeipa-ldap --add-service=freeipa-ldaps
|
|
||||||
firewall-cmd --add-service=freeipa-ldap --add-service=freeipa-ldaps --permanent
|
firewall-cmd --add-service=freeipa-ldap --add-service=freeipa-ldaps --permanent
|
||||||
|
firewall-cmd --reload
|
||||||
```
|
```
|
||||||
|
|
||||||
- Set a permanet DNS resolver: `sudo echo "nameserver 1.1.1.1" > /etc/resolv.conf`
|
- Set a permanet DNS resolver: `sudo echo "nameserver 1.1.1.1" > /etc/resolv.conf`
|
||||||
@@ -147,6 +154,18 @@ reboot
|
|||||||
- `ipa passwd <user>`
|
- `ipa passwd <user>`
|
||||||
- `kinit <user>`
|
- `kinit <user>`
|
||||||
|
|
||||||
|
### Adding a Smart Card Certificate
|
||||||
|
|
||||||
|
1. Login to the UI as admin
|
||||||
|
2. Navigate to your user
|
||||||
|
3. Actions -> New Certificate
|
||||||
|
4. Generate a self-signed CSR with your yubikey
|
||||||
|
5. Paste the CSR into the CSR field
|
||||||
|
6. Generate
|
||||||
|
7. Download the certificate from the user page
|
||||||
|
8. Import the certificate into slot 9a for your yubikey
|
||||||
|
9. `kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user`
|
||||||
|
|
||||||
## PIV
|
## PIV
|
||||||
|
|
||||||
### Sources
|
### Sources
|
||||||
@@ -249,36 +268,34 @@ hostnamectl set-hostname client.reese.reeselink.com
|
|||||||
|
|
||||||
# OPTIONAL: You need to leave any existing AD realm before joining a new one
|
# OPTIONAL: You need to leave any existing AD realm before joining a new one
|
||||||
# realm leave <some-realm>
|
# realm leave <some-realm>
|
||||||
```
|
|
||||||
|
|
||||||
Add the freeipa server to our /etc/hosts so we don't need to set up DNS
|
# Install pcscd
|
||||||
|
dnf install pcsc-lite opensc
|
||||||
|
# Start the pcscd server
|
||||||
|
systemctl enable --now pcscd
|
||||||
|
|
||||||
```bash
|
# Update client's dns server to use freeipa
|
||||||
vim /etc/hosts
|
vim /etc/resolv.conf
|
||||||
|
nameserver 192.168.122.130
|
||||||
`192.168.122.195 freeipa.reese.reeselink.com`
|
|
||||||
|
|
||||||
# This should populate /etc/krb5.conf and /etc/sssd/sssd.conf
|
# This should populate /etc/krb5.conf and /etc/sssd/sssd.conf
|
||||||
realm join -U someuser freeipa.reese.reeselink.com -v
|
realm join -U admin freeipa.reese.reeselink.com -v
|
||||||
|
|
||||||
# AD should be configured to create the user's home dir, but to be safe
|
|
||||||
export freeipa_user=ducoterra
|
|
||||||
mkdir /home/$freeipa_user
|
|
||||||
chown $freeipa_user:$freeipa_user /home/$freeipa_user
|
|
||||||
|
|
||||||
# Check login
|
|
||||||
su - $freeipa_user
|
|
||||||
|
|
||||||
# With kinit
|
# With kinit
|
||||||
kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
|
kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user
|
||||||
|
|
||||||
# With sssctl
|
# With sssctl
|
||||||
cp /etc/ipa/ca.crt /etc/sssd/pki/sssd_auth_ca_db.pem
|
|
||||||
dnf install -y sssd-tools
|
dnf install -y sssd-tools
|
||||||
|
cp /etc/ipa/ca.crt /etc/sssd/pki/sssd_auth_ca_db.pem
|
||||||
|
chmod 600 /etc/ipa/ca.crt /etc/sssd/pki/sssd_auth_ca_db.pem
|
||||||
authselect enable-feature with-smartcard
|
authselect enable-feature with-smartcard
|
||||||
# required: authselect enable-feature with-smartcard-required
|
# required: authselect enable-feature with-smartcard-required
|
||||||
# lock on remove: authselect enable-feature with-smartcard-lock-on-removal
|
# lock on remove: authselect enable-feature with-smartcard-lock-on-removal
|
||||||
# set "pam_cert_auth = True" in [pam] section of /etc/sssd/sssd.conf
|
```
|
||||||
|
|
||||||
|
IMPORTANT: set `pam_cert_auth = True` in `[pam]` section of `/etc/sssd/sssd.conf`.
|
||||||
|
|
||||||
|
```bash
|
||||||
systemctl restart sssd
|
systemctl restart sssd
|
||||||
sssctl user-checks -s gdm-smartcard "ducoterra" -a auth
|
sssctl user-checks -s gdm-smartcard "ducoterra" -a auth
|
||||||
```
|
```
|
||||||
@@ -389,3 +406,11 @@ vim /etc/krb5.conf
|
|||||||
|
|
||||||
- Log in with your user: `kinit <user>`
|
- Log in with your user: `kinit <user>`
|
||||||
- List your tickets: `klist`
|
- List your tickets: `klist`
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Changing IP address
|
||||||
|
|
||||||
|
Changing the IP address of a freeipa server can break dnssec. You'll get
|
||||||
|
"servfail" looking things up. The quick way to fix this is to edit
|
||||||
|
`/etc/named/ipa-options-ext.conf` and to set `dnssec-validation no;`.
|
||||||
|
|||||||
Reference in New Issue
Block a user