BAB III ANALISA MASALAH DAN PERANCANGAN SISTEM
3.1 Menggabungkan otentikasi dalam sistem GNU/Linux dan Windows Sebenarnya sistem operasi Windows sudah menyediakan solusi yang sangat baik untuk membangun sistem otentikasi terpusat dalam jaringannya, yaitu Windows Domain dan Active Directory pada Windows Server yang sangat terkenal dan digunakan secara luas. Dalam jaringan Windows Domain ini pengelolaan otentikasi pengguna jaringan dipusatkan pada sebuah server yang dinamakan Domain Controller (DC). Konsep ini sangat memudahkan bagi pengelola sistem maupun penggunanya, karena dengan menerapkan jaringan Windows Domain, pengguna dapat login dari komputer mana saja yang terdaftar dalam jaringan dan dapat mengakses semua sumber daya jaringan sesuai otorisasi yang diberikan padanya. Ini dapat dilakukan dengan hanya menggunakan satu akun dan satu password dengan sekali login. Sedangkan semua data pengguna untuk otentikasi akan disimpan pada server Domain Controller dalam sebuah layanan direktori yang bernama Active Directory (AD). Konsep Windows Domain dan Active Directory ini dikembangkan khusus untuk jaringan Windows dengan integrasi yang sangat baik untuk berbagai server dan aplikasi yang berasal dari vendor yang sama. Sehingga apabila semua komputer yang ada dalam jaringan, server maupun workstation, menggunakan sistem Windows, maka pengelolaan sumber daya jaringan akan menjadi sangat mudah dilakukan. Namun dalam beberapa tahun terakhir ini sistem operasi GNU/Linux sebagai server jaringan juga telah semakin banyak digunakan. Memang pemanfaatan sistem GNU/Linux ini masih lebih banyak sebagai server Internet yang membutuhkan kecepatan, kestabilan,
dan keamanan yang tinggi.
Karakteristik dari sistem operasi ini yang tetap membawa sifat-sifat dari sistem Unix sebagai induknya, membuatnya sangat cocok digunakan sebagai server Internet. Akan tetapi penggunaan sistem ini sebagai server jaringan lokal juga mulai banyak digunakan seiring dengan meningkatnya kebutuhan akan komputer server internal yang ringan, stabil, dan aman, meskipun dari sisi pengelolaan 30
31
masih relatif lebih sulit dibanding sistem Windows yang mempunyai sistem manajemen server berbasis GUI yang sangat bagus dan memudahkan bagi penggunanya. Sifat dari sistem operasi ini yang free dan opensource juga banyak memberikan keuntungan tersendiri bagi pengguna pribadi, dunia pendidikan, dan juga dalam dunia bisnis baik dalam skala perusahaan kecil, perusahaan menengah, sampai perusahaan besar. Kondisi yang demikian itu pada akhirnya membuat munculnya suatu kebutuhan untuk dapat menggabungkan antara sistem GNU/Linux yang dikenal dengan kecepatan, kestabilan, dan keamanannya dalam dunia server dan jaringan, dengan sistem Windows yang menawarkan kemudahan manajemen jaringan dan aplikasi-aplikasi desktop yang sangat baik. Maka kemudian timbul keinginan untuk membuat jaringan Windows Domain dengan server Domain Controller yang dibangun menggunakan sistem GNU/Linux. Ini adalah sebuah ide yang sangat ambisius. Bagaimana mungkin menjadikan sistem GNU/Linux sebagai server Domain Controller jaringan Windows Domain? Namanya saja “Windows” Domain. Tetapi ternyata dalam sistem Unix dan turunannya, terdapat sebuah aplikasi bernama Samba yang merupakan jembatan untuk berkomunikasi dengan sistem Windows. Ini karena Samba menggunakan protokol SMB yang mampu menyediakan layanan NBT (NetBIOS over TCP/IP) yang digunakan dalam komunikasi antar mesin dalam jaringan Windows. Setelah pada awalnya Samba dikembangkan hanya untuk menyediakan kemampuan berbagi file dan printer dengan sistem Windows untuk mesin-mesin Unix, maka dalam pengembangan selanjutnya, Samba dibangun dengan fungsionalitas untuk tidak sekedar menjadi “komputer Windows” di dalam jaringan Windows dengan kemampuan berbagi file dan printer, tapi lebih dari itu Samba juga dirancang untuk mampu menggantikan server Windows sebagai Domain Controller (DC) di dalam jaringan Windows Domain. Dan Domain Controller (DC) inilah yang menjadi pusat otentikasi dalam jaringan Windows Domain. Sebelum adanya Samba, bagi orang yang memahami bagaimana sistem posix (Unix dan turunannya) dan sistem Windows bekerja, mungkin akan berpikir
32
bahwa tidak mungkin untuk mewujudkan itu, karena Windows dan GNU/Linux adalah dua sistem yang sangat berbeda dalam banyak hal, termasuk cara untuk berkomunikasi dan melakukan otentikasi bagi pengguna sistemnya. Tapi ternyata para pengembang Samba telah menjadikan itu sebagai hal yang mungkin. Dan bagi penulis, ini adalah hal yang luar biasa, menggabungkan kelebihan sistem GNU/Linux yang kuat, ringan, stabil, dan berlisensi bebas, dengan sistem Windows (khususnya konsep Domain) yang memudahkan pengelolaan jaringan dengan penggunaan otentikasi terpusat bagi semua pengguna jaringan.
3.1.1 Menggabungkan Samba dan LDAP Sebagai Domain Controller yang menjadi pusat otentikasi dalam jaringan Windows Domain, penggunaan Samba saja masih belum cukup sebagai penyimpanan data akun pengguna jaringan. Dibutuhkan sebuah perangkat lunak lagi untuk mendukung Samba dalam menyediakan penyimpanan data akun pengguna jaringan yang ringan, cepat, kuat, dan fleksibel dalam penggunaannya pada skala kecil sampai dengan enterprise. Dan sebagaimana layaknya Active Directory pada server Windows yang merupakan sebuah perangkat lunak untuk layanan direktori yang juga bekerja menggunakan protokol LDAP, maka kita juga membutuhkan sebuah perangkat lunak yang serupa, yaitu layanan direktori berbasis LDAP untuk mendukung Samba menyediakan fungsi penyimpanan data akun pengguna jaringan. Beberapa perangkat lunak selain Active Directory yang menyediakan layanan direktori yang mampu menyediakan sistem otentikasi terpusat ini, yang diantaranya juga berjalan di atas sistem Unix dan turunannya, yaitu diantaranya : 1. Novell eDirectory 2. IBM Tivoli Directory Server 3. CentOS Directory Server (CDS) 4. Fedora Directory Server (FDS) 5. OpenLDAP Akan tetapi beberapa perangkat lunak tersebut, baik yang berjalan pada server Unix dan turunannya maupun yang berjalan pada sistem Windows, umumnya merupakan perangkat lunak paket yang sudah jadi. Beberapa
33
diantaranya juga seperti Active Directory, bukan merupakan perangkat lunak berlisensi bebas (free), yang merupakan perangkat lunak tertutup – sehingga tidak memudahkan untuk menggunakannya sesuai tujuan penulisan skripsi ini. Dalam hal ini Penulis memilih menggunakan perangkat lunak OpenLDAP untuk penulisan skripsi ini karena beberapa alasan : OpenLDAP merupakan perangkat lunak opensource yang berlisensi bebas OpenLDAP merupakan inti dari beberapa perangkat lunak LDAP lain OpenLDAP bersifat modular, jadi dapat dikonfigurasi dengan lebih bebas sesuai keinginan penggunanya Karena otentikasi terpusat dalam jaringan Windows dapat disediakan oleh sistem Domain, dan Samba mampu untuk membangun sistem Domain menggunakan server GNU/Linux yang menggunakan latar belakang (backend) layanan direktori dari OpenLDAP, maka ini adalah solusi yang tepat dan sesuai dengan kebutuhan penulis. Jadi dengan membuat server Samba yang menggunakan latar belakang (backend) penyimpanan datanya di server LDAP, semua pengguna berbasis Windows akan dapat melakukan otentikasi dengan menggunakan akun Samba yang tersimpan dalam direktori LDAP tersebut. Sedangkan untuk pengguna ataupun perangkat lunak yang membutuhkan otentikasi berbasis sistem GNU/Linux juga dapat melakukan otentikasi melalui akun Unix yang juga tersimpan dalam direktori LDAP yang sama sebagai satu akun pengguna yang sama dengan akun Samba. Dengan ini lengkaplah solusi untuk membangun sistem yang penulis butuhkan yaitu dengan menggunakan GNU/Linux, Samba, dan OpenLDAP, sebagai perangkat lunak untuk basis server dalam sistem yang akan dibangun dan dianalisa oleh penulis pada skripsi ini. Bagaimana sebuah Domain Controller pada jaringan Windows Domain dapat dibangun menggunakan sistem GNU/Linux dengan menggunakan perangkat lunak Samba beserta OpenLDAP, serta bagaimana proses otentikasi dari kedua sistem dapat dilakukan dengan menggunakan satu akun yang sama pada direktori LDAP adalah merupakan hal yang menarik bagi penulis untuk mengangkatnya dalam penulisan skripsi ini.
34
3.2 Perancangan sistem Penulis membuat tiga buah perancangan untuk sistem yang akan dikembangkan dan analisa yang akan dilakukan :
Perancangan arsitektur logika.
Perancangan untuk integrasi perangkat lunak pada server.
Perancangan struktur pohon direktori LDAP.
3.2.1 Perancangan arsitektur logika Untuk membuat rancangan arsitektur logika yang sesuai dengan tujuan penulisan skripsi, penulis menggunakan model jaringan Windows Domain secara standar dengan beberapa obyek seperti dilukiskan pada Gambar 3.1. Keterangan untuk Gambar 3.1 adalah sebagai berikut : Sebuah jaringan Windows Domain yang dinamakan MUSLIM Sebuah server GNU/Linux PDC sebagai Domain Controller (DC) jaringan Windows Domain yang menjalankan Samba dan OpenLDAP sebagai penyimpanan data dan menjadi pusat otentikasi dari semua pengguna. Komputer PCXP (Windows XP) dan PC98 (Windows 98) sebagai klien jaringan Domain untuk melakukan login dengan otentikasi Samba pada server PDC Samba-LDAP dengan alamat IP 192.168.10.6 dan 192.168.10.5, juga dengan netmask 255.255.255.0.
Gambar 3.1 Rancangan arsitektur logika
35
3.2.2 Perancangan integrasi perangkat lunak pada server Struktur perangkat lunak pada server dibangun secara standar dengan menggunakan beberapa perangkat lunak yang dirangkai dan dikonfigurasi sedemikian rupa sehingga dapat membentuk suatu kesatuan server PDC SambaLDAP yang dibutuhkan untuk melayani jaringan. Perangkat lunak yang digunakan tersebut adalah : 1. Samba daemon (smbd) 2. OpenLDAP daemon (slapd) 3. Pluggable Authentication Modules (PAM) 4. Paket smbldap-tools Samba akan menyediakan jaringan Domain, file sharing, dan single sign-on, OpenLDAP digunakan untuk penyimpanan data akun pengguna, Pluggable Authentication Modules (PAM) digunakan untuk memasukkan modul otentikasi LDAP ke dalam sistem otentikasi lokal pada server GNU/Linux (PDC), sedangkan smbldap-tools digunakan untuk mengintegrasikan konfigurasi serta penggunaan dari Samba dan OpenLDAP menjadi sebuah layanan server SambaLDAP yang mudah dikelola, dengan menyediakan perangkat manajemen berbasis teks yang sangat bagus. Ilustrasi dari integrasi perangkat lunak yang dirancang adalah seperti yang dilukiskan pada Gambar 3.2.
Gambar 3.2 Rancangan integrasi perangkat lunak Samba-LDAP
36
3.2.3 Perancangan struktur pohon direktori LDAP Fungsi server LDAP dalam rancangan yang dibuat adalah sebagai latar belakang (backend) dari Samba yang juga digunakan sebagai tempat penyimpanan data akun pengguna, sekaligus untuk menyediakan fungsi sebagai akun Samba dan akun Unix dalam satu akun LDAP yang sama. Hal ini bisa dilakukan dengan memindahkan informasi akun pengguna GNU/Linux yang ada dalam file /etc/passwd, /etc/shadow, /etc/group, dan /etc/gshadow serta informasi akun pengguna Samba yang ada dalam file /etc/samba/smbpasswd ke dalam struktur direktori LDAP sebagai obyek dan atribut. Sedangkan untuk memenuhi kebutuhan sebagai latar belakang (backend) dari Samba yang merupakan Domain Controller jaringan Windows Domain, maka seperti layaknya sebuah Domain Controller pada server Windows, di dalam pohon direktori LDAP perlu dibuat entry untuk menyimpan data akun pengguna, grup, dan komputer di dalam beberapa Organizational Unit (OU) yang terpisah. Rancangan untuk struktur pohon direktori LDAP yang dibuat adalah standar dalam sistem ini, yaitu seperti pada Gambar 3.3.
Gambar 3.3 Rancangan struktur pohon direktori LDAP
37
Penjelasan untuk rancangan struktur pohon direktori LDAP pada Gambar 3.3 adalah sebagai berikut :
Base DN menggunakan struktur domain component (dc) LDAP sebagai berikut : dc=muslim, dc=com. Istilah DC yang digunakan dalam struktur ini adalah singkatan dari Domain Component, yaitu sebuah istilah yang digunakan untuk menyatakan suatu domain obyek dalam penamaan di sistem LDAP. Dan ini berbeda dengan istilah DC yang digunakan dalam jaringan Windows Domain yang merupakan singkatan dari Domain Controller, yaitu suatu server yang menjadi pusat pengontrol otentikasi pengguna dalam jaringan Windows Domain.
Akun pengelola adalah “Manager” dengan Distinguished Name (DN) sebagai berikut : cn=Manager, dc=muslim, dc=com. Akun ini akan digunakan sebagai pengguna dengan hak akses root dalam mengakses seluruh obyek dalam pohon direktori LDAP yang dibutuhkan. Akun pengguna dengan hak akses root adalah merupakan sebuah akun LDAP yang mempunyai hak akses tidak terbatas dalam mengakses direktori LDAP, termasuk untuk membuat, merubah, ataupun menghapus suatu obyek dalam pohon direktori.
Menggunakan empat buah Organizational Unit (OU) yaitu : OU=Users untuk menampung pengguna Domain, OU=Groups untuk menyimpan grup Domain, OU=Computers yang berisi komputer Domain, dan OU=Idmap untuk menempatkan identity mapping Contoh isi masing-masing OU seperti pada gambar : Untuk akun pengguna dengan uid=rkh, akan ditempatkan dalam OU=Users. Sedangkan untuk sebuah akun grup domain yang bernama Domain Users, akan disimpan dalam OU=Groups. Untuk nama-nama komputer klien dalam jaringan Windows Domain, seperti komputer klien PCXP yang digunakan di sini, akan disimpan dalam OU=Computers.
Idmap digunakan untuk menyimpan pemetaan (mapping) SID dan UID dari Domain yang berbeda agar pengguna dari Domain lain dapat diakui sebagai pengguna Domain lokal yang diperbolehkan mengakses sumber daya dalam Domain lokal. Juga bila Samba akan dijadikan sebagai BDC dari sebuah PDC
38
server Windows di jaringan Domain. Dalam skripsi ini Idmap tidak digunakan karena penulis hanya menggunakan satu buah Domain saja, tetapi Idmap ini tetap harus dibuat menjadi sebuah OU tersendiri sebagai kelengkapan sistem yang disiapkan untuk keperluan pengembangan.