Autentisering via LDAP och Kerberos i CentOS 7: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
mNo edit summary
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i CentOS 7. 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.
Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i CentOS 7. Vi kommer använda SSSD och 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.
__TOC__
__TOC__


=== Kerberos ===
=== Kerberos ===
Installera följande:
Installera följande:
{{RootCmd|yum install krb5-workstation pam_krb5 sssd}}
{{RootCmd|yum install krb5-workstation sssd}}


Spara undan befintlig settings:
Spara undan befintlig settings:
Line 11: Line 11:


Enable:a autentisering via Kerberos:
Enable:a autentisering via Kerberos:
{{RootCmd|<nowiki>authconfig --enablekrb5 --krb5kdc="ns.example.com" --krb5adminserver="ns.example.com" --krb5realm="EXAMPLE.COM" --update</nowiki>}}
{{RootCmd|<nowiki>authconfig --krb5kdc=ns.example.com --krb5adminserver=ns.example.com --krb5realm=EXAMPLE.COM --update</nowiki>}}
Testa att du kan skaffa en Kerberos ticket.
Testa att du kan skaffa en Kerberos ticket.


Inloggning via SSH ska fungera nu, men man måste alltid ange lösenordet. För att kunna logga in via existerande Kerberos ticket, så behövs en keytab fil. Logga in mot din KDC med admin-konto som har rättighet att skapa Kerberos principals:
Skapa en keytab fil för klienten. Logga in mot din KDC med admin-konto som har rättighet att skapa Kerberos principals:
{{RootCmd|kadmin -p kadmin/admin}}
{{RootCmd|kadmin -p kadmin/admin}}
Kör kadmin kommandot:
Kör kadmin kommandot:
Line 23: Line 23:


=== SSSD ===
=== SSSD ===
Istället för nslcd använder vi oss av den nyare sssd. Editera filen /etc/sssd/sssd.conf:
 
Editera filen /etc/sssd/sssd.conf:
{{bc|1=
{{bc|1=
[sssd]
[sssd]
config_file_version = 2
config_file_version = 2
services = nss
services = nss, pam
domains = LOCAL, example.com
domains = LOCAL, EXAMPLE.COM


[nss]
[nss]
Line 36: Line 37:
entry_cache_timeout = 300
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75
entry_cache_nowait_percentage = 75
[pam]
reconnection_retries = 3


[domain/LOCAL]
[domain/LOCAL]
Line 42: Line 46:
access_provider = permit
access_provider = permit


[domain/example.com]
[domain/EXAMPLE.COM]
enumerate = true
debug_level = 0
auth_provider = krb5
enumerate = false
krb5_server = ns.example.com
min_id = 5000
krb5_realm = EXAMPLE.COM
cache_credentials = true
cache_credentials = true


id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = simple
access_provider = simple
chpass_provider = krb5
sudo_provider = none


id_provider = ldap
ldap_uri = ldap://ns.example.com
ldap_uri = ldap://ns.example.com
ldap_search_base = dc=example,dc=com
ldap_search_base = dc=example,dc=com
Line 58: Line 63:
ldap_tls_cacert = /etc/openldap/cacerts/example.com-ca.crt
ldap_tls_cacert = /etc/openldap/cacerts/example.com-ca.crt


sudo_provider = none
krb5_realm = EXAMPLE.COM
krb5_server = ns.example.com
krb5_kpasswd = ns.example.com
}}
}}


Line 71: Line 78:


Enable:a användarinformation via SSSD:
Enable:a användarinformation via SSSD:
{{RootCmd|authconfig --enablesssd --update}}
{{RootCmd|authconfig --enablesssd --enablesssdauth --update}}


Kontrollera med:
Kontrollera med:
{{RootCmd|getent passwd
{{RootCmd|getent passwd <user>
|getent group}}
|getent group <group>
}}
 
== LDAP ==
 
Installera:
{{RootCmd|yum install openldap-client}}
 
{{RootCmd|<nowiki>authconfig --ldapserver=ns.example.com --ldapbasedn="dc=example,dc=com" --enableldapstarttls --update</nowiki>}}


=== SSH ===
Kontrollera med:
Inloggning via SSH ska fungera nu, men man måste alltid ange lösenordet. För att kunna logga in via existerande Kerberos ticket, så behövs en host keytab fil. Logga in mot din KDC med admin-konto som har rättighet att skapa Kerberos principals:
{{RootCmd|kinit anna
{{RootCmd|kadmin -p kadmin/admin}}
|ldapwhoami
Kör kadmin kommandot:
|kdestroy
{{bc|kadmin: addprinc -randkey host/client.example.com@EXAMPLE.COM}}
|<nowiki>ldapwhoami -D uid=anna,ou=people,dc=example,dc=com -W</nowiki>}}
Spara sen nycklarna i filen /etc/krb5.keytab:
{{bc|kadmin: ktadd -k /etc/krb5.keytab host/client.example.com@EXAMPLE.COM}}
Logga ut ifrån kadmin. Nu kan du logga in via SSH utan att ange lösenordet om du redan har en giltig Kerberos ticket.


[[Category:Guide]]
[[Category:GammalGuide]]

Latest revision as of 13:59, 12 August 2023

Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i CentOS 7. Vi kommer använda SSSD och 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 # yum install krb5-workstation sssd

Spara undan befintlig settings:

root # authconfig --savebackup=original

Enable:a autentisering via Kerberos:

root # authconfig --krb5kdc=ns.example.com --krb5adminserver=ns.example.com --krb5realm=EXAMPLE.COM --update

Testa att du kan skaffa en Kerberos ticket.

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

root # 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.

SSSD

Editera filen /etc/sssd/sssd.conf:

[sssd]
config_file_version = 2
services = nss, pam
domains = LOCAL, EXAMPLE.COM

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75

[pam]
reconnection_retries = 3

[domain/LOCAL]
id_provider = local
auth_provider = local
access_provider = permit

[domain/EXAMPLE.COM]
debug_level = 0
enumerate = false
min_id = 5000
cache_credentials = true

id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = simple
sudo_provider = none

ldap_uri = ldap://ns.example.com
ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = true
ldap_tls_cacert = /etc/openldap/cacerts/example.com-ca.crt

krb5_realm = EXAMPLE.COM
krb5_server = ns.example.com
krb5_kpasswd = ns.example.com
root # chmod 600 /etc/sssd/sssd.conf

Kopiera ditt CA certifikat till filen /etc/openldap/cacerts/example.com-ca.crt, kör sedan kommandot:

root # cacertdir_rehash /etc/openldap/cacerts

Starta sssd:

root # systemctl enable sssd
root #
systemctl start sssd

Enable:a användarinformation via SSSD:

root # authconfig --enablesssd --enablesssdauth --update

Kontrollera med:

root # getent passwd <user>
root #
getent group <group>

LDAP

Installera:

root # yum install openldap-client
root # authconfig --ldapserver=ns.example.com --ldapbasedn="dc=example,dc=com" --enableldapstarttls --update

Kontrollera med:

root # kinit anna
root #
ldapwhoami
root #
kdestroy
root #
ldapwhoami -D uid=anna,ou=people,dc=example,dc=com -W