Jika dalam satu jaringan ada berbagai macam sistem dengan berbagai macam platform, maka dibutuhkan sebuah program yang menjembatani sehingga semua mesin dapat saling berhubungan satu sama lain. Salah satu program yang menjembatani Linux (dan UNIX pada umumnya) dengan mesin Windows yang cukup terkenal adalah Samba.

Samba merupakan aplikasi Unix yang memanfaatkan protokol SMB (Server Message Block). Sebagian sistem operasi memanfaatkan SMB dalam komunikasi client-server-nya, termasuk Windows dan OS/2. Samba memungkinkan mesin Linux berkomunikasi dengan mesin Windows/Dos atau OS/2. Dengan Samba Anda dapat menggunakannya untuk :

  • Menghubungkan setiap mesin Unix (termasuk Linux) dengan mesin Dos/Windows
  • Menempatkan mesin Unix (Linux) sebagai Primary Domain Controller sebagaimana yang dilakukan Windows NT/2000.

Oleh sebab itu lewat Samba, Anda dapat membuat server dengan klien produk Microsoft Windows, dengan layanan :

  1. Berbagi (share) file dan printer.
  2. Membantu pengguna browsing di network neighborhood
  3. Memberikan otentikasi kepada tiap klien yang login ke dalam domain
  4. Memberikan atau membantu dengan WINS name server resolution.

Samba dibuat dan disusun pertama kali oleh ANDREW TRIDGELL. Pada bulan Desember 1991 Ia menerima program eXcursion dari Digital. Sayangnya program tersebut hanya bekerja dengan ‘pathworks’ ke mesin VMS atau ultrix, yang memaksanya untuk mempelajari bagaimana file dikomunikasikan. Setelah sekian lama mencoba, akhirnya Ia berhasil memasukkan salah satu direktori dari mesin Digital ke dalam ‘pathworks’ DOS di rumahnya. Setahun kemudian Andrew telah memasuki komunitas Linux (atas ajakan DAN SHEARER), dan pada Desember 1993 Ia mengeluarkan “NetBIOS for Unix“. Dengan menggunakan mailing list, program ini dikembangkan bersama-sama hingga menjadi Samba Team sebagaimana sekarang. Saat ini Samba dikembangkan sebagai bagian dari Open Source Software (Software yang memberikan kode sumbernya) dan didistribusikan dibawah lisensi GNU GPL. Proyek pengembangannya masih tetap berjalan hingga sekarang dikoordinasikan oleh ANDREW TRIDGELL dari rumahnya di Canberra dengan tim tersebar di seluruh dunia.

Catatan :

Protokol adalah bahasa standar yang dipergunakan komputer untuk dapat berkomunikasi satu sama lain.

Aplikasi Samba biasanya dijalankan sebagai daemon. Dua aplikasi utamanya adalah :

  1. smbd Daemon yang memberikan layanan berbagi file dan printer dalam sebuah jaringan yang menggunakan protokol SMB. Smbd juga memberikan otentikasi dan otorisasi bagi kliennya.
  2. nmbd Daemon yang memanfaatkan Windows Internet Name Service (WINS), dan membantu klien untuk browsing di network neighborhood.

Implementasi Microsoft dalam Jaringan

Sebelum mulai instalasi Samba, atau sebelum melakukan konfigurasi jika Samba Anda sudah terinstall, berikut akan dipelajari secara ringkas, bagaimana Microsoft menerapkan komunikasi dalam jaringannya.

Domain Controller

Seperti yang telah disinggung di awal bab ini, Microsoft menerapkan protokol SMB. Mereka memberinya nama CIFS (Common Internet File System). Dalam membatasi lingkungannya, dipergunakan konsep Windows domain, yakni kumpulan workstation yang menjalankan protokol SMB. Dalam satu domain ada sebuah Domain Controller, sebagaimana namanya berfungsi untuk mengatur domain. Tiap Domain Controller menggunakan Security Account Manager (SAM) untuk menyimpan daftar kombinasi username dan password.

Dalam sebuah domain, domain controller bisa lebih dari satu. Primary Domain Controller (PDC) adalah domain controller yang memberikan layanan sehari hari. Sebagai cadangannya, dipasang sebuah Back up Domain Controller (BDC). Secara periodik, PDC dan BDC akan melakukan sinkronisasi Security Account Manager (SAM). Tiap saat PDC mengalami crash, BDC sudah siap mengambil alih. Jaringan akan tetap berjalan seperti biasa.

WINS (Windows Internet Name Service)

Saat sebuah komputer dalam domain dinyalakan, maka mesin tersebut mengirimkan pesan secara broadcast (kepada seluruh komputer yang ada dalam jaringan) dan mendeklarasikan dirinya dengan nama dari NetBIOS. Proses ini dinamakan name registration. Jika tidak ada bentrok dengan mesin yang lain, maka nama tersebut dipergunakan. Nama inilah yang muncul pada saat user browsing di network neighborhood.

Pada saat mendeklarasikan namanya dalam sebuah jaringan, mesin juga melayani name resolution. Name resolution adalah sebuah proses yang menerjemahkan nama NetBIOS ke dalam nomor IP tertentu. Baik name resolution maupun name registration bekerja berdasarkan standarisasi yang dibuat oleh IETF (Internet Engineering Task Force) tahun 1987. Semuanya dituangkan dalam RFC (Request For Comments) 1001 dan 1002. Standarisasi ini dikenal dengan NetBIOS over TCP/IP, atau NBT. Pada prinsipnya, NBT memberikan tiga layanan :

  • Name Service ; untuk name registration dan name resolution
  • Datagram
  • Session

Datagram dan session merupakan protokol komunikasi kedua yang dipergunakan untuk transmisi data antar mesin dalam sebuah jaringan. Name Resolution, dan Name Registration, selain dijalankan secara broadcast, juga dapat dideklarasikan secara terpusat. Dalam hal ini dibuat sebuah NetBIOS Name Server (NBNS). Saat mesin dinyalakan, langsung mendaftarkan dirinya ke NBNS nama dan nomor IP. Ketika komputer lain mencari nama mesin dari sebuah IP, maka permintaan tidak dilakukan secara broadcast melainkan langsung ke NBNS. NBNS akan mencocokkan dengan nama mesin yang telah terdaftar, kemudian memberikan jawaban. Proses ini tentu lebih mengurangi lalu lintas data dalam jaringan, dibandingkan dengan proses broadcast.

Gambar 5 Pendaftaran nama dengan Broadcast

Gambar 6 Pendaftaran nama dengan NetBIOS Name Server (NBNS)

WINS adalah penerapan NBNS oleh Microsoft. Jika dalam domain ada server WINS, maka komputer tersebut tidak mengirimkan atau menerima sinyal secara broadcast, melainkan mendaftarkan nama NetBIOS-nya ke server WINS. Server ini akan menyimpan nama semua mesin yang telah mendaftarkan mesinnya, dan membantu user saat browsing di network neighborhood.

Master Browser

Jika Anda memakai Windows 95/98, dan membuka network neighborhood, maka di situ terlihat daftar nama komputer, dan beberapa direktori yang dishare. Daftar ini dibuat dan dipelihara oleh master browser. Sebagaimana yang telah dipelajari sebelumnya, saat komputer dinyalakan, maka akan mengirimkan pesan secara broadcast ke dalam jaringan. Saat itulah, akan terjadi pemilihan komputer mana yang akan menjadi master bowser. Pemilihan ini disebut browsing election. Kemudian, master browser akan memberikan daftar nama mesin dan resource share-nya kepada setiap komputer yang meminta.

Master browser dalam satu subnet disebut local master browser. Pendukungnya disebut backup local master. Mengingat browsing election dapat terjadi setiap saat, maka backup local master dapat beralih fungsi sebagai local master browser kapan saja. Ini bisa terjadi jika misalnya mesin local master browser sebelumnya diboot atau mati.

Selain memberikan daftar nama komputer yang bisa diakses (browse list) dalam satu subnet, master browser juga melayani browse list pada lingkup domain, bahkan antar domain. Ini disebut Domain Master Browser. Pada saat-saat tertentu, Domain Master Browser dan Local Master Browser melakukan sinkronisasi daftarnya. Hal ini memungkinkan user memperoleh daftar nama komputer dan share resources terbaru.

Otentikasi

Model otentikasi di sistem Windows berbeda dengan sistem Unix. Di Windows (sejak Windows 95 SMB Update dan Windows NT 4.0 setelah Service Pack 3), password dikirimkan dalam bentuk enkripsi, sedangkan Unix mengirimkannya dalam bentuk teks biasa. Selain itu, Windows menyimpan passwordnya ke dalam sebuah file, sedangkan Unix tidak.

Untuk lebih jelasnya, bagaimana otentikasi di Windows berjalan, digambarkan dalam langkah berikut :

  1. Komputer mencoba menegosiasikan sebuah session lewat satu protokol kepada server
  2. Server memberikan respon sebagai tanda bahwa server tersebut mendukung sistem password terenkripsi.
  3. Server mengirimkan 8 byte string yang dibuat secara acak.
  4. Komputer menggunakan string tersebut sebagai kunci untuk mengenkripsikan password yang sudah terenkripsi dengan algoritma yang telah didefinisikan sebelumnya pada saat negosiasi protokol. Hasilnya dikirim ke server.
  5. Server juga menggunakan string tersebut untuk menenkripsi password yang disimpan dalam database. Jika hasilnya sama dengan yang dikirimkan user, maka user tersebut memperoleh otentikasi, dan sebaliknya.

Samba

Fasilitas Samba

Samba dapat dimanfaatkan untuk menjalankan semua fasilitas dari Microsoft sebagaimana yang telah disampaikan di atas. Samba dapat berfungsi sebagai Master Browser, baik Local Master Browser maupun Domain Master Browser. Samba juga dapat berfungsi sebagai Primary Domain Controller. WINS Server juga sudah didukung oleh Samba. Sedangkan untuk otentikasi, Samba mendukung teks biasa (plain text) password maupun password terenkripsi (encrypted passwod)

Tugas Dukungan (ya/tidak)
File Server Ya
Printer Server Ya
Primary Domain Controller Ya (Versi 2.1 keatas)
Otentikasi Windows 95/98 Ya
Local Master Browser Ya
Backup Local Master Tidak
Domain Master Browser Ya
Primary WINS Server Ya
Secondary WINS Server Tidak
   

Distribusi Samba

Samba yang disertakan dalam tiap distribusi Linux, biasanya berbentuk binary, merupakan kumpulan aplikasi yang bergantung satu sama lain. Suite Samba tersebut adalah :

  1. smbd Daemon yang memberikan layanan berbagi file dan printer dalam sebuah jaringan yang menggunakan protokol SMB. Smbd bertanggung jawab terhadap seluruh aktifitas antara Samba Server dan klien dalam jaringan. Hal ini termasuk memberikan otentikasi dan otorisasi bagi kliennya.
  2. nmbd Daemon yang memanfaatkan Windows Internet Name Service (WINS), dan membantu klien untuk browsing di network neighborhood. Daemon ini melayani permintaan name server dan memberikan respon yang sesuai.
  3. smbclient Klien dengan tampilan mirip ftp untuk mengakses SMB resource share (mengakses share files)
  4. smbtar Program yang memback up data yang dishare. Mirip tar di Linux.
  5. nmblookup Program yang membantu mencari nama (names lookup) dengan memanfaatkan NetBIOS over TCP/IP. Nmblookup dapat digunakan untuk meresolve dari nama komputer ke nomor IP dan sebaliknya.
  6. smbpasswd Program yang memungkinkan administrator mengatur password yang terenkripsi yang dipergunakan oleh Samba Server.
  7. smbstatus Program yang memonitor status terakhir dari share resources yang diberikan oleh Server Samba.
  8. testparm Program kecil untuk melakukan proses debug (memeriksa parameter) terhadap file konfigurasi Samba (smb.conf)
  9. swat Samba Web Administration Tool, program bantu yang memberikan interface model web untuk mengadministrasi Samba. SWAT mempermudah edit smb.conf (file konfigurasi Samba) mengatur resource share, melihat status Samba terakhir, dengan dukungan file help yang sangat bermanfaat.
  10. smbmount Mount share Windows/Samba dari komputer lain ke dalam direktori lokal. smbmount merupakan alias dari mount -t smbfs.

Instalasi Samba

Instalasi Samba dari kode program

Untuk Slackware, Binary Samba Versi 2.6 secara default sudah diinstal pada saat instalasi awal. Untuk mengecek apakah Slackware Anda sudah ada Samba atau belum, bisa dilakukan dengan cara :

~$ whereis smbd

~$ whereis nmbd

Atau cek file rc yang menginisialisasi Samba (/etc/rc.d/rc.samba atau /etc/rc.d/init.d/smb) pada saat booting.

Jika tidak ditemukan, Anda dapat menginstall lewat CD dengan pkgtool (pada distribusi Slackware). Beberapa catatan tentang Binary Samba yang disertakan dalam distribusi Slackware, akan dibahas pada akhir bagian intstalasi.

Untuk instalasi secara umum, dapat dilakukan dengan cara sebagai berikut :

  1. Download Distribusi Samba Daftar server yang menyediakan distribusi Samba dapat dilihat di ftp.samba.org atau
    http://www.samba.org. Mirror server tersedia hampir seluruh dunia dan Anda dapat memilih yang terdekat. File yang harus didownload adalah :samba-versi-terakhir.tar.gzSaat buku ini ditulis versi terakhir dari Samba adalah 2.0.7 (samba-2.7.0.tar.gz).
  2. Ekstraksi file File yang Anda download masih berupa tar ball yang dikompress. Untuk mengekstraknya, Anda dapat jalankan langkah :# cp samba*.tar.gz /usr/local/src# cd /usr/local/src# tar -zxvf samba*.tar.gz

    Catatan :

    Pengguna Linux pada umumnya menggunakan direktori /usr/local untuk menyimpan semua pogram baru. Direktori ini biasanya mempunyai struktur direktori root seperti /usr/local/bin, /usr/local/etc, /usr/local/docs. Dalam lingkungan jaringan, direktori ini biasanya diset untuk dapat ditulis oleh beberapa user dan dieksekusi oleh semua user.

  3. Baca Dokumentasi Sebelum memulai instalasi, biasakan untuk membaca dokumentasi terlebih dahulu. Setelah Anda ekstrak Samba, dokumentasi dapat dilihat di direktori utama Samba. Beberapa file yang perlu dibaca :READMEWHATSNEW.txtDocs/textdocs/UNIX_INSTALL.txt
  4. Konfigurasi Samba Sebagaimana proses standar dalam instalasi aplikasi berbentuk source di Linux, mulai dengan configure. Jalankan semua proses instalasi sebagai root, atau Anda akan terima pesan :Configure: warning: running as non-root will disable some testMenjalankan proses instalasi dengan user root akan lebih memastikan aplikasi Samba terinstal dengan baik.~/usr/local/src$ su -password :

    # cd samba-2.0.7 (direktori utama hasil ekstraksi)

    # ./configure

    # make

    # make install

    Selesai proses instalasi, Samba akan menyimpan filenya dalam beberapa direktori di dalam direktori utama /usr/local/samba

Direktori Keterangan
/usr/local/samba Direktori utama
/usr/local/samba/bin File Binari yang dapat dieksekusi
/usr/local/samba/lib File konfigurasi Samba
/usr/local/samba/man Dokumentasi
/usr/local/samba/private Password Samba yang terenkripsi
/usr/local/samba/SWAT File SWAT
/usr/local/samba/var File sementara yang selalu berubah saat Samba berjalan. Misal file log, file shared memory dsb.
   

Instal SWAT

Selesai kompilasi dan instal program, Aktifkan SWAT untuk membantu dalam administrasi Samba. Fitur SWAT yang dapat dimanfaatkan dalam administrasi mencakup :

  • Mengedit konfigurasi Samba
  • Dokumentasi lengkap dengan hyperlink
  • Melihat status file yang dishare
  • Mematikan, start dan restart Samba Daemon, smbd dan nmbd
  • Mengatur resource yang akan dishare

juga memungkinkan Anda melakukan administrasi secara remote.

Catatan :

ing untuk diingat jika Anda mengakses SWAT secara remote, password untuk mengadministrasi Samba dikirim dengan format teks biasa. Jika host yang dilewati memasang sniffer, maka hal ini akan membahayakan jaringan Anda. Gunakan administrasi SWAT secara remote seminimal mungkin.

SWAT dijalankan secara daemon lewat /etc/inetd dan/etc/servies. Untuk mengkonfigurasikan dalam kedua file tersebut :

  1. Tambahkan baris ini ke dalam file /etc/services jika belum ada SWAT 901/tcp
  2. Tambahkan baris berikut kedalam file /etc/inetd.conf. Terlebih dahulu cek manual untuk inetd.conf ini guna melihat format yang benar untuk memastikan baris berikut dapat berjalan SWAT stream tcp nowait.400 /usr/local/samba/SWAT SWAT

Administrasi Samba

Konfigurasi Samba

Samba memiliki banyak sekali parameter yang yang harus disetup untuk dapat menjalankannya secara maksimal. File konfigurasi tersebut adalah smb.conf. Biasanya terletak di :

/etc atau /usr/local/samba/lib

Jika Anda belum melakukan sesuatu pada file smb.conf, maka file tersebut biasanya bernama smb.conf-default. Anda harus tetap menyimpan file ini, sehingga jika nantinya ada kekeliruan dalam konfigurasi, Anda masih punya backup yang menyimpan semua parameter standar.

~# cd /etc ~# pico smb.conf-default

Tekan Ctrl-O dan ketik smb.conf untuk menyimpan file default kedalam file konfigurasi. Tekan Ctrl-X untuk keluar dari pico. Untuk mensetup Samba, Anda dapat mengedit file smb.conf lewat dua cara :

  1. Dengan akses root, edit langsung dengan teks editor, atau;
  2. Lewat SWAT. Anda cukup memanggilnya dengan browser ke http://localhost:901

Catatan :

Administrasi samba secara remote lewat SWAT dilakukan dengan memanggil nomor IP mesin Samba yang bersangkutan di port 901. Misal http://192.168.11.1:901

Perlu diingat bahwa mengedit file smb.conf lewat SWAT akan menghilangkan komentar komentar yang ada di dalamnya. Berikut contoh perbandingannya. File smb.conf secara default :

# This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed# here. Samba has a huge number of configurable options (perhaps too# many!) most of which are not shown in this example## Any line which starts with a ; (semi-colon) or a # (hash)

# is a comment and is ignored. In this example we will use a #

# for commentry and a ; for parts of the config file that you

# may wish to enable

#

# NOTE: Whenever you modify this file you should run the command “testparm”

# to check that you have not many any basic syntactic errors.

#

#================== Global Settings ========================

[global]

# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2

workgroup = MYGROUP

# server string is the equivalent of the NT Description field

server string = Samba Server

# This option is important for security. It allows you to restrict

# connections to machines which are on your local network. The

# following example restricts access to two C class networks and

# the “loopback” interface. For more examples of the syntax see

# the smb.conf man page

; hosts allow = 192.168.1. 192.168.2. 127.

# If you want to automatically load your printer list rather

# than setting them up individually then you’ll need this

load printers = yes

# you may wish to override the location of the printcap file

; printcap name = /etc/printcap

# on SystemV system setting printcap name to lpstat should allow

# you to automatically obtain a printer list from the SystemV spool

# system

; printcap name = lpstat

# It should not be necessary to specify the print system type unless

# it is non-standard. Currently supported print systems include:

# bsd, sysv, plp, lprng, aix, hpux, qnx

; printing = bsd

# Uncomment this if you want a guest account, you must add this to /etc/passwd

# otherwise the user “nobody” is used

; guest account = pcguest

# this tells Samba to use a separate log file for each machine

# that connects

log file = /var/log/samba.%m

# Put a capping on the size of the log files (in Kb).

max log size = 50

# Security mode. Most people will want user level security. See

# security_level.txt for details. NOTE: To get the behaviour of

# Samba-1.9.18, you’ll need to use “security = share”.

security = user

# Use password server option only with security = server

; password server = <NT-Server-Name>

# You may wish to use password encryption. Please read

# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.

# Do not enable this option unless you have read those documents

; encrypt passwords = yes

# Using the following line enables you to customise your configuration

# on a per machine basis. The %m gets replaced with the netbios name

# of the machine that is connecting

; include = /usr/local/samba/lib/smb.conf.%m

# Most people will find that this option gives better performance.

# See speed.txt and the manual pages for details

socket options = TCP_NODELAY

# Configure Samba to use multiple interfaces

# If you have multiple network interfaces then you must list them

# here. See the man page for details.

; interfaces = 192.168.12.2/24 192.168.13.2/24

# Browser Control Options:

# set local master to no if you don’t want Samba to become a master

# browser on your network. Otherwise the normal election rules apply

; local master = no

# OS Level determines the precedence of this server in master browser

# elections. The default value should be reasonable

; os level = 33

# Domain Master specifies Samba to be the Domain Master Browser. This

# allows Samba to collate browse lists between subnets. Don’t use this

# if you already have a Windows NT domain controller doing this job

; domain master = yes

# Preferred Master causes Samba to force a local browser election on startup

# and gives it a slightly higher chance of winning the election

; preferred master = yes

# Use only if you have an NT server on your network that has been

# configured at install time to be a primary domain controller.

; domain controller = <NT-Domain-Controller-SMBName>

# Enable this if you want Samba to be a domain logon server for

# Windows95 workstations.

; domain logons = yes

# if you enable domain logons then you may want a per-machine or

# per user logon script

# run a specific logon batch file per workstation (machine)

; logon script = %m.bat

# run a specific logon batch file per username

; logon script = %U.bat

# Where to store roving profiles (only for Win95 and WinNT)

# %L substitutes for this servers netbios name, %U is username

# You must uncomment the [Profiles] share below

; logon path =\\%L\Profiles\%U

# Windows Internet Name Serving Support Section:

# WINS Support – Tells the NMBD component of Samba to enable it’s WINS Server

; wins support = yes

# WINS Server – Tells the NMBD components of Samba to be a WINS Client

# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both

; wins server = w.x.y.z

# WINS Proxy – Tells Samba to answer name resolution queries on

# behalf of a non WINS capable client, for this to work there must be

# at least one WINS Server on the network. The default is NO.

; wins proxy = yes

# DNS Proxy – tells Samba whether or not to try to resolve NetBIOS names

# via DNS nslookups. The built-in default for versions 1.9.17 is yes,

# this has been changed in version 1.9.18 to no.

dns proxy = no

#====================== Share Definitions ================

[homes]

comment = Home Directories

browseable = no

writable = yes

# Un-comment the following and create the netlogon directory for Domain Logons

; [netlogon]

; comment = Network Logon Service

; path = /usr/local/samba/lib/netlogon

; guest ok = yes

; writable = no

; share modes = no

# Un-comment the following to provide a specific roving profile share

# the default is to use the user’s home directory

;[Profiles]

; path = /usr/local/samba/profiles

; browseable = no

; guest ok = yes

# NOTE: If you have a BSD-style print system there is no need to

# specifically define each individual printer

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

# Set public = yes to allow user ‘guest account’ to print

guest ok = no

writable = no

printable = yes

# This one is useful for people to share files

;[tmp]

; comment = Temporary file space

; path = /tmp

; read only = no

; public = yes

# A publicly accessible directory, but read only, except for people in

# the “staff” group

;[public]

; comment = Public Stuff

; path = /home/samba

; public = yes

; writable = yes

; printable = no

; write list = @staff

# Other examples.

#

# A private printer, usable only by fred. Spool data will be placed in fred’s

# home directory. Note that fred must have write access to the spool directory,

# wherever it is.

;[fredsprn]

; comment = Fred’s Printer

; valid users = fred

; path = /homes/fred

; printer = freds_printer

; public = no

; writable = no

; printable = yes

# A private directory, usable only by fred. Note that fred requires write

# access to the directory.

;[fredsdir]

; comment = Fred’s Service

; path = /usr/somewhere/private

; valid users = fred

; public = no

; writable = yes

; printable = no

# a service which has a different directory for each machine that connects

# this allows you to tailor configurations to incoming machines. You could

# also use the %U option to tailor it by user name.

# The %m gets replaced with the machine name that is connecting.

;[pchome]

; comment = PC Directories

; path = /usr/pc/%m

; public = no

; writable = yes

# A publicly accessible directory, read/write to all users. Note that all files

# created in the directory by users will be owned by the default user, so

# any user with access can delete any other user’s files. Obviously this

# directory must be writable by the default user. Another user could of course

# be specified, in which case all files would be owned by that user instead.

;[public]

; path = /usr/somewhere/else/public

; public = yes

; only guest = yes

; writable = yes

; printable = no

# The following two entries demonstrate how to share a directory so that two

# users can place files there that will be owned by the specific users. In this

# setup, the directory should be writable by both users and should have the

# sticky bit set on it to prevent abuse. Obviously this could be extended to

# as many users as required.

;[myshare]

; comment = Mary’s and Fred’s stuff

; path = /usr/somewhere/shared

; valid users = mary fred

; public = no

; writable = yes

; printable = no

; create mask = 0765

Setelah diedit dengan SWAT, akan menjadi seperti ini:

# Samba config file created using SWAT # from localhost (127.0.0.1)# Date: 2000/02/28 11:50:17# Global parametersworkgroup = SURGAnetbios name = SPAWN

server string = Mail Server Gateway

encrypt passwords = Yes

map to guest = Bad User

log file = /var/log/samba.%m

max log size = 50

socket options = TCP_NODELAY

local master = Yes

dns proxy = No

[printers]

comment = All Printers

path = /var/spool/samba

print ok = Yes

browseable = No

[test]

comment = testing doang neh…

path = /win

read only = No

guest ok = Yes

Konfigurasi Samba lewat LinuxConf (RedHat)

LinuxConf pada RedHat memasukkan Samba sebagai bagian server yang dapat diadministrasi olehnya. Konfigurasi Samba lewat LinuxConf dapat dilakukan dengan cara sebagai berikut :

  1. Masuk ke bagian Config - Networking - Server Tasks - Samba File Server.
  2. Pilihan konfigurasi Samba adalah :
    • Default; Konfigurasi utama (dalam file smb.conf masuk dalam kategori [global]). Pilihan disini termasuk Base Config, Passwords, Access, Networking, Auto Accounts dan Features.
    • Default Setup for user's home; Direktori home bagi tiap user yang dibagi secara default.
    • Default setup for printers; Seting untuk membagi printer.
    • Netlogon setup; Direktori untuk net logon yang dibagi. File batch bagi tiap user yang login ke Samba dapat ditempatkan di sini.
    • Disk share; Mendefinisikan direktori-direktori lain yang akan dibagi ke dalam jaringan.
  3. Selesai mengisi pilihan-pilihan tersebut sesuai dengan kebutuhan Anda, tutup LinuxConf. Klik Accept untuk menyimpan semua perubahan.
  4. Jalankan testparm dari prompt (console) . # testparm
  5. Jika semua sintaks dan parameter diset dengan benar, dan testparm tidak menyampaikan pesan kesalahan, Anda dapat restart ulang smbd lewat skrip samba. # /sbin/samba restart

Level Keamanan (Security Level)

Keamanan merupakan isu yang penting dalam Samba. Perlu diingat bahwa UNIX mempunya atribut file yang berbeda dengan Windows. Selain itu perlakuan untuk tiap user yang ketat dalam Unix membuat Samba harus menerjemahkannya dalam pilihan-pilihan yang dapat ditentukan oleh administrator secara fleksibel.

Pembahasan tentang struktur dan atribut file terlalu teknis untuk dicakup dalam buku ini. Namun ada bagian penting dari file smb.conf yang harus diketahui sebelum melakukan konfigurasi, yakni tingkat keamanan (security level).

Level keamanan ini membedakan bagaimana Samba memperlakukan pemakai pada saat otentikasi. Pilihan tingkat keamanan di Samba terdiri dari tiga :

  1. Share-level security Setiap file yang dibagi (share) ke dalam workgroup memiliki password sendiri-sendiri. Hak akses tergantung masing-masing password, dan hanya pemakai yang tahu passwordnya saja yang dapat mengakses file bersangkutan.
  2. User-level security Setiap file yang dibagi (share) ke dalam workgroup ditentukan berdasarkan nama pemakai atau group. Jika ada user yang akan mengakses suatu file yang dibagi, maka Samba akan melakukan pencocokan terhadap username dan passwordnya.
  3. Server-level security Hampir sama dengan user level security, kecuali bahwa Samba menggunakan SMB server yang berbeda sebelum memberikan hak akses. Misalnya dalam satu domain ada satu mesin Windows NT/2000 dan satu mesin Samba, dengan server level security, Samba akan meneruskan verifikasi kepada mesin Windows NT/2000 sebelum memberikan otentikasi.
  4. Domain-level security Samba menjadi anggota dalam sebuah domain Windows dan menggunakan PDC (Primary Domain Controller) untuk memberikan otentikasi. Setelah satu kali otentikasi, Samba akan memberikan ijin untuk akses terhadap semua direktori/file yang dibagi dengan hak akses sesuai dengan yang telah ditentukan. Dalam arti bahwa Samba tidak harus verifikasi ulang tiap kali pemakai membuka file yang berbeda.

Menggabungkan Samba dengan NT/2000

Jika dalam jaringan Anda sudah ada Windows NT/2000, Anda dapat menyisipkan Samba ke dalam jaringan dengan cara sebagai berikut :

  1. Tambahkan nama mesin Samba ke dalam database SAM di Windows NT/2000. Penambahan dilakukan lewat Server Manager (atau lengkapnya Windows NT Server Manager for Domains). Saat ditanyakan tipe komputer, pilih ‘Windows NT Workstation or Server’ dan berikan NetBIOS Name dari Samba Server. NetBIOS name ini dapat Anda tentukan secara bebas pada smb.conf. Proses ini membuat Samba terdaftar dalam server Windows NT/2000.
  2. Langkah kedua, membuat password dalam format Microsoft. Sebagai contoh nama mesin PDC Windows NT adalah spawn, dengan domain surga, ketikkan baris berikut : # smbpasswd -j SURGA -r spawn
  3. Sebagai langkah terakhir, masukkan pilihan berikut dalam file smb.conf [global]security = domaindomain logins = yesworkgroup = SURGApassword server = spawn

Samba sudah dikonfigurasikan dalam bentuk domain-level security. Penggabungan Samba ke dalam domain NT dengan cara demikian membawa beberapa konsekuensi terutama dalam otentikasi user. Jika sebelumnya NT langsung melakukan otentikasi, maka mulai Anda jalankan Samba, otentikasi dilakukan oleh Samba dengan mencocokkan password yang ada dalam database NT. Bila digambarkan dalam dialog kurang lebih sebagai berikut :

  1. Pemakai memasukkan username dan password. Komputer akan menanyakannya kepada PDC.
  2. Sebelum sampai PDC, Samba mengambil alih pertanyaan komputer. Kemudian Samba akan menanyakan kepada NT, apakah username dan password yang diberikan cocok.
  3. Jika cocok, Samba akan mengembalikan response pada user otentikasi untuk login ke dalam jaringan.

Catatan :

Pastikan semua user yang telah terdaftar di PDC, tercatat semua sebagai user Linux. Buat sebagai dumb account jika Anda memang tidak menginginkannya sebagai user mesin Linux Anda. Jika tidak, maka semua user tidak akan bisa login (meskipun telah terdaftar di Windows NT lewat ‘User Manager for Domain‘), kecuali user yang telah terdaftar di Linux.

Samba sebagai Domain Logon

Skenario ini dapat diterapkan jika jaringan Anda berada dalam kondisi seperti berikut :

  • Ada beberapa klien Windows, tapi tidak ada Mesin Windows NT sebagai server.
  • Ada beberapa klien Windows, dan ada mesin Windows NT yang sebelumnya sebagai server, tapi Anda sebagai network administrator ingin menggantinya.

Perlu diingat bahwa fungsi utama keberadaan server sebagai domain logon bagi klien Windows, hanyalah memberikan batasan atas sumber daya yang dibagi (share resources) dengan menentukan siapa-siapa saja yang boleh mengakses (user level access control). Untuk mengkonfigurasikan Samba sebagai domain logon (domain controller) Anda harus pastikan terlebih dahulu bahwa :

  • Samba merupakan satu-satunya primary domain controller pada workgroup yang bersangkutan
  • Ada WINS Server dalam jaringan, baik mesin samba sendiri atau mesin Windows NT
  • Samba diset menggunakan user level security (tidak memberikan otentikasi password kepada komputer lain).

Pilihan yang perlu ditambahkan dalam file smb.conf adalah : [global]

workgroup = SURGA

domain logons = yes

# Pastikan untuk menggunakan user level security

security = user

# Pastikan sebagai domain controller

os level = 34

local master = yes

preferred master = yes

domain master = yes

Setelah itu buat satu direktori yang akan dibagi dengan nama [ netlogon ]. Direktori ini harus diset non-writable, non-public, dan non-browseable. Pada bagian share (yang akan dibahas lebih detail pada bagian berikut), tambahkan :

[netlogon]

comment = Service untuk domain logons

# Buat terlebih dahulu direktori sebagai path dari pilihan berikut

path = /usr/local/share/logon

public = no

writable = no

browsable = no

Setelah itu klien diseting sebagaimana klien dari Windows NT. Pada Network Neighborhood, klik kanan, pilih properties dan pada Client for Microsoft Network Properties, aktifkan Log on to Windows Domain, dan sebagai Nama Domainnya isikan Workgroup name yang ditentukan dalam file smb.conf.

Untuk Windows NT, diset lewat properties Network configuration pada Control Panel. Pada Tab pertama yang berisi identifikasi nama komputer, tekan tombol change. Pilih member of domain dan ketikkan nama domainnya. Misal SURGA.

Berbagi printer dan file

File konfigurasi Samba, yakni smb.conf, secara garis besar dibagi dua bagian.

  1. Global Menyangkut konfigurasi umum, pilihan-pilihan yang dijalankan atau dimatikan terhadap smbd (Samba Daemon) dan nmbd (Name Server Daemon).
  2. Share Menentukan sumber daya yang akan dibagi. Pembagian folder untuk bisa diakses oleh user lain dalam Samba kaya akan pilihan.

Untuk seting file yang akan dibagi, dilakukan di bagian share. Secara umum, bentuk pilihan file yang akan dibagi adalah : [ nama share ]

path = tujuan dari direktori yang akan dibagi

browseable = bisa dibrowse oleh user atau tidak (boolean)

guest ok = dapat diakses oleh user yang tidak dikenal atau tidak (boolean)

writable = dapat ditulisi atau hanya bisa dibaca saja (boolean)

Contoh konfigurasi sebuah direktori yang dibagi :

[test]

comment = testing doang neh...

path = /win

read only = No

guest ok = Yes

Selain direktori, Samba juga memberikan sumber dayanya untuk dibagi. Misalnya printer.

[printers]

comment = All Printers

path = /var/spool/samba

print ok = Yes

browseable = No

Selain pilihan default diatas, Samba meberikan banyak sekali pilihan-pilihan dalam membagi file dan sumber daya. Jika Anda mengkonfigurasikan lewat SWAT, pada bagian share, and bisa pilih advance share untuk mencoba pilihan-pilihan yang ada.

Ringkasan

Samba merupakan program bermanfaat yang mampu menembus sebuah sistem tertutup, memanfaatkannya dan dikeluarkan dalam sebuah program stabil yang terbuka untuk semua orang. Sebagai program yang gratis, Samba merupakan pilihan bagi perusahaan-perusahaan kecil yang ingin membangun jaringan yang cukup handal dengan biaya murah.

Dengan adanya SWAT, semakin memudahkan administrator dalam mengkonfigurasikannya. Antar muka web yang bermanfaat (dan sudah pasti indah, sebab kata orang bijak semua yang bermanfaat itu indah), kemampuan untuk diakses secara remote, membuat Samba sangat fleksibel untuk diadministrasi.

Untuk mengikuti perkembangan terakhir Samba, dapat anda cek di http://www.samba.org. Samba juga membuka peluang bagi siapa saja yang ingin bergabung bersama dalam Tim Samba untuk mengembangkan program ini. Mailing list Samba saat ini beranggotakan lebih dari 3000 orang

Iklan