Mainos / Advertisement:

FreeIPA

Kohteesta Taisto
Siirry navigaatioon Siirry hakuun

FreeIPA on avoin lähdekoodilla varustettu suojaus ratkaisu Linuxille, joka tarjoaa käyttäjähallinan ja keskitetyn todennuksen kuten Microsoftin Active Directory. FreeIPA on rakennettu monesta avoimesta lähdekoodista, kuten 389 Directory Server, MIT Kerberos, and SSSD.

Ohje testattu:

  • Ubuntu 16.04

Ennen asennusta

  • Määritä isäntänimi. Isäntänimi tulee vastata FQDN:ää.

Varmista että sinulla on seuraavat portit auki:

TCP:
80, 443 HTTP/HTTPS
389,636 LDAP/LDAPS
88,464 KRB Kerberos
53 Bind - DNS

UDP:
88, 464 Kerberos
53 Bind - DNS
123 NTP

UFW:llä

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ldap
sudo ufw allow ldaps
sudo ufw allow bind9
sudo ufw allow krb5
sudo ufw allow ntp
sudo ufw allow 88/udp
sudo ufw allow 464/udp
sudo ufw enable
sudo ufw status verbose

Asennus

Master palvelin

Asenna pakettihallinnasta freeipa-server paketti

 sudo apt install freeipa-server

Määritä asennuksessa kerberos domain, palvelin ja Administrator palvelin.

Aloita määrittäminen

 sudo ipa-server-install

The log file for this installation can be found in /var/log/ipaserver-install.lo                                                                                                                                                             g
==============================================================================
This program will set up the FreeIPA Server.

This includes:
  * Configure a stand-alone CA (dogtag) for certificate management
  * Configure the Network Time Daemon (ntpd)
  * Create and configure an instance of Directory Server
  * Create and configure a Kerberos Key Distribution Center (KDC)
  * Configure Apache (httpd)

To accept the default shown in brackets, press the Enter key.

Do you want to configure integrated DNS (BIND)? [no]: yes

Enter the fully qualified domain name of the computer
on which you're setting up server software. Using the form
<hostname>.<domainname>
Example: master.example.com.


Server host name [freeipa.example.org]:

Warning: skipping DNS resolution of host freeipa.example.org
The domain name has been determined based on the host name.

Please confirm the domain name [example.org]:

The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.

Please provide a realm name [EXAMPLE.ORG]:
Certain directory server operations require an administrative user.
This user is referred to as the Directory Manager and has full access
to the Directory for system management tasks and will be added to the
instance of directory server created for IPA.
The password must be at least 8 characters long.

Directory Manager password:
Password (confirm):

The IPA server requires an administrative user, named 'admin'.
This user is a regular system account used for IPA server administration.

IPA admin password:
Password (confirm):

Checking DNS domain example.org., please wait ...
Enter the IP address to use, or press Enter to finish.
Please provide the IP address to be used for this host name: 192.168.1.10
Please provide the IP address to be used for this host name:
Do you want to configure DNS forwarders? [yes]:
Following DNS servers are configured in /etc/resolv.conf: 8.8.8.8. 8.8.4.4                                                                                                                                          
Do you want to configure these servers as DNS forwarders? [yes]:
All DNS servers from /etc/resolv.conf were added. You can enter additional addre                                                                                                                                                             sses now:
Enter an IP address for a DNS forwarder, or press Enter to skip:
Checking DNS forwarders, please wait ...
Do you want to search for missing reverse zones? [yes]:

The IPA Master Server will be configured with:
Hostname:       freeipa.example.org
IP address(es): 192.168.1.10
Domain name:    example.org
Realm name:     EXAMPLE:org

BIND DNS server will be configured to serve IPA domain with:
Forwarders:    8.8.8.8 8.8.4.4
Reverse zone(s):  No reverse zone

Continue to configure the system with these values? [no]: yes

Asennuksessa menee jonkin aikaa riippuen palvelimen tehoista joten kannattaa antaa aikaa. Asennuksen jälkeen pääset kirjautumaan webhallintaan freeipa.example.org/ipa/ui osoitteella. Käyttäjätunnus on admin ja salasanana minkä annoit asennuksen aikana.

Slave

Masterin lisäksi voi olla useita "Slave" palvelimia jotka replikoivat dataa masterin kanssa.

Asennetaan replikointia varten Slave palvelin masterin rinnalle.

 sudo apt install freeipa-server freeipa-server-dns bind9 bind9-dyndb-ldap

Muuta nimipalvelimet sitten FreeIPA palvelimeksi.

 sudo nano /etc/network/interfaces
dns-nameservers 192.168.1.10

Tai /etc/resolv.conf tiedostoon määrität nimipalvelimen.

Siirry master palvelimelle ja lisää repl1 (slave) nimipalvelintauluun.

 kinit admin
 sudo ipa dnsrecord-add example.org repl1 --a-rec 192.168.2.10

Palaa takaisin slave palvelimelle.

Liitä slave palvelin LDAPiin seuraavalla komennolla

 sudo ipa-client-install

Anna [email protected] salasana.

Sitten sitten tästä slave palvelin.

 sudo ipa-replica-install

DNS

DNS ei asennu oletuksena slave palvelimille joten se on erikseen asennettava ja konfiguroitava

 sudo ipa-dns-install

Syötä forwarders nimipalvelimet.

Client

Jos haluat, vaihda isäntänimi nyt.

 sudo hostname new-hostname.example.org

Konfiguroi palvelin käyttämään FreeIPA palvelimien nimipalvelimia

 sudo nano /etc/network/interfaces
dns-nameservers 192.168.1.10

ja varmista että /etc/resolv.conf tiedostossa on

 nameserver 192.168.1.10

Testaa toimivuus.

Asenna seuravalla komennolla freeipa-client paketti

sudo apt install freeipa-client

Tällä komennolla asennat ipa-clientin. Sinulla pitää olla DNS-palvelin osoitettu IPA-palvelimiin. Tarkista että tämä toimii.

sudo ipa-client-install

Anna ylläpitäjän salasana [email protected] esimerkiksi.

Kun asennus on suoritettu voit kirjautua nyt LDAPIn käyttäjätunnuksella.

 ssh [email protected]


Kotihakemiston luonti (Ubuntu / Debian)

Debian / Ubuntussa on bugi jonka takia FreeIPA ei luo automaattisesti kotihakemistoja (mkhomedir parametri). Lisätietoa bugista täältä: https://bugs.launchpad.net/ubuntu/+source/freeipa/+bug/1336869

Tämän voi paikata lisämällä /etc/pam.d/common-session tiedostoon

 session required pam_mkhomedir.so skel=/etc/skel/

jolloin kotihakemistot luodaan. Tämä täytyy lisätä kaikkiin FreeIPA koneisiin.

Konfigurointi

Pääasiassa konfigurointi onnistuu GUI:n kautta tai komentorivillä.

Komentorivillä muista kirjautua kerberoksella seuraavasti esimerkiksi admin käyttäjälle

 kinit admin

Käyttäjähallinta

Listaa käyttäjätunnukset

ipa user-find

Luo uusi käyttäjä. Tämä lisää käyttäjän oletuksena ipausers ryhmään ja pyytää salasanan.

ipa user-add matti --first=Matti --last=Testi --password

HBAC - Host Basec Access Control

Tämä on säännöt työasema/palvelin kohtaisesti ketä saa kirjautua minne esimerkiksi ja millä sekä mistä. Oletuksena sääntö on "allow all" eli kaikilla käyttäjätunnuksella oikeus kirjautua minne tahansa. Tämä ei ole ehkä hyvä sääntö jos on vähän isompi ympäristö ja parempi on sallia käyttäjätilikohtaisesti.

Lisää kaikki HBAC säännöt:

 ipa hbacrule-find

Tämä tulostaa oletussäännön

-------------------
1 HBAC rule matched
-------------------
  Rule name: allow_all
  User category: all
  Host category: all
  Source host category: all
  Service category: all
  Description: Allow all users to access any host from any host
  Enabled: TRUE
----------------------------
Number of entries returned 1
----------------------------

Lisätietoa: https://www.freeipa.org/page/Howto/HBAC_and_allow_all

Sudo Rules

Otetaan käyttöön admin käyttäjällemme sudo oikeudet kaikille työasemille helpottamaan hallintaa. FreeIPA:n avulla voit helposti hallinnoida tätä yhdestä paikkaa.

WEB UI:sta otat käyttöön seuraavasti:

  1. Avaa Policy ja valitse Sudo alasvetovalikosta Sudo rules.
  2. Valitse Add luodaksesi uuden säännön. Määritä säännölle nimi ja sitten klikkaa Add and edit.
  3. Valitse "Who" kohdan alta Specified Users and Groups ja sieltä sitten Add lisätäksesi käyttäjän.
  4. "Accessing" kohdasta valitse Any Host ja "Via Service" kohdasta Any Service.
  5. Tallenna sääntö

Sääntö on nyt aktiivinen, osassa palvelussa tämä ei heti toimi. Voit joutua käynnistämään palveluita uusiksi tai käynnistämään IPA Clientin omaavan työasema/palvelimen uusiksi.

Testaa kirjatumalla sisälle

 ssh [email protected]

ja sitten testata sudoa:

 sudo -i

FreeIPA integrointi AD:n kanssa

Ohje kuinka konfiguroidaan FreeIPA:n ja Active Directoryn välinen "luottamus".

  • FreeIPA:n ja AD:N domain pitää olla eri! Tämä on normaali vaatimus yleisestikin Active Directory cross-forest trustissa.
  • Varmista ensin että DNS:t toimivat eli Windowsin AD löytää FreeIPA:n nimellä ja FreIPA taas löytää Windows AD:n nimellä ja pingi toimii myös.
  • Ohje ei toimi, palauttaa virheen "ipa: ERROR: CIFS server communication error: code "-1073741801", message "Memory allocation error" (both may be "None")"


Asenna FreeIPA palvelimelle

 sudo apt install freeipa-server-trust-ad

Konfiguroidaan adtrust:

 sudo ipa-adtrust-install --netbios-name=NETBIOSNAME -a password

Konfiguroi palomuurista portit auki (UFW):

sudo ufw allow 135/TCP
sudo ufw allow 138
sudo ufw allow 139
sudo ufw allow 445

Kirjaudu ja lisää AD luottamuslistalle

 kinit admin
 ipa trust-add --type=ad ad.example.org --admin Administrator --password

Linkkejä

https://www.digitalocean.com/community/tutorials/how-to-set-up-centralized-linux-authentication-with-freeipa-on-centos-7

https://www.digitalocean.com/community/tutorials/how-to-configure-a-freeipa-client-on-ubuntu-16-04

https://www.freeipa.org/page/Windows_authentication_against_FreeIPA

https://www.freeipa.org

Mainos / Advertisement: