Pengontrolan Akses pada Web Server Di internet, pada saat kita membuat suatu Web Server berarti kita memberikan akses kepada orang lain untuk melihat dan memanfaatkan dokumen yang disajikan di dalamnya. Pada saat memberikan akses ini tidak tertutup kemungkinan bagi orang lain untuk memanfaatkan akses yang diberikan untuk kegiatan yang tidak diharapkan. Sebagai contoh yang baru-baru ini cukup ramai dibicarakan adalah ketika web server badan pemerintahan kita yang telah dimasuki oleh para Cracker dari Portugis, mengacak-acak dan melakukan perubahan terhadap dokumen di beberapa server Web di Indonesia. Dalam artikel ini ada dua hal yang akan dibicarakan yaitu mengenai pengaturan akses orang terhadap web server dan keamanan dari web server. Jika kita dengan senang hati memberikan akses yang tidak terbatas untuk orang lain terhadap web server kita maka bagian yang mengenai pengaturan akses, tidak perlu untuk dibaca akan tetapi perlu untuk memperhatikan bagian yang selanjutnya yang menjelaskan bagaimana mengatur keamanan dalam sistem tempat web server dijalankan. Bagaimana Cara Mengontrol Akses ? Untuk mengontrol akses seseorang terhadap sebuah web server dapat dilakukan melalui dua hal yaitu melalui alamat internet user dan autentifikasi user. Web server akan menerima atau menolak suatu permintaan hubungan dari user melalui web browsernya, berdasarkan pada alamat internet user tersebut. Jika alamat internet seorang user telah tercantum dalam daftar 'black list' web server, maka user tersebut tidak akan dapat mengakses web server tersebut kecuali dengan mengganti alamat internetnya dengan alamat lain yang tidak termasuk dalam daftar 'black list'. Pada pengontrolan akses dengan menggunakan autentifikasi, user diminta untuk melakukan autorisasi dengan memasukin nama user dan password. Nama user dan passwordnya ini harus telah terdaftar pada server tersebut, jika gagal maka otomatis web server akan menutup hak akses user tersebut, dan user tersebut harus mengulang kembali autorisasi sampai berhasil agar dapat mengakses web server. Pengaturan akses juga dapat digunakan dengan menggunakan kombinasi dari kedua metoda ini. Dengan Apa Akses Dikontrol ? Di dalam web server terdapat suatu file yang dapat digunakan untuk mengontrol akses terhadap web server. File tersebut dikenal dengan Access Control File atau ACF. Ada dua buah ACF yang dapat digunakan yaitu ACF secara global yang memiliki nama file access.conf dan ACF yang digunakan untuk direktori, dengan nama file .htaccess. Nama kedua file ini sebenarnya dapat diatur sesuai dengan keinginan, namun secara default nama keduanya adalah seperti itu. Nama kedua file tersebut dapat diatur melalui file konfigurasi web server, srm.conf. Hampir semua perangkat lunak untuk web server memiliki bentuk file-file ACF yang sama, baik itu Apache, NCSA, CERN, maupun yang lain-lainnya. Berikut ini adalah contoh umum dari file ACF, access.conf dan .htaccess :
Gambar 1. Isi file access.conf
Gambar 2. Isi file .htaccess File access.conf digunakan untuk mengontrol akses secara luas terhadap web server dan dapat juga digunakan untuk mengatur akses terhadap suatu direktori. Dalam memasang web server perlu untuk memperhatikan file ini, bahkan semua perangkat lunak untuk web server mewajibkan administrator untuk mengedit terlebih file ini untuk menyesuaikan dengan layanan yang diinginkan. Jika diinginkan untuk mengatur akses terhadap direktori yang ada secara khusus, maka dapat digunakan .htaccess. Gunakanlah .htaccess ini untuk membagi pengaturan akses dan mendelegasikannya pada masing-masing bagian, sebagai contoh adalah jika server yang dimiliki menangani berbagai divisi, dan untuk setiap divisi diinginkan untuk mengatur aksesnya masing-masing. File .htaccess harus diletakan pada masing-masing direktori. Pengaturan akses terhadap file tidak tersedia, oleh karena itu file tersebut harus diletakan dalam sebuah direktori. Mengatur Akses berdasarkan Alamat Internet. Dengan berdasarkan dari alamat internet, administrator dapat memperbolehkan atau melarang seseorang untuk mengakses web server, tanpa memperhatikan nama usernya. Dan ini akan bekerja dengan baik pada semua web browser, tidak seperti fasilitas autentifikasi user. Pengaturan akses dalam file ACF terdapat pada bagian yang dibatasi dengan dan , sedangkan untuk bagian perintahnya terdapat pada bagian yang dibatasi dengan dan . Berikut ini adalah perintah yang dapat digunakan untuk mengatur akses : order
allow deny host
Digunakan untuk menentukan urutan pembacaan perintah allow dan deny. Defaultnya adalah deny,allow. alow,deny Perintah allow dievaluasi terlebih dahulu sebelum deny deny,allow Perintah deny dievaluasi terlebih dahulu sebelum allow Menentukan alamat internet yang memperoleh hak akses. allow from host (host1 host2 host3 …) Menentukan alamat internet yang dilarang untuk mengakses. deny from host (host1 host2 host3 … ) domainHanya host yang memiliki domain tersebut yang ditutup name / diberi akses di web server. Contoh : itb.ac.id Hostname Nama host. Contoh : xxx.itb.ac.id ip address IP address dari sebuah host. Contoh : 167.205.22.108
Bagian dari 1-3 byte pertama dari IP address untuk menunjukan ip address subnet yang diberi / ditutup aksesnya di web server. Contoh : 167.205.22 all Artinya semua host ditutup aksesnya di web server Diluar bagian Limit tetapi dalam bagian Directory terdapat perintah Options dan AllowOverride. Options digunakan untuk mengatur fasilitas lebih lanjut yang diperbolehkan dalam web server sedangkan AllowOverride digunakan untuk menentukan apakah .htaccess dapat mengesampingkan access.conf atau tidak. Berikut ini adalah contoh file access.conf :
Pada bagian Limit berarti : a. Perintah order digunakan untuk memberitahu httpd untuk mengevaluasi terlebih dahulu perintah deny sebelum allow, dan melakukan pengecualian pada bagian allow. b. Deny from all, berarti menutup akses terhadap semua host. c. Allow from ITB.ac.id, berarti mengubah dari all menjadi semua domain kecuali ITB.ac.id. Jika web server diharapkan dapat diakses oleh beberapa domain maka tinggal menambahkan nama domain yang diinginkan ke dalam perintah allow Deny from all Allow from ac.id net.id co.id Artinya memperbolehkan siapa saja dari ketiga domain ini untuk mengakses web server tetapi menutup akses untuk orang dari domain lainnya. Autentifikasi User Dengan cara ini, setiap kali user akan mengakses suatu direktori maka ia akan dihadapkan dengan 2 pertanyaan nama user dan passwordnya. Database untuk nama dan password ini tidak ada hubungannya dengan account user di server tersebut, sehingga untuk autentifikasi di web server orang tidak perlu memiliki account pada server tersebut. Tidak semua web server memiliki fasilitas autentifikasi user. Salah satu perangkat lunak untuk web server yang memiliki fasilitas tersebut adalah web server NCSA. Untuk konfigurasi dasar, source untuk autentifikasi user ini tidak disertakan, oleh karena itu perlu untuk mengambil source dari web server NCSA secara lengkap. Source untuk autentifikasi user ini adalah htpasswd.c yang terletak di direktori support Namun perlu diperhatikan bahwa web browser yang digunakan harus mendukung autentifikasi user. Jika tidak maka user tidak dapat melakukan autorisasi. Hampir sebagian besar web browser sekarang telah mendukung autentifikasi user, termasuk lynx yang jalan di unix. Database nama user dan passwordnya terletak dalam suatu file hypertext yang secara defaultnya bernama .htpasswd. Nama file ini dapat diganti dengan
nama lain yang sesuai dengan keinginan. Berikut ini adalah contoh isi file dari .htpasswd :
File .htpasswd dibuat dengan menggunakan htpasswd, dengan sintaks seperti ini : htpasswd –c .htpasswd nama_user Options –c digunakan jika file .htpasswd masih belum ada, untuk selanjutnya tidak perlu untuk menggunakan options tersebut. Setelah perintah tersebut dijalankan maka akan diminta untuk memasukan password dari user tersebut. Berikut ini adalah isi dari file access.conf yang telah mengalami perubahan untuk menangani autentifikasi user ini. Konfigurasi seperti ini dapat digunakan pada ACF untuk direktori, .htaccess, jika memang diinginkan secara autentifikasi secara khusus terhadap direktori. Keterangan untuk perintahperintah di atas adalah sebagai berikut : Authuserfile Untuk menentukan letak dan nama file database user/password Authgroupfile Untuk menentukan letak dan nama file group dari user Authname Adalah bentuk prompt yang akan diberikan untuk autentifikasi Authtype Perintah ini untuk menentukan tipe autorisasi yang digunakan Require Pada bagian Limit, allow dan deny digantikan dengan require. Bagian ini untuk memberitahu httpd bahwa hanya nama yang termasuk dalam daftar yang dapat mengakses direktori ini. Konfigurasi di atas adalah ditujukan untuk autentifikasi perorangan. Perhatikan bagian AuthGroupFile yang diarahkan ke /dev/null, dalam standar unix ini berarti file tersebut tidak ada. Jika ingin membuat autentifikasi secara group maka harus ditentukan suatu file yang berisi keterangan mengenai group dari user dan harus disebutkan dalam ACF. Berikut ini adalah contoh access.conf yang telah dimodifikasi untuk kepentingan autentifikasi secara group.
AuthGroupFile telah berubah dari /dev/null menjadi sebuah file yang bernama .htgroup dan terletak didirektori /usr/local/httpd/conf. Isi dari file .htgroup adalah seperti berikut : nama_group1: user1 user2 user3 … user-n nama_group2: user_a user_b user_c … user-n Pengaturan akses melalui alamat internet dan autentifikasi user dapat digabung menjadi satu, bisa dilihat pada contoh konfigurasi access.conf di bawah ini :