Autentisering via LDAP och Kerberos i FreeBSD 10: Difference between revisions
m →SSH  | 
				mNo edit summary  | 
				||
| (24 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 FreeBSD 10.   | Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i FreeBSD 10. 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__  | ||
==   | == Installera SSSD ==  | ||
Installera följande:  | Installera följande:  | ||
{{RootCmd|portmaster security/  | {{RootCmd|portmaster security/cyrus-sasl2-gssapi}}  | ||
Välj Heimdal från systemetet, dvs BASE.  | |||
{{RootCmd|portmaster net/openldap24-sasl-client}}  | |||
Välj GSSAPI. Slutligen installera SSSD:  | |||
{{RootCmd|portmaster security/sssd}}  | |||
== Kerberos ==  | |||
Editera /etc/krb5.conf:  | Editera /etc/krb5.conf:  | ||
| Line 36: | Line 41: | ||
=== PAM ===  | === PAM ===  | ||
Editera /etc/pam.d/system   | Editera /etc/pam.d/system:  | ||
{{bc|1=  | {{bc|1=  | ||
auth            sufficient      pam_krb5.so   | # auth  | ||
account         required        pam_krb5.so  | auth            sufficient      pam_opie.so		no_warn no_fake_prompts  | ||
password        sufficient      pam_krb5.so   | auth            requisite       pam_opieaccess.so	no_warn allow_local  | ||
'''auth            sufficient      /usr/local/lib/pam_sss.so forward_pass'''  | |||
#auth           sufficient      pam_krb5.so		no_warn try_first_pass  | |||
#auth           sufficient      pam_ssh.so		no_warn try_first_pass  | |||
auth            required        pam_unix.so		no_warn try_first_pass nullok  | |||
# account  | |||
'''account         required        /usr/local/lib/pam_sss.so ignore_unknown_user ignore_authinfo_unavail'''  | |||
#account        required        pam_krb5.so  | |||
account         required        pam_login_access.so  | |||
account         required        pam_unix.so  | |||
# session  | |||
#session        optional        pam_ssh.so		want_agent  | |||
session         required        pam_lastlog.so		no_fail  | |||
# password  | |||
'''password        sufficient      /usr/local/lib/pam_sss.so use_authtok'''  | |||
#password       sufficient      pam_krb5.so		no_warn try_first_pass  | |||
password        required        pam_unix.so		no_warn try_first_pass  | |||
}}  | }}  | ||
Editera /etc/pam.d/sshd   | Editera /etc/pam.d/sshd:  | ||
{{bc|1=  | {{bc|1=  | ||
auth            sufficient      pam_krb5.so   | # auth  | ||
account         required          | auth            sufficient	pam_opie.so		no_warn no_fake_prompts  | ||
auth            requisite	pam_opieaccess.so	no_warn allow_local  | |||
'''auth            sufficient      /usr/local/lib/pam_sss.so forward_pass'''  | |||
#auth           sufficient	pam_krb5.so		no_warn try_first_pass  | |||
auth            sufficient	pam_ssh.so		no_warn try_first_pass  | |||
auth            required	pam_unix.so		no_warn try_first_pass  | |||
# account  | |||
account         required	pam_nologin.so  | |||
'''account         required        /usr/local/lib/pam_sss.so ignore_unknown_user ignore_authinfo_unavail'''  | |||
#account        required	pam_krb5.so  | |||
account         required	pam_login_access.so  | |||
account         required	pam_unix.so  | |||
# session  | |||
#session        optional	pam_ssh.so		want_agent  | |||
session         required	pam_permit.so  | |||
# password  | |||
'''password        sufficient      /usr/local/lib/pam_sss.so use_authtok'''  | |||
#password       sufficient	pam_krb5.so		no_warn try_first_pass  | |||
password        required	pam_unix.so		no_warn try_first_pass  | |||
}}  | }}  | ||
== NSS ==  | |||
Editera /etc/nsswitch.conf:  | Editera /etc/nsswitch.conf:  | ||
{{bc|  | {{bc|  | ||
group: files   | group: files sss  | ||
passwd: files   | passwd: files sss  | ||
}}  | }}  | ||
Radera länken /etc/ssl/cert.pem och ersätt med ditt egna CA certifikat.  | Radera länken /etc/ssl/cert.pem och ersätt med ditt egna CA certifikat.  | ||
=== SSSD ===  | |||
Editera /usr/local/etc/sssd/sssd.conf:  | |||
{{bc|1=  | |||
[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  | |||
#override_shell = /usr/local/bin/bash  | |||
#override_homedir = /usr/home/%u  | |||
[pam]  | |||
reconnection_retries = 3  | |||
[domain/LOCAL]  | |||
id_provider = local  | |||
auth_provider = local  | |||
access_provider = permit  | |||
[domain/EXAMPLE.COM]  | |||
debug_level = 0  | |||
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/ssl/cert.pem  | |||
krb5_realm = EXAMPLE.COM  | |||
krb5_server = ns.example.com  | |||
krb5_kpasswd = ns.example.com  | |||
}}  | |||
Skydda filen:  | |||
{{RootCmd|chmod 600 /usr/local/etc/sssd/sssd.conf}}  | |||
Editera /etc/rc.conf:  | Editera /etc/rc.conf:  | ||
{{bc|1=  | {{bc|1=  | ||
sssd_enable="YES"  | |||
}}  | }}  | ||
Starta   | Starta sssd:  | ||
{{RootCmd|service   | {{RootCmd|service sssd start  | ||
}}  | }}  | ||
Verifiera med kommandona:  | Verifiera med kommandona:  | ||
{{RootCmd|getent passwd  | {{RootCmd|getent passwd <username>  | ||
|getent group  | |getent group <groupname>  | ||
}}  | }}  | ||
== SSH ==  | == SSH ==  | ||
För att kunna logga in med Kerberos ticket, editera filen /etc/ssh/sshd_config och ändra följande rad till:  | |||
{{bc|GSSAPIAuthentication yes}}  | {{bc|GSSAPIAuthentication yes}}  | ||
Starta om sshd med kommandot:  | Starta om sshd med kommandot:  | ||
{{RootCmd|service sshd restart}}  | {{RootCmd|service sshd restart}}  | ||
[[Category:  | [[Category:GammalGuide]]  | ||
Latest revision as of 18:46, 12 August 2023
Denna guide visar hur man sätter upp autentisering via LDAP/Kerberos i FreeBSD 10. 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.
Installera SSSD
Installera följande:
Välj Heimdal från systemetet, dvs BASE.
Välj GSSAPI. Slutligen installera SSSD:
Kerberos
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:
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.
PAM
Editera /etc/pam.d/system:
# 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/pam_sss.so forward_pass #auth sufficient pam_krb5.so no_warn try_first_pass #auth sufficient pam_ssh.so no_warn try_first_pass auth required pam_unix.so no_warn try_first_pass nullok # account account required /usr/local/lib/pam_sss.so ignore_unknown_user ignore_authinfo_unavail #account required pam_krb5.so account required pam_login_access.so account required pam_unix.so # session #session optional pam_ssh.so want_agent session required pam_lastlog.so no_fail # password password sufficient /usr/local/lib/pam_sss.so use_authtok #password sufficient pam_krb5.so no_warn try_first_pass password required pam_unix.so no_warn try_first_pass
Editera /etc/pam.d/sshd:
# 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/pam_sss.so forward_pass #auth sufficient pam_krb5.so no_warn try_first_pass auth sufficient pam_ssh.so no_warn try_first_pass auth required pam_unix.so no_warn try_first_pass # account account required pam_nologin.so account required /usr/local/lib/pam_sss.so ignore_unknown_user ignore_authinfo_unavail #account required pam_krb5.so account required pam_login_access.so account required pam_unix.so # session #session optional pam_ssh.so want_agent session required pam_permit.so # password password sufficient /usr/local/lib/pam_sss.so use_authtok #password sufficient pam_krb5.so no_warn try_first_pass password required pam_unix.so no_warn try_first_pass
NSS
Editera /etc/nsswitch.conf:
group: files sss passwd: files sss
Radera länken /etc/ssl/cert.pem och ersätt med ditt egna CA certifikat.
SSSD
Editera /usr/local/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 #override_shell = /usr/local/bin/bash #override_homedir = /usr/home/%u [pam] reconnection_retries = 3 [domain/LOCAL] id_provider = local auth_provider = local access_provider = permit [domain/EXAMPLE.COM] debug_level = 0 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/ssl/cert.pem krb5_realm = EXAMPLE.COM krb5_server = ns.example.com krb5_kpasswd = ns.example.com
Skydda filen:
Editera /etc/rc.conf:
sssd_enable="YES"
Starta sssd:
Verifiera med kommandona:
SSH
För att kunna logga in med Kerberos ticket, editera filen /etc/ssh/sshd_config och ändra följande rad till:
GSSAPIAuthentication yes
Starta om sshd med kommandot: