Autentisering via LDAP och Kerberos i FreeBSD 10

From Peters wiki
Revision as of 14:44, 25 October 2015 by Peter (talk | contribs)
Jump to navigation Jump to search

Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i FreeBSD 10. I guiden heter Kerberos realm EXAMPLE.COM och servern med Kerberos och LDAP heter ns.example.com. Klienten vi sätter upp heter client.example.com.

Kerberos

Installera följande:

root # portmaster security/pam_krb5 security/krb5

Välj att länka mot Heimdal Kerberos. Vi kommer bara använda kadmin från security/krb5 för att skapa Kerberos principal för klienten.

Editera /etc/krb5.conf:

[libdefaults]
    default_realm = EXAMPLE.COM

[realms]
    EXAMPLE.COM = {
        kdc = ns.example.com
        admin_server = ns.example.com
        default_domain = example.com
    }

[domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

Skapa en keytab fil för klienten. Logga in mot din KDC med admin-konto som har rättighet att skapa Kerberos principals:

root # /usr/local/bin/kadmin -p kadmin/admin

Kör kadmin kommandot:

kadmin: addprinc -randkey host/client.example.com@EXAMPLE.COM

Spara sen nycklarna i filen /etc/krb5.keytab:

kadmin: ktadd -k /etc/krb5.keytab host/client.example.com@EXAMPLE.COM

Logga ut från kadmin.

Skapa en Kerberos principal för host/<host>.example.com och kopiera nycklarna till /etc/krb5.keytab.

Editera /etc/pam.d/sshd och lägg till 3 st Kerberos rader:

# auth
auth		sufficient	pam_opie.so		no_warn no_fake_prompts
auth		requisite	pam_opieaccess.so	no_warn allow_local
auth		sufficient	/usr/local/lib/security/pam_krb5.so	try_first_pass minimum_uid=5000
...
# account
account		required	pam_nologin.so
account		required	/usr/local/lib/security/pam_krb5.so	minimum_uid=5000
...
# password
password	sufficient	/usr/local/lib/security/pam_krb5.so	try_first_pass minimum_uid=5000
password	required	pam_unix.so		no_warn try_first_pass

LDAP

Installera net/nss-pam-ldapd utan pam_ldap stödet. Vi ska ju inte autentisera mot LDAP:

root # portmaster net/nss-pam-ldapd

Editera /usr/local/etc/nslcd.conf:

uid nslcd
gid nslcd
uri ldap://ns.example.com/
base dc=example,dc=com
ssl start_tls
tls_cacertfile /etc/ssl/cert.pem

Editera /etc/nsswitch.conf:

group: files ldap
passwd: files ldap

Radera länken /etc/ssl/cert.pem och ersätt med ditt egna CA certifikat.

Editera /etc/rc.conf:

nscd=_enable="YES"
nslcd_enable="YES"

Starta nscd och nslcd:

root # service nscd start
root #
service nslcd start

Verifiera med kommandona:

root # getent passwd
root #
getent group

SSH

Editera filen /etc/ssh/sshd_config och lägg till följande:

KerberosAuthentication yes

Starta om sshd med kommandot:

root # service sshd restart