BAB IV IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Karena sistem otentikasi terpusat yang menjadi topik dari penulisan skripsi ini dibangun di atas sistem GNU/Linux dan merupakan integrasi dari beberapa perangkat lunak yang terpisah, maka proses instalasi untuk membangun sistem ini harus dilakukan secara berurutan langkah demi langkah untuk menjamin keberhasilannya. Sedangkan bila instalasi dilakukan tidak dengan urutan langkahlangkah yang semestinya, ada kemungkinan sistem akan berjalan tidak sempurna bahkan mungkin akan gagal sama sekali. Untuk itu maka penulis akan menjelaskan semua proses instalasi yang dilakukan secara detail langkah demi langkah. Semua proses instalasi dan konfigurasi pada sistem GNU/Linux untuk membangun server PDC Samba-LDAP pada skripsi ini dilakukan dalam mode teks (shell). Penulis melakukan instalasi dengan menggunakan utilitas YUM yang akan memudahkan untuk menyertakan semua perangkat lunak ketergantungan (dependency) dari perangkat lunak yang dipasang. Dalam mode teks, pengguna aktif untuk root akan berupa prompt “#”, untuk pengguna biasa akan berupa prompt “$”. Instalasi akan dilakukan dalam mode root. Sedangkan untuk isi file teks ASCII umumnya tanda “#” digunakan untuk menandakan bahwa kalimat dibelakangnya adalah komentar atau konfigurasi yang di nonaktifkan. Penulisan baris perintah atau isi dari file teks akan dibedakan dengan menggunakan huruf dengan jenis, tipe, dan ukuran yang berbeda dengan penulisan paragraf normal.
4.1.1 Instalasi dan konfigurasi OpenLDAP dan PAM File-file yang dibutuhkan untuk instalasi perangkat lunak OpenLDAP di sini adalah : 1. openldap-2.3.43-3.el5
: untuk file pustaka LDAP
2. openldap-servers-2.3.43-3.el5
: untuk server LDAP
3. openldap-clients-2.3.43-3.el5
: untuk utilitas klien LDAP
39
40
Instalasi openLDAP dilakukan dengan melakukan perintah : # yum install openldap
Gambar 4.1 Langkah pertama : instalasi OpenLDAP Maka sistem akan menginstalasikan ketiga perangkat lunak tersebut sekaligus dengan semua perangkat lunak ketergantungan yang dibutuhkannya. File konfigurasi OpenLDAP akan diletakkan oleh sistem di dalam direktori /etc/openldap, sedangkan file basis datanya akan diletakkan pada direktori /var/lib/ldap. Baris-baris konfigurasi untuk server LDAP akan disimpan pada file /etc/openldap/slapd.conf. Konfigurasi penting pada file slapd.conf ini adalah dengan menambahkan ke dalam file tersebut baris-baris yang telah ditentukan sebagai berikut : database suffix rootdn rootpw
bdb "dc=muslim,dc=com" "cn=Manager,dc=muslim,dc=com" {SSHA}pyrOwv3oIY86ATe/XanyToMRzm0B1bwu
Basis data yang digunakan adalah bdb (berkeley db) yang merupakan standar dari OpenLDAP. Suffix yang dipakai adalah “dc=muslim, dc=com” dengan pengguna pengelola adalah “Manager” dengan rootdn "cn=Manager,dc=muslim,dc=com". Password pengguna pengelola (rootpw) dienkripsi menggunakan SSHA yang merupakan standar dari utilitas slappasswd yang didapatkan dengan cara mengetikkan perintah slappasswd yang diikuti dengan mengetikkan password di shell. Hasil enkripsi yang muncul dapat langsung disalin ke dalam file slapd.conf. # slappasswd [password] {SSHA}pyrOwv3oIY86ATe/XanyToMRzm0B1bwu
41
Kemudian harus disalin file DB_CONFIG.example yang terdapat pada direktori /etc/openldap ke direktori /var/lib/ldap dengan nama DB_CONFIG. File ini memang tidak dibuat secara otomatis ketika instalasi OpenLDAP. Tanpa file ini LDAP tidak akan dapat berjalan, dan akan mengakibatkan pesan kesalahan saat layanan LDAP dijalankan. Penyalinan dilakukan dengan utilitas cp (copy). # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
Langkah selanjutnya adalah melakukan konfigurasi PAM untuk LDAP. File kebutuhan untuk PAM biasanya sudah ada dalam sistem yang diinstall secara standar. Kita hanya harus menambahkan aplikasi nss_ldap kalau memang belum ada di sistem. Instalasi juga dilakukan dengan utilitas YUM. # yum install nss_ldap
Gambar 4.2 Langkah kedua : konfigurasi PAM untuk LDAP Kemudian kita harus mengubah konfigurasi otentikasi sistem yang pada GNU/Linux Centos 5.3 dapat dilakukan dengan lebih mudah melalui utilitas /usr/sbin/authconfig-tui. # /usr/sbin/authconfig-tui
Maka sistem akan membuka sebuah menu di lingkungan mode teks yang dapat digunakan untuk melakukan konfigurasi otentikasi sistem. Di sana sudah dipilih sebelumnya oleh sistem pada bagian “Use MD5 Password” dan “Use Shadow Passwords” yang digunakan untuk mengaktifkan shadow password pengguna yang terdapat pada file /etc/shadow dengan menggunakan enkripsi MD5. Kita harus menambahkan konfigurasi di sana dengan memilih “Cache Information”, “Use LDAP”, dan “Use LDAP Authentication”, kemudian
42
memasukkan alamat IP dan DN dari server LDAP yang akan diakses. “Cache Information” digunakan untuk mengaktifkan layanan nscd yang akan melakukan caching terhadap penggunaan username dan password yang pernah dipakai agar dapat mempercepat proses login pengguna. File konfigurasinya ada di /etc/nscd.conf. “Use LDAP” dan “Use LDAP Authentication” digunakan untuk mengaktifkan
otentikasi
menggunakan
LDAP
dengan
mengedit
file
/etc/pam.d/system-auth untuk memasang otentikasi LDAP, mengedit file /etc/ldap.conf untuk mengarahkan otentikasi LDAP pada server LDAP yang dituju (bisa lokal ataupun melalui jaringan), dan mengedit file /etc/nsswitch.conf untuk mengatur otentikasi apa saja yang akan dikonfigurasikan untuk menggunakan LDAP dan bagaimana urutan otentikasi itu diatur.
Gambar 4.3 Konfigurasi otentikasi dan penggunaan LDAP
Berikut sebagian isi dari beberapa file yang disebutkan tadi, untuk bagian yang paling penting dan berhubungan dengan topik :
43
File /etc/nscd.conf : enable-cache
passwd
yes
File /etc/pam.d/system-auth-ac (file system-auth hanya sym-link dari file ini) : auth auth
sufficient sufficient
pam_unix.so nullok try_first_pass pam_ldap.so use_first_pass
File /etc/ldap.conf : base dc=muslim,dc=com uri ldap://127.0.0.1/
File /etc/nsswitch.conf : passwd: shadow: group:
files files files
ldap ldap ldap
Selanjutnya kita harus langsung mengadakan pengujian apakah server LDAP yang dibangun sudah dapat berfungsi dengan baik. Ini penting dilakukan untuk mencegah timbulnya masalah pada proses selanjutnya yang bisa lebih rumit. Bila pada titik ini ditemukan masalah, pelacakan akan lebih mudah dilakukan. Cara pengujiannya adalah dengan memasukkan contoh data menggunakan format file LDAP yaitu LDIF ke dalam direktori LDAP, dan mencoba
untuk
mengaksesnya.
Misalnya
kita
/etc/openldap/test.ldif. Isi file tersebut sebagai berikut : dn: dc=muslim,dc=com objectClass: dcObject objectClass: organization o: muslim dc: muslim dn: ou=users,dc=muslim,dc=com objectClass: organizationalUnit ou: users description: User List dn: ou=groups,dc=muslim,dc=com objectClass: organizationalUnit ou: groups description: Group List dn: ou=computers,dc=muslim,dc=com objectClass: organizationalUnit ou: computers description: Computer List dn: uid=rkh,ou=users,dc=muslim,dc=com uid: rkh givenname: Riyadi sn: KH cn: Riyadi KH
buat
sebuah
file
44
userPassword: [password] objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson
Kemudian jalankan layanan LDAP dan masukkan data dari file test.ldif ke dalam direktori LDAP. # /etc/init.d/ldap start # ldapadd -x –D "cn=Manager,dc=muslim,dc=com" -w [password] –f test.ldif
Setelah proses pemuatan isi dari file test.ldif selesai, dapat dilihat di dalam direktori /var/lib/ldap/ untuk melihat perubahan yang terjadi. Bila pemuatan berhasil, isi direktori ini pasti akan bertambah beberapa buah file. Setelah itu dapat dicoba melakukan pencarian data untuk akun pengguna rkh yang tadi sudah dimasukkan ke dalam direktori LDAP. # ldapsearch -x uid=rkh
Bila data untuk akun pengguna rkh berhasil dimunculkan, maka berarti isi dari file test.ldif tadi berhasil dimuat ke dalam direktori LDAP dan juga berhasil untuk diakses kembali menggunakan perintah LDAP. Sampai pada tahap ini server LDAP sudah berhasil diinstalasi dan dikonfigurasi dengan baik. Dan untuk selanjutnya kita dapat melangkah pada proses berikutnya yaitu instalasi perangkat lunak Samba.
4.1.2 Instalasi Samba Instalasi Samba juga dilakukan menggunakan utilitas YUM. Ada tiga buah file yang dibutuhkan di sini, yaitu : samba-3.0.33-3.7.el5
: untuk server Samba
samba-client-3.0.33-3.7.el5
: untuk klien Samba
samba-common-3.0.33-3.7.el5
: untuk file pustaka Samba
Ketiganya akan diinstalasikan sekaligus dengan instalasi menggunakan YUM : # yum install samba
Maka sistem akan menginstalkan ketiga perangkat lunak Samba tersebut sekaligus dengan perangkat lunak ketergantungan (dependency) yang dibutuhkan. File konfigurasi Samba akan diletakkan pada direktori /etc/samba dan file konfigurasi utamanya adalah pada file /etc/samba/smb.conf.
45
Setelah Samba berhasil diinstalasikan dengan baik, maka kita lakukan konfigurasi pada file /etc/samba/smb.conf dengan menggunakan variabel konfigurasi sebagai berikut :
Gambar 4.4 Langkah ketiga : instalasi Samba [global] workgroup = MUSLIM netbios name = PDC server string = Primary DC security = user os level = 80 local master = yes domain master = yes preferred master = yes domain logons = yes wins support = yes name resolve order = wins bcast logon script = %U.bat username map = /etc/samba/smbusers time server = yes hide dot files = yes encrypt passwords = yes [netlogon] comment = Network Logon Service path = /home/netlogon browseable = no guest ok = yes writable = no share modes = no [Profiles] path = /home/profiles
46
browseable = no guest ok = yes read only = no
Dalam bagian [global], tiga baris paling atas mendefinisikan server dan jaringan. Lalu kelompok di bawahnya adalah konfigurasi yang menjadikan Samba sebagai server PDC Domain Windows. Kelompok bawahnya lagi untuk mengaktifkan server Samba sekaligus sebagai server WINS (Windows Internet Name Service) untuk penamaaan di dalam jaringan Domain. WINS akan digunakan sebagai resolusi nama yang utama. Kalau WINS gagal, penamaan akan dilakukan dengan metode broadcast. Kelompok selanjutnya adalah beberapa konfigurasi tambahan untuk penerapan login script, penamaan alias untuk pengguna Samba, menjadikan Samba sebagai server waktu untuk semua klien, menyembunyikan file yang berawalan tanda titik, dan penyimpanan password yang terenkripsi. Sedangkan bagian [netlogon] dan [Profiles] mendefinisikan direktori share yang digunakan Samba untuk menyimpan file script yang dibutuhkan pengguna saat login jaringan dan menyimpan profil dari semua pengguna Domain yang dikenal sebagai konsep roaming profiles. Kemudian kita buat direktori-direktori seperti yang didefinisikan pada file /etc/smb.conf tadi pada bagian [netlogon] dan [Profiles] sekaligus menyesuaikan kofigurasi hak akses dari direktori-direktori tersebut untuk dapat bekerja sesuai kebutuhan. # mkdir -m 0775 /home/netlogon # mkdir /home/profiles # chmod 1757 /home/profiles
Maka sistem akan membuatkan direktori /home/netlogon dengan hak akses file = 0775 (drwxrwxr-x) dan /home/profiles dengan hak akses 1757 (drwxr-xrwt). Direktori /home/profiles mempunyai hak akses khusus berupa Sticky Bit (t) yang ditempatkan pada bit ketiga dari hak akses others. Sticky Bit ini diwakili oleh angka desimal “1” di depan hak akses desimal 757, sehingga penulisannya menjadi “1757”. Fungsinya adalah mencegah pengguna selain pemilik file untuk menghapus file tersebut. Karena seorang pengguna yang punya hak rwx pada sebuah direktori akan dapat menghapus file milik orang lain yang berada dalam direktori tersebut meskipun ia tidak mempunyai hak akses write pada file yang dihapusnya itu.
47
Setelah Samba selesai diinstalasi dan dikonfigurasi, kita juga perlu untuk melakukan pengujian apakah Samba sudah berjalan dengan baik. Untuk melakukan pengujian, kita bisa menjalankan utilitas “testparm” di shell Linux. # testparm Load smb config files from /etc/samba/smb.conf Processing section "[netlogon]" Processing section "[Profiles]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions
Jika tesparm menghasilkan tulisan yang mirip dengan di atas itu, berarti instalasi dan konfigurasi Samba sudah berhasil dan dapat berjalan dengan baik. Jadi kita bisa beralih ke proses selanjutnya yaitu integrasi Samba-LDAP menggunakan perangkat lunak smbldap-tools.
4.1.3 Instalasi smbldap-tools Smbldap-tools akan sangat membantu untuk melakukan integrasi antara Samba dan LDAP. Aplikasi ini memang dibuat oleh pengembangnya untuk keperluan itu. Perangkat lunak ini tidak disertakan dalam dvd installer CentOS 5.3 maupun pada repositori standarnya, jadi kita harus menambahkan secara manual dari repositori lain misalnya repositori “epel” dari Internet dengan alamat http://download.fedora.redhat.com/pub/epel/5/i386/. Instalasi smbldap-tools ini akan membutuhkan banyak pustaka Perl. # yum install smbldap-tools
Setelah
smbldap-tools
diinstalasikan,
langkah
selanjutnya
adalah
menyiapkan integrasi Samba dan LDAP. File konfigurasi untuk smbldap-tools akan diletakkan pada direktori /etc/smbldap-tools. Pertama kali kita harus menyalin file samba.schema yang ada di direktori /usr/share/doc/samba3.0.33/LDAP/ ke dalam direktori /etc/openldap/schema/ agar OpenLDAP dapat menggunakan skema Samba. # cp /usr/share/doc/samba-3.0.33/LDAP/samba.schema /etc/openldap/schema/.
Kemudian tambahkan baris-baris berikut ke dalam file /etc/openldap/slapd.conf : include
/etc/openldap/schema/samba.schema
index sambaSID index sambaPrimaryGroupSID index sambaDomainName index default
eq eq eq sub
48
Baris yang pertama untuk memasukkan skema Samba ke dalam konfigurasi LDAP agar dapat menyediakan penyimpanan data yang berupa atribut obyek Samba. Sedang baris-baris selanjutnya adalah untuk melakukan indeks pada obyek-obyek Samba. Tambahkan juga baris-baris berikut pada file /etc/samba/smb.conf pada bagian [global]. Ini adalah konfigurasi untuk membuat Samba menggunakan LDAP sebagai latar belakang (backend) penyimpanan datanya : # Tambahan untuk konfigurasi smb-ldap passdb backend = ldapsam:"ldap://127.0.0.1” add user script = /usr/sbin/smbldap-useradd -m '%u' delete user script = /usr/sbin/smbldap-userdel '%u' add group script = /usr/sbin/smbldap-groupadd '%g' delete group script = /usr/sbin/smbldap-groupdel '%g' add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g' delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g' set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' add machine script = /usr/sbin/smbldap-useradd -w '%u' ldap admin dn = cn=Manager,dc=muslim,dc=com ldap group suffix = ou=Groups ldap machine suffix = ou=Computers ldap user suffix = ou=Users ldap idmap suffix = ou=Idmap idmap backend = ldap:"ldap://127.0.0.1" idmap uid = 15000-20000 idmap gid = 15000-20000 ldap suffix = dc=muslim,dc=com ldap ssl = no ldap timeout = 20 ldap passwd sync = Yes winbind nested groups = No map acl inherit = Yes
Jalankan layanan LDAP dan Samba, lalu simpan password pengelola LDAP ke dalam file /etc/samba/secrets.tdb agar Samba bisa menggunakannya untuk mengakses data dalam direktori LDAP : # /etc/init.d/ldap restart # /etc/init.d/smb start # smbpasswd -w [password] Setting stored password for "cn=Manager,dc=muslim,dc=com" in secrets.tdb
Selanjutnya konfigurasikan smbldap-tools. Pertama kita tampilkan SID yang dibuat oleh Samba yang akan digunakan sebagai SID jaringan Domain MUSLIM. # net getlocalsid SID for domain PDC is: S-1-5-21-3463420865-3665914296-2723842558
Simpan SID ini pada sebuah file agar mudah digunakan kalau sewaktu-
49
waktu diperlukan lagi, misalnya untuk mengkonfigurasi smbldap-tools, membuat server BDC dan file server, atau juga untuk troubleshooting. Kemudian sesuaikan isi file /etc/smbldap-tools/smbldap.conf dengan konfigurasi yang telah dirancang. Baris-baris konfigurasi dalam file tersebut akan digunakan sebagai atribut standar apabila membuat akun pengguna baru tanpa penambahan opsi tertentu secara manual. SID="S-1-5-21-3463420865-3665914296-2723842558" sambaDomain="MUSLIM" suffix="dc=muslim,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn=”ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=MUSLIM,${suffix}" scope="sub" hash_encrypt="SSHA" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="Normal User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="180" userSmbHome="\\%L\%U" userProfile="\\%L\profiles\%U" userHomeDrive="H:" userScript="%U.bat" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"
Sesuaikan juga isi file /etc/smbldap-tools/smbldap_bind.conf untuk menyatakan DN yang digunakan beserta password pengelolanya. Karena hanya menggunakan satu server DC saja (PDC), maka DN master dan DN slave harus diisi dengan nilai yang sama. slaveDN="cn=Manager,dc=muslim,dc=com" slavePw="[password]" masterDN="cn=Manager,dc=muslim,dc=com" masterPw="[password]"
Setelah selesai konfigurasi smbldap-tools, kita harus membuat sebuah file LDIF untuk memasukkan data struktur dari pohon LDAP yang sudah kita susun ke dalam direktori LDAP dengan ditambah SID Samba yang sudah kita dapatkan tadi. Misalnya kita buat file /etc/openldap/smbldap.ldif yang isinya sebagai berikut :
50
dn: dc=muslim,dc=com objectClass: dcObject objectClass: organization o: muslim dc: muslim dn: ou=Users,dc=muslim,dc=com objectClass: organizationalUnit ou: Users description: User List dn: ou=Idmap,dc=muslim,dc=com objectClass: organizationalUnit ou: Idmap description: Idmap List dn: ou=Groups,dc=muslim,dc=com objectClass: organizationalUnit ou: Groups description: Group List dn: ou=Computers,dc=muslim,dc=com objectClass: organizationalUnit ou: Computers description: Computer List dn: sambaDomainName=MUSLIM,dc=muslim,dc=com objectClass: sambaDomain sambaDomainName: MUSLIM sambaSID: S-1-5-21-3463420865-3665914296-2723842558
Hentikan dulu layanan LDAP, lalu hapus semua isi direktori /var/lib/ldap untuk menghapus semua data yang dimasukkan saat ujicoba sebelumnya agar siap untuk dimasukkan data yang sebenarnya. # /etc/init.d/ldap stop # rm -rvf /var/lib/ldap/*
Salin file DB_CONFIG dan jalankan lagi layanan LDAP. # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # /etc/init.d/ldap start
Kemudian masukkan data dari file smbldap.ldif ke direktori LDAP dengan perintah LDAP yaitu ldapadd : # ldapadd -x -D "cn=Manager,dc=muslim,dc=com" -w [password] -f smbldap.ldif
Setelah data dari file smbldap.ldif selesai dimasukkan ke direktori LDAP, cek lagi isi dari direktori /var/lib/ldap, seharusnya sudah terbentuk lagi file basis data LDAP yang baru. Maka sekarang struktur pohon LDAP sudah terbentuk di dalam direktori LDAP. Kemudian sampailah kita pada proses penting dari integrasi Samba-LDAP
51
ini yaitu proses untuk menggabungkan semua konfigurasi yang dibuat secara manual dan konfigurasi standar dari smbldap-tools untuk membentuk server PDC sebagai Domain Controller dari jaringan Domain MUSLIM, termasuk membuat obyek-obyek standar di dalam direktori LDAP yang mirip dengan Active Directory pada sistem Windows, dengan perintah smbldap-populate. # smbldap-populate
Proses ini sangat penting. Jika proses berhasil, sistem akan meminta untuk memasukkan password untuk akun root Domain yang akan digunakan sebagai pengelola Domain MUSLIM, dan keseluruhan proses integrasi telah berhasil dengan baik. Tetapi jika gagal, maka ada kemungkinan harus mengulangi lagi beberapa proses atau bahkan keseluruhan proses instalasi, tergantung kemampuan kita mendeteksi dan menyelesaikan permasalahan yang terjadi. Bila telah berhasil, jalankan layanan LDAP dan jalankan ulang layanan Samba, setelah itu sistem telah siap untuk digunakan. # /etc/init.d/ldap start # /etc/init.d/smb restart
4.1.4 Instalasi phpldapadmin Apabila merasa kesulitan kalau semua manajemen LDAP dilakukan di shell atau ingin tampilan yang lebih bagus, kita bisa menambahkan utilitas grafis berbasis web untuk melakukan manajemen data LDAP. Ada beberapa perangkat lunak yang bagus untuk ini, tapi penulis memilih menggunakan phpldapadmin, yang dari namanya sudah bisa ditebak bahwa ia berbasiskan php. Perangkat lunak yang dibutuhkan untuk instalasi phpldapadmin ini adalah : httpd-2.2.3-22.el5.centos php-common-5.1.6-23.el5 php-5.1.6-23.el5 php-ldap-5.1.6-23.el5 phpldapadmin-1.0.1-1.el5 Seperti yang sebelumnya, kita juga instalasikan aplikasi ini dengan utilitas YUM dengan mengambil dari repositori “epel” yang sebelumnya sudah kita dipasang : # yum install phpldapadmin
Setelah selesai instalasi, kita lanjutkan dengan menyesuaikan konfigurasi
52
phpldapadmin.
Pertama
kali
kita
harus
sesuaikan
konfigurasi
file
/etc/httpd/conf.d/phpldapadmin.conf agar phpldapadmin dapat dibuka dari komputer admin atau dari mana saja. Sesuaikan isi dari file tersebut dengan keinginan kita, misalnya agar bisa dibuka dari semua komputer di jaringan.
Order Deny,Allow Deny from all Allow from all
Baris default “Allow from 127.0.0.1” diganti dengan “Allow from all”. Setelah itu kita sesuaikan juga file /etc/phpldapadmin/config.php untuk mengarahkan data yang digunakan oleh phpldapadmin ke server LDAP. Baris-baris yang harus disesuaikan adalah sebagai berikut : $ldapservers->SetValue($i,'server','name','dc=muslim,dc=com'); $ldapservers->SetValue($i,'server','host','127.0.0.1'); $ldapservers->SetValue($i,'server','port','389'); $ldapservers->SetValue($i,'server','base',array('dc=muslim,dc=com')); $ldapservers->SetValue($i,'server','auth_type','session'); $ldapservers->SetValue($i,'login','dn','cn=Manager,dc=muslim,dc=com'); $ldapservers->SetValue($i,'login','pass','[password]'); $ldapservers->SetValue($i,'appearance','password_hash','ssha'); $ldapservers->SetValue($i,'login','attr','dn');
Setelah selesai melakukan konfigurasi, maka phpldapadmin dapat diakses melalui browser dengan alamat http://[server-LDAP]/phpldapadmin.
Gambar 4.5 Tampilan phpldapadmin
53
4.1.5 Integrasi komputer klien dengan Domain Setelah semua kebutuhan server PDC selesai terpasang, maka server sudah dapat berfungsi dengan baik untuk memberikan otentikasi bagi semua klien. Jadi sekarang kita akan mencoba untuk mengintegrasikan komputer klien PCXP ke dalam jaringan Domain.
Gambar 4.6 Integrasi komputer klien ke jaringan Domain
Integrasi komputer ke jaringan Domain dapat dilakukan dengan beberapa tahapan proses yang dikenal dengan nama join domain. Pertama kali pastikan komputer yang akan digabungkan ke Domain sudah mempunyai alamat IP dalam jaringan yang sama dengan server PDC dan sudah bisa mengakses jaringan. Kemudian konfigurasikan sebagai klien WINS dengan diarahkan ke alamat IP 192.168.10.10 /24 untuk mendapatkan layanan penamaan dari server WINS di dalam Domain.
Gambar 4.7 Konfigurasi klien WINS
54
Secara standar,
server
Domain
Controller
yang dibangun akan
mengaktifkan fasilitas roaming profile di mana semua pengguna yang login dari komputer Windows akan disalin profil lokalnya ke server, dan akan dilakukan sinkronisasi antara profil pengguna di komputernya dan di server setiap kali pengguna login dan logout dari Domain. Hal ini bagus untuk kepentingan backup. Tetapi bila kita tidak membutuhkannya, sebaiknya fasilitas ini tidak digunakan, karena akan membutuhkan spasi harddisk yang cukup besar di server, membebani lalu lintas jaringan, dan membuat lambat proses login/logout dari komputer klien. Untuk mematikan fasilitas ini, kita harus melakukannya di komputer klien dengan menggunakan utilitas gpedit.msc yang bisa dijalankan dari menu Start – Run. Setelah muncul jendela Group Policy, klik dua kali pada folder Computer Configuration – Administrative Templates – System – User Profiles, lalu klik dua kali pada menu Prevent Roaming Profile changes from propagating to the server, dan pilih option box untuk enabled. Kemudian lakukan hal yang sama pada menu Only allow local user profiles di bawahnya. Setelah keduanya diaktifkan, maka fasilitas roaming profile tidak akan dijalankan lagi di komputer tersebut.
Gambar 4.8 Menjalankan utilitas gpedit.msc Setelah itu kita bisa lakukan proses join domain melalui Control Panel – System. Masukkan nama Domain di mana komputer klien akan digabungkan lalu klik tombol OK, yang akan diikuti permintaan dari sistem untuk mengisi username dan password dari pengelola Domain. Masukkan username : root (root Domain) dan password yang diminta. Sebagai catatan, di sistem Domain Windows biasanya digunakan akun Administrator sebagai pengelola Domain, yang di dalam Domain Samba digantikan oleh akun root.
55
Gambar 4.9 Group Policy untuk mematikan fasilitas roaming profiles
Gambar 4.10 Menggabungkan komputer klien ke Domain
56
Jika proses join domain berhasil, maka sistem akan menampilkan jendela “Welcome”, sedangkan jika gagal misalnya karena salah memasukkan password bisa diulangi lagi sampai berhasil.
Gambar 4.11 Jendela “Welcome” jika join domain berhasil Tutup semua jendela, lalu restart komputer. Setelah melakukan restart sistem, sekarang komputer telah tergabung dengan Domain dan siap digunakan login ke dalam jaringan Domain dengan akun pengguna dari server PDC Samba-LDAP.
Gambar 4.12 Jendela login ke jaringan Domain
4.2. Pengujian dan analisa sistem Sesuai tujuan penulisan skripsi ini, pengujian dan analisa sistem akan dilakukan terhadap proses otentikasi yang dilakukan oleh pengguna jaringan yang melakukan login dari sistem GNU/Linux maupun Windows. Ini dilakukan untuk
57
mengetahui bagaimana proses otentikasi secara terpusat dilakukan pada saat user jaringan melakukan login dari kedua sistem, untuk mengetahui bagaimana satu akun LDAP yang sama dapat digunakan untuk login dari kedua sistem, maupun untuk mengetahui bagaimana manajemen password dilakukan agar dapat digunakan oleh kedua sistem.
4.2.1 Akun LDAP sebagai akun GNU/Linux dan Samba Sistem yang dibangun harus dapat menyediakan satu akun dan password yang sama untuk pengguna Windows dan pengguna GNU/Linux yang di simpan dalam direktori LDAP. Hal ini dapat dilakukan dengan mudah menggunakan utility smbldap-tools. Penulis akan menganalisa bagaimana sebuah akun yang disimpan dalam direktori LDAP tersebut dapat digunakan untuk login pada komputer Windows maupun GNU/Linux. Untuk itu kita akan mencoba untuk membuat sebuah akun pengguna menggunakan utilitas smbldap-tools dengan perintah smbldap-useradd. Bila perintah smbldap-useradd menggunakan opsi “-a” artinya sistem akan membuat akun pengguna LDAP dengan menggunakan atribut obyek untuk pengguna Unix dan pengguna Samba sekaligus. Sedangkan kalau tidak menggunakan opsi “-a” maka sistem hanya akan membuat akun LDAP dengan atribut obyek untuk pengguna Unix saja. Sedangkan opsi “-m” adalah untuk membuat home directory untuk akun pengguna tersebut. Kita akan coba membandingkan dengan membuat dua akun pengguna, satu dengan menggunakan opsi “-a” dan satu lagi tidak. Akun yang dibuat ada dua, yaitu : rkh dan tukul. # smbldap-useradd -a -m rkh # smbldap-passwd rkh Changing UNIX and samba passwords for rkh New password: Retype new password: # smbldap-useradd -m tukul # smbldap-passwd tukul Changing UNIX password for tukul New password: Retype new password:
58
Dalam pembuatan kedua akun tersebut, pada saat kita akan membuat password, untuk akun rkh yang dibuat dengan menggunakan opsi “-a” maka sistem akan menampilkan pesan “Changing UNIX and samba passwords for rkh” yang berarti kita diminta untuk membuat password sekaligus untuk akun Unix dan akun Samba dalam satu kali pengisian password. Ini berarti bahwa akun LDAP yang dibuat akan dapat digunakan sebagai akun Windows dan akun GNU/Linux, dan akan mempunyai password yang sama untuk mengakses sumber daya kedua sistem. Sedangkan untuk akun tukul yang tidak menggunakan opsi “-a” dalam pembuatannya, hanya diminta membuat password untuk akun Unix saja dengan menampilkan pesan “Changing UNIX password for tukul”. Ini akan berarti bahwa akun LDAP yang dibuat hanya akan berlaku dalam sistem GNU/Linux saja, dan tidak akan dapat digunakan untuk login ke dalam jaringan Windows Domain MUSLIM. Untuk pengujiannya, setelah kedua akun tadi selesai dibuat, kita akan mencoba untuk melakukan login pada sistem Windows dan GNU/Linux. Pertama kali kita akan mencoba untuk login dari komputer Windows menggunakan akun rkh yang dibuat tadi. Ternyata login berhasil dan dapat membuka profil untuk pengguna rkh di komputer PCXP seperti yang terlihat pada gambar 4.13.
Gambar 4.13 Tampilan profil rkh di komputer PCXP
59
Sedangkan saat mencoba untuk login ke Domain melalui komputer yang sama menggunakan akun tukul yang juga baru dibuat tadi, ternyata akun tukul tidak dapat melakukan login, dan sistem akan menampilkan pesan kesalahan standar yang menganggap akun tidak ada atau terjadi kesalahan memasukkan password.
Gambar 4.14 Login Windows yang gagal
Selanjutnya kita akan mencoba untuk login langsung atau melalui SSH ke server PDC menggunakan kedua akun tadi. Setelah dicoba login menggunakan kedua akun, ternyata keduanya dapat melakukan login seperti terlihat pada gambar 4.15. Ini membuktikan bahwa ada akun yang dapat dibuat untuk bisa digunakan pada kedua sistem yaitu sistem GNU/Linux maupun Windows, dan ada akun yang bisa dibuat hanya untuk digunakan di sistem GNU/Linux. Padahal kedua akun benar-benar ada di dalam direktori LDAP. Kita bisa melihatnya dengan jelas baik menggunakan utilitas perintah teks dari smbldap-tools maupun utilitas grafis phpldapadmin. Seperti yang terlihat pada Gambar 4.16 pada shell GNU/Linux, dan gambar 4.17 pada utilitas phpldapadmin.
60
Gambar 4.15 Login ssh akun tukul ke server PDC berhasil
Gambar 4.16 Melihat daftar akun pengguna dari shell
Gambar 4.17 Melihat daftar akun pengguna dari phpldapadmin
61
Pembuatan akun pengguna LDAP, pembuatan password, dan pengujiannya untuk login pada kedua sistem dapat kita lihat pada Tabel 4.1 berikut :
Tabel 4.1 Pembuatan akun LDAP dan pengujian Akun
Smbldaptools
Password
Password
Login
Login
Pengguna
opsi -a
Linux
Samba
Linux
Windows
rkh
Ya
Ya
Ya
Berhasil
Berhasil
tukul
Tidak
Ya
Tidak
Berhasil
Gagal
Dari Tabel 4.1 serta pembahasan di atas dapat terlihat bahwa pada pembuatan akun pengguna LDAP “rkh” yang menggunakan utilitas smbldaptools dengan opsi -a, sistem akan meminta pengguna membuat password Unix dan Samba, sedangkan pembuatan akun “tukul” yang tidak menggunakan opsi -a hanya akan diminta membuat password Unix saja. Dan pada saat pengujian, ternyata akun yang dibuat dengan opsi -a dapat digunakan login pada kedua sistem, sedangkan akun yang dibuat tidak dengan opsi -a hanya dapat digunakan login pada sistem GNU/Linux saja, tidak bisa pada sistem Windows. Hal ini menunjukkan bahwa akun LDAP yang dibuat dengan opsi -a dan tidak dengan opsi -a, akan menentukan sebuah akun dapat digunakan login pada sistem apa. Dan karena ada akun yang bisa digunakan di kedua sistem, GNU/Linux dan Windows, dan ada yang hanya bisa digunakan di sistem GNU/Linux saja, maka penulis akan mencoba melakukan analisa bagaimana hal ini dapat terjadi. Seperti yang sudah dijelaskan di bab sebelumnya, bahwa dalam sistem GNU/Linux standar (tanpa LDAP) akun pengguna Samba akan disimpan pada file /etc/samba/smbpasswd. Informasi akun Samba yang ada pada baris-baris isi file tersebut seperti : nama akun pengguna Samba, ID Unix, password, dan lain-lain, akan dibutuhkan oleh pengguna untuk login ke dalam sistem. Jadi apabila kita memindahkan penyimpanan akun pengguna Samba ini ke dalam direktori LDAP, maka informasi-informasi tersebut harus ada sebagai atribut-atribut dari obyek pengguna yang dibuat. Demikian juga untuk akun pengguna Unix dan semua informasinya yang dalam sistem standar akan disimpan pada file /etc/passwd, /etc/shadow, /etc/group, dan /etc/gshadow, bila penyimpanannya dipindahkan ke
62
dalam direktori LDAP, informasi-informasi untuk akun tersebut juga harus ada sebagai atribut dari obyek akun LDAP yang dibuat. Untuk memastikan hal ini, kita harus melihat ke dalam direktori LDAP yang ada untuk mengetahui atribut apa saja yang terdapat dalam akun rkh dan akun tukul sehingga mereka mempunyai fungsi login yang berbeda. Pertama kita akan melihat daftar atribut yang dimiliki oleh akun rkh yang disimpan dalam direktori LDAP menggunakan utilitas smbldap-usershow. # smbldap-usershow rkh dn: uid=rkh,ou=Users,dc=muslim,dc=com objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount,sa mbaSamAccount cn: rkh sn: rkh givenName: rkh uid: rkh uidNumber: 1000 gidNumber: 513 homeDirectory: /home/rkh loginShell: /bin/bash gecos: Normal User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 displayName: rkh sambaSID: S-1-5-21-2371255455-1086036942-374098211-3000 sambaPrimaryGroupSID: S-1-5-21-2371255455-1086036942-374098211-513 sambaLogonScript: rkh.bat sambaProfilePath: \\%L\profiles\rkh sambaHomePath: \\%L\rkh sambaHomeDrive: H: sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000 sambaLMPassword: 33907952135EE928F7E62F36F8DB5AE6 sambaAcctFlags: [U] sambaNTPassword: DE217BEE63A1120B039C22205689CCDA sambaPwdLastSet: 1267356368 sambaPwdMustChange: 1271244368 userPassword: {SSHA}PNYv8c1Zw0M2htjJ6eK/ntHY+s1ZT3lH shadowLastChange: 14668 shadowMax: 180
Kemudian kita bandingkan dengan melihat juga daftar atribut yang dimiliki oleh akun tukul dalam direktori LDAP dengan menggunakan utilitas yang sama, yaitu smbldap-usershow. # smbldap-usershow tukul
63
dn: uid=tukul,ou=Users,dc=muslim,dc=com objectClass: top,person,organizationalPerson,inetOrgPerson,posixAccount,shadowAccount cn: tukul sn: tukul givenName: tukul uid: tukul uidNumber: 1007 gidNumber: 513 homeDirectory: /home/tukul loginShell: /bin/bash gecos: Normal User userPassword: {SSHA}FkqXjkwSuSez2z6sV7pXjuqUZfpMNElT shadowLastChange: 14668 shadowMax: 180
Perhatikan pada bagian “objectClass” dari kedua akun yang penulis tebalkan agar terlihat lebih jelas. Di sana terlihat bahwa kelas obyek (objectClass) yang dimiliki oleh kedua akun ternyata berbeda. Pada akun rkh terdapat kelas obyek “sambaSamAccount”, sedangkan pada akun tukul tidak terdapat kelas obyek tersebut. Kelas obyek “sambaSamAccount” inilah yang digunakan oleh LDAP untuk menyediakan penyimpanan data akun Samba beserta atributatributnya. Kelas obyek ini dapat digunakan oleh LDAP karena adanya skema Samba yang telah dikonfigurasikan saat pembangunan sistem di awal bab ini pada bagian instalasi OpenLDAP.
Tabel 4.2 Hasil analisa login akun LDAP Akun
Kelas Obyek
Pengguna SambaSam
rkh
Kelas Obyek
Login
Login
posixAccount &
Linux
Windows
Berhasil
Berhasil
Account
shadowAccount
Ada
Ada
Analisa
Akun yang punya atribut dari ketiga kelas akan
obyek dapat
itu login
pada kedua sistem tukul
Tidak
Ada
Berhasil
Gagal
Akun
yang
tidak
mempunyai atribut dari
kelas
obyek
SambaSamAccount tidak
dapat
pada Windows
login
64
Maka karena akun tukul tidak memiliki kelas obyek sambaSamAccount, terlihat jelas kalau atribut yang dimilikinya juga lebih sedikit dibandingkan atribut yang terdapat pada akun rkh. Bila pada akun rkh terdapat atribut yang berawalan “samba” untuk menyimpan informasi akun Samba, pada akun tukul tidak demikian. Dan karena tidak memiliki atribut yang dibutuhkan untuk akun Samba, tentu saja ia tidak akan dapat login ke dalam Domain melalui komputer Windows PCXP, karena seperti sudah kita bahas sebelumnya, bahwa untuk dapat login dari sebuah komputer Windows, kita memerlukan akun Samba. Sedangkan kedua akun dapat login langsung ke server GNU/Linux karena mereka sama-sama memiliki kelas obyek posixAccount dan shadowAccount yang menyediakan penyimpanan atribut untuk akun Unix. Inilah yang menyebabkan perbedaan fungsi dari kedua akun tersebut, yang hasil analisanya dapat dilihat pada Tabel 4.2. Jadi apa yang dapat dilakukan oleh sebuah akun pengguna yang disimpan pada direktori LDAP akan sangat ditentukan oleh atribut obyek yang ia miliki, dan tergantung dari kelas obyek apa saja yang ia punyai. Kita dapat melihat daftar atribut yang disediakan oleh masing-masing kelas obyek dengan jelas menggunakan utilitas phpldapadmin pada browser seperti yang dapat dilihat contohnya pada Gambar 4.18 untuk kelas obyek posixAccount.
Gambar 4.18 Atribut kelas obyek posixAccount
65
Sedangkan hubungan antara atribut yang digunakan pada obyek akun LDAP kelas obyek posixAccount dan sambaSamAccount dengan informasi yang terdapat pada sistem penyimpanan standar untuk akun Unix dan akun Samba (tanpa LDAP), dapat dilihat contohnya pada Gambar 4.19 dan Tabel 4.3, serta Gambar 4.20 dan Tabel 4.4.
:rkh : x : 500 : 500 : Riyadi KH : /home/rkh : /bin/bash
1
2
3
4
5
6
7
Gambar 4.19 Contoh informasi akun Unix dalam file /etc/passwd
Tabel 4.3 Hubungan akun Unix dan atribut dari kelas obyek posixAccount Kolom
Contoh isi /etc/passwd
Atribut dari kelas obyek posixAccount
1
rkh
uid
2
x
userPassword
3
500
uidNumber
4
500
gidNumber
5
Riyadi KH
cn
6
/home/rkh
homeDirectory
7
/bin/bash
loginShell
rkh : 500 : 3907952135E... : 6A2F58B21.... : [U
1
2
3
4
5
] : LCT-4AB19A1D:
6
Gambar 4.20 Contoh informasi akun Samba dalam file /etc/samba/smbpasswd
66
Tabel 4.4 Informasi akun Samba dan atribut kelas obyek sambaSamAccount Kolom
Contoh isi smbpasswd
Atribut dari kelas obyek sambaSamAccount
1
rkh
cn
2
500
uid
3
33907952135E....
sambaLMPassword
4
6A02F58B21.....
sambaNTPassword
5
U
sambaAcctFlags
6
LCT-4AB19A1D
sambaPwdLastSet
Atribut lain yang terdapat dalam obyek akun LDAP tapi tidak terdapat dalam Tabel 4.3 dan Tabel 4.4 adalah dari kelas obyek shadowAccount dan atribut tambahan yang didefinisikan oleh sistem LDAP dan oleh konfigurasi standar maupun manual dari perangkat lunak smbldaptools. Atribut standar dari sistem LDAP didefinisikan oleh kelas obyek standar dari LDAP yaitu : top, person, organizationalPerson, dan inetOrgPerson yang dapat dilihat juga menggunakan utilitas phpldapadmin. Atribut tambahan beserta nilainya yang didefinisikan oleh perangkat lunak smbldap-tools secara standar dapat dilihat pada script program dari utilitas-utilitas smbldap-tools seperti smbldap-populate, smbldap-useradd, dan lain-lain, yang terdapat dalam direktori /usr/sbin pada server PDC. Sedangkan atribut tambahan dari utilitas smbldaptools yang dapat kita definisikan secara manual adalah apa yang kita tuliskan pada baris-baris konfigurasi dalam file /etc/smbldap-tools/smbldap.conf seperti yang sudah dijelaskan pada saat pembangunan sistem. Jadi uraian tersebut telah dapat membuktikan bahwa sistem yang dibangun mampu untuk menyediakan sebuah akun LDAP yang dapat berfungsi sebagai akun Unix maupun akun Samba yang dapat digunakan untuk login pada kedua sistem, dan sekaligus juga menjelaskan bagaimana hal itu dapat terjadi.
4.2.2 Penyimpanan dan penggunaan data password pengguna Pada saat pengguna login ke dalam sistem dan dapat menggunakan akun dan password yang sama untuk mengakses sistem Windows dan GNU/Linux,
67
pengguna akan merasa bahwa hanya terdapat satu akun pengguna dan satu password baginya untuk mengakses sistem. Apalagi sistem yang dibangun memberikan fasilitas pada pengguna untuk dapat mengganti password miliknya secara langsung melalui desktop Windows yang digunakannya, yang mana setelah mengganti password miliknya, password barunya tersebut juga akan tetap dapat digunakan untuk mengakses sistem Windows maupun GNU/Linux. Penulis akan melakukan analisa bagaimanakah sebenarnya penyimpanan dan penggunaan password dalam sistem ini sehingga dapat digunakan login pada dua sistem yang berbeda, yaitu pada sistem Windows dan GNU/Linux. Kalau kita melihat atribut yang dimiliki oleh sebuah akun pengguna di LDAP yang dibuat melalui utilitas smbldap-useradd dengan opsi “-a”, maka kita akan melihat bahwa di sana ada tiga buah atribut berbeda yang berisi password terenkripsi yang tampak jelas berbeda antara satu dengan lainnya, yaitu atribut userPassword, sambaLMPassword, dan sambaNTPassword. Kita bisa melihatnya dengan menjalankan utilitas smbldap-usershow pada server PDC. Hasilnya akan seperti ini :
Gambar 4.21 Penggantian password pengguna melalui desktop Windows
dn: uid=rkh,ou=Users,dc=muslim,dc=com ............... sambaLMPassword: 33907952135EE928F7E62F36F8DB5AE6 ...............
68
sambaNTPassword: DE217BEE63A1120B039C22205689CCDA ............... userPassword: {SSHA}PNYv8c1Zw0M2htjJ6eK/ntHY+s1ZT3lH ...............
Mengapa kita dapat menggunakan satu password yang sama untuk mengakses jaringan sedangkan di sana terdapat tiga buah password yang tampak berbeda masing-masing isinya? Sebenarnya memang password yang tersimpan dalam direktori LDAP untuk pengguna yang mempunyai kelas obyek sambaSamAccount bukan hanya satu, tetapi ada tiga. Pengguna akan merasa bahwa ia hanya menggunakan satu buah password adalah karena isi dari ketiga password tersebut selalu sama. Isi ketiga password tampak berbeda karena mereka masing-masing disimpan dalam keadaan terenkripsi di mana ketiganya menggunakan metode enkripsi yang berbeda. Atribut userPassword berasal dari kelas obyek posixAccount, sedangkan sambaLMPassword
dan
sambaNTPassword
berasal
dari
kelas
obyek
sambaSamAccount. Maka seharusnya atribut userPassword akan digunakan untuk menyimpan password untuk akun Unix, sedangkan sambaLMPassword dan sambaNTPassword digunakan untuk menyimpan password akun Samba. Isi dari atribut userPassword dapat kita lihat bahwa ia dienkripsi menggunakan SSHA, sedangkan sambaLMPassword dan sambaNTPassword berisi informasi password Samba yang dienkripsi menggunakan DES yang kompatibel dengan Windows 95/98 dan MD4 yang kompatibel dengan Windows NT, seperti yang sudah dijelaskan pada bab sebelumnya. Jadi mestinya dalam proses otentikasi apabila kita login melalui komputer Windows XP, sistem akan menggunakan nilai atribut sambaNTPassword sebagai pembanding, sedangkan bila login ke server GNU/Linux, sistem akan menggunakan nilai atribut userPassword sebagai pembanding, selain itu mestinya apabila kita login dari komputer Windows 95 atau Windows 98 sistem akan menggunakan nilai atribut sambaLMPassword sebagai pembanding. Kita akan coba buktikan bahwa memang seperti itu yang terjadi. Untuk itu penulis akan melakukan pengujian dengan cara mengganti nilai masing-masing atribut password dari akun LDAP rkh menjadi seperti dalam Tabel 4.5 melalui utilitas phpldapadmin.
69
Tabel 4.5 Nilai password yang berbeda untuk ketiga atribut No
Nama atribut
Nilai atribut
1
userPassword
linux
2
sambaNTPassword
windowsxp
3
sambaLMPassword
windows98
Kemudian dicoba untuk
login ke dalam masing-masing sistem
menggunakan nilai atribut password seperti yang disebutkan dalam tabel dengan cara memasukkan ketiganya secara bergantian untuk mengakses masing-masing sistem yang digunakan, yaitu di komputer PDC (GNU/Linux), komputer PCXP (Windows XP), dan komputer PC98 (Windows 98). Dan hasil yang didapat adalah seperti yang dapat dilihat pada Tabel 4.6. Dari hasil ujicoba yang disebutkan dalam Tabel 4.6, terlihat jelas bahwa proses login yang berhasil adalah login yang menggunakan nilai dari atribut password yang sesuai dengan peruntukan sistemnya, persis seperti yang sudah dibahas sebelumnya. Dengan demikian dapat dibuktikan kalau proses otentikasi akun LDAP memang menggunakan tiga macam password untuk mengakses masing-masing sistem yang berbeda. Lantas bagaimana ketiganya bisa bernilai sama sehingga pengguna hanya merasa bahwa ia menggunakan satu password saja? Kita akan coba melihat lagi ke dalam konsep sistem yang dibangun.
Tabel 4.6 Hasil login dengan tiga password yang berbeda No 1
2
3
Sistem PDC (Linux)
PCXP (Windows XP)
PC98 (Windows 98)
Nama atribut
Nilai atribut
Status Login
UserPassword
linux
Berhasil
sambaNTPassword
windowsxp
Gagal
sambaLMPassword
windows98
Gagal
UserPassword
linux
Gagal
sambaNTPassword
windowsxp
Berhasil
sambaLMPassword
windows98
Gagal
UserPassword
linux
Gagal
sambaNTPassword
windowsxp
Gagal
sambaLMPassword
windows98
Berhasil
70
Sebelumnya sudah dijelaskan bahwa sebuah akun Samba dalam sistem standar yang disimpan pada file /etc/samba/smbpasswd akan menyimpan dua jenis password yang berbeda (tapi bernilai sama), yang kemudian dipisahkan menjadi dua atribut obyek yang berbeda saat dipindahkan penyimpanannya ke dalam direktori LDAP. Dan sebagaimana dalam sistem standarnya, maka dalam sistem PDC yang menggunakan Samba dan LDAP ini, sistem tetap membuat dua password dengan nilai yang sama tapi dienkripsi dengan cara berbeda untuk mendukung model password Windows NT dan model password Windows lama yang dipakai pada Windows 95/98. Jadi setiap kali membuat dan mengganti password Samba yang baru, sistem akan selalu membuat/mengganti kedua buah password ini secara bersamaan dengan nilai yang sama. Inilah yang membuat selalu ada atribut sambaLMPassword dan sambaNTPassword dalam akun pengguna LDAP yang menggunakan kelas obyek sambaSamAccount. Sedangkan
bagaimana
nilai
dari
atribut
sambaLMPassword
dan
sambaNTPassword dapat sama dengan nilai dari atribut userPassword adalah karena kita membuat akun pengguna LDAP menggunakan utilitas smbldapuseradd dengan menggunakan opsi “-a” seperti yang sebelumnya sudah dibahas, serta menggunakan utilitas smbldap-passwd untuk membuat password, di mana script program dalam file /usr/sbin/smbldap-useradd dan /usr/sbin/smbldappasswd akan membuatkan sekaligus password Unix dan password Samba yang dibutuhkan. Lalu bagaimana penggantian password dari desktop Windows dapat sekaligus mengganti nilai dari atribut userPassword yang berisi password untuk akun Unix? Hal ini dapat dilakukan dengan memasang sebuah variabel konfigurasi di dalam file /etc/samba/smb.conf di bagian [global] yaitu : ldap passwd sync = Yes. [global] ................... ldap passwd sync = Yes ...................
Variabel konfigurasi ini akan membuat sistem melakukan sinkronisasi antara
nilai atribut
password
Samba,
yaitu
:
sambaNTPassword
dan
sambaLMPassword, dengan nilai atribut password Unix yaitu userPassword,
71
sehingga apabila pengguna mengganti password melalui desktop Windows, secara otomatis kedua password Samba dan password Unix akan diganti menggunakan password yang baru tersebut. Karena itu atribut password yang manapun yang digunakan oleh pengguna, nilainya akan tetap sama sehingga ia akan merasakan menggunakan satu buah password saja. Untuk membuktikan ini penulis juga melakukan pengujian dengan memberikan nilai yang berbeda pada variabel konfigurasi yang sama pada file /etc/samba/smb.conf yaitu “ldap passwd sync” menjadi bernilai “No”, lalu melakukan restart service Samba. [global] ................... ldap passwd sync = No ................... # /etc/init.d/smb restart
Kemudian penulis kembali mengganti password untuk pengguna rkh melalui desktop komputer PCXP, kemudian melakukan login menggunakan password yang baru ke Domain melalui komputer PCXP dan komputer PC98, serta ke server PDC melalui shell Linux. Ternyata tidak seperti sebelumnya, sekarang tidak semua atribut password mempunyai nilai yang sama sehingga login ke server PDC tidak berhasil, sedangkan pada PCXP dan PC98 login berhasil dilakukan.
Tabel 4.7 Sinkronisasi pada penggantian password No
1
Nilai atribut
Dilakukan
ldap passwd
sinkronisasi
sync
password
Yes
Ya
Hasil dan Analisa
Nilai dari atribut UserPassword, sambaNTPassword, sambaLMPassword, akan sama karena ketiganya disinkronkan oleh sistem
2
No
Tidak
Nilai
dari
atribut
sambaNTPassword
sambaLMPassword akan sama, tapi
nilai
dan atribut
UserPassword akan berbeda karena tidak disinkronkan oleh sistem
72
Jadi dengan diubahnya variabel konfigurasi “ldap passwd sync” menjadi bernilai “No”, maka penggantian password pengguna yang dilakukan di komputer Windows hanya akan mengubah nilai dari atribut sambaNTPassword dan sambaLMPassword, tidak otomatis mengubah nilai dari atribut userPassword. Ini membuktikan bahwa password Samba dan password Unix tetap merupakan dua password yang terpisah, mereka selalu bernilai sama karena nilainya selalu disinkronkan dengan adanya variabel konfigurasi “ldap passwd sync = Yes” pada konfigurasi Samba di dalam file /etc/samba/smb.conf. Jadi mekanisme penggunaan password seperti itulah yang membuat pengguna seakan-akan mempunyai hanya satu buah password saja untuk login dari sistem Windows dan GNU/Linux, padahal tidak. Tapi sepanjang dari sisi pengguna tetap merasa menggunakan akun pengguna dan password yang sama, maka tidak ada masalah, tujuan dibangunnya sistem tetap tercapai. Pengelola jaringan dapat mengelola satu buah penyimpanan data akun pengguna secara terpusat, dan pengguna dapat menggunakan satu akun dan password yang sama untuk login dari sistem GNU/Linux dan Windows.
4.2.3 Analisa hasil log dari koneksi LDAP/Samba Untuk membuktikan bahwa proses otentikasi yang terjadi saat pengguna login adalah dilakukan terhadap data yang tersimpan pada direktori LDAP di server PDC, penulis juga menggunakan file-file log yang ada di server PDC yang mencatat detail proses koneksi LDAP dan Samba. File-file log tersebut adalah /var/log/ldap.log dan /var/log/samba/smbd/log.
4.2.3.1 Log LDAP saat login melalui Windows Pada saat seorang pengguna melakukan login melalui komputer Windows, sistem akan melakukan otentikasi pada layanan netlogon dari Samba di server PDC. Kemudian Samba akan mengakses direktori LDAP untuk mencari informasi akun yang digunakan dan kemudian mencocokkannya dengan username dan password saat login. Pada saat itulah sistem akan mencatat proses yang terjadi pada layanan slapd di server PDC. Pada saat penulis login menggunakan akun rkh melalui komputer klien PCXP, maka sistem akan menambahkan baris-baris log
73
dari layanan LDAP ke dalam file /var/log/ldap.log tersebut. Isi dan penjelasan untuk baris-baris dari dalam file log tersebut yang kita butuhkan adalah sebagai berikut (berurutan dari atas ke bawah) : ..................... Jun 15 01:47:45 pdc slapd[2794]: => access_allowed: search access to "uid=rkh,ou=Users,dc=muslim,dc=com" "uid" requested Jun 15 01:47:45 pdc slapd[2794]: <= root access granted ..................... ..................... Jun 15 01:47:45 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "uid" requested Jun 15 01:47:45 pdc slapd[2794]: <= root access granted ..................... ..................... Jun 15 01:47:45 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "sambaLMPassword" requested Jun 15 01:47:45 pdc slapd[2794]: <= root access granted ..................... ..................... Jun 15 01:47:45 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "sambaNTPassword" requested Jun 15 01:47:45 pdc slapd[2794]: <= root access granted .....................
Contoh cara membaca baris log tersebut misalnya yang ditampilkan paling atas adalah : pada bulan Juni tanggal 15 pukul 01:47:45, pada server PDC, dibuka layanan LDAP (slapd) pada PID 2794, tercatat telah dijinkan layanan akses pencarian (search) untuk suffix LDAP "uid=rkh,ou=Users,dc=muslim,dc=com" dengan permintaan akses untuk atribut “uid”. Kemudian akses diijinkan sebagai pengguna root. Dari baris-baris dalam file log tersebut terlihat bahwa terdapat proses pada layanan slapd untuk membuka layanan pencarian (search) untuk atribut “uid” dan kemudian membuka layanan pembacaan (read) pada semua atribut yang dibutuhkan oleh Samba, yang dalam hal ini hanya penulis tampilkan untuk atribut uid, sambaLMPassword, dan sambaNTPassword sesuai yang dibutuhkan dalam pengujian di sini. Pada proses ini sistem LDAP memberikan ijin untuk mencari dan membaca dalam direktori LDAP menggunakan akses pengguna root LDAP yang telah didefinisikan sebelumnya pada file /etc/openldap/slapd.conf dengan menggunakan file /etc/samba/secrets.tdb yang berisikan password root LDAP.
74
Sebagaimana kita lihat pada atribut-atribut yang dibaca oleh sistem LDAP dan muncul di dalam file log, terlihat kalau proses pembacaan tidak dilakukan pada kelas obyek posixAccount dan shadowAccount. Jadi selain kelas obyek yang pokok (yaitu top, person, organizationalPerson, dan inetOrgPerson), sistem hanya akan membaca kelas obyek sambaSamAccount, karena memang hanya itulah yang dibutuhkan oleh Samba untuk melakukan otentikasi. Yang juga perlu menjadi perhatian dalam baris-baris log berikutnya seperti yang terlihat di atas (yang telah dipotong bagian-bagiannya untuk memudahkan pembacaan), adalah bahwa proses ini juga membaca atribut "sambaLMPassword" dan "sambaNTPassword" yang berisi password dari akun pengguna untuk otentikasi melalui sistem Windows. Jadi kebutuhan untuk proses otentikasi sudah dapat terpenuhi dengan terdapatnya uid yang cocok dengan akun yang dimasukkan saat login, kemudian sistem akan mencocokkan password pengguna pada atribut "sambaLMPassword" dan "sambaNTPassword". Bila password cocok maka login berhasil, sedangkan jika tidak cocok maka login gagal.
4.2.3.2 Log LDAP saat login melalui shell Linux Hasil pencatatan di dalam file log yang muncul saat pengguna login melalui sistem GNU/Linux (yang dilakukan melalui shell Linux langsung di server PDC atau melalui aplikasi SSH), ternyata sedikit berbeda dengan hasil log saat pengguna login melalui komputer klien Windows. Perbedaannya adalah bahwa pada saat pengguna login melalui shell Linux, maka akses yang digunakan bukanlah root melainkan anonymous seperti yang bisa kita lihat di bawah ini : ......................... Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: search access to "uid=rkh,ou=Users,dc=muslim,dc=com" "uid" requested Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: backend default search access granted to "(anonymous)" ......................... ......................... Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "uid" requested Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: backend default read access granted to "(anonymous)" Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "userPassword" requested Jun 15 01:58:22 pdc slapd[2794]: => access_allowed: backend default read access granted to "(anonymous)"
75
......................... ......................... Jun 15 01:58:23 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "sambaLMPassword" requested Jun 15 01:58:23 pdc slapd[2794]: => access_allowed: backend default read access granted to "(anonymous)" ......................... ......................... Jun 15 01:58:23 pdc slapd[2794]: => access_allowed: read access to "uid=rkh,ou=Users,dc=muslim,dc=com" "sambaNTPassword" requested Jun 15 01:58:23 pdc slapd[2794]: => access_allowed: backend default read access granted to "(anonymous)" .........................
Contoh cara membaca baris log tersebut misalnya yang ditampilkan paling atas adalah : pada bulan Juni tanggal 15 pukul 01:58:22, pada server PDC, dibuka layanan LDAP (slapd) pada PID 2794, tercatat telah dibuka layanan akses pencarian (search) untuk suffix LDAP "uid=rkh,ou=Users,dc=muslim,dc=com" dengan permintaan akses untuk atribut “uid”. Kemudian akses diijinkan sesuai pengaturan dasar dari layanan LDAP yaitu dengan menggunakan pengguna anonymous yang berarti siapa saja. Juga dapat kita perhatikan di sana bahwa jika pengguna login melalui klien Windows, LDAP tidak melakukan pembacaan terhadap kelas obyek posixAccount dan shadowAccount. Tetapi saat pengguna login melalui shell Linux di server PDC, maka terlihat bahwa LDAP membaca semua atribut dari semua kelas obyek yang ada termasuk kelas obyek sambaSamAccount yang di dalamnya terdapat atribut sambaLMPassword dan sambaNTPassword, meskipun tidak dibutuhkan dalam proses otentikasinya.
4.2.3.3 Log Samba pada saat login melalui Windows Isi dari file /var/log/samba/smbd.log yang ditampilkan di sini juga didapatkan atau ditulis pada file log tersebut pada saat pengguna melakukan login dari sistem Windows, yang tidak dilakukan saat pengguna login melalui sistem GNU/Linux. Isi file log tersebut adalah sebagai berikut : [2010/07/25 00:54:34, 1] smbd/service.c:make_connection_snum(1033) pcxp (192.168.10.6) connect to service netlogon initially as user rkh (uid=1012, gid=513) (pid 4756) [2010/07/25 00:54:42, 1] smbd/service.c:close_cnum(1230) pcxp (192.168.10.6) closed connection to service netlogon
76
Cara membaca baris log tersebut adalah : pada tanggal 25 Juli 2010 pukul 00:54:34, telah dibuka layanan Samba (smbd) netlogon untuk koneksi dari komputer klien PCXP dengan IP address 192.168.10.6, yang telah diinisialisasi sebagai pengguna rkh dengan uid=1012, gid=513, dengan PID 4756. Kemudian setelah proses inisialisasi dilakukan, layanan netlogon ditutup kembali. Dari file log tersebut terlihat kalau pada saat pengguna melakukan login dari sistem Windows ke dalam Domain, maka layanan Samba (smbd) di server PDC akan membuka layanan netlogon untuk melakukan inisialisasi atas akun rkh yang melakukan login tersebut dengan menampilkan User ID dan Group ID-nya. Hal ini menunjukkan kalau proses login pengguna melalui sistem Windows tidak dilakukan langsung pada direktori LDAP, melainkan melalui aplikasi Samba terlebih dahulu, baru kemudian Samba akan mengambil data pengguna yang dibutuhkan pada direktori LDAP yang ditentukan.
4.2.3.4 Message flow otentikasi login pengguna melalui Windows Untuk membuktikan terjadinya proses otentikasi pada server PDC, penulis juga menggunakan perangkat lunak wireshark untuk menangkap message flow yang terjadi antara klien PCXP dan server PDC saat pengguna melakukan login. Dari hasil penangkapan message flow tersebut, terlihat bahwa pada saat pengguna login telah terjadi proses klien-server antara PCXP (IP 192.168.10.6) dengan server PDC (IP 192.168.10.10) untuk melakukan otentikasi. Proses tersebut dapat dilihat pada Gambar 4.22 dan Gambar 4.23 berikut penjelasannya.
Gambar 4.22 Hasil pengangkapan message flow proses login Windows
77
Gambar 4.23 Diagram Message flow proses login Windows
Penjelasan Gambar 22 dan Gambar 23 : Proses terpenting yang berhubungan dengan topik penelitian yaitu proses otentikasi pengguna, dapat dilihat pada empat baris pada gambar sebagai berikut : 1. SMB Session Setup AndX Request, NTLMSSP_NEGOTIATE 2. SMB Session Setup AndX Response, NTLMSSP_CHALLENGE, … 3. SMB Session Setup AndX Request, NTLMSSP_AUTH, User: MUSLIM/rkh 4. SMB Session Setup AndX Response Yang masing-masingnya dapat dibaca sebagai berikut : 1. Komputer PCXP mengirimkan permintaan (request) ke server PDC menggunakan protokol SMB berupa NTLMSSP_NEGOTIATE. 2. Server PDC memberikan respon berupa pesan NTLMSSP_CHALLENGE yang membutuhkan proses lebih lanjut 3. Komputer PCXP mengirimkan permintaan NTLMSSP_AUTH ke server PDC untuk penggguna rkh dari Domain MUSLIM 4. Server
PDC memberikan respon yang
menunjukkan telah berhasil
dilakukannya otentikasi untuk pengguna rkh dari Domain MUSLIM untuk memasuki sistem, yang dapat terlihat pada isi header SMB pada Gambar 22 : User ID: 107 (MUSLIM\rkh) [Primary Domain: MUSLIM] [Account: rkh ] [logged In: 279]
78
4.2.4 Analisa proses login pengguna menggunakan diagram alur Penulis juga melakukan analisa terhadap proses login dan otentikasi pengguna yang dilakukan melalui sistem Windows maupun GNU/Linux yang digambarkan dalam bentuk diagram alur. Diagram alur ini akan menggambarkan proses login yang dilakukan oleh pengguna saat menggunakan data LDAP untuk otentikasi, baik secara langsung melalui protokol LDAP pada sistem GNU/Linux maupun melalui Samba pada sistem Windows. Keduanya akan dilukiskan pada Gambar 4.24 dan Gambar 4.25.
79
Gambar 4.24 Diagram alur proses login melalui sistem GNU/Linux
80
Gambar 4.25 Diagram alur proses login melalui sistem Windows
81
Analisa proses login melalui shell GNU/Linux pada server PDC (Gambar 4.24) : 1. Pengguna memasukkan username dan password pada prompt login di server GNU/Linux PDC secara langsung ataupun melalui SSH/Putty. 2. Sistem membaca file /etc/nsswitch.conf, dan menjalankan konfigurasi yang terpasang di sana, yaitu untuk otentikasi pengguna akan dilakukan dengan cara standar dengan menggunakan file data pengguna lokal dan dengan menggunakan data pada direktori LDAP. Karena “files” disebutkan lebih dahulu baru “ldap”, maka sistem akan melakukan pengecekan ke dalam file /etc/passwd dan /etc/shadow terlebih dahulu baru kemudian ke dalam direktori LDAP. Dan agar tidak terdapat duplikasi data antara penyimpanan data lokal dan LDAP, sistem tidak akan mengijinkan pembuatan sebuah akun pengguna (lokal ataupun LDAP), apabila nama akun yang sama sudah ada pada file /etc/passwd atau pada direktori LDAP. Ini dilakukan melalui PAM dan utilitas smbldap-useradd yang kode programnya telah penulis modifikasi dengan menambahkan kemampuan pengecekan ke dalam file /etc/passwd. 3. Bila akun pengguna terdapat dalam file /etc/passwd, maka sistem akan mencari data password pengguna dalam file /etc/shadow. Bila password sesuai maka pengguna akan diotentikasi, bila password tidak sesuai maka sistem akan mencari data akun tersebut pada direktori LDAP. 4. Bila akun pengguna tidak ada dalam file /etc/passwd, maka sistem akan mencari data pada direktori LDAP. Jika tidak ditemukan, maka login gagal, sedangkan jika akun pengguna ditemukan maka sistem akan mencocokkan password pengguna dengan nilai dari atribut userPassword. Jika tidak sesuai maka login gagal, sedangkan jika sesuai maka login berhasil.
Analisa proses login melalui komputer klien Windows (Gambar 4.25) : 1. Pengguna menekan Ctrl-Alt-Del dalam jendela login Windows. 2. Pengguna memasukkan username dan password, memilih log on to Domain MUSLIM. 3. Bila komputer tidak berhasil menemukan DC, sistem akan mencari dalam cache komputer lokal yang akan mencatat informasi username dan password yang pernah digunakan login di komputer tersebut, kemudian
82
melakukan proses otentikasi akun Domain secara lokal. Bila username dan password cocok, maka pengguna akan diijinkan masuk ke komputer dan membuka profilnya, meskipun ia tidak dapat mengakses jaringan. 4. Apabila pada proses boot sebelumnya telah menemukan server DC, maka proses login akan mengirimkan username dan password ke server PDC. 5. Proses login Samba akan membaca file /etc/samba/smb.conf saat layanan smbd dijalankan, dan karena terdapat konfigurasi untuk menggunakan ldapsam dengan mengarahkan otentikasi ke server LDAP, maka sistem akan mencari data pengguna ke server LDAP yang didefinisikan di sana. 6. Sistem akan mencari apakah akun pengguna ada dalam direktori LDAP pada suffix yang sesuai dengan yang disebutkan dalam file smb.conf tadi. 7. Bila akun tidak ada, maka login gagal. Apabila akun ditemukan maka sistem akan mencocokkan password pengguna dengan nilai dari atribut sambaNTPassword kalau pengguna login dari komputer Windows XP, atau sambaLMPassword kalau pengguna login dari komputer Windows 98. 8.
Jika password cocok, maka proses otentikasi akan mengijinkan pengguna memasuki sistem, dan bila tidak cocok, maka login akan gagal.