Differences between revisions 27 and 107 (spanning 80 versions)
Revision 27 as of 2009-01-22 08:21:47
Size: 24576
Editor: AsmoKoskinen
Comment:
Revision 107 as of 2009-01-26 19:40:08
Size: 30759
Editor: AsmoKoskinen
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Tämä ohje on tarkoitettu Ubuntu 8.04.1-versiolla. Ohje perustuu asennukseen, joka tehtiin Valamossa LTSP5-työpajassa tammikuussa 2009. Asennuksen teki Mikael Lammentausta.

 /!\ Tämä ohje ei ole leikkaa-liimaa-tyyppinen, vaan pikemminkin mahdollisimman tarkka kuvaus yhdestä toimivasta LTSP5-openLDAP-palvelinyhdistelmästä.

 {i} Toivomme, että lähtien liikkeelle tästä peruskuvauksesta saamme luoduksi monipuolisen ohjeen koskien openLDAP-käyttöä LTSP5-ympäristössä.

Tässä ohjeessa e
dellytetään, että käytössä on kaksi palvelinkonetta, jossa ensimmäiseen on ensin asennettu täysin toimiva LTSP5-ympäristö. Toiseen koneeseen riittää pelkkä Ubuntu 8.04.1-asennus. Näissä kahdessa palvelinkoneessa on yksi verkkokortti kummassakin. Perusasennuksen jälkeen tässä ohjeessa on käytössä seuraavanlaista lähiverkkoa. LTSP5-perusasennuksesta, tosin kahdella verkkokortilla, löytyy oma ohjeensa: http://wiki.ubuntu-fi.org/LTSP5_Perusasennus.
Tämä ohje on tarkoitettu Ubuntu 8.04.1-versiolle. Ohje perustuu asennukseen, joka tehtiin Valamossa LTSP5-työpajassa tammikuussa 2009. Asennuksen teki Mikael Lammentausta.

/!\ Tämä ohje ei ole perinteinen "Leikkaa ja liimaa"-tyyppinen, vaan pikemminkin mahdollisimman tarkka kuvaus yhdestä toimivasta LTSP5-openLDAP-palvelinyhdistelmästä.

/!\ Tästä ohjeesta puuttuu SSL-sertifikaattien ja SASL-salauksen asennuske ja käytön kuvaus sekä kotihakemistojen NFS-palvelimen asennuksen ja käytön kuvaus.

{i} Toivomme, että lähtien liikkeelle tästä peruskuvauksesta saamme luoduksi monipuolisen ohjeen koskien openLDAP-käyttöä LTSP5-ympäristössä. Tarkoituksemme on tehdä myös perinteinen "Leikkaa ja liimaa"-tyyppinen asennusohje openLDAP-palvelimesta LTSP5-ympäristössä.

Tässä ohjeessa on käytössä kaksi palvelinkonetta, jossa ensimmäiseen on ensin asennettu täysin toimiva LTSP5-ympäristö
. Toiseen koneeseen riittää pelkkä Ubuntu 8.04.1-asennus. Näissä kahdessa palvelinkoneessa on yksi verkkokortti kummassakin. Perusasennuksen jälkeen tässä ohjeessa on käytetty seuraavanlaista lähiverkkoa. LTSP5-perusasennuksesta, tosin kahdella verkkokortilla, löytyy oma ohjeensa: http://wiki.ubuntu-fi.org/LTSP5_Perusasennus.
Line 15: Line 17:
ADSL-modeemi jakaa LAN-reitittimelle/kytkimelle ip-osoitteen (192.168.0.100). Lähiverkkoon päin LAN-reititin/kytkin näkyy ip-osoitteessa '''192.168.1.1'''. Tämä LAN-reititin/kytkin tarjoaa myös nimipalvelut.

Palvelin, jossa on LTSP5-ympäristö, on '''192.168.1.101'''.

Palvelin, jossa on openLDAP, on '''192.168.1.102'''.

Pääte, jolle on annettu kiinteä ip-osoite MAC-osoitteen perusteella, on '''192.168.1.200'''. Pääte myös kirjautuu automaattisesti.
{OK} ADSL-modeemi jakaa LAN-reitittimelle/kytkimelle ip-osoitteen (192.168.0.100). Lähiverkkoon päin LAN-reititin/kytkin näkyy ip-osoitteessa '''192.168.1.1'''. Tämä LAN-reititin/kytkin tarjoaa myös nimipalvelut.

{OK} LTSP5-palvelin on '''192.168.1.101'''.

{OK} openLDAP-palvelin on '''192.168.1.102'''.

{OK} Pääte, jolle on annettu kiinteä ip-osoite MAC-osoitteen perusteella, on '''192.168.1.200'''. Pääte kirjautuu automaattisesti sisään palvelimelle.

== Kuvaus asennusjärjestyksestä ==

Seuraavassa on kuvaus siitä, miten asennus eteni Valamon työpajassa.

/!\ /etc/pam.d-hakemiston tiedostoihin kajoaminen on äärimmäisen kriittistä. On mahdollista asettaa LTSP5-palvelin sellaiseen tilaan, että sisäänkirjautuminen ei ole enää mahdollista millään tunnuksella. Tähän varauduttiin avaamalla konsoliin (Ctrl-Alt-F1) root-tunnus muokkauksen ajaksi. Tunnusta ei suljettu välillä!

{OK} LTSP5-palvelin oli etukäteen asennettu valmiiksi ja toimivaksi.

{OK} openLDAP-palvelin oli alunperin myös LTSP5-palvelin, ei pelkkä komentorivipohjainen palvelin-asennus. Tästä palvelimesta oli sammutettu dhcp3-palvelu.

{OK} openLDAP-palvelin asennettiin ensin valmiiksi, vasta sitten siirryttiin muokkaamaan LTSP5-palvelinta.

{OK} openLDAP-palvelimeen rakennettiin puurakenne ja base.ldif-tiedoston avulla perusasetukset käyttäjistä ja käyttäjäryhmistä.

{OK} openLDAP-palvelimelle käyttäjät luotiin Webminin avulla.

{OK} LTSP5-palvelimella muokattiin /etc/pam.d/-hakemiston tiedostoja siirtämään sisäänkirjautuminen openLDAP-palvelimelle.

/!\ Pääkäyttäjän tunnus (admin-ubuntu) ja kaikki järjestelmän demonitunnukset jätettiin LTSP5-palvelimelle. Yleensä ei suositella tunnuksia, joiden ID on alle 1000 - root-tunnus (ID 1000) mukaan lukien - siirrettäväksi openLDAP-palvelimelle.

{OK} LTSP5-palvelimelta poistettiin muut normaalit käyttäjätunnukset kuin pääkäyttäjän tunnukset tiedostoista /etc/passwd, /etc/shadow ja /etc/group.

{OK} Kun komentoriviltä varmistettiin (ldapsearch- ja getent-käsky), että tunnukset löytyvät openLDAP-palvelimelta, niin päästiin kokeilemaan päätteen kirjautumista openLDAP-palvelun avulla.

== LDAP-puurakenne ==

Paras puurakenne syntyy rekisteröidyn domain-nimen pohjalta, jota voidaan käyttää myös esimerkiksi postipalveluiden yhteydessä. Ubuntu.fi on rekisteröity, osuuskunta Sangen omistuksessa oleva osoite. Ubuntu.fi ohjautuu tällä hetkellä Ubuntu-fi.org-sivustolle. Tämä malli käynee kuitenkin esimerkistä, jonka pohjalta voi rakentaa aidon ratkaisun.

Termi ''dc'' on Domain Component, ''ou'' on Organizational Unit, ''cn'' on Common Name. Rakenteessa on haara käyttäjille ja ryhmille. Rakenne ladataan standardissa LDIF-muodossa, joka esitellään myöhemmin tässä dokumentissa.

openLDAP-puurakenne on tässä asennuksessa tällainen:

{{{
 dc=fi
 |
 dc=ubuntu----|----------|
 | | |
 ou=Users ou=Groups cn=nss
 | |
 | cn=Users
 |
 cn=ltsp001, ltsp002 ...
}}}

== Pääkäyttäjät ja heidän salasanansa ==

Kuten myöhemmin kerrotaan, nämä salasanat eivät ole parhaat mahdolliset. Käytä jokaisella palvelimella ja palvelussa eri salasanoja!

 * LTSP-palvelimen pääkäyttäjä: admin-ubuntu | Salasana: TP2009ltsp

 * openLDAP-palvelimen pääkäyttäjä: admin-ubuntu | Salasana: TP2009ltsp

 * openLDAP-palvelun pääkäyttäjä: cn=manager | Salasana: TP2009ltsp

 * openLDAP-palvelun selauskäyttäjä: cn=nss | Salasana: TP2009nss
Line 25: Line 83:
Tässä ohjeessa on käytetty seuraavanlaisia asetustiedostoja.

=== LTSP5-palvelin, verkkoasetukset - 192.168.1.101 ===

{{{
root@ubuntu:~# cat /etc/network/interfaces
Tässä ohjeessa on käytetty seuraavanlaisia asetustiedostoja, alla on ensin LTSP5-palvelin ja sen jälkeen openLDAP-palvelin.

{i} Osasta tiedostoja on poistettu kommenttirivejä (#-merkillä alkavia) luettavuuden parantamiseksi.

=== LTSP5-palvelin - 192.168.1.101 ===

Tämä on LTSP5-palvelimen verkkokortin asetustiedosto: /etc/network/interfaces

{{{
Line 48: Line 109:
root@ubuntu:~#
}}}

{{{
root@ubuntu:~# cat /etc/ltsp/dhcpd.conf
}}}

Tämä LTSP5-palvelimen dhcp3-palvelun asetustiedosto: /etc/ltsp/dhcpd.conf

Asus Eee 701-tietokoneelle, joka toimii päätteenä, on annettu kiinteä ip-osoite samoin kuin host-nimi.

{{{
Line 80: Line 143:
root@ubuntu:~#
}}}

{{{
root@ubuntu:~# cat /var/lib/tftpboot/ltsp/i386/lts.conf
}}}

Koska Asus Eee 701 käyttää hieman erikoista näytön resoluutiota, se pitää kertoa lts.conf-tiedostossa. Pääte myös pakotetaan kirjautumaan sisään määrätyllä tunnuksella, tämä toimii myös openLDAP-ympäristössä: /var/lib/tftpboot/ltsp/i386/lts.conf

{{{
Line 92: Line 155:
}}}

=== openLDAP-palvelin - 192.168.1.102 ===

Tämä on openLDAP-palvelimen verkkokortin asetustiedosto: /etc/network/interfaces

{{{
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.102
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.1.1
}}}

== LTSP5-palvelimen muokatut tiedostot openLDAP-palvelua varten ==

{i} Osasta tiedostoja on poistettu kommenttirivejä (#-merkillä alkavia) luettavuuden parantamiseksi.

Muokatut tiedostot löytyvät LTSP5-palvelimen osalta tästä hakemistosta: http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/etc-ltsp5/

Seuraavassa on kuvaus openLDAP-palvelimeen liittyvistä tiedostoista.

=== LTSP5-palvelin - /etc/ldap/ldap.conf ===

Kaikkien pitää päästä lukemaan tätä tiedostoa. Siksi sen lukuoikeudet ovat näin:

{{{
root@ubuntu:~# ls -al /etc/ldap/ldap.conf
-rw-r--r-- 1 root root 267 2009-01-25 15:16 /etc/ldap/ldap.conf
Line 96: Line 200:
root@ubuntu:~# cat /etc/ldap/ldap.conf
Line 106: Line 209:
}}}

=== LTSP5-palvelin - /etc/ldap.conf ===

Kaikkien pitää päästä lukemaan tätä tiedostoa. Siksi sen lukuoikeudet ovat näin:

{{{
root@ubuntu:~# ls -al /etc/ldap.conf
-rw-r--r-- 1 root root 9243 2009-01-26 17:20 /etc/ldap.conf
Line 110: Line 221:
{{{
root@ubuntu:/etc# cat ldap.conf
###DEBCONF###
##
## Configuration of this file will be managed by debconf as long as the
## first line of the file says '###DEBCONF###'
##
## You should use dpkg-reconfigure to configure this file via debconf
##

#
# @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $
#
# This is the configuration file for the LDAP nameservice
# switch library and the LDAP PAM module.
#
# PADL Software
# http://www.padl.com
#

# Your LDAP server. Must be resolvable without using LDAP.
# Multiple hosts may be specified, each separated by a
# space. How long nss_ldap takes to failover depends on
# whether your LDAP client library supports configurable
# network or connect timeouts (see bind_timelimit).
#host 127.0.0.1
Tässä tiedostossa kerrotaan esimerkiksi, että selainkäyttäjä on 'nss' ja salasana on 'TP2009nss'. Ei sama kuin openLDAP-palvelimen pääkäyttäjän (admin-ubuntu) tai openLDAP-palvelun pääkäyttäjän (cn=manager) salasana.

{{{
Line 142: Line 229:
# Unix Domain Sockets to connect to a local LDAP Server.
#uri ldap://127.0.0.1/
#uri ldaps://127.0.0.1/
#uri ldapi://%2fvar%2frun%2fldapi_sock/
# Note: %2f encodes the '/' used as directory separator
Line 154: Line 236:
#binddn cn=proxyuser,dc=padl,dc=com binddn cn=nss,dc=ubuntu,dc=fi
Line 158: Line 240:
#bindpw secret bindpw TP2009nss
Line 165: Line 247:
# The port.
# Optional: default is 389.
#port 389

# The search scope.
#scope sub
#scope one
#scope base

# Search timelimit
#timelimit 30

# Bind/connect timelimit
#bind_timelimit 30

# Reconnect policy: hard (default) will retry connecting to
# the software with exponential backoff, soft will fail
# immediately.
#bind_policy hard

# Idle timelimit; client will close connections
# (nss_ldap only) if the server has not been contacted
# for the number of seconds specified below.
#idle_timelimit 3600

# Filter to AND with uid=%s
#pam_filter objectclass=account

# The user ID attribute (defaults to uid)
#pam_login_attribute uid

# Search the root DSE for the password policy (works
# with Netscape Directory Server)
#pam_lookup_policy yes

# Check the 'host' attribute for access control
# Default is no; if set to yes, and user has no
# value for the host attribute, and pam_ldap is
# configured for account management (authorization)
# then the user will not be allowed to login.
#pam_check_host_attr yes

# Check the 'authorizedService' attribute for access
# control
# Default is no; if set to yes, and the user has no
# value for the authorizedService attribute, and
# pam_ldap is configured for account management
# (authorization) then the user will not be allowed
# to login.
#pam_check_service_attr yes

# Group to enforce membership of
#pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com

# Group member attribute
#pam_member_attribute uniquemember

# Specify a minium or maximum UID number allowed
#pam_min_uid 0
#pam_max_uid 0

# Template login attribute, default template user
# (can be overriden by value of former attribute
# in user's entry)
#pam_login_attribute userPrincipalName
#pam_template_login_attribute uid
#pam_template_login nobody

# HEADS UP: the pam_crypt, pam_nds_passwd,
# and pam_ad_passwd options are no
# longer supported.
#
Line 241: Line 251:

# Hash password locally; required for University of
# Michigan LDAP server, and works with Netscape
# Directory Server if you're using the UNIX-Crypt
# hash mechanism and not using the NT Synchronization
# service.
#pam_password crypt

# Remove old password first, then update in
# cleartext. Necessary for use with Novell
# Directory Services (NDS)
#pam_password clear_remove_old
#pam_password nds

# RACF is an alias for the above. For use with
# IBM RACF
#pam_password racf

# Update Active Directory password, by
# creating Unicode password and updating
# unicodePwd attribute.
#pam_password ad

# Use the OpenLDAP password change
# extended operation to update the password.
#pam_password exop

# Redirect users to a URL or somesuch on password
# changes.
#pam_password_prohibit_message Please visit http://internal to change your password.
Line 282: Line 262:
#nss_base_passwd ou=People,dc=padl,dc=com?one
#nss_base_shadow ou=People,dc=padl,dc=com?one
#nss_base_group ou=Group,dc=padl,dc=com?one
#nss_base_hosts ou=Hosts,dc=padl,dc=com?one
#nss_base_services ou=Services,dc=padl,dc=com?one
#nss_base_networks ou=Networks,dc=padl,dc=com?one
#nss_base_protocols ou=Protocols,dc=padl,dc=com?one
#nss_base_rpc ou=Rpc,dc=padl,dc=com?one
#nss_base_ethers ou=Ethers,dc=padl,dc=com?one
#nss_base_netmasks ou=Networks,dc=padl,dc=com?ne
#nss_base_bootparams ou=Ethers,dc=padl,dc=com?one
#nss_base_aliases ou=Aliases,dc=padl,dc=com?one
#nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one

# attribute/objectclass mapping
# Syntax:
#nss_map_attribute rfc2307attribute mapped_attribute
#nss_map_objectclass rfc2307objectclass mapped_objectclass

# configure --enable-nds is no longer supported.
# NDS mappings
#nss_map_attribute uniqueMember member

# Services for UNIX 3.5 mappings
#nss_map_objectclass posixAccount User
#nss_map_objectclass shadowAccount User
#nss_map_attribute uid msSFU30Name
#nss_map_attribute uniqueMember msSFU30PosixMember
#nss_map_attribute userPassword msSFU30Password
#nss_map_attribute homeDirectory msSFU30HomeDirectory
#nss_map_attribute homeDirectory msSFUHomeDirectory
#nss_map_objectclass posixGroup Group
#pam_login_attribute msSFU30Name
#pam_filter objectclass=User
#pam_password ad

# configure --enable-mssfu-schema is no longer supported.
# Services for UNIX 2.0 mappings
#nss_map_objectclass posixAccount User
#nss_map_objectclass shadowAccount user
#nss_map_attribute uid msSFUName
#nss_map_attribute uniqueMember posixMember
#nss_map_attribute userPassword msSFUPassword
#nss_map_attribute homeDirectory msSFUHomeDirectory
#nss_map_attribute shadowLastChange pwdLastSet
#nss_map_objectclass posixGroup Group
#nss_map_attribute cn msSFUName
#pam_login_attribute msSFUName
#pam_filter objectclass=User
#pam_password ad

# RFC 2307 (AD) mappings
#nss_map_objectclass posixAccount user
#nss_map_objectclass shadowAccount user
#nss_map_attribute uid sAMAccountName
#nss_map_attribute homeDirectory unixHomeDirectory
#nss_map_attribute shadowLastChange pwdLastSet
#nss_map_objectclass posixGroup group
#nss_map_attribute uniqueMember member
#pam_login_attribute sAMAccountName
#pam_filter objectclass=User
#pam_password ad

# configure --enable-authpassword is no longer supported
# AuthPassword mappings
#nss_map_attribute userPassword authPassword

# AIX SecureWay mappings
#nss_map_objectclass posixAccount aixAccount
#nss_base_passwd ou=aixaccount,?one
#nss_map_attribute uid userName
#nss_map_attribute gidNumber gid
#nss_map_attribute uidNumber uid
#nss_map_attribute userPassword passwordChar
#nss_map_objectclass posixGroup aixAccessGroup
#nss_base_group ou=aixgroup,?one
#nss_map_attribute cn groupName
#nss_map_attribute uniqueMember member
#pam_login_attribute userName
#pam_filter objectclass=aixAccount
#pam_password clear

# Netscape SDK LDAPS
#ssl on

# Netscape SDK SSL options
#sslpath /etc/ssl/certs

# OpenLDAP SSL mechanism
# start_tls mechanism uses the normal LDAP port, LDAPS typically 636
#ssl start_tls
#ssl on

# OpenLDAP SSL options
# Require and verify server certificate (yes/no)
# Default is to use libldap's default behavior, which can be configured in
# /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for
# OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes".
#tls_checkpeer yes

# CA certificates for server certificate verification
# At least one of these are required if tls_checkpeer is "yes"
#tls_cacertfile /etc/ssl/ca.cert
#tls_cacertdir /etc/ssl/certs

# Seed the PRNG if /dev/urandom is not provided
#tls_randfile /var/run/egd-pool

# SSL cipher suite
# See man ciphers for syntax
#tls_ciphers TLSv1

# Client certificate and key
# Use these, if your server requires client authentication.
#tls_cert
#tls_key

# Disable SASL security layers. This is needed for AD.
#sasl_secprops maxssf=0

# Override the default Kerberos ticket cache location.
#krb5_ccname FILE:/etc/.ldapcache

nss_base_passwd ou=People,dc=ubuntu,dc=fi?one
nss_base_shadow ou=People,dc=ubuntu,dc=fi?one
nss_base_group ou=Group,dc=ubuntu,dc=fi?one
Line 409: Line 271:
root@ubuntu:/etc#
}}}

{{{
root@ubuntu:/etc# cat ldap.secret
}}}

=== /etc/ldap.secret ===

Tässä on openLDAP-palvelimen manager-käyttäjän salasana. Se on selväkielinen - vain root-käyttäjä muokkaa tai lukee sitä.
Tiedostolla tulee olla oikeudet siis '600'.

/!\ Käytä pääkäyttäjälle (cn=manager) eri salasanaa kuin selauskäyttäjälle (cn=nss). Tämän asennuksen yhteydessä kummankin Ubuntu-järjestelmän pääkäyttäjän salasana on sama kuin openLDAP-pääkäyttäjän, mikä ei tietenkään ole suositeltavaa! Käytä eri salasanoja kunkin järjestelmän pääkäyttäjille!

{{{
/etc/ldap.secret:
Line 415: Line 283:
root@ubuntu:/etc#
}}}

=== openLDAP-palvelin, verkkoasetukset - 192.168.1.102 ===

{{{
root@ubuntu:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.102
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.1.1
}}}

{{{
root@ubuntu:~# ls -al /etc/ldap.secret
-rw------- 1 root root 11 2009-01-08 17:12 /etc/ldap.secret
Line 442: Line 291:
== openLDAP-asetustiedostot ==

openLDAP-puurakenne

{{{
 dc=fi
 |
 dc=ubuntu----|
 | |
 ou=Users ou=Groups
 | |
 | cn=users
 |
 cn=ltsp001 ...
}}}

Näistä tiedostoista on poistettu osa kommenttiriveistä, #-merkillä alkavat, luettavuuden parantamiseksi.

LTSP5-palvelimen pääkäyttäjän tunnus on itse palvelimella eli passwd-tiedostossa.
=== /etc/nsswitch.conf ===

Tätä tiedostoa käyttävät monet muutkin palvelut kuin vain openLDAP, esimerkiksi dns ja nis. Käyttäjiin liittyvät tiedostot (passwd, shadow ja group) on liitetty openLDAP-palveluun. Muut rivit on jätettävä ennalleen, ainoa lisäys on 'ldap' kyseisten rivien loppuun.

{{{
####################
# /etc/nsswitch.conf
#
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd: compat ldap
group: compat ldap
shadow: compat ldap
}}}

== LTSP5-palvelin - PAM ==

/!\ Kuten edellä kerrottiin, niin /etc/pam.d/-hakemiston tiedostoihin kajoaminen on järjestelmän kannalta äärimmäisen kriittistä. LTSP5-palvelin voidaan todellakin saada tilaan, jossa kirjautuminen ei onnistu millään tunnuksella.

{i} Varsinaisen asennusohjeen yhteydessä kerrotaan kaikki tarvittavat kirjastot ja asenenttavien pakettien nimet.

Jos käyttäjän kotihakemistoa ei ole olemassa se luodaan kirjautumisen yhteydessä (pam_mkhomedir.so).

=== /etc/pam.d/common-password - password-related modules common to all services ===

{{{
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password sufficient pam_unix.so nullok md5 shadow use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
}}}

=== /etc/pam.d/common-auth - authentication settings common to all services ===

{{{
auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok try_first_pass
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
}}}

=== /etc/pam.d/common-account - authorization settings common to all services ===

{{{
account sufficient pam_unix.so
account sufficient pam_ldap.so
}}}

=== /etc/pam.d/common-session - session-related modules common to all services ===

{{{
session required pam_limits.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_ldap.so
}}}

== openLDAP-palvelin ==

Muokatut tiedostot löytyvät LTSP5-palvelimen osalta tästä hakemistosta: http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/etc-openldap/

OpenLDAP-palvelimella ei tarvitse määrittää muita asetuksia kuin slapd, koska palvelimelle itsellään ei käytetä LDAP-tunnuksia. Webmin-ohjelman käyttö vaati näitä tiedostoja, siitä on tarkemmin alempana.

openLDAP-palvelimen pääkäyttäjän tunnus (admin-ubuntu) on itse palvelimella eli passwd-tiedostossa.
Line 475: Line 370:

{{{
root@ubuntu:~# cat /etc/ldap/slapd.conf
####################
# Global Directives:

# Schema and objectClass definitions
{i} openLDAP-palvelimella ei tarvita lainkaan ldap-tiedostoja tosin kuin LTSP5-palvelimella: /etc/ldap/ldap.conf, /etc/ldap.conf ja /etc/ldap.secret. Näin ainoa tiedsoto jossa, openLDAP-palvelun pääkäyttäjän (cn=manager) salasana on näkyvissä, on alla oleva tiedosto. Siinä se on kuitenkin kryptattu.

/!\ Jos halutaan käyttää Webmin-ohjelmaa ja hallita käyttäjiä sen avulla, niin /etc/ldap.conf, /etc/ldap.secret ja /etc/ldap/ldap.conf tiedostojen pitää olla käytössä myös openLDAP-palvelimella. Kopioi ne sellaisenaan LTSP5-palvelimelta. Tiedostojen oikeudet tulee kuitenkin asettaa näin openLDAP-palvelimella:

{{{
root@ubuntu:~# ls -al /etc/ldap.*
-rw------- 1 root root 9160 2009-01-26 15:27 /etc/ldap.conf
-rw------- 1 root root 11 2009-01-08 16:35 /etc/ldap.secret
}}}

/!\ phpLdapAdmin ei vaadi ldap-tiedostojen käyttöä!

/!\ Koska tämä konfiguraatio on kaikista monimutkaisin, selkeyden vuoksi vain muutetut rivit ja osioiden kommentit on jätetty näkyviin! Koska samassa konfiguraatiossa voi olla useita tietokantoja, konfiguraation järjestyksellä on merkitystä.

{{{
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
Line 487: Line 393:
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
Line 489: Line 397:
# List of arguments that were passed to the server
Line 491: Line 400:
loglevel none

modulepath /usr/lib/ldap
moduleload back_hdb
# Read slapd.conf(5) for possible values
loglevel 256

# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_hdb

# The maximum number of entries that is returned for a search operation
Line 498: Line 410:
# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
Line 500: Line 414:
###################################### #######################################################################
Line 504: Line 418:
backend         hdb

###################################################
backend  hdb

#######################################################################
Line 531: Line 445:
Line 534: Line 447:
Line 547: Line 459:

# Where to store the replica logs for database #1
# replogfile /var/lib/ldap/replog
Line 562: Line 471:
# Ensure read access to the base for things like
# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read
Line 577: Line 475:
        by * read

root@ubuntu:~#
}}}

=== /root/base.ldif ===

Tämä tiedosto sisältää juurirakenteen (sekä yhden testikäyttäjän). Missä komento jolla se ladataan? Voiko latauksen tai rakenteen määrityksen tehdä webminillä?

{{{
root@ubuntu:~# cat /root/base.ldif
        by dn="cn=nss,dc=ubuntu,dc=fi" read
        by * auth
}}}

=== base.ldif ===

Tämä tiedosto (base.ldif) sisältää juurirakenteen. Se ladataan openLDAP-palvelimella komennolla slapadd. Tämä tiedosto luotiin Valamossa työpajan yhteydessä.

{{{
Line 616: Line 512:
dn: uid=ltsp001,ou=People,dc=ubuntu,dc=fi
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: ltsp001
sn: Doe
givenName: John
cn: John Doe
displayName: John Doe
uidNumber: 1000
gidNumber: 10000
userPassword: edubuntu
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/ltsp001
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 10877
mail: john.doe@example.com
postalCode: 31000
l: Valamo
o: LTSP-paja
mobile: +33 (0)6 xx xx xx xx
homePhone: +33 (0)5 xx xx xx xx
title: Teppo Testaaja
postalAddress:
initials: JD
Line 651: Line 516:

root@ubuntu:~#
}}}

=== Webmin - webmin-openldap-users.txt ===

Uusia käyttäjiä voi ladata Webminillä.
}}}

=== nss-ldif ===

openLDAP-palveliemn selausta varten luotiin nss-käyttäjä. Se luettiin openLDAP-palvelimelle sisään samalla tavalla kuin base.ldif-tiedosto.

{{{
dn: cn=nss, dc=ubuntu,dc=fi
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user
userPassword: {CRYPT}BzGwbmUEHZj8E
}}}

=== Salasana nss-käyttäjälle ===

Salasana luotiin nss-käyttäjille käskyllä "slappasswd". Kryptattu salsana sisällytetään ldif-tiedostoon. openLDAP-palvelimen manager-käyttäjän salasana luotiin jo varsinaisen asennuksen yhteydessä.

== Webmin - openLDAP-modulit ==

Uusia käyttäjiä voi luoda Webminillä. Webmin-ohjelman asennuksesta on oma ohjeensa: http://wiki.ubuntu-fi.org/Webmin
Line 689: Line 569:
}}}


=== /etc/ldap/ldap.conf ===

Tämä konfiguraatio on openLDAP-asiakasta varten (ldapsearch).

{{{
root@ubuntu:~# cat /etc/ldap/ldap.conf
###############
# LDAP Defaults
# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE dc=ubuntu,dc=fi
URI ldap://192.168.1.102

root@ubuntu:~#
}}}


=== /usr/bin/ldapsearch ===

Testataan saadaanko tietoja palvelimelta.

{{{
root@ubuntu:~# ldapsearch -x -D "cn=manager,dc=ubuntu,dc=fi" -W > ldapsearch.txt
}}}

{{{
create:ltsp030:edubuntu:1030:10000:LTSP 029:/home/ltsp030:/bin/bash:::::
}}}

=== Ruutukaappauksia Webmin-ohjelmasta ===

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_01.png Webmin-openLDAP_01.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_02.png Webmin-openLDAP_02.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_03.png Webmin-openLDAP_03.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_04.png Webmin-openLDAP_04.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_05.png Webmin-openLDAP_05.png]

=== Ruutukaappauksia phpLdapAdmin-ohjelmasta ===

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-01.png phpLdapAdmin-01.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-02.png phpLdapAdmin-02.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-03.png phpLdapAdmin-03.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-04.png phpLdapAdmin-04.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-05.png phpLdapAdmin-05.png]

== ITALC ==

iTALC toimii päätteiden suhteen aivan normaalisti.

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/iTALC_01.png iTALC_01.png]

== Testi- ja kyselytyökaluja ==

Toimivaa openLDAP-palvelinta voidaan testata ja tehdä hakuja seuraavila työkaluilla.

=== getent passwd ===

Root- ja admin-ubuntu-tunnukset ovat LTSP5-palvelimen paikallisessa passwd-tiedostossa. Ltsp-käyttäjät ovat openLDAP-palvelimella. Getent-ohjelma näkee ne kummatkin.

{{{
admin-ubuntu@ubuntu:~$ getent passwd
root:x:0:0:root:/root:/bin/bash
[--]
admin-ubuntu:x:1000:1000:Administrator Ubuntu,,,:/root/admin-ubuntu:/bin/bash
[--]
ltsp001:x:1001:10000:LTSP 001:/home/ltsp001:/bin/bash
ltsp002:x:1002:10000:LTSP 002:/home/ltsp002:/bin/bash
ltsp003:x:1003:10000:LTSP 003:/home/ltsp003:/bin/bash
ltsp004:x:1004:10000:LTSP 004:/home/ltsp004:/bin/bash
ltsp005:x:1005:10000:LTSP 005:/home/ltsp005:/bin/bash
ltsp006:x:1006:10000:LTSP 006:/home/ltsp006:/bin/bash
ltsp007:x:1007:10000:LTSP 007:/home/ltsp007:/bin/bash
ltsp008:x:1008:10000:LTSP 008:/home/ltsp008:/bin/bash
ltsp009:x:1009:10000:LTSP 009:/home/ltsp009:/bin/bash
ltsp010:x:1010:10000:LTSP 010:/home/ltsp010:/bin/bash
ltsp011:x:1011:10000:LTSP 011:/home/ltsp011:/bin/bash
ltsp012:x:1012:10000:LTSP 012:/home/ltsp012:/bin/bash
ltsp013:x:1013:10000:LTSP 013:/home/ltsp013:/bin/bash
ltsp014:x:1014:10000:LTSP 014:/home/ltsp014:/bin/bash
ltsp015:x:1015:10000:LTSP 015:/home/ltsp015:/bin/bash
ltsp016:x:1016:10000:LTSP 016:/home/ltsp016:/bin/bash
ltsp017:x:1017:10000:LTSP 017:/home/ltsp017:/bin/bash
ltsp018:x:1018:10000:LTSP 018:/home/ltsp018:/bin/bash
ltsp019:x:1019:10000:LTSP 019:/home/ltsp019:/bin/bash
ltsp020:x:1020:10000:LTSP 020:/home/ltsp020:/bin/bash
ltsp021:x:1021:10000:LTSP 021:/home/ltsp021:/bin/bash
ltsp022:x:1022:10000:LTSP 022:/home/ltsp022:/bin/bash
ltsp023:x:1023:10000:LTSP 023:/home/ltsp023:/bin/bash
ltsp024:x:1024:10000:LTSP 024:/home/ltsp024:/bin/bash
ltsp025:x:1025:10000:LTSP 025:/home/ltsp025:/bin/bash
ltsp026:x:1026:10000:LTSP 026:/home/ltsp026:/bin/bash
ltsp027:x:1027:10000:LTSP 027:/home/ltsp027:/bin/bash
ltsp028:x:1028:10000:LTSP 028:/home/ltsp028:/bin/bash
ltsp029:x:1029:10000:LTSP 029:/home/ltsp029:/bin/bash
ltsp030:x:1030:10000:LTSP 030:/home/ltsp030:/bin/bash
admin-ubuntu@ubuntu:~$
}}}

=== ldapsearch ===

Tavallisena käyttäjänä tehdään kysely kaikista käyttäjistä. Selainkäyttäjän salasana pitää luonnollisesti tuntea.

{{{
admin-ubuntu@ubuntu:~$ ldapsearch -x -D "cn=nss,dc=ubuntu,dc=fi" -W
Enter LDAP Password:
Line 764: Line 701:
memberUid: ltsp030
Line 773: Line 711:
userPassword:: e2NyeXB0fVNNWEZodUZEeWh2M1k=
shadowLastChange: 14252
Line 781: Line 717:
# ltsp002, People, ubuntu.fi
dn: uid=ltsp002,ou=People,dc=ubuntu,dc=fi
cn: LTSP 002
uid: ltsp002
uidNumber: 1002
[--]

# nss, ubuntu.fi
dn: cn=nss,dc=ubuntu,dc=fi
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user
userPassword:: e01ENX1pSi9VV0crQUxLV0xUZ3dFbW1aajRRPT0=

# ltsp030, People, ubuntu.fi
dn: uid=ltsp030,ou=People,dc=ubuntu,dc=fi
uid: ltsp030
cn: LTSP 030
homeDirectory: /home/ltsp030
uidNumber: 1030
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
gidNumber: 10000
gecos: LTSP 030
sn: LTSP 030
Line 787: Line 741:
homeDirectory: /home/ltsp002
# search result
search: 2
result: 0 Success

# numResponses: 37
# numEntries: 36
admin-ubuntu@ubuntu:~$
}}}

Tavallisena käyttäjänä tehdään kysely käyttäjästä "LTSP 001". Selainkäyttäjän salasana pitää luonnollisesti tuntea.

{{{
admin-ubuntu@ubuntu:~$ ldapsearch -x -D "cn=nss,dc=ubuntu,dc=fi" -W -u "cn=LTSP 001"
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=ubuntu,dc=fi> (default) with scope subtree
# filter: cn=LTSP 001
# requesting: ALL
#

# ltsp001, People, ubuntu.fi
dn: uid=ltsp001,ou=People,dc=ubuntu,dc=fi
ufn: ltsp001, People, ubuntu.fi
cn: LTSP 001
uid: ltsp001
uidNumber: 1001
loginShell: /bin/bash
homeDirectory: /home/ltsp001
Line 789: Line 773:
userPassword:: e2NyeXB0fUhRbUpjWkxBSFNMNW8=
shadowLastChange: 14252
Line 795: Line 777:
sn: LTSP 002

[--]

# ltsp029, People, ubuntu.fi
dn: uid=ltsp029,ou=People,dc=ubuntu,dc=fi
cn: LTSP 029
uid: ltsp029
uidNumber: 1029
loginShell: /bin/bash
homeDirectory: /home/ltsp029
gidNumber: 10000
userPassword:: e2NyeXB0fVdHbFhRRDZrVmFrTlE=
shadowLastChange: 14252
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: person
sn: LTSP 029
sn: LTSP 001
Line 819: Line 783:
# numResponses: 35
# numEntries: 34
}}}
# numResponses: 2
# numEntries: 1
admin-ubuntu@ubuntu:~$
}}}

== LTSP-päätteen jättämät jäljet kummallakin palvelimella ==

=== LTSP-pääte ja LTSP-palvelin ===

==== /var/log/daemon.log ====

{{{
Jan 26 19:13:17 ubuntu dhcpd: DHCPREQUEST for 192.168.1.200 (192.168.1.101) from 00:22:15:15:4b:4c via eth0
Jan 26 19:13:17 ubuntu dhcpd: DHCPACK on 192.168.1.200 to 00:22:15:15:4b:4c via eth0
Jan 26 19:13:18 ubuntu nbdrootd[6342]: connect from 192.168.1.200 (192.168.1.200)
Jan 26 19:13:18 ubuntu nbd_server[6343]: connect from 192.168.1.200, assigned file is /opt/ltsp/images/i386.img
Jan 26 19:13:18 ubuntu nbd_server[6343]: Size of exported file/device is 556453888
Jan 26 19:13:40 ubuntu ldminfod[6352]: connect from 192.168.1.200 (192.168.1.200)
}}}

==== /var/log/auth.log ====

{{{
Jan 26 19:13:46 ubuntu sshd[6355]: Accepted password for ltsp001 from 192.168.1.200 port 43270 ssh2
Jan 26 19:13:46 ubuntu sshd[6357]: pam_unix(sshd:session): session opened for user ltsp001 by (uid=0)
}}}

=== LTSP-pääte ja openLDAP-palvelin ===

==== /var/log/syslog ====

{{{
Jan 26 19:13:46 ubuntu slapd[5287]: conn=32 op=2 SRCH base="ou=Group,dc=ubuntu,dc=fi" scope=1 deref=0
filter="(&(objectClass=posixGroup)(|(memberUid=ltsp001)(uniqueMember=uid=ltsp001,ou=people,dc=ubuntu,dc=fi)))"
}}}

SisällysluetteloBRTableOfContents(3)

LTSP5 - openLDAP

Tämä ohje on tarkoitettu Ubuntu 8.04.1-versiolle. Ohje perustuu asennukseen, joka tehtiin Valamossa LTSP5-työpajassa tammikuussa 2009. Asennuksen teki Mikael Lammentausta.

Tämä ohje ei ole perinteinen "Leikkaa ja liimaa"-tyyppinen, vaan pikemminkin mahdollisimman tarkka kuvaus yhdestä toimivasta LTSP5-openLDAP-palvelinyhdistelmästä.

Tästä ohjeesta puuttuu SSL-sertifikaattien ja SASL-salauksen asennuske ja käytön kuvaus sekä kotihakemistojen NFS-palvelimen asennuksen ja käytön kuvaus.

Toivomme, että lähtien liikkeelle tästä peruskuvauksesta saamme luoduksi monipuolisen ohjeen koskien openLDAP-käyttöä LTSP5-ympäristössä. Tarkoituksemme on tehdä myös perinteinen "Leikkaa ja liimaa"-tyyppinen asennusohje openLDAP-palvelimesta LTSP5-ympäristössä.

Tässä ohjeessa on käytössä kaksi palvelinkonetta, jossa ensimmäiseen on ensin asennettu täysin toimiva LTSP5-ympäristö. Toiseen koneeseen riittää pelkkä Ubuntu 8.04.1-asennus. Näissä kahdessa palvelinkoneessa on yksi verkkokortti kummassakin. Perusasennuksen jälkeen tässä ohjeessa on käytetty seuraavanlaista lähiverkkoa. LTSP5-perusasennuksesta, tosin kahdella verkkokortilla, löytyy oma ohjeensa: http://wiki.ubuntu-fi.org/LTSP5_Perusasennus.

http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/LTSP5-openLDAP.gif

ADSL-modeemi jakaa LAN-reitittimelle/kytkimelle ip-osoitteen (192.168.0.100). Lähiverkkoon päin LAN-reititin/kytkin näkyy ip-osoitteessa 192.168.1.1. Tämä LAN-reititin/kytkin tarjoaa myös nimipalvelut.

LTSP5-palvelin on 192.168.1.101.

openLDAP-palvelin on 192.168.1.102.

Pääte, jolle on annettu kiinteä ip-osoite MAC-osoitteen perusteella, on 192.168.1.200. Pääte kirjautuu automaattisesti sisään palvelimelle.

Kuvaus asennusjärjestyksestä

Seuraavassa on kuvaus siitä, miten asennus eteni Valamon työpajassa.

/etc/pam.d-hakemiston tiedostoihin kajoaminen on äärimmäisen kriittistä. On mahdollista asettaa LTSP5-palvelin sellaiseen tilaan, että sisäänkirjautuminen ei ole enää mahdollista millään tunnuksella. Tähän varauduttiin avaamalla konsoliin (Ctrl-Alt-F1) root-tunnus muokkauksen ajaksi. Tunnusta ei suljettu välillä!

LTSP5-palvelin oli etukäteen asennettu valmiiksi ja toimivaksi.

openLDAP-palvelin oli alunperin myös LTSP5-palvelin, ei pelkkä komentorivipohjainen palvelin-asennus. Tästä palvelimesta oli sammutettu dhcp3-palvelu.

openLDAP-palvelin asennettiin ensin valmiiksi, vasta sitten siirryttiin muokkaamaan LTSP5-palvelinta.

openLDAP-palvelimeen rakennettiin puurakenne ja base.ldif-tiedoston avulla perusasetukset käyttäjistä ja käyttäjäryhmistä.

openLDAP-palvelimelle käyttäjät luotiin Webminin avulla.

LTSP5-palvelimella muokattiin /etc/pam.d/-hakemiston tiedostoja siirtämään sisäänkirjautuminen openLDAP-palvelimelle.

Pääkäyttäjän tunnus (admin-ubuntu) ja kaikki järjestelmän demonitunnukset jätettiin LTSP5-palvelimelle. Yleensä ei suositella tunnuksia, joiden ID on alle 1000 - root-tunnus (ID 1000) mukaan lukien - siirrettäväksi openLDAP-palvelimelle.

LTSP5-palvelimelta poistettiin muut normaalit käyttäjätunnukset kuin pääkäyttäjän tunnukset tiedostoista /etc/passwd, /etc/shadow ja /etc/group.

Kun komentoriviltä varmistettiin (ldapsearch- ja getent-käsky), että tunnukset löytyvät openLDAP-palvelimelta, niin päästiin kokeilemaan päätteen kirjautumista openLDAP-palvelun avulla.

LDAP-puurakenne

Paras puurakenne syntyy rekisteröidyn domain-nimen pohjalta, jota voidaan käyttää myös esimerkiksi postipalveluiden yhteydessä. Ubuntu.fi on rekisteröity, osuuskunta Sangen omistuksessa oleva osoite. Ubuntu.fi ohjautuu tällä hetkellä Ubuntu-fi.org-sivustolle. Tämä malli käynee kuitenkin esimerkistä, jonka pohjalta voi rakentaa aidon ratkaisun.

Termi dc on Domain Component, ou on Organizational Unit, cn on Common Name. Rakenteessa on haara käyttäjille ja ryhmille. Rakenne ladataan standardissa LDIF-muodossa, joka esitellään myöhemmin tässä dokumentissa.

openLDAP-puurakenne on tässä asennuksessa tällainen:

 dc=fi
 |
 dc=ubuntu----|----------|
 |            |          |
 ou=Users     ou=Groups  cn=nss
 |            |          
 |            cn=Users
 |
 cn=ltsp001, ltsp002 ...

Pääkäyttäjät ja heidän salasanansa

Kuten myöhemmin kerrotaan, nämä salasanat eivät ole parhaat mahdolliset. Käytä jokaisella palvelimella ja palvelussa eri salasanoja!

  • LTSP-palvelimen pääkäyttäjä: admin-ubuntu | Salasana: TP2009ltsp
  • openLDAP-palvelimen pääkäyttäjä: admin-ubuntu | Salasana: TP2009ltsp
  • openLDAP-palvelun pääkäyttäjä: cn=manager | Salasana: TP2009ltsp
  • openLDAP-palvelun selauskäyttäjä: cn=nss | Salasana: TP2009nss

Lähiverkon perusasetukset

Tässä ohjeessa on käytetty seuraavanlaisia asetustiedostoja, alla on ensin LTSP5-palvelin ja sen jälkeen openLDAP-palvelin.

Osasta tiedostoja on poistettu kommenttirivejä (#-merkillä alkavia) luettavuuden parantamiseksi.

LTSP5-palvelin - 192.168.1.101

Tämä on LTSP5-palvelimen verkkokortin asetustiedosto: /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.101
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.1.1

Tämä LTSP5-palvelimen dhcp3-palvelun asetustiedosto: /etc/ltsp/dhcpd.conf

Asus Eee 701-tietokoneelle, joka toimii päätteenä, on annettu kiinteä ip-osoite samoin kuin host-nimi.

#
# Default LTSP dhcpd.conf config file.
#

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.150 192.168.1.200;
    option domain-name "ubuntu";
    option domain-name-servers 192.168.1.1;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.1;
#    next-server 192.168.0.1;
#    get-lease-hostnames true;
    option subnet-mask 255.255.255.0;
    option root-path "/opt/ltsp/i386";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
    } else {
        filename "/ltsp/i386/nbi.img";
    }

host ltsp001 {
        hardware ethernet 00:22:15:15:4B:4C;
        fixed-address 192.168.1.200;
        }
}

Koska Asus Eee 701 käyttää hieman erikoista näytön resoluutiota, se pitää kertoa lts.conf-tiedostossa. Pääte myös pakotetaan kirjautumaan sisään määrätyllä tunnuksella, tämä toimii myös openLDAP-ympäristössä: /var/lib/tftpboot/ltsp/i386/lts.conf

[00:22:15:15:4B:4C]
X_CONF = /etc/X11/asus-eee-xorg.conf
X_COLOR_DEPTH=16
LDM_DIRECX=True
LDM_AUTOLOGIN=True
LDM_USERNAME=ltsp001
LDM_PASSWORD=edubuntu

openLDAP-palvelin - 192.168.1.102

Tämä on openLDAP-palvelimen verkkokortin asetustiedosto: /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.102
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.1.1

LTSP5-palvelimen muokatut tiedostot openLDAP-palvelua varten

Osasta tiedostoja on poistettu kommenttirivejä (#-merkillä alkavia) luettavuuden parantamiseksi.

Muokatut tiedostot löytyvät LTSP5-palvelimen osalta tästä hakemistosta: http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/etc-ltsp5/

Seuraavassa on kuvaus openLDAP-palvelimeen liittyvistä tiedostoista.

LTSP5-palvelin - /etc/ldap/ldap.conf

Kaikkien pitää päästä lukemaan tätä tiedostoa. Siksi sen lukuoikeudet ovat näin:

root@ubuntu:~# ls -al /etc/ldap/ldap.conf
-rw-r--r-- 1 root root 267 2009-01-25 15:16 /etc/ldap/ldap.conf
root@ubuntu:~# 

###############
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

BASE    dc=ubuntu,dc=fi
URI     ldap://192.168.1.102

LTSP5-palvelin - /etc/ldap.conf

Kaikkien pitää päästä lukemaan tätä tiedostoa. Siksi sen lukuoikeudet ovat näin:

root@ubuntu:~# ls -al /etc/ldap.conf
-rw-r--r-- 1 root root 9243 2009-01-26 17:20 /etc/ldap.conf
root@ubuntu:~#

Tässä tiedostossa kerrotaan esimerkiksi, että selainkäyttäjä on 'nss' ja salasana on 'TP2009nss'. Ei sama kuin openLDAP-palvelimen pääkäyttäjän (admin-ubuntu) tai openLDAP-palvelun pääkäyttäjän (cn=manager) salasana.

# The distinguished name of the search base.
base dc=ubuntu,dc=fi

# Another way to specify your LDAP server is to provide an
uri ldap://192.168.1.102

# The LDAP version to use (defaults to 3
# if supported by client library)
ldap_version 3

# The distinguished name to bind to the server with.
# Optional: default is to bind anonymously.
binddn cn=nss,dc=ubuntu,dc=fi

# The credentials to bind with. 
# Optional: default is no credential.
bindpw TP2009nss

# The distinguished name to bind to the server with
# if the effective user ID is root. Password is
# stored in /etc/ldap.secret (mode 600)
rootbinddn cn=manager,dc=ubuntu,dc=fi

# Do not hash the password at all; presume
# the directory server will do it, if
# necessary. This is the default.
pam_password md5

# RFC2307bis naming contexts
# Syntax:
# nss_base_XXX          base?scope?filter
# where scope is {base,one,sub}
# and filter is a filter to be &'d with the
# default filter.
# You can omit the suffix eg:
# nss_base_passwd       ou=People,
# to append the default base DN but this
# may incur a small performance impact.

nss_base_passwd ou=People,dc=ubuntu,dc=fi?one
nss_base_shadow ou=People,dc=ubuntu,dc=fi?one
nss_base_group  ou=Group,dc=ubuntu,dc=fi?one

# SASL mechanism for PAM authentication - use is experimental
# at present and does not support password policy control
#pam_sasl_mech DIGEST-MD5
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,nbd,news,ntp,nx,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

/etc/ldap.secret

Tässä on openLDAP-palvelimen manager-käyttäjän salasana. Se on selväkielinen - vain root-käyttäjä muokkaa tai lukee sitä. Tiedostolla tulee olla oikeudet siis '600'.

Käytä pääkäyttäjälle (cn=manager) eri salasanaa kuin selauskäyttäjälle (cn=nss). Tämän asennuksen yhteydessä kummankin Ubuntu-järjestelmän pääkäyttäjän salasana on sama kuin openLDAP-pääkäyttäjän, mikä ei tietenkään ole suositeltavaa! Käytä eri salasanoja kunkin järjestelmän pääkäyttäjille!

/etc/ldap.secret:
TP2009ltsp

root@ubuntu:~# ls -al /etc/ldap.secret
-rw------- 1 root root 11 2009-01-08 17:12 /etc/ldap.secret
root@ubuntu:~#

/etc/nsswitch.conf

Tätä tiedostoa käyttävät monet muutkin palvelut kuin vain openLDAP, esimerkiksi dns ja nis. Käyttäjiin liittyvät tiedostot (passwd, shadow ja group) on liitetty openLDAP-palveluun. Muut rivit on jätettävä ennalleen, ainoa lisäys on 'ldap' kyseisten rivien loppuun.

####################
# /etc/nsswitch.conf
#
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

LTSP5-palvelin - PAM

Kuten edellä kerrottiin, niin /etc/pam.d/-hakemiston tiedostoihin kajoaminen on järjestelmän kannalta äärimmäisen kriittistä. LTSP5-palvelin voidaan todellakin saada tilaan, jossa kirjautuminen ei onnistu millään tunnuksella.

Varsinaisen asennusohjeen yhteydessä kerrotaan kaikki tarvittavat kirjastot ja asenenttavien pakettien nimet.

Jos käyttäjän kotihakemistoa ei ole olemassa se luodaan kirjautumisen yhteydessä (pam_mkhomedir.so).

password   required     pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password   sufficient   pam_unix.so nullok md5 shadow use_authtok
password   sufficient   pam_ldap.so use_authtok
password   required     pam_deny.so

/etc/pam.d/common-auth - authentication settings common to all services

auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok try_first_pass
auth       sufficient   pam_ldap.so use_first_pass
auth       required     pam_deny.so

/etc/pam.d/common-account - authorization settings common to all services

account    sufficient   pam_unix.so
account    sufficient   pam_ldap.so

session    required     pam_limits.so
session    required     pam_unix.so
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
session    optional     pam_ldap.so

openLDAP-palvelin

Muokatut tiedostot löytyvät LTSP5-palvelimen osalta tästä hakemistosta: http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/etc-openldap/

OpenLDAP-palvelimella ei tarvitse määrittää muita asetuksia kuin slapd, koska palvelimelle itsellään ei käytetä LDAP-tunnuksia. Webmin-ohjelman käyttö vaati näitä tiedostoja, siitä on tarkemmin alempana.

openLDAP-palvelimen pääkäyttäjän tunnus (admin-ubuntu) on itse palvelimella eli passwd-tiedostossa.

root@ubuntu:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
[--]
admin-ubuntu:x:1000:1000:Administrator Ubuntu,,,:/root/admin-ubuntu:/bin/bash
[--]
root@ubuntu:~#

/etc/ldap/slapd.conf

Tämä konfiguraatiotiedosto määrittää LDAP-palvelimen asetukset. Konfiguraatio mm. sisältää LDAPin hallinnoijan tunnuksen (rootdn) sekä salasanan kryptatussa muodossa.

openLDAP-palvelimella ei tarvita lainkaan ldap-tiedostoja tosin kuin LTSP5-palvelimella: /etc/ldap/ldap.conf, /etc/ldap.conf ja /etc/ldap.secret. Näin ainoa tiedsoto jossa, openLDAP-palvelun pääkäyttäjän (cn=manager) salasana on näkyvissä, on alla oleva tiedosto. Siinä se on kuitenkin kryptattu.

Jos halutaan käyttää Webmin-ohjelmaa ja hallita käyttäjiä sen avulla, niin /etc/ldap.conf, /etc/ldap.secret ja /etc/ldap/ldap.conf tiedostojen pitää olla käytössä myös openLDAP-palvelimella. Kopioi ne sellaisenaan LTSP5-palvelimelta. Tiedostojen oikeudet tulee kuitenkin asettaa näin openLDAP-palvelimella:

root@ubuntu:~# ls -al /etc/ldap.*
-rw------- 1 root root 9160 2009-01-26 15:27 /etc/ldap.conf
-rw------- 1 root root   11 2009-01-08 16:35 /etc/ldap.secret

phpLdapAdmin ei vaadi ldap-tiedostojen käyttöä!

Koska tämä konfiguraatio on kaikista monimutkaisin, selkeyden vuoksi vain muutetut rivit ja osioiden kommentit on jätetty näkyviin! Koska samassa konfiguraatiossa voi olla useita tietokantoja, konfiguraation järjestyksellä on merkitystä.

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel        256

# Where the dynamically loaded modules are stored
modulepath      /usr/lib/ldap
moduleload      back_hdb

# The maximum number of entries that is returned for a search operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for hdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend         hdb

#######################################################################
# Specific Directives for database #1, of type hdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database        hdb

# The base of your directory in database #1
suffix          "dc=ubuntu,dc=fi"

# rootdn directive for specifying a superuser on the database. This is needed
# for syncrepl.
rootdn          "cn=manager,dc=ubuntu,dc=fi"

# Where the database file are physically stored for database #1
directory       "/var/lib/ldap"

password-hash   {crypt}
rootpw {MD5}gonsh+ULQWhKd6JXdMo4kQ==

# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1
index           objectClass eq

# Save the time that the entry gets modified, for database #1
lastmod         on

# Checkpoint the BerkeleyDB database periodically in case of system
# failure and to speed slapd shutdown.
checkpoint      512 30

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
        by dn="cn=manager,dc=ubuntu,dc=fi" write
        by anonymous auth
        by self write
        by * none

# The admin dn has full write access, everyone else
# can read everything.
access to *
        by dn="cn=manager,dc=ubuntu,dc=fi" write
        by dn="cn=nss,dc=ubuntu,dc=fi" read
        by * auth

base.ldif

Tämä tiedosto (base.ldif) sisältää juurirakenteen. Se ladataan openLDAP-palvelimella komennolla slapadd. Tämä tiedosto luotiin Valamossa työpajan yhteydessä.

dn: dc=ubuntu,dc=fi
objectclass: organization
objectclass: dcObject
o: LTSP-paja
dc: ubuntu
description: LTSP-tyopajan oma domain

dn: ou=Hosts,dc=ubuntu,dc=fi
ou: Hosts
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

dn: ou=People,dc=ubuntu,dc=fi
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

dn: ou=Groups,dc=ubuntu,dc=fi
ou: Groups
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

dn: cn=users,ou=Groups,dc=ubuntu,dc=fi
objectClass: posixGroup
cn: users
gidNumber: 10000

nss-ldif

openLDAP-palveliemn selausta varten luotiin nss-käyttäjä. Se luettiin openLDAP-palvelimelle sisään samalla tavalla kuin base.ldif-tiedosto.

dn: cn=nss, dc=ubuntu,dc=fi
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user
userPassword: {CRYPT}BzGwbmUEHZj8E

Salasana nss-käyttäjälle

Salasana luotiin nss-käyttäjille käskyllä "slappasswd". Kryptattu salsana sisällytetään ldif-tiedostoon. openLDAP-palvelimen manager-käyttäjän salasana luotiin jo varsinaisen asennuksen yhteydessä.

Webmin - openLDAP-modulit

Uusia käyttäjiä voi luoda Webminillä. Webmin-ohjelman asennuksesta on oma ohjeensa: http://wiki.ubuntu-fi.org/Webmin

create:ltsp001:edubuntu:1001:10000:LTSP 001:/home/ltsp001:/bin/bash:::::
create:ltsp002:edubuntu:1002:10000:LTSP 002:/home/ltsp002:/bin/bash:::::
create:ltsp003:edubuntu:1003:10000:LTSP 003:/home/ltsp003:/bin/bash:::::
create:ltsp004:edubuntu:1004:10000:LTSP 004:/home/ltsp004:/bin/bash:::::
create:ltsp005:edubuntu:1005:10000:LTSP 005:/home/ltsp005:/bin/bash:::::
create:ltsp006:edubuntu:1006:10000:LTSP 006:/home/ltsp006:/bin/bash:::::
create:ltsp007:edubuntu:1007:10000:LTSP 007:/home/ltsp007:/bin/bash:::::
create:ltsp008:edubuntu:1008:10000:LTSP 008:/home/ltsp008:/bin/bash:::::
create:ltsp009:edubuntu:1009:10000:LTSP 009:/home/ltsp009:/bin/bash:::::
create:ltsp010:edubuntu:1010:10000:LTSP 010:/home/ltsp010:/bin/bash:::::
create:ltsp011:edubuntu:1011:10000:LTSP 011:/home/ltsp011:/bin/bash:::::
create:ltsp012:edubuntu:1012:10000:LTSP 012:/home/ltsp012:/bin/bash:::::
create:ltsp013:edubuntu:1013:10000:LTSP 013:/home/ltsp013:/bin/bash:::::
create:ltsp014:edubuntu:1014:10000:LTSP 014:/home/ltsp014:/bin/bash:::::
create:ltsp015:edubuntu:1015:10000:LTSP 015:/home/ltsp015:/bin/bash:::::
create:ltsp016:edubuntu:1016:10000:LTSP 016:/home/ltsp016:/bin/bash:::::
create:ltsp017:edubuntu:1017:10000:LTSP 017:/home/ltsp017:/bin/bash:::::
create:ltsp018:edubuntu:1018:10000:LTSP 018:/home/ltsp018:/bin/bash:::::
create:ltsp019:edubuntu:1019:10000:LTSP 019:/home/ltsp019:/bin/bash:::::
create:ltsp020:edubuntu:1020:10000:LTSP 020:/home/ltsp020:/bin/bash:::::
create:ltsp021:edubuntu:1021:10000:LTSP 021:/home/ltsp021:/bin/bash:::::
create:ltsp022:edubuntu:1022:10000:LTSP 022:/home/ltsp022:/bin/bash:::::
create:ltsp023:edubuntu:1023:10000:LTSP 023:/home/ltsp023:/bin/bash:::::
create:ltsp024:edubuntu:1024:10000:LTSP 024:/home/ltsp024:/bin/bash:::::
create:ltsp025:edubuntu:1025:10000:LTSP 025:/home/ltsp025:/bin/bash:::::
create:ltsp026:edubuntu:1026:10000:LTSP 026:/home/ltsp026:/bin/bash:::::
create:ltsp027:edubuntu:1027:10000:LTSP 027:/home/ltsp027:/bin/bash:::::
create:ltsp028:edubuntu:1028:10000:LTSP 028:/home/ltsp028:/bin/bash:::::
create:ltsp029:edubuntu:1029:10000:LTSP 029:/home/ltsp029:/bin/bash:::::
create:ltsp030:edubuntu:1030:10000:LTSP 029:/home/ltsp030:/bin/bash:::::

Ruutukaappauksia Webmin-ohjelmasta

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_01.png Webmin-openLDAP_01.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_02.png Webmin-openLDAP_02.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_03.png Webmin-openLDAP_03.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_04.png Webmin-openLDAP_04.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/Webmin-openLDAP_05.png Webmin-openLDAP_05.png]

Ruutukaappauksia phpLdapAdmin-ohjelmasta

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-01.png phpLdapAdmin-01.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-02.png phpLdapAdmin-02.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-03.png phpLdapAdmin-03.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-04.png phpLdapAdmin-04.png]

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/phpLdapAdmin-05.png phpLdapAdmin-05.png]

ITALC

iTALC toimii päätteiden suhteen aivan normaalisti.

[http://www.arkki.info/howto/Wiki/LTSP5-openLDAP/iTALC_01.png iTALC_01.png]

Testi- ja kyselytyökaluja

Toimivaa openLDAP-palvelinta voidaan testata ja tehdä hakuja seuraavila työkaluilla.

getent passwd

Root- ja admin-ubuntu-tunnukset ovat LTSP5-palvelimen paikallisessa passwd-tiedostossa. Ltsp-käyttäjät ovat openLDAP-palvelimella. Getent-ohjelma näkee ne kummatkin.

admin-ubuntu@ubuntu:~$ getent passwd
root:x:0:0:root:/root:/bin/bash
[--]
admin-ubuntu:x:1000:1000:Administrator Ubuntu,,,:/root/admin-ubuntu:/bin/bash
[--]
ltsp001:x:1001:10000:LTSP 001:/home/ltsp001:/bin/bash
ltsp002:x:1002:10000:LTSP 002:/home/ltsp002:/bin/bash
ltsp003:x:1003:10000:LTSP 003:/home/ltsp003:/bin/bash
ltsp004:x:1004:10000:LTSP 004:/home/ltsp004:/bin/bash
ltsp005:x:1005:10000:LTSP 005:/home/ltsp005:/bin/bash
ltsp006:x:1006:10000:LTSP 006:/home/ltsp006:/bin/bash
ltsp007:x:1007:10000:LTSP 007:/home/ltsp007:/bin/bash
ltsp008:x:1008:10000:LTSP 008:/home/ltsp008:/bin/bash
ltsp009:x:1009:10000:LTSP 009:/home/ltsp009:/bin/bash
ltsp010:x:1010:10000:LTSP 010:/home/ltsp010:/bin/bash
ltsp011:x:1011:10000:LTSP 011:/home/ltsp011:/bin/bash
ltsp012:x:1012:10000:LTSP 012:/home/ltsp012:/bin/bash
ltsp013:x:1013:10000:LTSP 013:/home/ltsp013:/bin/bash
ltsp014:x:1014:10000:LTSP 014:/home/ltsp014:/bin/bash
ltsp015:x:1015:10000:LTSP 015:/home/ltsp015:/bin/bash
ltsp016:x:1016:10000:LTSP 016:/home/ltsp016:/bin/bash
ltsp017:x:1017:10000:LTSP 017:/home/ltsp017:/bin/bash
ltsp018:x:1018:10000:LTSP 018:/home/ltsp018:/bin/bash
ltsp019:x:1019:10000:LTSP 019:/home/ltsp019:/bin/bash
ltsp020:x:1020:10000:LTSP 020:/home/ltsp020:/bin/bash
ltsp021:x:1021:10000:LTSP 021:/home/ltsp021:/bin/bash
ltsp022:x:1022:10000:LTSP 022:/home/ltsp022:/bin/bash
ltsp023:x:1023:10000:LTSP 023:/home/ltsp023:/bin/bash
ltsp024:x:1024:10000:LTSP 024:/home/ltsp024:/bin/bash
ltsp025:x:1025:10000:LTSP 025:/home/ltsp025:/bin/bash
ltsp026:x:1026:10000:LTSP 026:/home/ltsp026:/bin/bash
ltsp027:x:1027:10000:LTSP 027:/home/ltsp027:/bin/bash
ltsp028:x:1028:10000:LTSP 028:/home/ltsp028:/bin/bash
ltsp029:x:1029:10000:LTSP 029:/home/ltsp029:/bin/bash
ltsp030:x:1030:10000:LTSP 030:/home/ltsp030:/bin/bash
admin-ubuntu@ubuntu:~$

ldapsearch

Tavallisena käyttäjänä tehdään kysely kaikista käyttäjistä. Selainkäyttäjän salasana pitää luonnollisesti tuntea.

admin-ubuntu@ubuntu:~$ ldapsearch -x -D "cn=nss,dc=ubuntu,dc=fi" -W
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=ubuntu,dc=fi> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# ubuntu.fi
dn: dc=ubuntu,dc=fi
objectClass: organization
objectClass: dcObject
o: LTSP-paja
dc: ubuntu
description: LTSP-tyopajan oma domain

# Hosts, ubuntu.fi
dn: ou=Hosts,dc=ubuntu,dc=fi
ou: Hosts
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

# People, ubuntu.fi
dn: ou=People,dc=ubuntu,dc=fi
ou: People
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

# Groups, ubuntu.fi
dn: ou=Groups,dc=ubuntu,dc=fi
ou: Groups
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: paja

# users, Groups, ubuntu.fi
dn: cn=users,ou=Groups,dc=ubuntu,dc=fi
objectClass: posixGroup
cn: users
gidNumber: 10000
memberUid: ltsp030

# ltsp001, People, ubuntu.fi
dn: uid=ltsp001,ou=People,dc=ubuntu,dc=fi
cn: LTSP 001
uid: ltsp001
uidNumber: 1001
loginShell: /bin/bash
homeDirectory: /home/ltsp001
gidNumber: 10000
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: person
sn: LTSP 001

[--]

# nss, ubuntu.fi
dn: cn=nss,dc=ubuntu,dc=fi
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user
userPassword:: e01ENX1pSi9VV0crQUxLV0xUZ3dFbW1aajRRPT0=

# ltsp030, People, ubuntu.fi
dn: uid=ltsp030,ou=People,dc=ubuntu,dc=fi
uid: ltsp030
cn: LTSP 030
homeDirectory: /home/ltsp030
uidNumber: 1030
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
gidNumber: 10000
gecos: LTSP 030
sn: LTSP 030
loginShell: /bin/bash

# search result
search: 2
result: 0 Success

# numResponses: 37
# numEntries: 36
admin-ubuntu@ubuntu:~$

Tavallisena käyttäjänä tehdään kysely käyttäjästä "LTSP 001". Selainkäyttäjän salasana pitää luonnollisesti tuntea.

admin-ubuntu@ubuntu:~$ ldapsearch -x -D "cn=nss,dc=ubuntu,dc=fi" -W -u "cn=LTSP 001"
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=ubuntu,dc=fi> (default) with scope subtree
# filter: cn=LTSP 001
# requesting: ALL
#

# ltsp001, People, ubuntu.fi
dn: uid=ltsp001,ou=People,dc=ubuntu,dc=fi
ufn: ltsp001, People, ubuntu.fi
cn: LTSP 001
uid: ltsp001
uidNumber: 1001
loginShell: /bin/bash
homeDirectory: /home/ltsp001
gidNumber: 10000
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
objectClass: person
sn: LTSP 001

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
admin-ubuntu@ubuntu:~$

LTSP-päätteen jättämät jäljet kummallakin palvelimella

LTSP-pääte ja LTSP-palvelin

/var/log/daemon.log

Jan 26 19:13:17 ubuntu dhcpd: DHCPREQUEST for 192.168.1.200 (192.168.1.101) from 00:22:15:15:4b:4c via eth0
Jan 26 19:13:17 ubuntu dhcpd: DHCPACK on 192.168.1.200 to 00:22:15:15:4b:4c via eth0
Jan 26 19:13:18 ubuntu nbdrootd[6342]: connect from 192.168.1.200 (192.168.1.200)
Jan 26 19:13:18 ubuntu nbd_server[6343]: connect from 192.168.1.200, assigned file is /opt/ltsp/images/i386.img
Jan 26 19:13:18 ubuntu nbd_server[6343]: Size of exported file/device is 556453888
Jan 26 19:13:40 ubuntu ldminfod[6352]: connect from 192.168.1.200 (192.168.1.200)

/var/log/auth.log

Jan 26 19:13:46 ubuntu sshd[6355]: Accepted password for ltsp001 from 192.168.1.200 port 43270 ssh2
Jan 26 19:13:46 ubuntu sshd[6357]: pam_unix(sshd:session): session opened for user ltsp001 by (uid=0)

LTSP-pääte ja openLDAP-palvelin

/var/log/syslog

Jan 26 19:13:46 ubuntu slapd[5287]: conn=32 op=2 SRCH base="ou=Group,dc=ubuntu,dc=fi" scope=1 deref=0
filter="(&(objectClass=posixGroup)(|(memberUid=ltsp001)(uniqueMember=uid=ltsp001,ou=people,dc=ubuntu,dc=fi)))"