Mungkin rekan-rekan admin sudah banyak yang mahir dalam konfigurasi SAMBA. Penulis memberikan tulisan ini sebagai jawaban atas pertanyaan salah seorang teman penulis yang ingin mengetahui tentang SAMBA dan cara melakukan konfigurasi SAMBA. Rekan virtual penulis (Hendra) menanyakan kepada penulis bagaimana cara mengkonfigurasikan SAMBA agar mesin Linux-nya dapat diakses dari mesin Windows serta dapat dijadikan server printer. Dan rekan Hendra juga memberikan saran agar tutorial ini bersifat praktek dan tidak hanya teori. Terima kasih untuk rekan Hendra King (kelana_muda@yahoo.com) dan Pak Nino atas pertanyaannya.
Penulis tidak akan menjelaskan instalasi Linux. Sebaiknya pada saat instalasi, Anda telah menyiapkan partisi tersendiri bagi direktori /home karena direktori ini akan kita gunakan untuk implementasi kuota.
Penulis menggunakan distro Ubuntu 5.10 “Breezy Badger” sebagai server SAMBA. Distro turunan Debian seharusnya dapat langsung menggunakan tutorial ini. Tutorial ini seharusnya juga bisa dipakai pada distro lain dengan sedikit modifikasi.
1.Masuk sistem sebagai root
Masuk ke sistem Linux sebagai root.
#sudo passwd root
#su
2.Pastikan alamat IP server SAMBA
Buka file /etc/network/interfaces dan pastikan alamat IP berupa alamat IP statik. Pada server ini penulis menggunakan alamat 192.168.0.100.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# This is a list of hotpluggable network interfaces.
# They will be activated automatically by the hotplug subsystem.
mapping hotplug
script grep
map eth0
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
Restart servis SAMBA.
#/etc/init.d/networking restart
Buka file /etc/hosts dan alamat IP server Anda
127.0.0.1 localhost.localdomain localhost server1
192.168.0.100 server1.example.com server1
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
3.Setting hostname server
#echo server1.example.com > /etc/hostname
/bin/hostname -F /etc/hostname
4.Lakukan update distro Anda jika diperlukan
Edit file /etc/apt/source.list dan update sistem Anda. Penulis memberikan contoh isi file sebagai berikut :
# deb cdrom:[Ubuntu 5.10 _Breezy Badger_ - Release i386 (20051012)]/ breezy main restricted
deb http://de.archive.ubuntu.com/ubuntu breezy main restricted
deb-src http://de.archive.ubuntu.com/ubuntu breezy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu breezy-updates main restricted
## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## universe WILL NOT receive any review or updates from the Ubuntu security
## team.
deb http://de.archive.ubuntu.com/ubuntu breezy universe
deb-src http://de.archive.ubuntu.com/ubuntu breezy universe
## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://de.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu breezy-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu breezy-security main restricted
deb-src http://security.ubuntu.com/ubuntu breezy-security main restricted
deb http://security.ubuntu.com/ubuntu breezy-security universe
deb-src http://security.ubuntu.com/ubuntu breezy-security universe
Lakukan update sistem denga perintah berikut :
#apt-get update
#apt-get upgrade
5.Pastikan SSH daemon telah terinstall
#apt-get install ssh openssh-server
6.Selanjutnya kita akan bekerja melalui ssh client seperti putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/). Anda diharapkan telah mahir memakai editor standar *nix seperti vi atau pico. Jika tidak, sebaiknya Anda tetap bekerja melalui GUI Linux.
7.Tambahkan user usrquota dan group grpquota pada sistem Linux.
8.Instalasi Quota
Karena kita akan memakai sistem Linux sebagai file dan printe server, maka kita perlu menetapkan kuota pemakaian agar pemakaian ruang harddisk lebih efisien.
Lakukan instalasi paket quota (jika belum terinstall).
#apt-get install quota
Buka file /etc/fstab. Penulis memberikan contoh pada sistem milik penulis.
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/sda3 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
/dev/sda1 /boot ext3 defaults 0 2
/dev/sda4 /home ext3 defaults,usrquota,grpquota 0 2
/dev/sda2 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Jalankan perintah berikut untuk memeriksa setting fstab.
#touch /quota.user /quota.group
#chmod 600 /quota.*
#mount -o remount /
#touch /home/quota.user /home/quota.group
#chmod 600 /home/quota.*
#mount -o remount /home
#quotacheck -avugm
#quotaon -avug
9.Lakukan instalasi paket SAMBA
Jalankan perintah apt-get untuk melakukan instalasi paket SAMBA.
#apt-get install samba samba-common samba-doc libcupsys2-gnutls10 libkrb53 winbind smbclient
Contoh isi file /etc/samba/samba.conf.
[global]
workgroup = MYWORKGROUP
netbios name = SERVER1
server string = %h server (Samba, Ubuntu)
passdb backend = tdbsam
security = user
username map = /etc/samba/smbusers
name resolve order = wins bcast hosts
domain logons = yes
preferred master = yes
wins support = yes
# Set CUPS for printing
printcap name = CUPS
printing = CUPS
# Default logon
logon drive = H:
logon script = scripts/logon.bat
logon path = server1profile%U
# Useradd scripts
add user script = /usr/sbin/useradd -m %u
delete user script = /usr/sbin/userdel -r %u
add group script = /usr/sbin/groupadd %g
delete group script = /usr/sbin/groupdel %g
add user to group script = /usr/sbin/usermod -G %g %u
add machine script = /usr/sbin/useradd -s /bin/false/ -d /var/lib/nobody %u
idmap uid = 15000-20000
idmap gid = 15000-20000
# sync smb passwords woth linux passwords
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn .
passwd chat debug = yes
unix password sync = yes
# set the loglevel
log level = 3
[homes]
comment = Home
valid users = %S
read only = no
browsable = no
[printers]
comment = All Printers
path = /var/spool/samba
printable = yes
guest ok = yes
browsable = no
[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
admin users = Administrator
valid users = %U
read only = no
[profile]
comment = User profiles
path = /home/samba/profiles
valid users = %U
create mode = 0600
directory mode = 0700
writable = yes
browsable = no
Catatan :
a.Variabel netbios name harus sama dengan hostname.
b.Variabel workgroup adalah nama workgroup yang digunakan oleh komputer-komputer berbasis Windows. Dalam hal ini penulis memakai nama MYWORKGROUP.
c.Variabel logon drive menunjukkan drive letter yang ditampilkan pada Windows Explorer. Penulis memakai huruf H.
d.Variabel login script menunjukkan program script Windows yang dijalankan pada saat client Windows login.
Buat direktori untuk logon beserta profiles-nya.
#mkdir /home/samba
#mkdir /home/samba/netlogon
#mkdir /home/samba/profiles
#mkdir /var/spool/samba
#chmod 777 /var/spool/samba/
#chown -R root:users /home/samba/
#chmod -R 771 /home/samba/
Restart servis SAMBA
#/etc/init.d/samba restart
Edit file /etc/nsswitch.conf pada baris berikut dari
hosts: files dns
menjadi
hosts: files wins dns
Tambahkan alamat IP client-client Windows ke dalam file /etc/hosts.
192.168.0.100 server1
192.168.0.110 workstation1
192.168.0.111 workstation2
192.168.0.112 workstation3
192.168.0.113 workstation4
Tambahkan user root yang akan menjadi SAMBA domain Administrator kedalam database SAMBA.
#smbpasswd -a root
Buat file /etc/samba/smbusers dan tambahkan baris kedalamnya dengan menjalankan :
#echo "root = Administrator" > /etc/samba/smbusers
Sekarang kita lakukan uji coba seperti berikut :
#smbclient -L localhost -U%
Output yang diharapkan kira-kira seperti ini :
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]
Sharename Type Comment
--------- ---- -------
netlogon Disk Network Logon Service
print$ Disk Printer Drivers
IPC$ IPC IPC Service (server1 server (Samba, Ubuntu))
ADMIN$ IPC IPC Service (server1 server (Samba, Ubuntu))
Domain=[MYWORKGROUP] OS=[Unix] Server=[Samba 3.0.14a-Ubuntu]
Server Comment
--------- -------
SERVER1 server1 server (Samba, Ubuntu)
Workgroup Master
--------- -------
MDKGROUP IPRG
MYWORKGROUP SERVER1
Lakukan pemetaan default domain group yang ada pada sistem Windows dengan perintah berikut :
#net groupmap modify ntgroup="Domain Admins" unixgroup=root
#net groupmap modify ntgroup="Domain Users" unixgroup=users
#net groupmap modify ntgroup="Domain Guests" unixgroup=nogroup
10.Menambahkan user ke domain SAMBA
Sekarang saatnya bagi kita untuk menambahkan user pada domain SAMBA. Misalnya user bernama devratt. Ada dua tahapan untuk menambahkan user pada domain SAMBA, yaitu menambah user pada sistem Linux (server SAMBA) dan melakukan setting password untuk user tersebut.
Lakukan penambahan user Linux.
#useradd devratt -m -G users
Tambahkan password untuk user devratt pada database SAMBA.
#smbpasswd -a devratt
11.Menambahkan direktori sharing
Sekarang kita akan melakukan penambahan direktori bersama yang akan dijadikan tempat untuk penyimpanan file.
Buat direktori dan setting ijin aksesnya.
#mkdir -p /home/shares/allusers
#chown -R root:users /home/shares/allusers/
#chmod -R ug+rwx,o+rx-w /home/shares/allusers/
Buka file /etc/samba/samba.conf dan tambahkan baris berikut :
[allusers]
comment = All Users
path = /home/shares/allusers
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
writable = yes
Restart servis SAMBA.
#/etc/init.d/samba restart
12.Instalasi CUPS
Sekarang kita akan menambah fungsi server SAMBA, yaitu menjadi print server yang dapat dipakai bersama oleh semua client Windows.
Lakukan instalasi CUPS jika Anda belum melakukannya.
#apt-get install cupsys cupsys-client cupsys-driver-gimpprint cupsys-driver-gimpprint-data defoma fontconfig foomatic-db foomatic-filters libcupsimage2 libexpat1 libfontconfig1 libfreetype6 libgimpprint1 libjpeg62 libpaper1 libpng12-0 libpoppler0c2 libslp1 libtiff4 patch perl perl-modules ttf-bitstream-vera ucf
Catatan : semue perintah diatas Anda ketikkan dalam satu baris.
Agar server CUPS dapat diakses lewat web, lakukan perubahan pada file /etc/cups/cupsd.conf dan ubah menjadi seperti berikut pada bagian Network Options.
Listen 127.0.0.1:631
Listen 192.168.0.100:631
Pada bagian Security Options, ubah AuthGroupName menjadi shadow.
AuthGroupName shadow
Jika ingin membatasi akses web server CUPS dari client tertentu, misalnya dari komputer admin (IP 192.168.0.70), tambahkan alamat IP 192.168.0.70 kedalam bagian security options dan dan set AuthClass menjadi Group.
#
# You definitely will want to limit access to the administration functions.
# The default configuration requires a local connection from a user who
# is a member of the system group to do any admin tasks. You can change
# the group name using the SystemGroup directive.
#
AuthType Basic
AuthClass Group
## Restrict access to local domain
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.70
#Encryption Required
Tambahkan user cupsys kedalam group shadow.
#adduser cupsys shadow
Restart servis CUPS
#/etc/init.d/cupsys restart
Sekarang server CUPS dapat diakses lewat web pada komputer admin (IP 192.168.0.70).
Buka web browser dan arahkan ke alamat http://192.168.0.100:631. Login sebagai root dan gunakan password root.
Catatan : Jika printer yang Anda miliki tidak mempunyai driver untuk Linux, silakan pilih print manufacturer RAW dan install driver yang disertakan (biasanya hanya driver versi Windows) pada masing-masing client Windows. Cara ini hanya bisa digunakan apabila printer hanya diakses melalui client Windows.
Lakukan penambahan printer dengan memakai perintah :
#cupsaddsmb -a