Seperti yang saya ceritakan pada tulisan sebelumnya bahwa minggu-minggu kemaren saya sudah praktek membuat domain controller dengan samba4 dan mail server dengan zimbra, kali ini saya akan ceritakan membuat domain controller dengan samba4. Domain controller ini saya konfigurasi pada CentOS 6.0 32 bit (kebetulan ada komputer nganggur dengan spesifikasi cukup untuk 32 bit) dengan konfigurasi berikut;
IP Address : 192.168.1.1
Hostname : samba
Domain Name : catatankerja.net
Berikut tahapan-tahapan yang saya lakukan untuk membuat Domain Controller dengan samba4:
Installasi Samba4
Sebelum menginstall samba4, kita harus melakukan installasi terhadap beberapa aplikasi yang diperlukan untuk samba4, dengan mengetikkan sintak berikut:
# yum install libacl-devel e2fsprogs-devel gnutls-devel readline-devel python-devel gdb pkgconfig gcc libblkid-devel zlib-devel setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs popt-devel libpcap-devel sqlite-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel
Kemudian kita download binari samba4 di http://ftp.samba.org/pub/samba/samba4/, dimana file tarball yang saya gunakan untuk praktek ini adalah samba4 versi 4.0.0beta2:
# wget http://ftp.samba.org/pub/samba/samba4/samba-4.0.0beta2.tar.gz
# wget http://ftp.samba.org/pub/samba/samba4/samba-4.0.0beta2.tar.gz
Setelah selesai mendownload kita install dengan perintah:
# tar -zxvf samba-4.0.0beta2.tar.gz
# cd samba-4.0.0beta2
# ./configure-developer
# make
# make install
Nantinya hasil installasi akan berada pada folder /usr/local/samba/
Installasi DNS Server
Sebelum melakukan provisioning pada samba4, kita harus installasi dan konfigurasi DNS Server terlebih dahulu, untuk menginstall DNS pada CentOS dapat dilakukan dengan perintah:
# yum install bind bind-utils caching-nameserver
Konfigurasi DNS Server
Ada beberapa tahapan untuk mengkonfigurasi DNS Server pada CentOS dengan menggunakan console/terminal sebagai berikut:
a. Melakukan editing file named.conf
# nano /etc/named.conf
options {
listen-on port 53 { 127.0.0.1;192.168.1.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost;any; };
recursion yes;
Tambahkan yang tercetak tebal pada file named.conf
b. Melakukan editing file named.rfc1912.zones
# nano /etc/named.rfc1912.zones
zone "catatankerja.net" IN {
type master;
file "catatankerja.net.zone";
allow-update { none; };
};
Tambahkan zona DNS Server yang akan kita buat pada baris paling bawah.
c. Membuat dan konfigurasi untuk zona yang baru kita buat
# cp /var/named/named.localhost var/named/catatankerja.net.zone
# chown named.named /var/named/catatankerja.net.zone
# nano /var/named/catatankerja.net.zone
$TTL 38400 ; 10 hours 40 minutes
@ IN SOA ns1.catatankerja.net. admin.catatankerja.net. (
2011070101 ; serial
180 ; refresh (3 minutes)
360 ; retry (6 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS ns1.catatankerja.net.
MX 0 mail.catatankerja.net.
A 192.168.1.1
ns1 A 192.168.1.1
samba A 192.168.1.1
mail A 192.168.1.1
d. Konfigurasi file /etc/hosts
# nano /etc/hosts
192.168.1.1 samba.catatankerja.net samba # Added by NetworkManager
127.0.0.1 localhost.localdomain localhost
::1 samba.catatankerja.net samba localhost6.localdomain6 localhost6
e. Restart services DNS dan jalankan otomatis pada boot
# service named restart
# chkconfig named on
f. Check DNS Server dengan perintah nslookup
[root@samba ~]# nslookup catatankerja.net
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: catatankerja.net
Address: 192.168.1.1
Provision Samba4
Setelah konfigurasi DNS berhasil, kita dapat melakukan provisioning pada samba4 yang sudah terinstall dengan perintah:
# /usr/local/samba/sbin/provision --realm=catatankerja.net --domain=CATATANKERJA --adminpass=Pa$$w0rd --server-role=dc
Tunggu hingga proses selesai
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba
NetBIOS Domain: CATATANKERJA
DNS Domain: catatankerja.net
DOMAIN SID: S-1-5-21-987618465-665967820-2421925628
A phpLDAPadmin configuration file suitable for administering the Samba 4 LDAP server has been created in /usr/local/samba/private/phpldapadmin-config.php.
[root@samba ~]#
Starting Samba4
Untuk menjalankan samba kita dapat menggunakan perintah:
# /usr/local/sbin/samba
Agar otomatis jalan pada saat booting, kita dapat membuat script untuk menjalankannya, buat dengan nama samba4, dan disimpan
# nano /etc/init.d/samba4
Berikut scrip yang akan kita buat:
#!/bin/sh
# chkconfig:2345 99 01
# description: program startup script by seilent
####################################################################
DAEMON="/usr/local/samba/sbin/samba"
rm /usr/local/samba/var/run/smbd-fileserver.conf.pid
# The init commands
case "$1" in
start)
echo "Starting Samba4..."
$DAEMON > /dev/null 2>&1 &
;;
stop)
echo "Stoping Samba4..."
kill -9 `ps -C samba -o pid --no-headers`
;;
restart)
echo "Stoping Samba4..."
kill -9 `ps -C samba -o pid --no-headers`
echo "Starting Samba4..."
$DAEMON > /dev/null 2>&1 &
;;
*)
echo "usage: /etc/init.d/samba4"
echo "$0 {start | stop | restart}"
exit 1
;;
esac
Berikan hak akses agar dapat dieksekusi
#chmod 755 /etc/init.d/samba4
Buat link untuk service yang baru saja dibuat
#ln -s /etc/init.d/samba4 /etc/rc.d/rc5.d/S99samba4
Tambahkan script tersebut agar dapat berjalan pada saat booting
# chkconfig --add samba4
# chkconfig samba4 on
Untuk menjalankan, mematikan, dan merestart samba4 dapat menggunakan perintah:
# service samba4 start
# service samba4 restart
# service samba4 stop
Testing Samba4
Untuk melakukan testing dapat kita coba dengan perintah berikut:
[root@samba ~]# /usr/local/samba/bin/smbclient --version
Version 4.0.0beta2
[root@samba ~]# /usr/local/samba/bin/smbclient -L localhost -U%
Domain=[CATATANKERJA] OS=[Unix] Server=[Samba 4.0.0beta2]
Sharename Type Comment
--------- ---- -------
netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.0.0beta2)
Domain=[CATATANKERJA] OS=[Unix] Server=[Samba 4.0.0beta2]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@samba ~]# /usr/local/samba/bin/smbclient //localhost/netlogon -Uadministrator%Pa$$w0rd
Domain=[CATATANKERJA] OS=[Unix] Server=[Samba 4.0.0beta2]
smb: \>
Jika semua perintah tersebut berhasil sesuai contoh, maka folder share samba4 sudah OK
Update Konfigurasi DNS
Setelah sebelumnya kita konfigurasi DNS, kita masih perlu melakukan konfigurasi DNS yang sudah ada. Hal ini dilakukan mengingat samba4 yang dicompile dan install memiliki database DNS yang harus dimasukkan kedalam konfigurasi DNS Server yang sudah ada agar samab4 berjalan dengan semestinya.
Konfigurasi named.conf
Samba memiliki file named.conf sendiri untuk konfigurasi DNS dengan metode DLZ (Dynamically Loadable Zone). Tambahkan iinclude "/usr/local/samba/private/named.conf"; pada baris paling bawah named.conf
# nano /etc/named.conf
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/usr/local/samba/private/named.conf";
Disable SELinux
SELinux merupakan security yang digunakan pada CentOS, agar konfigurasi DNS dapat diload oleh DLZ maka SELinux harus di disable dengan perintah:
# setenforce 0
Untuk mendisable pada saat booting kita edit file /etc/sysconfig/selinux
# nano /etc/sysconfig/selinux
SELINUX =disable
Disable Chroot directory
DNS pada samba4 tidak dapat berjalan jika menggunakan chroot dns, maka kita harus disable chroot DNS terlebih dahulu pada file /etc/sysconfig/named.
# nano /etc/sysconfig/named
##ROOTDIR=/var/named/chroot
Konfigurasi named.conf samba4
Ubah database dlz agar menggunakan sesuai versi bind yang kita gunakan, versi bind yang disupport adalah 9.8.0 keatas:
# nano /usr/local/samba/private/named.conf
dlz "AD DNS Zone" {
# For BIND 9.8.0
database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so";
# For BIND 9.9.0
# database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so";
};
Dan lakukan disable pada zona DNS yang kita buat sebelumnya denganmemberi tanda comment (#) pada zone dns catatankerja.net
# nano /etc/named.rfc1912.zones
#zone "catatankerja.net" IN {
# type master;
# file "catatankerja.net.zone";
# allow-update { none; };
#};
Kemudian restart service DNS dengan perintah:
# service named restart
Testing Konfigurasi DNS
Setelah konfigurasi DNS di update,kita dapat melakukan testing terhadap DNS sebagai berikut:
[root@samba ~]# host -t SRV _ldap._tcp.catatankerja.net
_ldap._tcp.catatankerja.net has SRV record 0 100 389 samba.catatankerja.net
[root@samba ~]# host -t SRV _kerberos._udp.catatankerja.net.
_kerberos._udp.catatankerja.net has SRV record 0 100 88 samba.catatankerja.net.
[root@samba ~]# host -t A catatankerja.net
catatankerja.net has address 192.168.1.1
[root@samba ~]#
Konfigurasi Kerberos
Konfigurasi kerberos kita lakukan untuk keperluan autentikasi, pada Linux CentOS/Redhat, file konfigrasi terdapat pada file /etc/krb5.conf, kita ganti domain.example dengan nama domain yang kita gunakan.
# nano /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = CATATANKERJA.NET
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
CATATANKERJA.NET = {
kdc = samba.catatankerja.net
admin_server = samba.catatankerja.net
}
[domain_realm]
.catatankerja.net = CATATANKERJA.NET
catatankerja.net = CATATANKERJA.NET
Untuk memastikan kita test dengan perintah:
[root@samba ~]# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@CATATANKERJA.NET
Valid starting Expires Service principal
09/05/12 08:34:20 09/05/12 18:34:20 krbtgt/CATATANKERJA.NET@CATATANKERJA.NET
renew until 09/12/12 08:34:09, Etype (skey, tkt): ArcFour with HMAC/md5, ArcFour with HMAC/md5
[root@samba ~]#
Installasi dan Konfigurasi NTP Server
NTP Server dipergunakan untuk sinkronisasi antar waktu server dan client agar sama, karena terkadang perbedaan waktu server dan client menyebabkan client tidak bisa join ke server Domain. Berikut tahapan konfigurasi NTP Server
# yum install ntp
# nano /etc/ntp.conf
# Hosts on local network are less restricted.
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
# server 0.centos.pool.ntp.org
# server 1.centos.pool.ntp.org
# server 2.centos.pool.ntp.org
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
# service ntpd restart
# chkconfig ntpd on
Testing NTP Server
[root@samba ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 10 l 63 64 377 0.000 0.000 0.001
[root@samba ~]#
Jika di bagian LOCAL terdapat tanda asterisk (*), maka ntp server sudah sikron dan dapat dipergunakan.
Okeyyy demikian share saya tentang Domain Controller dengan Samba4, untuk konfigurasi client sama dengan konfigurasi dengan menggunakan Domain Controller Windows Server. Semoga bermanfaat untuk semuanya..
lanjutkan bang..
ReplyDeletethx buat tutorialnya..
ReplyDeletesedikit tambahan
/usr/local/samba/sbin/provision --realm=catatankerja.net --domain=CATATANKERJA --adminpass=Pa$$w0rd --server-role=dc --dns-backend=BIND9_DLZ
biar ada file named.conf di /usr/local/samba/private/named.conf
Bagus artikelnya mas pantas di coba nihhhhh
ReplyDeletemoga gak ada kendala, tapi sy mau nanya mas kenapa samba tidak jalan pada DNS chroot seperti mas ceritakan di atas!!