Pengontrolan Akses pada Web Server
Pajar Rachman Achmad & Onno W. Purbo 
(CNRG@itb.ac.id)

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 <Directory> dan </Directory>, sedangkan untuk bagian perintahnya terdapat pada bagian yang dibatasi dengan <Limit> dan </Limit>. Berikut ini adalah perintah yang dapat digunakan untuk mengatur akses :

order	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	
allow	Menentukan alamat internet yang memperoleh hak akses.
allow from host (host1 host2 host3 …)	
deny	Menentukan alamat internet yang dilarang untuk mengakses.
deny from host (host1 host2 host3 … )	
host	domain-name	Hanya host yang memiliki domain tersebut yang ditutup / 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 ip address	1-3 byte pertama dari IP address untuk menunjukan 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 perintah-perintah 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 :

Daftar Pustaka : 
Managing Internet Information Service, Cricket Liu, Jerry Peek, Russ Jones, Bryan Buus, & Adrian Nye, O'reilly & Associates, Inc.