• Tidak ada hasil yang ditemukan

Squid Proxy Server

Dalam dokumen BAB 2 LANDASAN TEORI (Halaman 29-48)

2.2. Teori-teori yang Berhubungan dengan Topik yang Dibahas

2.2.2. Squid Proxy Server

Squid adalah sebuah service yang digunakan sebagai proxy server dan web  cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server  web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga pada membantu keamanan dengan melakukan penyaringan lalu lintas. (http://www.squid‐cache.org/)

1. Cara Kerja Squid Proxy Server

Squid proxy server melakukan tugasnya dengan menyimpan halaman-halaman web yang pernah menjadi request oleh client pada suatu jaringan internal, sehingga apabila ada permintaan terhadap objek yang sama dan pernah diakses sebelumnya dalam perbedaan waktu yang singkat atau jika ada objek yang tadinya disimpan itu belum kadaluarsa, maka squid proxy server tidak akan meneruskan permintaan itu ke web server di jaringan internet, melainkan akan memberikan objek yang disimpannya kepada client yang membutuhkan. Object/Internet Object adalah file, dokumen atau respon terhadap sebuah permintaan terhadap berbagai layanan seperti FTP atau HTTP.

Hal ini tentunya akan memberikan penghematan bandwidth karena objek yang sama tidak perlu secara diambil berulang-ulang dari jaringan internet. Penghematan ini bervariasi tergantung dari beberapa faktor misalnya jumlah pengguna yang terhubung ke jaringan internet melalui squid proxy server, perilaku pengguna dalam mengakses halaman web, keamanan/kemiripan tugas dan hobi dari masing-masing pengguna.

Dalam dokumentasinya, squid proxy server tidak hanya melayani akses HTTP, tetapi juga gopher dan FTP. Dari sisi keamanan, squid proxy server mengakomodasi SSL (Secure Socket Layer), access control yang dapat dikonfigurasi dan pencatatan akses secara penuh. Untuk mengakomodasi jaringan serta permintaan yang semakin besar, squid proxy server juga dapat disusun membentuk hirarki atau hubungan tertentu untuk memaksimalkan penghematan bandwidth.

2. Hubungan dan Hirarki antar Squid Proxy Server

Dalam penggunaannya, dimungkinkan untuk menggunakan lebih dari satu proxy server untuk melayani permintaan. Hal ini mungkin terjadi jika cache server melayani permintaan dalam jumlah yang besar pada 1 satuan waktu. Misalnya pada sebuah institusi pendidikan seperti universitas, perusahaan dengan cabang yang tersebar di berbagai daerah, atau mungkin ISP (Internet Service Provider) yang melayani ribuan client setiap harinya. Dengan menggabungkan beberapa cache server dalam suatu hirarki, maka setiap permintaan akan dapat dilayani dengan baik tanpa penundaan yang terlalu lama.

1. Sibling

Merupakan hubungan setingkat secara struktural satu sama lain. Jika sebuat cache server melakukan request terhadap cache server sibling lainnya, maka object yang diminta akan diberikan jika memang dimiliki, jika tidak, proxy server sibling tidak perlu melakukan request ke internet. 2. Parent/Child

Merupakan hubungan bertingkat secara struktural satu sama lain. Artinya, sebuah cache server dapat mempunyai parent berupa cache server lain, sedangkan cache server lain tersebut otomatis mempunyai child cache server asalnya. Jika sebuah cache server melakukan request terhadap cache server parent lainnya, maka object yang diminta akan diberikan jika memang dimiliki dan cache server parent wajib melakukan request ke internet jika object tersebut tidak dimilikinya.

Pada struktur yang lebih kompleks, dimungkinkan penyusunan cache server secara sibling maupun parent/child secara bersamaan. Hal ini tentu saja dilakukan dengan pertimbangan banyaknya permintaan terhadap objek internet, dan dengan saling terhubungnya proxy server, diharapkan respon yang lebih cepat.

Proxy server yang ada dalam suatu hirarki dalam berkomunikasi dengan cache server lain dalam hirarki yang sama menggunakan Internet Cache Protocol (ICP). Komunikasi ini dapat berupa pertanyaan tentang ketersediaan suatu objek atau jawaban atas pertanyaan tersebut.

IPC menggunakan default port 3130 dan protokol UDP untuk saling berkomunikasi. Fungsi ini dapat dimatikan jika sibling/parent tidak

menyalakan fungsi ICP dengan cara memberikan option no-query pada daftar cache_peer.

3. Manajemen Objek

Manajemen objek merupakan salah satu hal yang sangat penting pada operasional Squid. Metadata disimpan dalam memory dan merujuk ke objek tertentu di dalam harddisk. Hal ini dilakukan untuk mempercepat proses pencarian objek tertentu hanya dengan melihat metadata-nya saja.

Dalam proses ini juga diatur objek mana yang harus dihapus berdasarkan umur objek yang bersangkutan. Penghapusan objek perlu dilakukan mengingat banyak objek yang sudah kadaluarsa atau tidak digunakan lagi dalam waktu tertentu.

Umur objek dibatasi oleh hal-hal sebagai berikut: a. Metode Penghapusan Objek

Objek dihapus menurut algoritma tertentu yang sebelumnya sudah disebutkan pada konfigurasi squid proxy server.

b. Kapasitas Harddisk dari Proxy Server

Kapasitas harddisk yang terbatas akan turut membatasi jumlah keseluruhan objek yang dapat ditampung oleh squid proxy server. Jika penggunaan harddisk sudah mencapai batas tertentu (cache_swap_high pada squid.conf), maka penghapusan objek akan lebih banyak dilakukan.

c. Jumlah Permintaan Client

Permintaan client yang tinggi otomatis akan menambah jumlah objek yang disimpan dalam harddisk. Semakin banyak objek yang

disimpan berarti ada objek dengan ‘umur paling tua’ misalnya akan dihapus terlebih dahulu.

Algoritma yang digunakan dalam penghapusan objek menentukan objek mana yang akan terlebih dahulu dihapus dan pada akhirnya menentukan kinerja dari proxy server yang bersangkutan. Algoritma yang umum digunakan antara lain:

- Logistic Regression (LR)

Menghapus objek dengan nilai LR terkecil. Nilai LR dapat diartikan sebagai besarnya kemungkinan objek tersebut akan diakses di waktu yang akan datang.

- Least Recently Used (LRU)

Menghapus objek berdasarkan waktu terakhir kali objek tersebut diakses. Objek dengan waktu paling lama akan dihapus terlebih dahulu.

- Least Frequently Used (LFU)

Menghapus objek yang paling jarang diakses. - First In First Out (FIFO)

Menghapus objek secara urut berdasarkan waktu mulai disimpan ke dalam hardisk.

- Random

Menghapus objek secara acak. 4. Pencatatan Aktivitas/Log

Berbagai aktivitas Squid Proxy server dapat dilihat pada tiga log utama yang dihasilkan yaitu access.log, cache.log, dan store.log. Dari file

tersebut, bisa didapatkan berbagai macam informasi seperti berat beban kerja server, berapa presentase objek yang miss dan masih banyak lagi informasi lainnya.

Berikut adalah deskripsi singkat tentang isi dari masing-masing log yang digunakan squid proxy server.

Nama Log Keterangan

access.log Catatan akses yang dilakukan oleh client seperti IP Client, waktu yang dibutuhkan, metode, URL tujuan, dsb

store.log Catatan penyimpanan object ke dalam harddisk

cache.log Pesan yang dibuat squid proxy server sewaktu beroperasi, biasanya berupa pesan error.

Table 2.1 Deskripsi macam-macam log

access.log banyak digunakan sebagai dasar monitoring dan evaluasi terhadap kinerja squid proxy server. Hal ini masuk akal karena di dalam access.log banyak terdapat informasi penting yang dapat diolah lebih lanjut menjadi statistik berbentuk grafis sehingga mudah untuk dibaca. Informasi penting tersebut mengacu kepada format umum yang digunakan pada penulisan sebuah access.log. Format umum tersebut adalah sebagai berikut:

Time elapses remotehost code/status bytes method URL rfc931 peerstatus/peerhost type

Masing-masing field pada format tersebut dapat dijelaskan sebagai berikut:

- Time:

Mencatat waktu pada saat request client diterima oleh squid proxy server. Catatan waktu ini berupa UNIX timestamp dalam format UTC sampai pembulatan milisecond.

- Elapsed:

Menyatakan satu waktu dalam milisecond yang dibutuhkan squid proxy server untuk memenuhi permintaan client

- Remotehost:

IP address dari client yang melakukan request. - Code/status:

Menyatakan kode keberhasilan dan status http yang akan dijelaskan lebih lanjut.

- Bytes:

Menyatakan besarnya objek yang dikirim ke client termasuk header dan pesan error jika permintaan gagal dipenuhi.

- Method:

Menyatakan metode permintaan untuk mendapatkan objek yang akan dijelaskan lebih lanjut.

- URL:

Menyatakan alamat objek yang diminta oleh client. - RFC931:

Menyatakan pencarian identitas dari client. Secara default di set off karena akan mempengaruhi kinerja squid proxy server. Kolom ini diisi’-‘ jika di set off.

- Peerstatus/peerhost:

Menyatakan kode hirarki yang mendefinisikan dari mana objek tersebut diambil.

- Type:

Menyatakan tipe objek yang diminta, dalam contoh berupa text/html. Tipe lainnya seperti images/gif. Pada pertukaran ICP tipe yang dicantumkan berupa tanda titik dua (:).

5. Manajemen dan Monitoring Log

Pada squid proxy server yang sudah beroperasional, bisa ditemukan berbagai informasi penting seputar squid proxy server tersebut hanya melalui log-log yang dihasilkan. Dari tiga log utama yang disebutkan di atas, dapat dilakukan analisis mengenai berbagai macam hal seperti kinerja sistem, utilisasi memory dan harddisk, dan masih banyak lagi.

Hasil analisis tersebut berguna untuk berbagai keperluan dari yang sifatnya perawatan, update terhadap sistem keamanan, sampai kepada kecenderungan akses pengguna dilihat dari segi sosial dan latar belakang pendidikan. Melihat manfaat yang bisa diambil dari analisis log ini, maka perlu dibuat suatu analisis untuk melihat berbagai kecenderungan informasi yang dihasilkan. Informasi ini dapat dipergunakan sebagai dasar pengambilan keputusan berkenaan dengan proxy server tersebut atau hanya

menjalankan fungsinya sebagai sistem monitoring yang tentunya akan banyak berguna di kemudian hari.

Masalah timbul ketika log yang jumlah barisnya mencapai ribuan pada squid proxy server yang sangat aktif tersebut tadinya harus dibaca secara manual untuk menentukan informasi seperti disebutkan di atas. Beberapa administrator jaringan berusaha mengatasi masalah ini dengan berbagai cara diantaranya menyalin log.

6. Penggunaan Squid Proxy Server Secara Colocation dan Coresident

Squid Proxy Server dapat digunakan secara colocation maupun coresident. Adapun penggunaan Squid Proxy Server secara colocation sama prinsipnya dengan penerapan dedicated server yang hanya digunakan untuk keperluan sebuah server dan tidak dapat berfungsi sebagai sebuah proxy server saja.

Sedangkan penggunaan Squid Proxy Server secara consident adalah sebuah metode penggunaan server yang memiliki fungsi lebih dari satu. Jadi, server tersebut dapat memiliki fungsi lain, seperti web server, warstation, dan sebagainya.

Adapun penggunaan Squid Proxy server secara coresindent perlu didukung oleh penggunaan Iptables yang akan melakukan redirection untuk sebuah request dari server yang akan diarahkan ke Squid Proxy Server, karena server tersebut tidak berfungsi sebagai proxy server, sehingga tidak dapat melayani request dari client.

Tag-tag yang dapat digunakan untuk mengkonfigurasi Squid proxy server terdapat pada file squid.conf. Berikut ini merupakan rangkuman dari tag-tag yang ada di file squid.conf. (http://wiki.squid-cache.org/)

1. Network options - http_port

Format: http_port port

http_port hostname:port http_port ip_adddress:port

Adalah socket address dimana squid proxy server mendengar permintaan HTTP dari client. Jika menuliskan hostname atau IP address, Squid proxy server akan mengikat socket ke alamat tersebut. Ini akan menggantikan pilihan ‘tcp_incoming_address’ yang sebelumnya digunakan. Jika Squid proxy server dijalankan di mode accelerator, client dapat mendengar dari port 80 juga. Jika Squid proxy server dijalankan di mesin dual-homed dengan interface internal dan ekternal, sebaiknya masukkan alamat internal: port pada tag http_port. Dengan cara squid proxy server hanya akan terlihat alamat internalnya. Nilai default untuk tag ini: http_port 3128.

- icp_port

Option ini akan menentukan melalui port berapa squid akan mengirimkan dan menerima request ICP dari proxy cache tetangga.

a. Options Which Affect the Cache Size - cache_mem (bytes)

‘cache_mem’ menunjukkan jumlah memory yang digunakan untuk intransit object, hot objects, negative-caches objects. Data untuk objek-objek ini disimpan dalam blok-blok berukuran 4 KB. Parameter ini menunjukkan batasan teratas pada ukuran total dari blok berukuran 4 KB yang dialokasikan. Objek intransit menempati prioritas tertinggi. Jika incoming request rate membutuhkan lebih banyak memori ‘cache_mem’ untuk menampung objek intransit, Squid Proxy Server akan melewati batas untuk memuaskan permintaan yang baru. Ketika beban berkurang, blok akan dibebaskan hingga mencapai high-water mark. Setelah itu blok akan digunakan untuk menyimpan hot object. Nilai default untuk tag ini: cache_mem 8MB

- cache_swap-low (percent,0–100) cache_swap_high (percent,0-100)

Merupakan low dan high-water mark untuk cache object replacement. Pergantian dimulai saat penggunaan swap (disk) di atas low-water mark dan mencoba untuk memelihara penggunaan dekat low-water mark. Ketika penggunaan swap semakin dekat ke high-water mark, penyingkiran objek menjadi semakin agresif. Jika penggunaan dekat dengan

low-water mark. Hanya sedikit pergantian yang dilakukan setiap kalinya.

Nilai default untuk tag ini : Cache_swap_low90

Cache-swap_high95

b. Logfile Pathnames and Cache Directories - cache_dir

Format: cache_dir Type Directory-Name Mbytes L1 L2 [options]

Type: Menunjukkan sistem penyimpanan yang digunakan. Nilai default-nya adalah ‘ufs’.

Directory: Merupakan directory di level yang teratas dimana file cache swap akan disimpan. Directory harus sudah ada dan dapat ditulisi oleh proses Squid Proxy Server.

Mbytes: Jumlah disk space (MB) untuk digunakan dibawah direktori ini.

Level-1: Adalah jumlah level pertama dari subdirectory yang akan dibuat di bawah ‘Directory’.

Level-2: Adalah jumlah level kedua dari subdirectory yang akan dibuat di bawah setiap level pertama subdirektory

Nilai default untuk tag ini: cache-dir ufs /var/spool/squid 100 16 256

Tag ini mencatat aktivitas permintaan client. Tag ini berisi masukkan untuk setiap query permintaan HTTP dan ICP yang diterima. Untuk menonaktifkan, masukkan “none”.

Nilai default untuk tag ini : cache_access_log /var/log/squid/access.log

- cache_log

File pencatatan cache. File dimana informasi umum tentang cache behavior.

Nilai default untuk tag ini: cache_log /var/log/squid/cache log - cache_store_log

Mencatat aktivitas dari manajer penyimpanan. Menunjukkan objek mana yang ditolak dari cache, dan objek mana yang disimpan dan untuk berapa lama disimpannya. Untuk menonaktifkannya, masukkan “none”. Nilai default untuk tag ini: cache_store-log /var/log/squid/store.log

3. Options for External Support Programs - dns_nameservers

Daftar dari dns server yang digunakan selain yang ada di file /etc/resolv.conf.

contoh: dns_nameservers 10.0.0.1 192.172.0.4 - auth_param

Digunakan untuk mendefinisikan parameter untuk berbagai susunan authentikasi yang didukung oleh Squid Proxy Server.

4. Option for Tuning the Cache “”ukuran file nya berapa”” - quick_abort_min (KB)

quick_abort_max (KB) quick_abort_pct (percent)

Secara default, cache terus melakukan download request yang digugurkan tetapi yang hampir selesai (sisanya kurang dari 16 KB). Jika tidak ingin melanjutkan download setelah permintaan client digugurkan, set ‘quick_abort_min’ dan ‘quick_abort_max’ menjadi ‘0 KB’.

Nilai default untuk tag ini : quick_abort_min 16 KB quick_abort_max 16 KB quick_abort_pct 95 5. Timeouts

- request_timeout

Berapa lama waktu untuk menunggu permintaan HTTP selanjutnya pada koneksi yang persistent setelah permintaan sebelumnya selesai.

Nilai default untuk tag ini: persistent_request_timeout 1 minutes - shutdown_lifetime time-units

Ketika SIGTERM atau SIGHUP diterima, cache diletakkan ke mode ‘shutdown pending’ hingga semua socket yang aktif ditutup.

Nilai default untuk tag ini : shutdown_lifetime 30 seconds 6. Access Control

- acl

Mendefinisikan access control list. Format : acl aclname acltype string1 …. acl aclname acltype “file” …

acl aclname time[day-abbrevs] [h1:m1-h2:m2]

Day-abbrevs: S-Minggu M-Senin T-Selasa W-Rabu H-Kamis F-Jumat A-Sabtu H1:m1 harus lebih kecil dari H2:m2 Konfigurasi minimum yang disarankan : acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8

acl SSL_ports port 443 563

acl Safe_ports port 80 #http

acl Safe_ports port 21 #ftp

acl Safe_ports port 443 563 #https,snews

acl Safe_ports port 70 #gopher

acl Safe_ports port 1026-65536 #unregistered ports

acl Safe_ports port 280 #http-mgmt

acl Safe_ports port 488 #gss-http

acl Safe_ports port 591 #filemaker

acl Safe_ports port 777 #multiling http

acl CONNECT method CONNECT - http_access

Mengijinkan atau melarang akses berdasarkan apa yang telah didefinisikan pada access list.

Format : http_access allow|deny [!]aclname Konfigurasi minimum yang disarankan : http_access allow manager localhost http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports http_access allow localhost

http_access deny all 7. Administrative Parameters

- cache_mgr

Alamat e-mail dari manajer cache lokal yang akan menerima mail jika cache mati.

Nilai default untuk tag ini : cache_mgr root - cache_effective_user

Jika cache_efective_user didefinisikan sedangkan cache_effective_group tidak, maka Squid Proxy Server akan mengubah GID menjadi GID default yang diambil dari file password dan list group tambahan dari group membership cache_effective_user.

Nilai default untuk tag ini : cache_effective_user squid - cache_effective_group

Set parameter ini untuk menjalankan Squid Proxy Server menggunakan GID yang diinginkan.

Nilai default untuk tag ini : cache_effective_group squid - visible_hostname

Parameter ini digunakan untuk menampilkan hostname khusus pada pesan kesalahan, dan lain-lain.

8. Delay Pool Parameters - delay_pools

Parameter ini mewakili jumlah dari delay pool yang akan digunakan.

Nilai default untuk tag ini: delay_pools 0 - delay_class

Parameter ini mendefinisikan kelas dari tiap delay pool. Harus ada tepat satu baris delay_class untuk tiap delay pool. Kelas-kelas dalam delay pool:

Kelas 1

Kelas 2

Semua dibatasi oleh satu bucket yang agregate seperti halnya bucket “individual” yang dipilih dari bit 25 hingga bit 32 dari alamat IP.

Kelas 3

Semua dibatasi oleh satu bucket yang agregate seperti halnya bucket “network” yang dipilih dari bit 17 hingga bit 24 dari alamat IP dan bucket “individual” yang dipilih dari bit 17 hingga bit 32 dari alamat IP.

Jika alamat IP adalah a.b.c.d

Bit 25 hingga 32 adalah “d” Bit 17 hingga 24 adalah “c”

Bit 17 hingga 32 adalah “c*256+d” - delay_access

Parameter ini digunakan untuk menentukan request masuk ke delay pool mana.

Contoh: delay_access 1 allow some_big_clients delay_access 1 deny all

delay_access 2 allow lotsa_little_clients delay_access 2 deny all

- delay_parameter

Mendefinisikan parameter untuk delay pool. Tiap delay pool memiliki jumlah “bucket” yang diasosiasikan dengannya seperti yang telah dijelaskan dalam delay_class.

Format:

Untuk pool kelas 1:

Delay_parameter pool agregate Untuk pool kelas 2:

Delay_parameter pool agregate individual Untuk delay pool kelas 3:

Delay_parameter pool agregate network individual Keterangan: pool : jumlah pool

Agregate :

“delay parameters” untuk bucket yang agregate (kelas 1,2,3) Individual :

“delay parameters” untuk individual bucket (kelas 2,3) Network :

“delay parameters” untuk network bucket (kelas 3) Contoh:

delay_parameters 1 -1/-1 8000/8000

delay parameters 2 32000/32000 8000/8000 600/8000 2.2.3. Squid View

Squidview adalah sebuah program konsole interaktif yang melihat dan menampilkan log squid, serta memiliki fungsi search dan report. Untuk menggunakan squidview setidaknya harus memiliki hak untuk membaca file access.log.

Squidview memiliki banyak fungsi seperti menelusuri file log dengan tombol kursor, melompat atau berpindah ke file log yang berbeda, mencari teks atau besar permintaan http / ftp. (http://www.rillion.net/squidview/) 2.2.4. Secure Shell (SSH)

Secure Shell atau SSH adalah network protocol yang memungkinkan pertukaran data melalui jalur yang aman antara dua komputer (client-server). Data akan di enkripsi sebelum dikirim sehingga keamanan data terjamin. SSH menggunakan public-key cryptography untuk meyakinkan bahwa remote komputer yang dituju adalah benar dan juga remote komputer bisa cek balik tentang remote user.

SSH biasanya digunakan untuk login ke remote komputer and menjalankan program. SSH terjadi di lingkungan client-server. Salah satu dari komputer yang berkomunikasi harus menjadi server dan yang lain adalah client. Server SSH menggunakan port 22 (standar port untuk TCP). SSH client memanggil SSH server dan membuat jalur untuk berkomunikasi.

Dalam dokumen BAB 2 LANDASAN TEORI (Halaman 29-48)

Dokumen terkait