Senin, 04 Juli 2016

Konfigurasi Keamanan Layanan Web (Secure Access)



Apache Web server memiliki beragam opsi konfigurasi bagi administrator. Masalahnya, pada saat anda hosting, anda tidak memiki akses pada konfigurasi apache. Akibatnya anda tidak dapat melakukan perubahan setting dan terpaksa menggunakan konfigurasi default. Salah satu alternative yang dapat dilakukan untuk melakukan overriding konfigurasi default adalah dengan melakukan setting lewat file .htacces.

File .htaccess berupa file ascii yang ditempatkan pada direktori www atau subdirektori www. Anda dapat membuat file ini lewat editor teks seperti notepad dan diupload dalam bentuk ASCII (bukan BINARY) di direktori mana yang anda ingin memodifikasi setting. Selain itu, hak akses file diset sebagai 644 (rw-r--r--). Fungsinya adalah memungkinkan server mengakses file, namun mencegah pengunjung untuk mengakses file lewat browser mereka karena alas an keamanan. 

Perintah pada file .htaccess akan mempengaruhi semua direktori dan subdirektori dimana file tersebut diletakkan. Jika anda meletakkannya di sub direktori dari direktori www, maka file htaccess akan mempengaruhi direktori www dan semua direktori dibawahnya.  Yang perlu diperhatikan adalah semua perintah pada file .htacess bersifat case sensitive dan didesain untuk diletakkan pada satu baris. 

Beberapa fitur file .htaccess
1.      Untuk memberikan pesan error 
Jika anda ingin melakukan overriding  pesan error dari server, anda dapat menggunakan .htaccess untuk mng-kustomisasi pesan error yang baru. Contoh konfigurasinya :
ErrorDocument 500 /error.html
Override SSI Settings

2.      Melakukan overriding setting SSI 
Secara default, hanya halaman web yang memiliki ekstensi .shtml yang akan melakukan parsing server-side includes (SSI). Anda dapat melakukan overriding konfigurasi default ini agar SSI dapat bekerja dengan file .html dan .htm dengan menambahkan baris ini pada .htaccess. Contoh:     
AddType text/html .html
AddHandler server-parsed .html
AddHandler server-parsed .htm 

3.      Mengganti file index.* pada homepage
Anda bisa mengganti halaman pertama  web page anda yang biasanya berawal dengan index.html, index.cgi, index.shtml, dan lainnya dengan  namafileku.html. Perhatikan bahwa, biasanya file pertama yang digunakan semua memiliki awal index.*.  Selain itu juga, secara default, server akan mendisplay file index.* berdasarkan prioritasnya. Artinya file index.cgi memiliki keutamaan untuk ditampilkan disbanding index.html.
Misalkan anda ingin mengganti file index.* dengan nama file: filebaru.html, tambahkan baris berikut pada file .htaccess :

DirectoryIndex hieronymous.html

Jika server tidak menemukan file dengan nama filebaru.html, server akan mengeluarkan halaman pesan error: 404 Missing Page. Untuk mengubah prioritas file yang ditampilkan, anda dapat melakukan hal dibawah, dimana orde prioritas ditentukan dari yang sebelah kiri (paling tinggi) hingga paling kanan (terendah).

DirectoryIndex hieronymous.html index.cgi index.php index

4.      Memungkinkan browsing direktori 
Karena alasan sekuritas, user dilarang untuk melihat isi direktori atau disebut fasilitas directory indexing. Dengan menggunakan file .htaccess, anda dapat mengijinkan user untuk melihat index direktori web page anda. Contoh, misalnya anda memanggil http://www.domainku.com/gambar/, maka web server akan melisting semua file pada direktori   /gambar, tanpa perlu membuat file html dengan linknya.   Tinggal tambahkan baris ini pada file .htaccess untuk melakukan indexing directory.

Options +Indexes

5.      Mengeblok user untuk mengakses web site 
Jika anda ingin mencegah akses website pada user tertentu, asalkan anda tahu IP address atau domain name yang digunakan oleh user tersebut, anda dapat menggunakan file .htaccess untuk mengeblok user tersebut dari mengakses website anda.
<Limit GET>
order deny,allow
deny from 10.252.44.210
deny from 10.252.32.
deny from .domainku.com
allow from all
</Limit>

Pada contoh diatas, user dari nomor IP 10.252.44.210 akan di blok. Semua user dari network  10.252.32.000 s.d 10.252.32.255 akan diblok. Semua user dari domain domainku.com akan diblok. Ketika mereka mencoba mengakses website anda, mereka akan menerima pesan error 403 Forbidden ("You do not have permission to access this site")

6.      Redireksi pengunjung ke halaman web baru atau direktori 
Bila anda mengubah seluruh isi web site anda, memberikan nama baru bagi halaman dan direktori. Pengunjung pada halaman web lama akan menerima kode error 404, File Not Found. Anda dapat mengatasi masalah ini dengan melakukan redireksi panggilan ke halaman lama ke halaman baru. Contoh: jika halaman web lama anda adalah ../lama.html dan anda ingin menggantinya dengan baru.html pada website yang lain, maka anda dapat menambahkan baris ini pada file .htaccess

Redirect permanent /lama.html http://www.domainbaru.com/baru.html 

Dengan penambahan ini, pengunjung yang mengakses website lama pada halaman lama.html  akan dikirim menuju website baru pada halaman baru.html. Selain redireksi file, anda juga bisa melakukan redireksi untuk seluruh isi direktori. Contoh: bila anda hendah meredireksi pengunjung pada seluruh directory website lama ke direktori website baru. Tambahkan baris ini pada htaccess.

Redirect permanent /direktori-lama http://www.domainbaru.com/direktori-baru/

Ada beberapa tipe redireksi :
·         permanent – halaman web dipindah secara permanen (kode status: 301)
·         temp – halaman web dipindah secara temporer (kode status: 302)
·         seeother - halaman web  diganti (kode status : 303)
·         gone - halaman web telah dihapus secara permanen (kode status : 410)

7.      Mencegah hot linking dan bandwidth leeching 
Hotlinking adalah tindakan mencuri image dan bandwith dengan melink-an image file yang dimiliki oleh suatu web server dengan web server lain secara ilegal. Hal ini dapat dicegah dengan menambahkan baris dibawah pada  file .htaccess
Dengan cara ini, image anda hanya akan terdisplay ketika pengunjung benar-benar mengunjungi site anda. Semua image yang dilinking dengan domain lain akan nampak sebagai broken image.

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainku.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Anda bahkan bisa menambahkan image lain sebgai ganti pada halaman yg terlink—dengan image yang menyindir pencurian gambar tersebut. Tambahkan baris ini untuk melakukan hal tersebut :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainku.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.domainku.com/curi.gif [R,L]
 
8.      Mencegah pengunjung melihat file.htaccess atau file lain
Untuk mencegah pengunjung untuk melihat isi dari file .htaccess, tambahkan baris  ini pada file .htaccess
<Files .htaccess>
order allow,deny
deny from all
</Files>

1.      Tugas Pendahuluan
1.      Sebutkan fungsi file htaccess ? Apa hak akses .htaccess? Dimana file htaccess disimpan?
File .htaccess merupakan file konfigurasi yang disediakan oleh web server Apache, yang biasanya digunakan untuk mengubah setting default dari Apache. Kita ketahui untuk saat ini sebagian besar hosting web di internet menggunakan Apache sebagai servernya sehingga bagi para pengelola web harus belajar tentang .htaccess supaya dapat melakukan modif terhadaf settingan default dari server. File .htaccess adalah fil text ASCII sederhana yang biasanya diletakkan di direktori root. File ini diharuskan dalam format ASCII bukan format binary dan untuk file permission (atribut file) pada server hosting harus diset 644 (rw-r-r). Hal ini bertujuan agar server dapat mengakses file .htaccess, tapi mencegah user untuk mengakses file .htaccess dari beowser mereka. Karena file .htaccess diletakkan di direktori root maka file ini dapat digunakan untuk mengubah konfigurasi dari subdirektori-subdirektori yang ada di dalam direktori root. Sehingga untuk satu website biasanya kita cukup menediakan satu file .htaccess saja yang kita letakkan di dalam direktori root. Kode perintah yang ada di dalam file .htaccess harus ditempatkan dalam satu baris.

2.      Apa keuntungan dan kerugian menggunakan file .htaccess ?
Kelebihan :
2.      Overide SSL settings
Kekurangan :
·         semua linknya harus berupa absolute link, baik itu untuk image maupun file eksternalnya, maksudnya apabila anda biasanya menggunakan relatif link seperti:
../image/file.jpg atau ../../image/file.jpg
·         Tidak semua server mengaktifkan settingan ini, atau bisa menghubungi server yang digunakan agar dapat mengaktifkannya, tetapi harus menjelaskan tujuan penggunaan, agar administrator mempercayai.
3.      Apa yang disebut hot linking dan bandwidth leeching. Bagaimana mencegah hot linking dan bandwith leeching ?
Hot linking adalah tindakan mencuri image dan bandwith dengan melink-an image file yang dimiliki oleh suatu web server dengan web server lain secara ilegal. Hal ini dapat dicegah dengan menambahkan baris dibawah pada  file .htaccess
Dengan cara ini, image anda hanya akan terdisplay ketika pengunjung benar-benar mengunjungi site anda. Semua image yang dilinking dengan domain lain akan nampak sebagai broken image.

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainku.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]

Anda bahkan bisa menambahkan image lain sebgai ganti pada halaman yg terlink—dengan image yang menyindir pencurian gambar tersebut. Tambahkan baris ini untuk melakukan hal tersebut :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?domainku.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.domainku.com/curi.gif [R,L]

4.      Bagaimana mencegah user dg nomor IP tertentu  mengakses  homepage?
Bagi pemilik situs atau orang yang mengelola situs, kemampuan untuk bisa membatasi akses pengunjung tertentu ke situs adalah keharusan. Membatasi akses ke sebuah situs adalah salah satu bagian penting dalam mengelola pengunjung situs. Suatu saat nanti, Anda mungkin perlu melakukan hal-hal semacam ini. Anda dapat melarang atau tidak mengijinkan untuk mengakses situs apabila mengetahui seseorang sedang menggunakan banyak bandwidth, memposting konten-konten jahat, memberi komentar yang tidak diinginkan dan lain sebagainya. Untuk dapat melarang akses ke sebuah situs, Anda memanfaatkan alamat IP (IP address) dari pengunjung tersebut.
Anda dapat memantau semua alamat IP yang masuk ke situs Anda melalui Lastest Visitors yang ada di bagian Logs dari cPanel. Apabila ada alamat IP tertentu yang Anda curigai telah melakukan aktifitas yang tidak diinginkan, Anda dapat mencegah pengunjung dengan alamat IP tersebut untuk melakukan kunjungan berikutnya ke situs Anda. Larangan untuk mengakses situs Anda dapat dilakukan melalui dua opsi yaitu .htaccess dan IP Deny Manager. Berikut ini adalah langkah-langkah untuk mencegah (prevent) alamat IP tertentu mengakses situs menggunakan IP Deny Manager :
§  Terlebih dahulu masuk ke area cPanel menggunakan akun cPanel Anda. Klik tombol IP Deny Manager yang ada di bagian Security dari area cPanel.
§  Masukkan alamat IP pengunjung yang ingin Anda cegah untuk mengakses situs dan kemudia tekan tombol Add.
§  Anda akan mendapatkan pesan bahwa alamat IP pengunjung yang Anda masukkan tidak akan dapat mengakses situs Anda lagi. Klik tombol Go Back untuk kembali ke area IP Deny Manager.
§  Alamat IP yang Anda masukkan akan ditampilkan di daftar alamat IP yang sedang dicegah untuk mengakses situs yang Anda kelola.

5.      Bagaimana caranya melakukan redireksi ?
Saat menuju suatu domain, ada dua kemungkinan umum url yang diketik orang. Misal untuk rendefu.com, orang bisa merujuk ke http://rendefu.com atau ke http://www.rendefu.com . Seringkali kita ingin kedua alamat tersebut merujuk ke website yang sama. Kita bisa saja menyajikan dua website identik di dua alamat tersebut, namun itu akan membuat statistik pengunjung web (misal untuk search engine optimization) terbagi dua. Cara yang lebih baik adalah dengan mengarahkan alamat yang satu ke alamat yang lain.
Sebagai contoh, misalkan aplikasi kita sajikan di http://rendefu.com . Maka di file konfigurasi virtualhost subdomain www nya, kita tulis:
<VirtualHost *:80>
ServerName  www.rendefu.com
Redirect permanent / http://rendefu.com/
</VirtualHost>

2.      Hasil Percobaan dan Analisa Percobaan
Percobaan 1 : Melakukan Virtual Hosting
Pada percobaan ini, anda akan mumbuat dua buah website yang dihosting secara lokal di
computer anda. Siapkan nama dua buah website tersebut, dan persiapkan pula halaman web
untuk kedua web site tersebut. Jika halaman-halaman web tersebut telah siap, lakukan
virtual hosting dengan cara dibawah.

1.      Dibawah ini adalah langkah-langkah virtual hosting. Misalkan anda ingin membuat  website dengan nama www.web7lama.com . Sebelumnya lakukan disable terlebih dahulu terhadap website default dari apache  dengan 
$ sudo a2dissite default


2.      Setelah ini, anda dapat mulai melakukan virtual hosting. Langkah pertama adalah menkopikan setting file default ke file website anda www.jualku.net. Ini adalah file konfigurasi apache untuk virtual hosting. Anda perlu menyetting komponenkomponen penting seperti nama website, dimana letak file html dan lain-lain 
$ cd  /etc/apache2/sites-available/ 
$ cp default www.web7lama.com


Membuat alamat web baru untuk redirect:


3.      Edit file www.web7lama.com dengan nano
$ nano etc/apache2/sites-available/www.web7lama.com


4.      Setelah file www.jualku.net sudah terbuka.  
§  Hapus bagian AccessFileName .htacces. 
§  Tambahkan ServerName dibawah baris ServerAdmin

ServerName www.web7lama.com
ServerName www.web7baru.com




Konfigurasi web yang lama :

Konfigurasi web yang baru :

5.      Pada file yang sama. Ubah DocumentRoot untuk menunjuk ke web direktori dari website yang lama. Inilah tempat anda menyimpan halaman-halaman web anda
DocumentRoot /var/www/web7lama
DocumentRoot /var/www/web7baru

6.      Ubah <Directory /var/www/> untuk menunjuk ke direktori web7lama
<Directory /var/www/web7lama>
<Directory /var/www/web7baru>

7.      Simpan file  www.web7lama.com dan www.web7baru.com

8.      Kopi web page yang telah anda persiapkan atau web page default apache, ke  direktori
/var/www/web7lama/ sampai semua terkopi
$ sudo cp /var/www/index.html /var/www/web7lama/index.html


File index.php sudah berada pada masing-masing dierektori sehingga tidak perlu melakukan perintah copy lagi.

Melihat isi dari file index.php yang lama maupun baru :
$ nano /var/www/web7lama/index.html
$ nano /var/www/web7baru/index.html

Berikut tampilan file nya :


9.      Enable-kan  website  www.web7lama dan www.web7baru dengan :
$ sudo a2ensite www.web7lama.com
$ sudo a2ensite www.web7baru.com


10.  Edit file /etc/hosts untuk melakukan resolusi domain www.web7lama.com dan www.web7baru.com  ke 127.0.0.1.
Cari baris 127.0.0.1 , lalu tambahkan baris ini :  
127.0.0.1 localhost 
127.0.0.1  web7lama www.web7lama.com
127.0.0.1  web7baru www.web7baru.com


 

11.  Restart web server :
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart



12.  Bukalah browser www.we7lama.com. Jika berhasil, berarti virtual host anda berhasil.
Selamat

13.  Dengan cara yang sama, cobalah buat website www.web7baru.com pada computer yang sama 



Percobaan 2 : Redireksi Pengunjung ke Halaman Web Baru atau Direktori 
Contoh Kasus : Anda mengelola website yang berisi penjualan devais jaringan, pada www.jualku.net. Setahun kemudian, anda berhasil membeli domain domain baru dengan nama www.tokobaru.com yang memiliki space lebih besar. Anda berniat memindah website www.jualku.net ke website baru, www.tokobaru.com. Anda tidak ingin kehilangan pelanggan yang biasa mengakses www.jualku.net, karena itu anda berniat melakukan redireksi dari site lama ke site baru.

1.      Kita akan melakukan redireksi dari website lama (www.jualku.net) ke website baru (www.tokobaru.com). Sebelumnya cek lagi apakah virtual hosting anda telah berhasil dengan membuka browser di komputer anda

2.      Edit file /etc/apache2/sites-available/www.jualku.net. Pada  bagian ini :  
<Directory /var/www/jualku>                 
Options Indexes FollowSymLinks MultiViews             AllowOverride None                           
Order allow,deny                             
allow from all                     
</Directory>
Gantilah AllowOverride None menjadi AllowOverride All:


3.      Tambahkan baris ini pada /etc/apache2/apache.conf bila belum ada.              
AccessFileName .htaccess

Tampilan isi file apache2.conf ecara keseluruhan :

4.      Buat file .htaccess pada directory root website www.web7lama.com
$ sudo nano /var/www/web7lama/.htaccess

Kopikan baris dibawah pada file .htaccess
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www.jualku.net$    RewriteRule (.*)$
http://www.tokobaru.com/$1 [R=301,L]
</IfModule>

Simpan file  .htaccess

5.      Enablekan modul rewrite. 
$ sudo a2enmod rewrite


6.      Reload dan restart apache web server
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart






7.      Capture hasilnya
https://scontent-sit4-1.xx.fbcdn.net/v/t34.0-12/13487882_1027521600618332_382440587_n.png?oh=364c8550cd08a360ac7f80de8c473369&oe=576B68EE

https://scontent-sit4-1.xx.fbcdn.net/v/t34.0-12/13522425_1027521573951668_1872773492_n.png?oh=996f6642e60485b56d57aca2d54d2509&oe=576B6D3C
https://scontent-sit4-1.xx.fbcdn.net/v/t34.0-12/13487882_1027521600618332_382440587_n.png?oh=364c8550cd08a360ac7f80de8c473369&oe=576B68EE 

https://scontent-sit4-1.xx.fbcdn.net/v/t34.0-12/13487531_1027521593951666_341033381_n.png?oh=51328007ad2e0d7055df1a66e8ac60d2&oe=576B9042

Percobaan 3 : Penggunaan File .htaccess untuk Mengeblok  IP Tertentu
Contoh Kasus : Anda mengelola website www.jualku.net. Bekerjasamalah dengan beberapa teman anda untuk lab ini. Catat nomor IP teman anda. Siapkan no IP yang akan ditolak dan
diperbolehkan.  Kemudian lakukan langkah berikut :

1.      Tambahkan baris berikut pada file /etc/apache2/sites-available/www.web7lama
<Directory /var/www/jualku >
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from All
</Directory>                                        

2.      Coba edit /var/www/jualku/.htaccess
$ sudo nano /var/www/jualku/.htaccess

3.      Misalkan nomor  IP teman anda 10.0.1.5 dan 10.0.1.6. Kita mengijinkan beberapa nomor IP untuk mengakses website anda dan menolak nomor IP yang lain. Tambahkan baris ini pada /var/www/web7lama/.htaccess. 

<IfModule mod_rewrite.c>
RewriteEngine On
Order Deny,Allow
Deny from All
Allow from 10.0.1.5 10.0.1.6
</IfModule>



4.      Restart apache2
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart

5.      Jangan lupa untuk mengosongkan history sebelum mengarahkan browser ke halaman web. Gunanya agar browser tidak merujuk ke cache file sebelumnya. Pada menu utama, pilih  Tools -> Clear Recent History untuk Firefox.Pilih Everything pada Time Range to Clear. Klik seluruh opsi yang ada yaitu Browsing&Download History, Cookies, dll. Klik Clear Now untuk membersihkan history.

Membuka browser melalui terminal.

6.      Capture Hasilnya

1 komentar:

  1. Race Tech Titanium
    This metal oxide oxide alloy will turn the titanium framing hammer metal oxide titanium ore terraria of a copper oxide into nipple piercing jewelry titanium a graphite. This oxide microtouch titanium trim walmart is a citizen titanium dive watch flexible oxide that allows the copper oxide

    BalasHapus