Cara membatasi hak akses folder di web server apache berdasarkan alamat IP di Ubuntu Server


Melalui tutorial ini saya akan membahas bagaimana membatasi akses suatu alamat IP ke sebuah folder yang dapat diakses melalui web. Jadi ini mutlak hanya alamat IP yang diperbilehkan saja mengakses folder tersebut. Katakanlah anda punya repository lokal atau web apps lokal yang hanya boleh diakses oleh alamat IP lokal.

Berikut skenarionya:

saya memiliki web server apache yang diinstall di Ubuntu Server 14.04 LTS, kemudian saya memiliki folder "privat" yang dapat diakses melalui browser dengan alamat: http://192.168.0.254/privat/ akan tetapi saya hanya ingin folder tersebut hanya dapat diakses oleh alamat IP 192.168.0.19 sedangkan komputer lain, misalnya alamat 192.168.0.2 tidak dapat mengakses folder tersebut. Jika saya menggunakan firewall untuk mengeblok akses ke web server, maka seluruh layanan web server tersebut menjadi tidak dapat diakses, padahal di dalam web server tersebut juga ada layanan lainnya yang tersimpan di folder yang lain misalnya http://192.168.0.254/aplikasi/ . 

Solusinya ada beberapa cara untuk membatasi akses tersebut, misalnya memanfaatkan file.htaccess atau melakukan konfigurasi di web server apache yang melayani akses tersebut. Untuk tutorial kali ini, saya ingin membahas menggunakan konfigurasi web server apache.


Pertama, anda harus memastikan lokasi folder di dalam web server yang akan dibatasi aksesnya. Misalnya saja saya menaruh folder tersebut di lokasi:

 /var/www/html/privat/

kemudian saya buka file konfigurasi apache dengan menjalankan perintah:

 sudo vim /etc/apache/apache2.conf

kemudian tambahkan konfigurasi di bawah ini:

 <Directory /var/www/html/privat>
   Options Indexes FollowSymlinks
   Order allow,deny
   Allow from 192.168.0.19
   AllowOverride all
   Require all granted
 </Directory>

simpan, kemudian silakan restart web server apache anda dengan perintah:

 sudo service apache2 restart

lalu coba buka browser dan akses melalui alamat yang berbeda, jika saya mengakses folder privat tersebut bukan dari alamat 192.168.0.19 maka hasilnya:


jika saya mengakses dari alamat IP yang diperbolehkan untuk mengaksesnya, maka hasilnya:


Mudah bukan? Selamat mencoba dan semoga membantu :-)

Comments