Pengontrolan Akses dan Sekuriti pada Web Server

advertisement
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 <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
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 :
Download