• Tidak ada hasil yang ditemukan

4.6 Instalasi dan Konfigurasi Proxy Server

4.6.1 Instalasi S quid

Instalasi Squid dilakukan dengan menggunakan layanan RPM (RedHat Package Manager). Instalasi untuk aplikasi Squid dilakukan pada kedua proxy server (P ROXYSERVER1 dan P ROXYSERVER2).

Gambar 4.42 Instalasi Squid 4.6.2 Konfigurasi Proxy Server

Konfigurasi untuk proxy server dilakukan pada file /etc/squid/squid.conf. Berikut adalah isi file /etc/squid/squid.conf.

http_port 3128 cache_mem 8 MB

cache_replacement_policy lru

cache_dir ufs /mnt/storage/proxystorage 100 16 256 cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log cache_effective_user squid

acl all src 0.0.0.0/0.0.0.0 acl opt src 10.31.1.0/24 acl ho src 10.31.2.0/24 acl kelas1 src 10.31.3.0/24 acl kelas2 src 10.31.4.0/24 acl sysadmin src 10.31.1.221 acl cs1 src 10.31.1.56 acl cs2 src 10.31.1.60

acl instrukt ur1 src 10.31.3.1-10.31.3.10 acl instrukt ur2 src 10.31.4.1-10.31.4.10 acl webporno dstdomain /fileproxy/pornsites acl webdownload dstdomain /fileproxy/download acl socialnet dst domain /fileproxy/social

acl tubeallow dstdomain www.yout ube.com youtube.com www.filetube.com filet ube.com

acl stringporno url_regex -i /fileproxy/pornurl acl filevideo url_regex -i /fileproxy/videoext acl tubedeny url_regex -i t ube

acl 3gp url_regex -i \.3gp$

acl jam1 time M T H W F 09:00-17:00 acl jam2 time M T H W F 09:00-12:00 acl jam3 time M T H W F 13:00-17:00

reply_body_max_size 20000 allow kelas1 reply_body_max_size 20000 allow kelas2 reply_body_max_size 1000000 allow opt

reply_body_max_size 1000000 allow instruktur1 reply_body_max_size 1000000 allow instruktur2

http_access deny webporno http_access allow sysadmin

http_access deny webdownload opt jam1 http_access deny webdownload kelas1 http_access deny webdownload instrukt ur1 http_access deny webdownload instrukt ur2 http_access deny filevideo opt

http_access deny filevideo kelas1 http_access deny filevideo kelas2 http_access allow tubeallow opt http_access deny tubedeny opt

http_access allow tubeallow instruktur1 http_access allow tubeallow instruktur2 http_access deny tubedeny instruktur1 http_access deny tubedeny instruktur2 http_access deny tubedeny kelas1 http_access deny tubedeny kelas2 http_access deny socialnet cs1 jam2 http_access deny socialnet cs1 jam3 http_access deny socialnet cs2 jam2 http_access deny socialnet cs2 jam3 http_access deny socialnet kelas1 http_access deny socialnet kelas2 http_access deny 3gp ho

http_access allow all

4.6.3 Membuat Program keep_alive.exe

Header-header C++ yang dibutuhkan adalah : #include <cstdio>

#include <cstdlib> #include <cstring>

cstdio digunakan untuk proses input/output pada program ini, sementara cstdlib digunakan agar bisa menggunakan fungsi tertentu, dan cstring digunakan unt uk membentuk string yang akan dijalankan di comm and prom pt.

Seperti telah dijelaskan sebelumnya bahwa dalam skripsi ini menggunakan ping untuk mendeteksi keadaan server virtual dan kriteria ping yang sukses adalah yang menampilkan nilai “TTL”. Ping dijalankan melalui comm and prom pt, dan dalam C++, hal ini perlu memanfaatkan fungsi system (); agar suat u program bisa menjalankan perintah-perintah yang ada pada comm and prom pt.

Program dimulai dengan meminta IP address yang akan di ping. Comm and yang akan digunakan adalah :

Ping <ip_address> -n 3 > output.txt

Gambar 4.43 Tampilan Program keep_alive.exe (1)

Karena IP address akan ditentukan oleh user, maka tidak bisa menentukan terlebih dahulu string yang akan digunakan. String yang akan

digunakan dibentuk oleh tiga bagian, yait u "ping ", IP address dari input user, serta " -n 3 > output.txt". Ketiga string ini akan digabung kedalam satu variabel query dengan perintah strcat. Variabel query inilah yang akan digunakan di comm and prom pt.

printf("Masukkan IP address yang akan di periksa (x.x.x.x) : "); char kal[50];

scanf("%s",kal);

char query[100] = "ping "; strcat(query,kal);

strcat(query," -n 3 > output.txt"); system(query);

Gambar 4.44 Tampilan Program keep_alive.exe (2)

Perintah ping dijalankan terus menerus, dan setiap perintah tersebut dijalankan, tiga kali data dikirimkan. Hasil dari ping disalin ke text file bernama output.txt. File inilah yang akan dianalisa melalui program yang telah dibuat.

FILE *open;

open=fopen("output.txt","r");

  Gambar 4.45 Isi File output.txt

Yang dibutuhkan adalah reply dari ping, sementara dari contoh text file diatas, terlihat terdapat tiga baris output yang mendahului reply ping. Baris-baris ini tidak diproses, demikian juga baris-baris yang ada setelah reply ping.

Setelah mendapatkan baris-baris reply (seperti yang diberi lingkaran merah pada gambar di atas) dan disimpan dalam variabel, lalu variabel ini akan diproses menggunakan fungsi untuk mencari apakah ada kata "TTL=" pada variabel tersebut. Fungsi yang dipakai adalah fungsi strstr.

fgets(first,100,open);

char *ptr = strstr(first,"TTL=");

Kriteria yang ditetapkan sebelumnya adalah bila server virtual tidak merespon ping sebanyak tiga kali secara berturut-turut.

if(ptr!=NULL) { count=0;

continue; } else { count++; continue; }

Variabel count menyimpan jumlah ping yang tidak dibalas, dan hanya direset menjadi nol bila ping berjalan dengan sukses (memiliki TTL). Bila nilai variabel count sampai bernilai tiga, maka akan dijalankan perintah untuk men-disable NIC komputer server fisik tersebut.

Perintah command prom pt yang digunakan untuk men-disable interface adalah :

netshx DISABLE "<interface_name>"

Dan dalam implementasinya di C++ adalah :

system("netshx DISABLE \"Local Area Connection\"");

Siklus proses ini diulang tidak terbatas kecuali dimatikan secara manual oleh user. Setiap kali interface di-disable, program akan di "pause" untuk menghentikan eksekusi program, dan bila system adm inistrator sudah siap untuk mengaktifkan kem bali server itu, system adm inistrator tinggal menekan tombol apa saja dan program akan melanjutkan eksekusi.

puts("Mematikan interface");

system("netshx DISABLE \"Local Area Connection\""); system("pause");

Karena program ini menyalin output ping ke dalam file output.txt, sementara skripsi ini membutuhkan pemeriksaan dua server virtual, maka program harus ditaruh di lokasi direktori yang berbeda dan dijalankan secara terpisah.

Dokumen terkait