[[FreeIPA]]
 

This is an old revision of the document!


FreeIPA

V Brmlabe máme freeipu. Server je ipa.brm.

Ako nastaviť klienta, Debian

Chceme brmlabí počítač nastaviť ako klienta pre FreeIPA. Nech je to počítač, ktorého hostname je client.brm. Nainštalujeme balíček sssd (vyzerá, že musí byť z unstable bohužiaľ), openssh-server (6.2, z testingu) a sudo-ldap.

Na ipa.brm sa prihlásime a získame ticket pre admina (kinit admin). Povieme serveru, že bude mať nového klienta:

ipa host-add client.brm

Dokumentácia hovorí použiť ipa host-add –force –ip-address=192.168.xx.xx client.brm, vyzerá, že to nie je potrebné, ale môžeme použiť.

Povieme serveru, že ho má manažovať:

ipa host-add-managedby --hosts=ipa.brm client.brm

Vezmeme si zo serveru keytab pre klienta:

ipa-getkeytab -s ipa.brm -p host/client.brm -k client.keytab

Zo servera si vezmeme vzniknutý súbor client.keytab a súbor /etc/ipa/ca.crt a presunieme sa na klienta.

Na klientskej stanici umiestnime ca.crt do adresára /etc/ipa/ (tak, ako bol na serveri) a súbor client.keytab uložíme ako /etc/krb5.keytab. Ak nemá, nastavíme mu práva na 0600 (a podľa dokumentácie ešte správny SElinuxový kontext, ale to na Debiane zvyčajne nie je).

Vytvoríme súbor /etc/sssd/sssd.conf s nasledovným obsahom (rovnaký ako na iných strojoch, mení sa iba riadok s ipa_hostname)

[sssd]
config_file_version = 2
services = nss, pam, ssh, sudo
debug_level = 0x00FF

domains = brm
[nss]

[pam]

[domain/brm]
cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = brm
dns_discovery_domain = brm
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = client.brm
chpass_provider = ipa
ipa_server = ipa.brm
ldap_tls_cacert = /etc/ipa/ca.crt

Balíček sssd by pri svojej inštalácii mal pridať príslušné položky do súborov v /etc/pam.d Skontrolujeme, či tam fakt sú:

root@client:/etc/pam.d# grep sss *
common-account:account	[default=bad success=ok user_unknown=ignore]	pam_sss.so 
common-auth:auth	[success=1 default=ignore]			pam_sss.so use_first_pass
common-password:password	sufficient					pam_sss.so use_authtok
common-session:session	optional					pam_sss.so 

Na koniec /etc/pam.d/common-session pridáme ešte

session	optional	pam_mkhomedir.so skel=/etc/skel/ umask=0022

Dokumentácia hovorí, že je vhodnejšie použiť pam_oddjob_mkhomedir, ale ten nevyzerá, že by v Debiane bol.

Nastavíme v /etc/nsswitch.conf použitie sss a ldap pre sudo (u sudo má byť ldap, sss asi nemusí/nemá?)

passwd:         compat sss
group:          compat sss
shadow:         compat sss 

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis sss
sudoers:        files ldap sss

Upravíme súbor /etc/krb5.conf:

[logging]
      default = FILE:/var/log/krb5libs.log
      kdc = FILE:/var/log/krb5kdc.log
      admin_server = FILE:/var/log/kadmind.log
[libdefaults]
      default_realm = BRM
      dns_lookup_realm = false
      dns_lookup_kdc = true
      rdns = false
      ticket_lifetime = 24h
      forwardable = yes
[realms]
BRM = {
      kdc = ipa.brm:88
      master_kdc = ipa.brm:88
      admin_server = ipa.brm:749
      default_domain = brm
      pkinit_anchors = FILE:/etc/ipa/ca.crt
}

[domain_realm]
.brm = BRM
brm = BRM

Nastavíme sudo v súbore /etc/sudo-ldap.conf (pričom za HESLO dosadíme heslo, ktoré zistíme napríklad z konfiguráku od už nastaveného klienta):

binddn uid=sudo,cn=sysaccounts,cn=etc,dc=brm
bindpw HESLO

ssl start_tls
tls_cacertfile /etc/ipa/ca.crt
tls_checkpeer yes

bind_timelimit 5
timelimit 15

uri ldap://ipa.brm
sudoers_base ou=SUDOers,dc=brm

Sudo potrebuje nastavené nisdomainname, tak nastavíme (v Debiane snáď príkazom nisdomainname (čo vyzerá, že neprežije reštart, takže to zapíšeme do /etc/defaultdomain).

nisdomainname brm

Nastavíme v sshd_configu:

PubkeyAuthentication yes
UsePAM yes
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody
GSSAPIAuthentication yes

To by malo byť všetko. Ak chceme, môžeme ešte nastaviť v sshd_config ďalšie veci (napríklad zakázať heslo, ak chceme iba kľúče z FreeIPA, tak AuthorizedKeysFile /dev/null, ak sa nebojíme, prípadne nastavíme AuthorizedKeysFile len na kľúče v /root/.ssh/authorized_keys, fantázií sa medze nekladú)

FreeIPA vie aj rozdistribuovávať known_hosts, to zatiaľ nemám preskúšané.

Ešte resetujeme na klientovi sssd a sshd (service sssd restart a service ssh restart) a otestujeme, že sss_ssh_authorizedkeys username nám vracia správne kľúče. Tým sme na klientovi hotoví.

Prihlásime sa do https://ipa.brm ako admin a nastavíme skupiny pre nového hosta a to, čo potrebujeme.

 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki