1. Samba
Samba adalah server yang sangat powerful yang
dapat membuat sistem berbasis Unix (seperti Linux) untuk melakukan sharing resource dengan sistem berbasis
Windows. Hal ini tentu sangat berguna pada sebuah LAN yang terdiri atas
beberapa workstation dengan flatform sistem operasi Linux dan Windows sehingga
dapat lebih efisien dengan adanya pembagian resource, seperti file dan printer,
untuk dapat digunakan secara bersama-sama. Samba merupakan sebuah software
aplikasi buatan Andrew Tridgel dari ANU (Australian National University )
dengan mengimplementasikan protokol SMB (Server
Message Block) pada sistem operasi Unix. Protokol ini kadang-kadang dapat
berlaku sebagai protokol CIFS (Common
Internet File Sistem), LanManager, NetBIOS. Protokol SMB ini dapat membuat
sebuah komputer dengan sistem operasi Unix menjadi file atau print server
menjadi file atau print server atau seperti klien ftp untuk mengakses share SMB
baik di Samba server atau di sever lain yang kompatibel seperti Windows NT,
mendukung nameserving dan browsing NetBIOS, dan lain-lain.
2. Mekanisme SMB
2.1.
Username dan Password
Untuk memahami hubungan antara
Linux/Samba/Windows, kita harus mempelajari sistem file, printer, dan user pada
kedua operating sistem. Beberapa
manajemen pengaturan username dan password :
§ Linux Password
Authentication Module (PAM), akan membuat
autentikasi user dengan PDC sehingga kita tetap mempunyai dua user, satu di
lokal dan satu lagi di PDC , tapi
user hanya perlu menyimpan password hanya dalam sistem window.
§ Samba sebagai
PDC,
akan menyimpan login dan password pada sistem
Linux.
§ Membuat solusi
sendiri dengan Perl, kita dapat membuat
sendiri. Hal ini dilakukan dengan menggunakan Winperl dan modul-modul Perl yang
memungkinkan pengubahan paa Security Access Manager (SAM), untuk meng-update
daftar password PDC. Script Perl pada
sisi Linux dapat berkomunikasi dengan script WinPerl untuk menjaga sinkrionisasi
account.
2.2.
Encrypted Password
Sejak Windows NT 4, Windows 98, dan Windows 95
OSR2, Windows menggunakan password terenkripsi saat berkomunikasi menggunakan
PDC dan setiap server yang memerlukan autentikasi (termasuk Linux dan Samba).
Alogoritma enkripsi Windows berbeda dengan UNIX, sehingga tidak kompatibel.
Untuk menangani hal itu, kita dapat melakukan pilihan-pilihan sebagai berikut :
§ Mengedit Registry pada klien Windows untuk
mendisable penggunaan password terenkripsi. Bagian registry yang harus diubah
terdapat pada direktori docs paket Samba.
§ Mengkonfigurasi Samba agar menngunakan password
terenkripsi Windows.
Pilihan pertama mempunyai kelebihan dengan tidak
adanya pola password yang lebih kompleks. Pada sisi lain, kita harus membuat
registry yang tetap pada semua klien. Untuk pilihan kedua sebaliknya, yakni
sedikit lebih kompleks pada sisi server, tapi kita tidak usah mengubah bagian
klien.
2.3.
Perbedaan smbd dengan nmbd
Sebenarnya Samba disusun atas dua damon, yatu smbd
dan nmbd. Smbd adalah daemon yang secara nyata menangani servis sharing file
sistem dan printer untuk klien. Pada saat sebuah klien melakukan autentikasi,
smbd akan membuatkan duplikat dirinya, bagian asli akan kembali ke port 139
untuk mendengarkan permintaan baru dan bagian duplikat menangani koneksi
terhadap klien. Dulikat ini juga mengubah ID user efektifnya dari root ke user
yang terautentikasi. Misalnya , kalau user “smkti” melakukan autentikasi dengan
smbd, duplikat baru akan berjalan dengan permisi “smkti”, dan bukannya permisi
“root”). Duplikat ini akan berada di memory selama masih terkoneksi dengan
klien.
Daemon nmbd bertanggung-jawab untuk menangani
permintaan server name NetBIOS. Ia akan
mendengarkan port 137, tidak seperti smbd, nmbd tidak membuat contoh dirinya
untuk menangani setiap pertanyaan. Kedua daemon itu harus dijalankan agar Samba
bekerja dengan baik.
3. Instalasi
Paket Samba Server
Paket Samba release
terbaru bisa dilihat di homepage Samba : http://us1.samba.org/samba/samba.html
atau melalui FTP site: 63.238.153.11. Bila tersedia, paket juga bisa diambil
melalui ftp site-ftp site terdekat. Pada
modul ini, kita akan coba untuk menginstall paket : samba-2.0.7.tar.gz. Pastikan file source
ini sudah didownload dan diletakkan di direktori /usr/local/src (atau direktori
lainnya).
3.1. Instalasi
Dalam Bentuk Tarball
Instalasi dalam bentuk tarball adalah instalasi
dengan source dalam bentuk file berekstensi tar.gz. Instalasi ini hanya bisa
dilakukan dengan account root. Berikut adalah langkah-langkah instalasinya :
Masukkan ke direktori tempat diletakkannya source
Samba :
# cd /usr/local/src
Kemudian ekstrak file tersebut dengan perintah :
# tar –zxvf samba-2.0.7.tar.gz
Setelah diekstark akan terbentuk direktori
samba-2.0.7, masuklah ke direktori tersebut, dan di sana akan terdapat
direktori source, docs , dan sebagainya :
# cd samba-2.0.7
Lalu masuklah ke direktori source dan jalankan
script configure yang ada di sana. Dalam konfigurasi ini, kita dapat
menambahkan beberapa option, misalnya kita akan menambahkan option sebagai
berikut :
Option Deskripsi
--with-pam Agar
Samba dapat menggunakan Password Authentication Module (PAM).
--with-mmap Agar mendukung MMAP untuk meningkatkan
performansi Samba.
# ./configure –-with-smbmount –-with-pam --with-mmap
Kemudian install Samba dengan mengetikkan perintah
make lalu make install:
# make all
# make install
Samba akan terinstall di direktori
/usr/local/samba. Setelah perintah instalasi di atas dieksekusi, akan terbentuk
direktori bin yang berisi sejumlah file binary yang berfungsi seperti untuk
mengontrol Samba server seperti smbd, nmbd, dan smbclient, dan lain-lain.
Samba akan terinstall di direktori
/usr/local/samba.
# install –m 755 script /mksmbpasswd.sh /usr/bin/
Perintah ini akan menginstall script
“mksmbpasswd.sh” pada direktori “/usr/bin/”. Script ini diperlukan untuk
mensetup user Samba diijinkan terkoneksi ke server via file “smbpasswd”.
Untuk mempelajari Samba secara lebih mendalam,
kita dapat membaca manualnya yang disertakana dalam paket. Manual Samba secara
default terletak di direktori /usr/local/samba/man. Agar manual Samba bisa
dibaca (diakses) dengan perintah man pada shell Linux, lakukan sebagai berikut
:
# cp /usr/local/samba/man/man1/*
/usr/man/man1
# cp
/usr/local/samba/man/man5/* /usr/man/man5
# cp
/usr/local/samba/man/man7/* /usr/man/man7
# cp /usr/local/samba/man/man8/* /usr/man/man8
4. Konfigurasi
Samba Server
Dalam membuat konfigurasi Samba server ini sangat
bergantung pada kebutuhan dan arsitektur dari jaringan komputer kita. Misalkan
Samba server ini bisa dikonfigurasikan hanya terkoneksi satu klien atau bahkan
terkoneksi dengan 1000 klien. File dokumentasi konfigurasi lengkap Samba server
ini dapat didownload di internet dengan alamat: http://www.openna.com/books/floppy.tgz.
Untuk menjalankan Samba server, dibutuhkan file-file berikut ini dan harus
dibuat atau dikopi pada direktori-direktori yang cocok pada server kita.
4.1.
Konfigurasi file “smb.conf”
File konfigurasi utama untuk Samba server ini
adalah “/usr/local/samba/lib/smb.conf”, dimana kita dapat menentukan direktori
yang ingin kita akses dari komputer Windows, IP address mana yang diijinkan,
dsb. Pada file ini juga terdapat banyak sekali option (pilihan). Untuk
informasi lebih lanjut tentang berbagai setting dan parameter dapat dilihat di
dokumentasi Samba.
Konfigurasi yang akan kita bahas di bawah adalah
file konfigurasi minimal Samba yang mendukung password terenkripsi. Kita harus
terlebih dahulu mengkopikan file konfigurasi default lalu mengeditnya sesuai
dengan yang kita inginkan :
# cd
/usr/local/samba/examples
# cp smb.conf.default
/usr/local/samba/lib
# cd
/usr/local/samba/lib
# mv smb.conf.default
smb.conf
# pico smb.conf
workgroup= SMKTI
Isilah dengan workgroup server kita, yang akan
tampak saat diminta oleh klien. Klien dan server harus mempunyai workgroup yang
sama.
server string= Samba Server
Option ini akan menampilkan string yang akan
ditampilkan pada user dalam comment box print manager, atau pada koneksi IPC
pada bagian “net view” pada komputer Windows.
encrypted password= True
Jika option ini diset “True”, Samba akan menggunakan password
terenkripsi bukan menggunakan password berbentuk teks sederhana saat
berhubungan dengan klien. Password terenkripsi ini tidak akan bisa dideteksi
dengan sniffer. Untuk keamanan sebaiknya option ini diset “True”.
security= user
Bila option security ini diisi dengan “user”,
klien harus masuk (log-on) dengan username dan password yang benar, jika tidak,
koneksi akan diputus (connection refused). Hal ini berarti bahwa username dan
password yang benar harus terdapat pada file “/etc/password” sistem Linux dan
file “/etc/smbpasswd”
pada Samba server, jika tidak koneksi dari klien akan gagal.
smb passwd file= /etc/smbpasswd
Option ini menentukan letak file “smbpasswd”
terenkripsi. File “smbpasswd ini merupakan kopi dari file “/etc/passwd” sistem Linux yang
berisi username dan password yang valid agar bisa terkoneksi dengan Samba
server. Samba server akan membaca file ini (smbpasswd) saat ada permintaan
koneksi.
log file= /var/log/samba/log.%m
Option ini menyatakan letak file log yang dicatat
Samba. Dengan ekstensi %m kita dapat membuat file log yang terpisah untuk
masing-masing user atau mesin yang log-on pada Samba server.
socket options= IPTOS_LOWDELAY TCP_NODELAY
Dengan option ini kita dapat menentukan
paramater-parameter konfigurasi Samba untuk meningkatkan performansi Samba.
Secara default, koneksi untuk jaringan lokal dibuat maksimal, dan meningkatkan
performansi Samba server dalam transfer file.
domain master= Yes
Option ini untuk mengeset Samba server daemon
“nmbd” sebagai domain master browser untuk group yang telah ditentukan. Option
ini biasanya harus diset “Yes” hanya dalam satu Samba server untuk keseluruhan
Samba server yang lain pada workgroup dan jaringan yang sama.
local master= Yes
Dengan option di atas, Samba server daemon, nmbd,
akan mencoba untuk menjadi domain master browser pada workgroup yang telah
ditentukan.
preferred master= Yes
Option “preferred master” akan menentukan dan
mengontrol jika “nmbd” dibuat sebagai master browser untuk workgroup yang
bersangkutan.
os level= 65
Dengan mengatur nilai os level, nmbd dapat menjadi
master browser lokal untuk workgroup pada daerah broadcast lokal. Jika terdapat
NT server pada jaringan kita, dan kita ingin agar Samba server Linux menjadi
browser lokal untuk workgroup pada broadcast lokal maka option di atas harus
diisi 65. Ingat option ini hanya untuk satu Linux Samba server.
dns proxy= No
Bila diset “yes” , Samba server daemon “nmbd”
ketika menjadi sebuah WINS server dan nama Net BIOS belum teregistrasi, maka ia
harus memperlakukan nama Net BIOS kata demi kata sebagai nama DNS. Jika kita
belum pernah mengkonfigurasikan Samba sebagai WINS Server, kita tidak usah
membuat option ini “Yes”. Dengan memilih “Yes” juga akan dapat mengurangi
performansi Samba.
name resolve order= lmhosts host bcast
Option ini menyatakan nama servis yang dipakai
untuk mengubah hostname ke IP address. Pilihan di atas akan menyebabkan file
“lmhosts” lokal Samba akan dituju terlebih dahulu.
bind interfaces only= True
Jika option ini diset “True”, kita dapat membatasi
interface-interface yang melayani permintaan “smb”. Sebaiknya option ini diset
demikian untuk keamanan.
interfaces= eth0 192.168.1.1
Option di atas berguna untuk menentukan jenis
interface yang digunakan Samba server saat digunakan browsing dan registrasi
nama, pada contoh di atas yakni eth0 dengan IP address 192.168.1.1. Defaultnya,
Samba akan mengecek semua device pada kernel.
hosts deny= ALL
Kita dapat menentukan host-host yang tidak boleh
mengakses Samba. Secara default kita melarang akses dari seluruh host, dan
mengijinkan akses untuk host-host tertentu yang didefinisikan pada “hosts
allow” di bawah ini.
hosts allow= 192.168.1.4 127.0.0.1
Host-host yang diijinkan untuk mengakses Samba
server didefinisikan pada bagian ini, pada contoh di atas kita mengijinkan host
dengan IP 192.168.1.4 dan localhost 127.0.0.1.
debug level= 1
Di sini kita dapat menentukan level log pada file
“smb.conf”. Sebaiknya “debug level” ini
tidak lebih dari 2, karena server akan
log file yang tidak perlu setelah melakukan operasi sehingga akan menurunkan
performansi.
create mask= 0644
Option “create mask” akan menset permisi-permisi
yang penting yakni bila terjadi mapping dari DOS ke permisi UNIX. Jika dibuat
0644, semua file yang dibuat atau dikopi dari WINDOWS ke sistem UNIX akan
mempunya permisi 0644 secara default (untuk lebih jelasnya dibahas pada bagian
sistem opersai Linux).
directory mask= 0755
Mirip seperti di atas, hanya ini berlaku untuk
semua direktori yang dikopi atau dibuat dari Windows ke sistem UNIX akan
mempunyai permisi default 0755.
level2 oplocks= True
Jika option ini dibuat “True”, akan meningkatkan
keandalan file-file akses yang tidak umum ditulis seperti file-file aplikasi
.EXE.
read raw= no
Ini berguna untuk menentukan apakah Samba server
akan mendukung permintaan raw read SMB saat mentransfer data pada klien. Agar
mapping memory lebih efektif, sebaiknya option ini dibuat “no”.
write cache size= 262144
Option ini akan membuat Samba meningkatkan
keandalan sistem jika terjadi kemacetan disk subsystem. Nilai option ini
dinyatakan dalam byte (262144=256k)
comment= Temporary File Space
Option ini untuk menyatakan komentar yang akan
terlihat saat ada permintaan klien ke server.
path= /tmp
Kita dapat menentukan direktori mana user service
ini diberikan akses.
read only= No
Maksud option di atas adalah kita dapat menentukan
apakah user hanya dapat membaca file atau tidak. Jika diisi “No” user tidak
hanya dapat mebaca file saja.
valid user= admin
Option ini berisi daftar user yang diijinkan
login. Pada contoh di atas user “admin” diijinkan untuk akses.
invalid users= root bin daemon nobody named sys
tty disk mem kmem users
Option “invalid users” berisi daftar yang tidak diijinkan login yang
biasanya user “paranoid”. Sebenarnya hal ini hanya untuk memastikan setting
yang tidak benar dan dapat membahayakan dari segi keamanan
4.2. Konfigurasi
file /etc/Imhosts
File “/etc/lmhosts” adalah file untuk memetakan
nama Net BIOS Samba ke IP address. Format file ini mirip “/etc/hosts”, tapi
komponen dari hostname harus sesuai dengan format penamaan Net BIOS.
Pertama-tama kita harus membuat file “/etc/lmhosts” ini.
# touch /etc/lmhosts
Pada file ini, tambahkan host-host klien sbb:
# pico /etc/lmhosts
127.0.0.1
Localhost
192.168.1.1
smkti1
192.168.1.2
smkti2
192.168.1.3
smkti3
Teruskan pengisian file di atas untuk semua hosts
yang ada dalam network kita.
4.3.
Konfigurasi file /etc/pam.d/samba
File ini berguna untuk menjalankan autentikasi pam
(untuk lebih jelasnya dapat dilihat pada bagian security). Lakukan perintah
berikut ini :
# touch
/etc/pam.d/samba
# pico /etc/pam.d/samba
Tambahkan baris-baris berikut ini:
Auth required /lib/security/pam_pwdb.so nullok shadow
Account required /lib/security/pam_pwdb.so
4.4.
Konfigurasi file /etc/logrotate.d/samba
File konfigurasi ini akan menampilkan file-file
log tiap minggu secara otomatis.
# touch /etc/logrotate.d/samba
Tambahkan baris-baris berikut ini :
/var/log/samba/log.nmb
{
notifempty
missingok
prostrotate
/usr/bin/killall –HUP nmbd
endrotate
}
/var/log/samba/log.smb
{
notifempty
missingok
postrotate
/usr/bin/killall –HUP smbd
endotrate
}
4.5. Membuat password Clien Samba terenkripsi
File “/etc/smbpasswd” adalah file password Samba
yang terenkripsi. File ini berisi username, UID, password terenkripsi
masing-masing user yang dapat mengakses Samba. Jika seorang user tidak terdaftar
dalam file ini, maka ia tidak dapat melakukan koneksi ke server. Untuk membuat
account Samba, user-user samba harus sudah ada dalam file “/etc/passwd” Linux.
Jika kita ingin menambahkan user yang dapat mengakses Samba, kita harus
menambahkan nama user tersebut pada file “/etc/passwd” sistem Linux kita sbb:
(Misal kita ingin menambahkan user “smbclient”).
# adduser smbclient
# passwd smbclient
Changing password for user smbclient
New UNIX password:
Retype new UNIX
password:
passwd:all authentication tokens updated successfully
Setelah kita manambahkan semua client Samba pada
file “/etc/passwd”, Kita dapat membuat file “/etc/smbpasswd” dari file
“/etc/passwd” dari Linux server (Ingat agar semua user yang akan mengakses
samba sudah ada dalam file “/etc/passwd”) dengan perintah sbb:
# cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd
Kemudian kita harus membuat account user Samba
pada file “/etc/smbpasswd” sebelum kita dapat menggunakannya.
# smbpasswd –a
smbclient
New SMB password:
Retype new SMB
password:
Added user smbclient
Password changed for user smbclient.
Kemudian ubahlah setting permisi file “smbpasswd”
ini agar hanya bisa dibaca dan ditulisi oleh account “root” :
# chmod 600 /etc/smbpasswd
Untuk memeriksa kesalahan dalam penulisan file
“smb.conf”, lakukan perintah ini :
# testparm
Untuk menjalankan dan menghentikan daemon Samba,
nmbd dan smbd secara otomatis kita dapat menjalankan script file
“/etc/rc.d/init.d/smb”. Pastikan bahwa file ini mempunyai permisi yang hanya
bisa dibaca, ditulis, dan dieksekusi oleh user “root”.
# chmod 700 /etc/rc.d/init.d/smb
Lalu buat simbolik link rc.d pada Samba dengan
perintah :
# chkconfig –-add smb
Agar sript Samba secara otomatis menjalankan
daemon nmbd dan smbd saat sistem dihidupkan (atau direboot) lakukan perintah
berikut ini :
# chkconfig -–level 345 smb on
5. Menjalankan
Samba
Sebelum menjalankan Samba kita harus membuat
direktori seperti yang sudah didefinisikan pada file Makefile. Hal ini karena
direktori ini tidk secara otomatis dibuat saat mengeksekusi perintah make
install.
# mkdir /usr/local/samba/var
Samba dapat dijalankan dengan dua macam cara.
Pertama dijalankan sebagai daemon dan kedua menjalankannya dari inetd. Samba
yang dijalankan sebagai daemon akan sedikit lebih cepat dalam melayani
permintaan client jika dibandingkan dengan Samba yang dijalankan dari inetd.
Biasanya berbagai distribusi Linux sudah mempunyai script untuk menstart dan
menstop servis Samba. Untuk menjalankan
Samba kita harus menjalankan daemon smbd dan nmbd. Lakukan perintah berikut ini
:
#
/usr/local/samba/bin/smbd –D
# /usr/local/samba/bin/nmbd –D
Agar Samba selalu dijalankan setiap kali Linux
melakukan booting, kita dapat menambahkan baris-baris di atas pada file /etc/rc.d/rc.local :
#
pico /etc/rc.d/rc.local
/usr/local/samba/bin/smbd
–D
/usr/local/samba/bin/nmbd -D
Apabila dalam sistem kita tidak mempunyai script
untuk menjalankan Samba secara otomatis, maka kita harus menuliskannya secara
manual. Misalkan dengan cara membuat
file “/usr/local/bin/startsmb/” untuk
menjalankan dan menghentikan secara otomatis daemon Samba server.
# pico /usr/local/samba/bin/startsmb
Tambahkan baris-baris berikut ini :
#!/bin/sh
/usr/local/samba/bin/smbd
–D
/usr/local/samba/bin/nmbd -D
Untuk menjalankan Samba kita tinggal mengeksekusi
file startsmb tersebut.
# /usr/local/samba/bin/startsmb
Untuk mematikan Samba, kill proses smbd dengan cara sbb :
# ps ax|grep smbd
Dengan perintah di atas akan tampak proses smbd
beserta nomor PID-nya.
# kill -9 [nomor PID smbd]
Tidak ada komentar:
Posting Komentar