Senin, 14 Desember 2009

Instalasi Samba Server di Centos 5.2

Instalasi Samba Server di Centos 5.2


Pendahuluan


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.


Mekanisme SMB


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 sinkrinisasi account.


Encrypted Password

Sejak Windows NT 4, Windows 98, dan Windows 95, Windows menggunakan password terenkripsi saat berkomunikasi menggunakan PDC dan setiap server yang memerlukan autentikasi (termasuk Linux dan Samba). Algoritma 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 menggunakan 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.


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 “user” melakukan autentikasi dengan smbd, duplikat baru akan berjalan dengan permisi “user”, 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.


Instalasi Paket Samba Server

kita akan coba untuk menginstall paket : samba-3.3.2.tar.gz. Pastikan file source ini sudah didownload dan diletakkan di direktori /usr/local/src (atau direktori lainnya).


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-3.3.2.tar.gz

Setelah diekstark akan terbentuk direktori samba-3.3.2, masuklah ke direktori tersebut, dan di sana akan terdapat direktori source, docs , dan sebagainya.

# cd samba-3.3.2/source

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.

Contoh :

# ./autogen.sh

# ./configure –-with-smbmount –-with-pam –with-mmap

Kemudian install Samba dengan mengetikkan perintah make lalu make install:

# make all

# make install

# make installbin

# make installman

# make revert

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.

# 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”.


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. menjalankan Samba server, dibutuhkan file-file berikut ini dan harus dibuat atau dikopi pada direktori-direktori yang cocok pada server kita.


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/

# cp smb.conf.default /usr/local/samba/lib

# cd /usr/local/samba/lib

# mv smb.conf.default smb.conf

# vi smb.conf


contoh konfigurasi smb.conf :

# Global parameters

[global]

workgroup = server88

netbios name = ramayana_r88

server string =

##interfaces = 172.19.88.250, 127.0.0.1

##interfaces = 172.16.1.37, 127.0.0.1

interfaces = 172.19.8.37, 127.0.0.1

##hosts allow = 172.19.88.0/255.255.25.0

#hosts allow = 172.19.88.0/255.255.25.0

#hosts deny = 0.0.0.0

socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192

[admtoko]

comment = Bagian Administrasi

path = /smb/admtoko

valid users = @admtoko,@kasir

admin users = @edp

read only = no

follow symlinks = yes

map archive = no

create mask = 0775

directory mask = 0775

force create mode = 0775

force directory mode = 0775

vfs objects = recycle

recycle:keeptree = yes

recycle:touch = yes

recycle:versions = no

recycle:exclude = *.tmp,*.temp

recycle:exclude_dir = /data/sos, /scanner

[edp]

comment = Bagian EDP

path = /smb/edp

valid users = @edp

read only = no

create mode = 0775

directory mode = 0775

create mask = 0775

directory mask = 0777

vfs objects = recycle

recycle:keeptree = yes

recycle:touch = yes


membuat user samba

# smbpasswd –a teguh.ambar

New SMB password:

Retype new SMB password:

Added user teguh.ambar

Password changed for user teguh.ambar

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

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/sbin/smbd –D

# /usr/local/samba/sbin/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 :

# vi /etc/rc.d/rc.local

#samba selalu start saat booting

/usr/local/samba/sbin/smbd –D

/usr/local/samba/sbin/nmbd –D


Quota or Samba Quota


PengQuotaan disk pada samba kali ini dilakukan pada direktori samba sendiri, penggunaan Quota pada samba dilakukan untuk menghindari over limit pada direktori melalui user/grup.

Mengecek quota tools :

Contoh :

# if [ -x /sbin/quotacheck ]

> then

> echo "Checking quotas. This may take some time."

> /sbin/quotacheck -avug

> echo " Done."

> fi

Checking quotas. This may take some time.

quotacheck: Scanning /dev/hda8 [/smb]

quotacheck: Scanning /dev/hda8 [/smb] done

quotacheck: Checked 3 directories and 7 files

Done.

# if [ -x /sbin/quotaon ]

> then

> echo "Turning on quota."

> /sbin/quotaon -avug

> fi

Turning on quota.

/dev/hda8 [/smb]: group quotas turned on

/dev/hda8 [/smb]: user quotas turned on

Edit file /etc/fstab.

LABEL=/ / ext3 defaults 1 1

LABEL=/smb /smb ext3 default,grpquota,usrquota, 0 2

LABEL=/home /home ext3 defaults 1 2

LABEL=/var /var ext3 defaults 1 2

LABEL=/usr /usr ext3 defaults 1 2

LABEL=/boot1 /boot ext3 defaults 1 2

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

LABEL=SWAP-hda7 swap swap defaults 0 0

di table /smb tambahkan grpquota untuk membuat quota pada grup, tambahkan usrquota jika ingin membuat quota pada users.

Tambahkan pada crontab.


0 3 * * 0 root /sbin/quotacheck -avug

lakukan restart komputer untuk mengaktifkan quota.


Membuat quota per user/grup bisa dilakukan manual ataupun melalui webmin, tapi dikarenakan saya tidak tau berapa pembagian-pembagian per MB, so, akhirnya using automatis aja deh lewat webmin..hehehe

untuk melihat informasi quota dari user/grup dengan mengetik repquota.

# repquota -a

*** Report for user quotas on device /dev/hda8

Block grace time: 7days; Inode grace time: 7days

Block limits File limits

User used soft hard grace used soft hard grace

----------------------------------------------------------------------

root -- 147620 0 0 7 0 0

************

My Project

************

2 komentar:

Hasanudin Arif mengatakan...

Thanks mas atas tutorialnya.
Kebetulan saya juga lagi configure Samba Server di centos 5.5, tapi sampe sekarang belum connect juga.

Tak coba dulu mas. Sekalian ijin copas.

Thank you

Unknown mengatakan...

thanks tutorialnya pak, tak sengaja, eh ada smb EDP
heheheeh