Zentyal SAMBA4

From EIK wiki

Autorid: Urmo Lihten A31 ja Kersti Lang A31 (2012 sügissemester)

Sissejuhatus

Käesolev artikkel on juhend Samba 4 paigaldamise ja seadistamise kohta. Samba 4 on failiserver, mis on antud artikli näites paigaldatud Ubuntu 12.04 Server LTS peale.

Samba 4 kasutab uut Virtual File System mis toetab Acess Control List -i. Domeeni Kontrolleri lahendus Sambas sisaldab Kerberose võtmehaldust Kerberos Key Distribution Center, mis on vaikimisi Zentyali osa. Zentyali ülesandeks on võimdaldada Samba 4 suhtlus Windowsiga. Zentyal on failiserveri vabavaraline serveri lahendus, mille kaudu on võimalik hallata kõiki võrguteenuseid ühelt platvormilt - võrgu turvalisus, infrastruktuur, ressursside jagamine.

Eeldused

  • Ubuntu versioon 12.04
  • Ainult 32bit op.süsteemile
  • IP aadress 192.168.56.200
  • eelnevalt paigaldatud Bind9 domeeniga piix.ee
  • elementaarsed teadmised Ubuntu käsurea kasutamisest

Eelised

  • 'Active Directory' sisselogimise ja administreerimise protokollide tugi Windows XP, Windows 7 ja Mac OS X klientidele.
  • NTFS tugi
  • Sisemine LDAP server AD omadustega.
  • Sisemine Kerberos server.
  • AD sidumine DNS-ga.
  • Python tugi

jne.

Paigaldamine

Samba4 installeerimine

Logime sisse administraatorina:

sudo -i

Uuendame tarkvara nimekirja:

apt-get update

Installeerime Samba4 jaoks vajalikud paketid:

apt-get install samba4

Samba 4 installi käigus on sage viga, et Samba 4 package mängib enda staatuseks "half installed. See tuleb käsitsi muuta:

less /var/lib/dpkg/status | grep half-configured
nano /var/lib/dpkg/status

Leia konfifailist Samba4 rida:

Package: samba4
Status: install ok half-configured

...ning muuda see rida selliseks:

Package: samba4
Status: install ok installed

Kontrollime, et rohkem "poolikuid" faile pole:

less /var/lib/dpkg/status | grep half-configured

Juhul kui eksisteerib vana Samba konfiguratsiooni fail, siis kustutame või muudame backup'iks:

mv /etc/samba/smb.conf{,.old}

Bind9 konfiguratsiooni faili loomine

eeldusel, et smb.conf faili pole olemas. Samuti tuleb jälgida järgnevas käsus, et --realm juures märgitud argumendiks "samba.piix.ee" kõrval tuleb --domain argumendiks kirjutada "samba.piix; millegi muu korral ei hakka Kerberos soovitult tööle.
--adminpass ehk administraatori parool peab olema vähemalt ühe suure tähega ja ühe numbriga ning vähemalt 7 tähemärki pikk.

/usr/share/samba/setup/provision --realm=samba.piix.ee --domain=samba --adminpass=Student1 --server-role='dc'

Tulemus on järgnev:

See /var/lib/samba/private/named.conf for an example configuration include file for BIND
and /var/lib/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in /var/lib/samba/private/phpldapadmin-config.php .
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           domain controller
Hostname:              ubuntu
NetBIOS Domain:        SAMBA
DNS Domain:            samba.piix.ee
DOMAIN SID:            S-1-5-21-1025771091-2011791338-2641903939

Test

Käivitame Samba:

initctl start samba4

Laeme Samba-client'i:

apt-get install samba4-clients

eemaldame samba.pid faili, mis takistab sambat käivitamast:

rm /var/run/samba.pid

ning kontrollime (väljund kuva share's olemad elemendid):

root@ubuntu:~# smbclient -L localhost -U%

        Sharename       Type       Comment
        ---------       ----       -------
        netlogon        Disk
        sysvol          Disk
        share           Disk       yldine jagatud ketas
        profiles        Disk       opilaste jagatud ketas
        IPC$            IPC        IPC Service

Samba4 seonduvate skriptide muutmine ja loomine

Kuna Samba4 ei kontrolli startimisel Samba kataloogi olemasolu /var/run kaustas, siis lisame selle võimaluse:

nano /etc/init.d/samba4

Lisame koodile juurde SAMBAPID kontrollimise read enne esimest "else"t:

    if [ ! -d $(dirname $SAMBAPID) ]; 
        then mkdir -p $(dirname $SAMBAPID) 
    fi

Lisaks tuleb luua fail /usr/local/sbin/samba:

nano /usr/local/sbin/samba

Ning selle sisuks tuleb:

#!/bin/sh
LD_PRELOAD=/usr/lib/libdcerpc.0.0.1 /usr/sbin/$(basename $0)

Tekitame eelnevalt loodud failidele lingid:

ln -s /usr/local/sbin/samba{,_dnsupdate}
ln -s /usr/local/sbin/samba{,_spnupdate}

erandid

Taaskäivitane Samba:

service samba4 restart

DNS seadistamine

Muudame Bind9 konfiguratsiooni:

nano /etc/bind/named.conf.local

Kaasame Samba4 raames loodud konfiratsioonifaili Bind9 seadetesse:

include "/var/lib/samba/private/named.conf";

Apparmor'i probleem

Kuna Apparmor kaitseb Samba4 konfiguratsiooni Bind9 eest, siis lisame Apparmorisse erandid:

nano /etc/apparmor.d/usr.sbin.named

Lisada lõppu ennem viimast "}" märki järgmised read:

/var/lib/samba/private/** rkw,
/var/lib/samba/private/dns/** rkw,
/usr/lib/i386-linux-gnu/samba/bind9/** rm,
/usr/lib/i386-linux-gnu/samba/gensec/** rm,
/usr/lib/i386-linux-gnu/ldb/modules/ldb/** rm,
/usr/lib/i386-linux-gnu/samba/ldb/** rm,

´ Laeme uuesti Apparmori profiilid ja teeme Bind9'le ka restardi:

/etc/init.d/apparmor reload
/etc/init.d/bind9 restart

Nimeserveri seadistamine

Kuna Samba4 kasutab Bind9 DNS lahendust, siis oleks mõistlik lisada oma /etc/resolv.conf'i oma nimeserver kui seda juba seal pole:

nano /etc/resolv.conf

Meie nimeserveri aadress on 192.168.56.200 (kirje tuleb lisada teistest ip-aadressidest ettepoole, et süsteem pöörduks just Bind9 poole):

nameserver 192.168.56.200

Kerberose paigaldamine/seadistamine

Tõstame Samba4 poolt loodud spetsiaalse Kerberos5 konfiguratsioonifaili kausta /etc/:

cp /var/lib/samba/private/krb5.conf /etc/

Kuna Kerberos on vaikimisi olemas Samba4 installimisega, siis oleks vaja selle töökorda ja seadistusi kontrollida:
Paigaldame krb5-user paketi:

apt-get install krb5-user

Paigaldamise käigus küsib ta realm'i. Meie näite puhul on selleks "samba.piix.ee".

Muudame Kerberose konfifaili /etc/krb5.conf selliseks:

[libdefaults]
        default_realm = samba.piix.ee
        dns_lookup_realm = true
        dns_lookup_kdc = true

Network Time Protocol

Kuna Samba annab domeeni liikmetele ka kellaajad kätte, siis soovime, et ka serveril endal oleks õige kellaaeg ja seda saame teha järgnevalt:
Paigaldame NTP

apt-get install ntp

Seadistame ära muutes /etc/ntp.conf faili, lisades serverite nimekirja esimeseks:

server 2.ee.pool.ntp.org

Teeme esimese aja pärimise ja paneme teenuse tööle:

service ntp stop
ntpdate -B 2.ee.pool.ntp.org
service ntp start

Kontrollime, kas töötab:

root@ubuntu:~# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 cache.eenet.ee  193.40.133.142   2 u    3   64    1  328.240  -13.785   0.004
 neodymium.cloud 193.40.5.113     3 u    2   64    1  353.089  -28.727   0.004
 sip1.viatel.ee  194.204.18.172   2 u    1   64    1  387.481  -44.189   0.004
 stannum.cloudfa 62.236.120.71    3 u    -   64    1  308.934   -5.212   0.004
 ee1.zz-zone.org .INIT.          16 u    -   64    0    0.000    0.000   0.004
 europium.canoni .INIT.          16 u    -   64    0    0.000    0.000   0.004

'Kontroll'

Kontrollime, Samba4 töökorda:

root@ubuntu:~# smbclient -L samba.piix.ee -U%

        Sharename       Type       Comment
        ---------       ----       -------
        netlogon        Disk
        sysvol          Disk
        share           Disk       yldine jagatud ketas
        profiles        Disk       opilaste jagatud ketas
        IPC$            IPC        IPC Service

kuvati väljajagatud failide/kausta/printerite nimekiri.

Autentimise kontrollimiseks käivitame käsu:

smbclient //samba.piix.ee/netlogon -UAdministrator%'Student1' -c 'ls'

Väljundiks kuvatakse netlogon kausta sisu.

Kontrollime, kas Kerberos server töötab. Meie näite puhul on admin parooliks "Student1":

root@ubuntu:~# kinit Administrator@SAMBA.PIIX.EE
Password for Administrator@SAMBA.PIIX.EE:
Warning: Your password will expire in 41 days on Sun Feb 24 00:36:33 2013

Kontrollime, kas Kerberos annab välja pileti ehk Ticketi:

root@ubuntu:~# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@SAMBA.PIIX.EE

Valid starting    Expires           Service principal
13/01/2013 09:26  13/01/2013 19:26  krbtgt/SAMBA.PIIX.EE@SAMBA.PIIX.EE
        renew until 14/01/2013 09:26

Samba 4 varundamine ja taaste

Backup failid asuvad vaikimisi "/backup/" kaustas.

Back-up faili loomiseks:

cp /etc/samba/smb.conf /backup/smb.conf
mkdir /backup/samba
cp -rv /var/lib/samba/* /backup/samba

Ülekirjutamist ei toimu. kui see on aga vajalik, siis tuleb enne kaust kustutada "rm -r /backup/samba" ning uuesti luua.

Taastamine:

cp /backup/smb.conf /etc/samba/smb.conf
cp -rv /backup/samba/* /var/lib/samba

Kasutajate ja gruppide ning jagatavate kaustade loomine

Loome kaustad "share" ja "opilane":

mkdir -p /var/data/share
mkdir -p /var/data/profiles

Loome ka vastavad kasutajad ja grupid:

adduser share
adduser opilane
addgroup jagatud
addgroup opilane
adduser share jagatud
adduser opilane opilane
samba-tool user add share
samba-tool user add opilane

Anname kaustadele ka vastavad omanikud ning grupid:

chown share:jagatud /var/data/share
chown opilane:opilane /var/data/profiles

Loodud kaustade väljajagamine ja õiguste määramised

Avame Samba4 konfiguratsioonifaili smb.conf:

nano /etc/samba/smb.conf

Lisame lõppu järgmised read:

[share]
        path = /var/data/share
        comment = yldine jagatud ketas
        read only = No

[profiles]
        path = /var/data/profiles
        comment = opilaste jagatud ketas
        read only = no

Et kaustad välja jagada, teeme Samba4'le restardi:

service samba4 restart

Kuna Samba4's enam ei saa smb.conf'i faili kaudu kaustadele õigusi lisada. Active Directory kaudu läbi Windowsi masina saab Administraatori kontoga teha "profiles" kaustade alla igale kasutajale oma kausta ehk "roaming profile"-i.
Tuleb meeles pidada, et roaming profile's tuleb domeenis sisse logida sama Windows-versiooni masinaga. Erinevate Windowsite alt sisse logides samas domeenis genereeritakse Profiles kausta topelt kasutaja kaust nign see pole esimese loodud kasutaja kaustaga ühenduses.

Windowsi keskkonnas Active Directory haldamiseks tuleb kasutada Remote Server Administration Tool'i, mis tuleb microsoft'i kodulehelt allatõmmata.
Kuna meil on hetkel Windows XP kasutusel, siis meil on vaja Administration Tool Packi - http://www.microsoft.com/en-us/download/details.aspx?id=16770 .
See järel liita masin loodud domeeniga: Esmalt määrata oma võrguühenduse seadetes DNS serveriks 192.168.56.220.

Parem klõps My Computeril -> Properties.
Uues aknas ülevalt "Computer name" ja nupp "Change"
Määrata domeeniks "samba.piix.ee" või see, mis sai domeeni loomisel pantud.
Edukal leidmisel küsib kasutajanime ja parooli. Tuleb panna kasutajaks Administrator ja parooliks Student1.
Kui aksepteerib, siis tervitab sind domeeni liitmise puhul ja palub restarti ning peale seda saab juba domeeni sisselogida Sambas loodud kasutajatega.

Windowsi klientmasinas, kuhu on installeeritud vastav Administraton Tool Pack Active Directory haldamiseks domeeniserveris, tuleb avada Start -> Run -> dsa.msc

dsa.msc


Avanenud aknas minna vastavate kasutajate juurde, avada parema klõpsuga Properties ja Profile sektsiooni ning lisada Profile Path: //192.168.56.200/profiles/%USERNAME%

Profile path

ning muudatused ära salvestada. Seejärel tuleks käivitada Start -> Run'is käsk "gpudate /force", mis sunnib uuendama Group Policy't.

gpupdate


Peale seda vastava kasutajaga uuesti sisse sisselogides tehakse Profiles kausta vastava kasutajanimega kaust. Näide serverist vaadatuna:

 # cd /var/data/profiles
 # ls -l
 drwxr-xr-x 12 3000012 users   4096 Aug  2 15:35 test





Kasutatud kirjandus