OpenLdap ja Samba: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 352: Line 352:


<pre>/etc/init.d/samba restart</pre>
<pre>/etc/init.d/samba restart</pre>
==sambaldap-tools seadistamine==


=Kasutatud kirjandus=
=Kasutatud kirjandus=

Revision as of 16:51, 10 May 2010

Sissejuhatus

OpenLDAP on LDAP-i avatud lähtekoodiga implementatsioon, mis võimaldab keskhaldusega standartset kataloogiteenust kasutajate, rühmade, seadmete ja muude andmete haldamiseks. OpenLDAP-i kasutamise muudab praktiliseks tema liidestatus erinevate rakendustega.

Samba on failiserveri tarkvara, mis implementeerib SMB/CIFS protokolli. Selle abil on võimalik faile ja printereid jagada nii Windowsi kui UNIX-i laadsete operatsioonisüsteemide jaoks.

Eeldused

Antud lahendus on testitud Ubuntu 9.10 Serveril

Installeerimine

Esmalt logime ennast juurkasutaja õigustesse, et saaks mugavalt installeerimisprotsessiga tegeleda. Selleks anname korralduse:

sudo -i

Seejärel tuleks tarkvara nimekirja uuendada, milleks anname korralduse:

apt-get update

Nüüd saame asuda OpenLDAP-i ja Sambat installeerima. Selleks anname korralduse:

apt-get -y install slapd ldap-utils samba samba-doc smbldap-tools smbclient

Installeerimise käigus paigaldati järgnevad pakkid:

  • slapd - stand-alone LDAP daemon (server)
  • ldap-utils - kasulikud utiliidid LDAP kataloogi administreerimiseks
  • samba - Samba 3 versiooni server
  • samba-doc - Samba man lehel mittesisalduv dokumentatsioon
  • smbldap-tools - kogum kasulikest skriptidest samba ja LDAP-i administreerimiseks
  • smbclient - Samba klient

Seadistamine

OpenLDAP-i seadistamine

Selleks, et oleks mugav OpenLDAP-i seadistada liigume OpenLDAP-i konfi kataloogi käsuga:

cd /etc/ldap

Lisame mõned schemad, mida võib vaja minna:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif

Nüüd seadistame andmebaasi backend mooduli. Selleks tuleb luua seadistamise skript:

nano backdb.ldif

Konfi faili tuleb sisestada järgmised kirjed, kus:

  • olcSuffix: dc=example,dc=com - example ja com tuleb asendada enda domeeniga;
  • olcRootDN: cn=admin,dc=example,dc=com - admin tuleb asendada enda poolt soovitud LDAP-i administraatori kasutajanimega ning example ja com tuleb asendada enda domeeniga;
  • olcRootPW: example - example tuleb asendada enda poolt soovitud LDAP-i administraatori konto parooliga.
# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb

# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: example
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq

Järgneva käsuga laeme mooduli ja initsialiseerime andmebaasi:

ldapadd -Y EXTERNAL -H ldapi:/// -f backdb.ldif

Nüüd loome krüpteeritud administraatori konto parooli räsi:

slappasswd -h {MD5}
  • Sisestage soovitud parool 2 korda ja kopeeriga genereeritud räsi.

Loome baas dn-i ja administraatori konto OpenLDAP serverile:

nano base.ldif

Konfi faili tuleb sisestada järgnevad kirjed, kus:

  • dn: dc=example,dc=com - example ja com tuleb asendada enda domeeni nimega;
  • o: example.com - example.com tuleb asendada enda domeeni nimega;
  • dc: example - example asendada domeeni nimega;
  • dn: cn=admin,dc=example,dc=com - admin asendada administraatori kasutajanimega, example ja com asendada enda domeeni nimega;
  • cn: admin - admin asendada administraatori kasutajanimega;
  • userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== - {MD5}Gnmk1g3mcY6OWzJuM4rlMw== asendada genereeritud ja kopeeritud parooli räsiga
dn: dc=example,dc=com
objectClass: dcObject
objectclass: organization
o: example.com
dc: example
description: My LDAP Root

dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
userPassword: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==
description: LDAP administrator

Laeme tekitatud konfiguratsiooni skripti sisse:

ldapadd -Y EXTERNAL -H ldapi:/// -f base.ldif

Muudame süsteemi ACL-e. OpenLDAP installimisel seadistatakse mõned ACL-id, mis ei võimalda näiteks phpldapadmin liidesel kataloogiteenusega suhelda. Seega nüüd eemaldame need piirangud ja seadistame OpenLDAP-i muudatuste läbiviimisel tuvastama muudatuste läbiviijat ja õigusi. Nüüdsest ei saa endm teha kataloogi muudatusi vanal viisil ldapadd -Y EXTERNAL -H ldapi:// -f fail, vaid nüüdsest ldapadd -x -Y EXTERNAL -H ldapi:// -D cn=admin,cn=config -W -f fail kujul, mille puhuk admin tuleb asendada administraatori kasutajanimega ja peale käsu sisestamist küsitakse parooli.

Loome faili config.ldif:

nano config.ldif

Konfi faili tuleb sisestada järgnevad kirjed:

  • olcRootDN: cn=admin,cn=config - admin tuleb asendada valitud administraatori kasutajanimega;
  • olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw== - {MD5}Gnmk1g3mcY6OWzJuM4rlMw== tuleb asendada genereeritud räsiga;
dn: cn=config
changetype: modify
delete: olcAuthzRegexp

dn: olcDatabase={-1}frontend,cn=config
changetype: modify
delete: olcAccess

dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootDN

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootDN
olcRootDN: cn=admin,cn=config

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {MD5}Gnmk1g3mcY6OWzJuM4rlMw==

dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcAccess

Laeme config.ldif seadistused OpenLDAP serverisse:

ldapadd -Y EXTERNAL -H ldapi:/// -f config.ldif 

Nüüd on vaja lisada veel mõned acl-id kataloogiteenusele, root kasutajal on alati lugemise ja kirjutamise õigus, kuid see on baas acl, mis oli alati OpenLDAP-iga kaasas.

Selleks loome faili acl.ldif:

nano acl.ldif

Konfi faili tuleb sisestada järgnevad kirjed:

  • olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none - admin tuleb asendada validud administraatori kasutajanimega, example ja com domeeninimega;
  • olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read - admin tuleb asendada validud administraatori kasutajanimega, example ja com domeeninimega.
dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=example,dc=com" write by * read

Nüüd laeme acl.ldif konfi OpenLDAP-i:

  • cn=admin - admin asendada valitud OpenLDAP administraatori kasutajanimega.
ldapmodify -x -D cn=admin,cn=config -W -f acl.ldif

Lõpetuseks taaskäivitame LDAP serveri käsuga:

/etc/init.d/slapd restart

Ja nüüd peaks OpenLDAP kataloogiteenus olema töökorras.

Samba seadistamine

Selleks, et kasutada LDAP-i Samba autentimisvahendina, peab LDAP-i objektidele lisama Samba atribuute, mis on kirjeldatud samba.schema failis. Paketist samba-doc on võimalik nimetatud fail lahti pakkida ja kopeerida /etc/ldap/schema kausta.

Kopeerime samba.schema.gz faili LDAP-i konfiguratsiooni schema kausta käsuga:

cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/

Pakime lahti eelnevalt kopeeritud faili:

gzip -d /etc/ldap/schema/samba.schema.gz

Loome schema_convert.conf nimelise konfiguratsiooni faili:

nano schema_convert.conf

Sisestame faili järgnevad read:

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/ppolicy.schema
include /etc/ldap/schema/samba.schema

Loome ajutise kausta:

mkdir /tmp/ldif_output

Nüüd kasutame slapcat käsku schema failide ldif failideks konvertimiseks:

slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config" > /tmp/samba.ldif

Muudame /tmp/samba.ldif faili sisu. Selleks avame faili:

nano /tmp/samba.ldif
  • muudame järgnevaid ridu:
dn: cn=samba,cn=schema,cn=config
...
cn: samba
  • ja kustutame järgnevad read faili lõpust:
structuralObjectClass: olcSchemaConfig
entryUUID: b53b75ca-083f-102d-9fff-2f64fd123c95
creatorsName: cn=config
createTimestamp: 20080827045234Z
entryCSN: 20080827045234.341425Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20080827045234Z
  • NB! Osad atribuutide väärtused võivad olla teised. Kuid vastavad read tuleb eemaldada ikkagi!

Nüüd lisame ldapadd tööriistaga uue schema kataloogi:

ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=samba.ldif

Tekitame Samba indexite konfiguratsioonifaili:

nano samba_indexes.ldif

Sisestame sinna järgnevad kirjed:

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub

Nüüd laeme uued seaded sisse:

ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif

Kui kõik läks hästi, siis peaksid nägema uusi indexeid käsuga:

ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb

Nüüd seadistama Samba konfiguratsioonifaili. Selleks kopeerime algkonfiguratsioonifaili varufaili:

cp /etc/samba/smb.conf /etc/samba/sample.smb.conf

Nüüd seadistama Samba seaded vastavalt vajadusele. Kõigepealt avame konfiguratsioonifaili ja tühjendame sisu:

nano /etc/samba/smb.conf

Nüüd lisame järgnevad kirjed:

  • workgroup = DOMEEN - DOMEEN asendada enda soovitud väärtusega
  • interfaces = lo, eth0 - sinna kirjeldada ära, milliste võrgukaartide kaudu Samba serverit kasutatakse. Kui masinal on rohkem, kui 1 võrgukaart, mille kaudu sambat hakatakse kasutama, siis Linux laadsetes tuleks lisada ka teised ethX võrgukaardid.
  • ldap admin dn = "cn=admin,dc=example,dc=com" - admin, example ja com asendada enda poolt valitud väärtustega.
  • ldap suffix = dc=example,dc=com - example ja com asendada enda poolt valitud väärtustega.
[global]
        display charset = UTF-8
        unix charset = UTF-8
        workgroup = DOMEEN
        server string = %h server (Samba, Ubuntu)
        interfaces = lo, eth0
        bind interfaces only = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        log level = 3
        log file = /var/log/samba/log.%m
        max log size = 1000
        dns proxy = No
        guest account = nobody

        #Ldap settings
        passdb backend = ldapsam:ldap://localhost
        ldap admin dn = "cn=admin,dc=example,dc=com"
        ldap group suffix = ou=Groups
        ldap idmap suffix = ou=Idmap
        ldap machine suffix = ou=Computers
        ldap replication sleep = 2000
        ldap suffix = dc=example,dc=com
        ldap ssl = no
        ldap timeout = 300
        ldap user suffix = ou=People
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d

        #Do not show hidden files.
        veto files = /.*/

[homes]
        comment = Home Directories
        valid users = %S
        create mask = 0700
        directory mask = 0700
        browseable = No
        read only = No

Nüüd taaskäivitame Samba serveri:

/etc/init.d/samba restart

sambaldap-tools seadistamine

Kasutatud kirjandus

http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol

http://en.wikipedia.org/wiki/Samba_%28software%29

http://www.openldap.org/project/

https://wiki.itcollege.ee/index.php/OpenLDAP-i_seadistamine

https://wiki.itcollege.ee/index.php/Failiserver_Samba_labor_2

http://www.howtoforge.com/install-and-configure-openldap-on-ubuntu-karmic-koala

https://help.ubuntu.com/9.10/serverguide/C/samba-ldap.html

Autor

Kalev Jõgi