Harjoitus 6: SAMBA

w48 j-6 Tee Linuxista Samba-palvelin, testaa Windowsista lukemalla ja kirjoittamalla tiedostoja ja tekemällä kansioita. Liitä Windowsista SMB-jako Linuxiin käyttäen sekä komentoriviä että Gnomen Places:Connect to Network Server, testaa kuten edellä. Kuvaile jokin muu organisaation käyttöön sopiva tiedostojako.

Sisällysluettelo

  1. Ajoitus
  2. Harjoitus
  3. Jälkikommentteja
  4. To-Do

Ajoitus

Suoritin harjoituksen 01.12.2005 aikana, luokassa 5013 koneella numero 06. Aikaa harjoitukseen kului kaiken kaikkiaan noin 2 tuntia, josta dokumenttien kirjoittaminen vei noin tunnin verran.


Harjoitus

Aloitin harjoituksen(samba-palvelimen rakentaminen) tutustumalla ensin opettajan materiaaliin jota löytyi täältä ja täältä. Tämän jälkeen homma jatkui asentamalla SAMBA seuraavalla komennolla:

[root@localhost ~]#  yum -y install samba-client samba

Kun SAMBA oli onnistuneesti asennettu, oli vuorossa palomuurin konfigurointi samba-palveluiden liikenteen sallimiseksi. Tämä onnistui lisäämällä seuraavat säännöt palomuurille:

iptables -I INPUT 1 -p tcp --source 172.28.1.129/255.255.0.0 --dport 137:139 -j ACCEPT
iptables -I INPUT 1 -p udp --source 172.28.1.129/255.255.0.0 --dport 137:139 -j ACCEPT
iptables -I INPUT 1 -p tcp --source 172.28.1.129/255.255.0.0 --dport 445 -j ACCEPT
iptables -I INPUT 1 -p udp --source 172.28.1.129/255.255.0.0 --dport 445 -j ACCEPT

Kun palomuuriin oli tarvittavat reiät avattu, oli seuraavaksi vuorossa SELinuxin disablointi harjoitusten ajaksi. Homma hoitui komennolla:

# setenforce 0

Jonka jälkeen olikin jo aika testata mitä portteja koneessa oli auki. Testaaminen sujui mukavasti nmap-ohjelmalla kutakuinkin näin:

[root@localhost etc]# nmap 172.28.1.129

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-12-01 17:31 EET
Interesting ports on 172.28.1.129:
(The 1659 ports scanned but not shown below are in state: filtered)
PORT    STATE  SERVICE
137/tcp closed netbios-ns
138/tcp closed netbios-dgm
139/tcp closed netbios-ssn
445/tcp closed microsoft-ds

Nmap finished: 1 IP address (1 host up) scanned in 25.452 seconds

Nmap komennon tulosteesta näemme, että kaikki samba-palvelun tarvitsemat portit ovat auki, mutta niissä ei ole palveluita päällä. Siispä seuraavaksi onkin vuorossa samban käynnistys, joka tapahtuu näin:

[root@localhost ~]# /etc/init.d/smb start

Palveluiden käynnistyksen jälkeen ajoin uudestaan nmap skannauksen -sV parametrilla, joka kertoi seuraavaa:

[root@localhost etc]# nmap -sV 172.28.1.129

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-12-01 17:37 EET
Interesting ports on 172.28.1.129:
(The 1659 ports scanned but not shown below are in state: filtered)
PORT    STATE  SERVICE     VERSION
137/tcp closed netbios-ns
138/tcp closed netbios-dgm
139/tcp open   netbios-ssn Samba smbd 3.X (workgroup: MYGROUP)
445/tcp open   netbios-ssn Samba smbd 3.X (workgroup: MYGROUP)

Nmap finished: 1 IP address (1 host up) scanned in 33.450 seconds

Eli nyt noissa porteissa olikin jo "elämää". Seuraavaksi olikin jo aika kokeilla listata juuri avattuja samba jakoja localhost-yhteydellä.

[root@localhost ~]#  smbclient -L localhost -U %
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server)
        ADMIN$          IPC       IPC Service (Samba Server)
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]

        Server               Comment
        ---------            -------
        LOCALHOST            Samba Server

        Workgroup            Master
        ---------            -------
        MYGROUP

Eli localhost-jaot näkyivät hienosti localhostin kautta. Kokeilin vielä miten jaot näkyivät verkon kautta seuraavalla komennolla:

[root@localhost ~]#  smbclient -L 172.28.1.129 -U %
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server)
        ADMIN$          IPC       IPC Service (Samba Server)
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.14a-2]

        Server               Comment
        ---------            -------
        LOCALHOST            Samba Server

        Workgroup            Master
        ---------            -------
        MYGROUP

Eli myös verkon kautta oli jaot näkyvissä. Tämän jälkeen lisäsin samba-käyttäjän. Tässä oli erikoisuutena se, että samban 3-versiossa käytetään smbpasswd-komentoa käyttäjän lisäämiseen, kun aikaisemmissa versiossa on käyttäjän lisääminen tapahtunut smbadduser-komennolla...

[root@localhost ~]# smbpasswd -a mika
New SMB password:
Retype new SMB password:
Added user mika.

Käyttäjän lisäämisen jälkeen olikin jo aika kokeilla yhteyksiä konnektoitumalla jakoon ko. käyttäjänä:

[root@localhost ~]# smbclient //172.28.1.129/mika -U mika%Password
Domain=[LOCALHOST] OS=[Unix] Server=[Samba 3.0.14a-2]
smb: \> ls
  .                                   D        0  Thu Dec  1 17:29:01 2005
  index_files                         D        0  Tue Nov  8 19:59:47 2005
  ..                                  D        0  Thu Nov 24 17:16:24 2005
  pxeboot.html                             14278  Tue Nov  8 19:59:59 2005
  .bashrc                             H      124  Mon Nov  7 18:56:51 2005
  .eggcups                           DH        0  Mon Nov  7 18:58:18 2005
  .bash_history                       H     2711  Mon Nov 28 19:37:07 2005
  j-4.html                                  8978  Thu Nov 24 18:28:24 2005
  dhcp.txt                                   239  Thu Nov 17 16:59:25 2005
  Desktop                             D        0  Thu Dec  1 17:34:06 2005
  .esd_auth                           H       16  Mon Nov  7 19:19:09 2005
  .bash_logout                        H       24  Mon Nov  7 18:56:51 2005
  .gtkrc-1.2-gnome2                   H      133  Mon Nov  7 18:58:15 2005
  iptables.txt                              5709  Thu Nov 24 19:23:00 2005
  .nautilus                          DH        0  Mon Nov  7 18:58:22 2005
  .rhn-applet.conf                    H      497  Mon Nov  7 18:58:24 2005
  .ICEauthority                       H      378  Thu Dec  1 16:57:27 2005
  .gstreamer-0.8                     DH        0  Mon Nov  7 18:58:21 2005
  iptables.man                             66166  Thu Nov 24 19:25:43 2005
  john.txt                                  4394  Mon Nov 28 19:34:21 2005
  .mozilla                           DH        0  Mon Nov  7 18:58:38 2005
  .local                             DH        0  Wed Nov  9 16:58:54 2005
  bin                                 D        0  Thu Nov 24 17:24:07 2005
  boot_image                          D        0  Wed Nov  9 18:40:31 2005
  .gnome2                            DH        0  Mon Nov 28 19:37:19 2005
  .Trash                             DH        0  Thu Dec  1 17:03:20 2005
  pxeboot_files                       D        0  Tue Nov  8 19:59:59 2005
  .gnome                             DH        0  Mon Nov  7 18:58:22 2005
  .gconf                             DH        0  Thu Dec  1 16:57:31 2005
  nmap_man.txt                             65722  Mon Nov 28 19:21:27 2005
  .recently-used                      H     3775  Thu Dec  1 17:34:07 2005
  index.php                                10036  Tue Nov  8 19:59:47 2005
  .gnome2_private                    DH        0  Mon Nov  7 18:58:12 2005
  .Xauthority                         H       66  Thu Dec  1 16:57:26 2005
  .gconfd                            DH        0  Thu Dec  1 17:34:26 2005
  .bash_profile                       H      191  Mon Nov  7 18:56:51 2005
  ssh.txt                                   1865  Thu Nov 24 18:06:08 2005
  wakeonlan-0.41-0.fdr.1.noarch.rpm           11258  Tue Nov  8 19:50:12 2005
  .dmrc                               H       26  Mon Nov  7 18:58:12 2005
  boot.iso.html                             8700  Wed Nov  9 18:46:15 2005
  ville.html                                7875  Wed Nov  9 16:59:03 2005
  .ssh                               DH        0  Thu Nov 17 17:04:37 2005
  .gtkrc                              H      120  Mon Nov  7 18:56:51 2005
  .metacity                          DH        0  Mon Nov  7 18:58:24 2005
  nmap.txt                                  6095  Mon Nov 28 19:19:27 2005

                36375 blocks of size 2097152. 31676 blocks available
smb: \>

Ylläolevan perusteella oli syytä olettaa että yhteys toimi kuten pitikin. Tein lisäksi pari muuta testiä joissa loin uusia hakemistoja sekä siirtelin tiedostoja hakemistosta toiseen ja myös poistin tiedostoja. Kaikki nämä toimenpiteet onnistuivat, joten nähdäkseni minulla oli toimiva samba-jako käytössäni.

Tämän jälkeen kävin vielä kokeilemassa jakojen toimivuutta windows-koneelta seuraavalla komennolla:

net use * \\172.28.1.129\mika /USER:mika

Tein myös windows-koneella jakoon uusia hakemistoja, siirtelin tiedostoja paikasta toiseen ja poistin joitain tiedostoja. Myös windowsissa kaikki nämä operaatiot onnistuivat hienosti. Tein lopuksi samat kokeet graafisella työkalulla Linux-koneessani sekä myös windows-koneessa enkä näiden graafisten työkalujen käytössäkään huomannut mitään erikoista, joten ensimmäinen osa harjoituksesta oli mielestäni kokonaisuudessaan onnistuneesti suoritettu. Seuraavana olikin vuorossa siirtyä testaamaan miten linux toimii client-koneena windows verkoissa...


Linux samba-clienttina windows verkossa

Tässä osassa harjoitusta oli tarkoituksena ottaa yhteyksiä windows-koneiden jakoihin tietyllä käyttäjätunnuksella. Aloitin harjoituksen luomalla normaalin Linux-käyttäjän nimeltä kaapo, jonka tunnuksilla testit oli tarkoitus tehdä. Normaalikäyttäjän luominen ei kuitenkaan käsittääkseni ollut pakollista testien suorittamiseksi, mutta ainakin omasta mielestäni tuo selkeytti harjoituksen tekoa hiukan.

# adduser kaapo

Normaali käyttäjän luonnin jälkeen loin samaisen käyttäjän myös sambaan:

# smbpasswd -a kaapo (salasana=zhryf13b)

Seuraavaksi loin kaapo-käyttäjän kotihakemistoon hakemiston nimeltä windowsshare, jonka alle oli tarkoitus nuo windows jaot mountata.

$ mkdir windowsshare

Minkä jälkeen loin kaapo-käyttäjän kotihakemistoon tiedoston nimeltään sambapass. Tämä tiedosto sisälsi myöhemmin harjoituksessa tarvittavia tietoja. Kannattaa huomioida se, että ko. tiedoston kaikkia tietoja tarvitaan onnistuneen mounttaamisen takaamiseksi. Tiedosto sisälsi seuraavat rivit:

# $HOME/sambapass
username = kaapo
password = zhryf13b
domain   = WORKGROUP

Seuraavaksi oli vuorossa luonnollisesti setupin testaaminen, eli yhteyden otto windows jakoon:

[kaapo@localhost ~]$ smbclient //172.28.1.124/jako -U kaapo%zhryf13b
session request to 172.28.1.124 failed (Called name not present)
session request to 172 failed (Called name not present)
Domain=[MUUTAHETI] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: \> dir
  .                                   D        0  Thu Dec  1 17:13:31 2005
  ..                                  D        0  Thu Dec  1 17:13:31 2005
  testi.txt.txt                       A       27  Thu Dec  1 16:57:11 2005

                37032 blocks of size 2097152. 36220 blocks available
smb: \> exit

Testi onnistui hienosti ja windows jako sisältöineen näkyi hienosti. Tämän jälkeen olikin vuorossa pysyvän jaon tekeminen /etc/fstab tiedoston avulla. Ajatuksena on editoida allaolevan listan viimeisen rivin näköinen rivi fstab-tiedostoon. Huomaa, että tässä hyödynnetään käyttäjän kotihakemiston sambapass-tiedosta!! Nano editorin ja vastaavien käyttäjien kannattaa muistaa -w parametri tiedostoa editoitaessa, sillä rivien on tarkoitus olla yhtenäisiä....

[root@localhost etc]# cat fstab
# This file is edited by fstab-sync - see 'man fstab-sync' for details
/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
LABEL=/boot1            /boot                   ext3    defaults        1 2
/dev/devpts             /dev/pts                devpts  gid=5,mode=620  0 0
/dev/shm                /dev/shm                tmpfs   defaults        0 0
/dev/proc               /proc                   proc    defaults        0 0
/dev/sys                /sys                    sysfs   defaults        0 0
LABEL=SWAP-hdc3         swap                    swap    defaults        0 0
/dev/VolGroup00/LogVol01 swap                    swap    defaults        0 0
/dev/fd0                /media/floppy           auto    pamconsole,exec,noauto,managed 0 0
/dev/hdd                /media/cdrecorder       auto    pamconsole,exec,noauto,managed 0 0
//172.28.1.124/jako     /home/kaapo/windowsshare        smbfs   credentials=/home/kaapo/sambapass,uid=kaapo,gid=kaapo,dmask=700,fmask=700     0 0

Kun tiedostoon on lisätty tuo viimeinen rivi, ajetaan roottina "mount -a" komento ja katsotaan meneekö mounttaus onnistuneesti läpi:

[root@localhost etc]# mount -a
27019: session request to 172.28.1.124 failed (Called name not present)
27019: session request to 172 failed (Called name not present)

Ylläolevista herjoista huolimatta jako oli nyt siis onnistuneesti mountattu. Tarkistetaan vielä tilanne käyttäjän kotihakemistosta löytyvästä windowsshare hakemistosta...

[kaapo@localhost ~]$ ls
sambapass  windowsshare
[kaapo@localhost ~]$ cd windowsshare/
[kaapo@localhost windowsshare]$ ls
 testi.txt.txt
[kaapo@localhost windowsshare]$ touch meikän_testi
[kaapo@localhost windowsshare]$ ls -la
total 21
drwx------  1 kaapo kaapo 4096 Dec  1 19:18 .
drwxr-xr-x  3 kaapo kaapo 4096 Dec  1 19:09 ..
-rwx------  1 kaapo kaapo    0 Dec  1 19:23 meikän_testi
-rwx------  1 kaapo kaapo   27 Dec  1 16:57 testi.txt.txt
[kaapo@localhost windowsshare]$

Ylläolevan perusteella voimme todeta myös tämän osan harjoituksesta onnistuneesti suoritetuksi.

Viimeisenä osana harjoitusta oli kuvailla jokin muu organisaation käyttöön soveltuva tiedostonjako. Kuvaileminen on tylsää, koska internetti on pullollaan mainioita lähteitä joita voivat kaikki lukutaitoiset käydä tutkailemassa.... Vinkkinä kuitenkin, että alkuun hommassa pääsee esimerkiksi Fusen ja/tai WebDAVin kanssa...


Jälkikommentteja

Harjoituksen aihe oli hiukan tuttu entuudestaan, mutta harjoituksia tehtäessä tuli huomattua miten paljon taidot olivat ruostuneet siitä kun viimeksi sambaa on tullut käytettyä. Kaiken kaikkiaan antoisa harjoitus.


To-Do

Eipä tässä mitään ihmeempiä jäänyt mietittävää, paitsi jakojen toteuttaminen kotiympäristöönkin ;)