squid indonesia

33
SQUID (Proxy Server) Squid proxy server memungkinkan Anda untuk cache konten web dan kembali dengan cepat pada permintaan berikutnya. Dengan menjalankan squid dalam accelerator mode, permintaan akan ditangani lebih cepat dari pada web server normal, sehingga membuat situs Anda tampil lebih cepat daripada orang lain! Memulai dengan Squid Proxy server Sebuah server proxy adalah sebuah sistem komputer berada antara klien meminta sebuah dokumen web dan server target (sistem komputer lain) yang melayani dokumen. Dalam bentuk sederhana, sebuah proxy server memfasilitasi komunikasi antara klien dan server tanpa memodifikasi permintaan atau balasan. Ketika kita memulai permintaan untuk resource dari server, proxy server membajak koneksi kita dan mewakili dirinya sendiri sebagai klien ke server, meminta resource atas nama kita. Jika balasan diterima, server proxy mengembalikan kepada kita, seaakan-akan kita telah berkomunikasi dengan server. Dalam bentuk tingkat lanjut, proxy server dapat menyaring permintaan berdasarkan berbagai aturan dan memungkinkan komunikasi hanya ketika permintaan dapat divalidasi terhadap aturan yang tersedia. Aturan umumnya didasarkan pada alamat IP dari klien atau server, protokol, tipe content dokumen web, jenis konten web, dan sebagainya. Seperti yang terlihat pada gambar sebelumnya, klien tidak dapat membuat permintaan langsung ke server web. Untuk memfasilitasi komunikasi antara klien dan web server, kita harus menghubungkan mereka menggunakan server proxy yang bertindak sebagai media komunikasi untuk klien dan web server. Kadang-kadang, proxy server dapat mengubah permintaan atau balasan, atau bahkan dapat menyimpan balasan dari server secara lokal untuk memenuhi permintaan yang sama dari

Upload: suhendri-prasetyo

Post on 19-May-2015

9.801 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Squid indonesia

SQUID (Proxy Server)

Squid proxy server memungkinkan Anda untuk cache konten web dan kembali dengan cepat

pada permintaan berikutnya. Dengan menjalankan squid dalam accelerator mode, permintaan akan

ditangani lebih cepat dari pada web server normal, sehingga membuat situs Anda tampil lebih cepat

daripada orang lain!

Memulai dengan Squid

Proxy server

Sebuah server proxy adalah sebuah sistem komputer berada antara klien meminta sebuah

dokumen web dan server target (sistem komputer lain) yang melayani dokumen. Dalam bentuk

sederhana, sebuah proxy server memfasilitasi komunikasi antara klien dan server tanpa memodifikasi

permintaan atau balasan. Ketika kita memulai permintaan untuk resource dari server, proxy server

membajak koneksi kita dan mewakili dirinya sendiri sebagai klien ke server, meminta resource atas

nama kita. Jika balasan diterima, server proxy mengembalikan kepada kita, seaakan-akan kita telah

berkomunikasi dengan server. Dalam bentuk tingkat lanjut, proxy server dapat menyaring permintaan

berdasarkan berbagai aturan dan memungkinkan komunikasi hanya ketika permintaan dapat divalidasi

terhadap aturan yang tersedia. Aturan umumnya didasarkan pada alamat IP dari klien atau server,

protokol, tipe content dokumen web, jenis konten web, dan sebagainya.

Seperti yang terlihat pada gambar sebelumnya, klien tidak dapat membuat permintaan langsung

ke server web. Untuk memfasilitasi komunikasi antara klien dan web server, kita harus

menghubungkan mereka menggunakan server proxy yang bertindak sebagai media komunikasi untuk

klien dan web server. Kadang-kadang, proxy server dapat mengubah permintaan atau balasan, atau

bahkan dapat menyimpan balasan dari server secara lokal untuk memenuhi permintaan yang sama dari

Page 2: Squid indonesia

klien yang sama atau dari klien lain pada tahap berikutnya. Menyimpan balasan lokal untuk digunakan

di lain waktu dikenal sebagai cache. Caching adalah teknik yang populer digunakan oleh proxy server

untuk menghemat bandwidth, memberdayakan web server, dan meningkatkan pengalaman browsing

pengguna.

Proxy server sebagian besar digunakan untuk melakukan berikut ini:

1. Mengurangi penggunaan bandwidth

2. Meningkatkan pengalaman browsing pengguna dengan mengurangi waktu buka halaman

dengan adanya caching dokumen web

3. Menegakkan kebijakan akses jaringan

4. Pemantauan lalu lintas pengguna atau pelaporan penggunaan internet untuk pengguna individu

atau kelompok

5. Meningkatkan privasi pengguna dengan tidak mengekspos komputer pengguna secara langsung

ke Internet

Reverse proxy

Reverse proxy adalah teknik menyimpan jawaban atau sumber daya dari web server secara

lokal sehingga permintaan berikutnya ke sumber daya yang sama dapat dipenuhi dari salinan lokal pada

proxy server , kadang-kadang bahkan tanpa benar-benar menghubungi web server. Proxy server atau

web cache akan memeriksa salinan yang disimpan secara lokal dari dokumen web masih berlaku

sebelum salinan cache disajikan.

Caching web yang banyak digunakan:

• Untuk mengurangi penggunaan bandwidth. Sebagian besar dokumen web statis seperti file CSS

dan JavaScript, gambar, video, dan sebagainya dapat disimpan pada cache memori karena

mereka tidak sering berubah dan merupakan bagian utama dari sebuah respon dari web server.

• Oleh ISP untuk mengurangi rata-rata waktu buka halaman untuk meningkatkan pengalaman

browsing untuk pelanggan mereka pada Dial-Up atau broadband.

• Untuk mengambil beban dari web server yang sangat sibuk dengan melayani halaman statis /

dokumen dari cache proxy server.

Memperoleh Squid

Squid tersedia dalam beberapa bentuk (compressed source archives, source code dari versi

sistem kontrol, binary paket seperti RPM, DEB, dan sebagainya) dari situs resmi Squid, mirror Squid

dari berbagai seluruh dunia, dan repositori perangkat lunak dari hampir semua sistem operasi . Squid

juga disertakan dengan banyak distribusi Linux / Unix.

Page 3: Squid indonesia

Ada berbagai versi dan rilis Squid tersedia untuk di-download dari situs resmi Squid. Untuk

mendapatkan hasil maksimal dari instalasi squid lebih baik memeriksa source code terbaru dari Version

Control System (VCS) sehingga kita mendapatkan fitur terbaru dan perbaikan. Tapi perlu hati-hati,

source code terbaru dari VCS umumnya mutakhir dan mungkin tidak stabil atau bahkan mungkin tidak

bekerja dengan benar. Meskipun kode dari VCS bagus untuk belajar atau pengujian fitur baru Squid,

Anda sangat disarankan untuk tidak menggunakan kode dari VCS untuk penyebaran produksi. Jika kita

ingin bermain aman, kita mungkin harus men-download versi stabil terbaru atau versi stabil dari rilis

yang lebih tua. Versi yang stabil umumnya diuji sebelum mereka dilepaskan. Versi yang stabil dapat

langsung digunakan dalam penyebaran produksi.

Waktu untuk bertindak - mengidentifikasi versi yang tepat

Daftar versi Squid tersedia terdapat pada http://www.squid-cache.org/ Versions/ . Untuk

lingkungan produksi, kita harus menggunakan versi yang tercantum di bawah bagian Versi Stabil saja.

Waktu untuk bertindak – men-download Squid

Sekarang kita akan men-download squid 3.1.10 dari situs resmi Squid:

1. Kunjungi web http://www.squid-cache.org/Versions/

2. Sekarang kita perlu untuk mengklik pada link versi 3.1, seperti ditunjukkan pada gambar

berikut:

3. Kita akan dibawa ke halaman yang menampilkan berbagai rilis dalam versi 3.1. Link dengan

tulisan tar.gz pada kolom download adalah paket compress source dari paket squid :

Page 4: Squid indonesia

4. Untuk mendownload klik pada link tar.gz

5. Atau bisa mendownload paket tersebut melalui terminal dengan mengetikkan perintah berikut :

$ wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.10.tar.gz

Mendapatkan kode sumber terbaru dari Bazaar VCS

Pengguna yang sudah mahir mungkin tertarik untuk mendapatkan kode sumber yang terbaru

dari repositori kode Squid, menggunakan Bazaar. Kita dapat melewati bagian ini jika kita tidak akrab

dengan VCS pada umumnya. Bazaar adalah sistem kontrol versi (VCS) populer digunakan untuk

melacak sejarah proyek dan memfasilitasi kolaborasi. Dari versi 3.x dan seterusnya, kode sumber Squid

telah bermigrasi ke Bazaar. Oleh karena itu, kita harus memastikan bahwa kita memiliki Bazaar diinstal

pada sistem kita untuk memeriksa repositori dari kode sumber. Untuk mengetahui lebih lanjut tentang

Bazaar atau untuk instalasi Bazaar dan konfigurasi manual, silakan kunjungi situs resmi Bazaar di

http://bazaar.canonical.com/.

Setelah kita memiliki Bazaar setup, kita harus kita harus menuju ke mirror repositori kode

Squid pada Launchpad di https://code.launchpad.net/squid/. Dari sini kita dapat menelusuri semua versi

dan cabang Squid. Mari membuat diri kita akrab dengan tata letak halaman :

Dalam screenshot Series: trunk merupakan cabang pengembangan, yang berisi kode yang masih

dalam pengembangan dan belum siap untuk penggunaan produksi. Cabang-cabang dengan status

Mature sudah stabil dan dapat digunakan langsung dalam lingkungan produksi.

Page 5: Squid indonesia

Instalasi Squid

Squid dapat diinstal dengan menggunakan kode sumber yang kita diperoleh dalam bagian

sebelumnya, menggunakan manajer paket, menggunakan paket biner yang tersedia untuk sistem

operasi kita. Mari kita lihat rinci bagaimana cara kita dapat menginstal Squid.

Proses instalasi Squid dari source code ada tiga langkah:

1. Pilih sistem operasi fitur dan pengaturan khusus.

2. Kompilasi kode sumber untuk menghasilkan executable.

3. Tempatkan executable yang dihasilkan dan file lain yang dibutuhkan di lokasi mereka yang

ditunjuk untuk Squid berfungsi dengan baik.

Kita dapat melakukan beberapa langkah di atas menggunakan alat otomatis yang membuat kompilasi

dan proses instalasi relatif mudah.

Kompilasi Squid

Kompilasi Squid adalah proses kompilasi beberapa file yang mengandung C/C++ source code

dan menghasilkan executable. Kompilasi Squid benar-benar mudah dan dapat dilakukan dalam

beberapa langkah. Untuk mengkompilasi Squid, kita perlu ANSI C/ C++ compiler yang sesuai. Jika

kita sudah memiliki GNU C/C++ Compiler (GNU Compiler Collection (GCC) dan g++, sudah tersedia

di hampir setiap sistem operasi Linux / Unix secara default), kita siap untuk memulai kompilasi.

Mengapa kompilasi?

Kompilasi Squid adalah sedikit tugas yang menyakitkan dibandingkan dengan menginstal squid

dari paket biner. Namun, kami merekomendasikan kompilasi Squid dari sumber daripada menggunakan

pre-compiled binari. Mari kita lihat beberapa keuntungan dari kompilasi Squid dari sumber:

• Saat kompilasi kita dapat mengaktifkan fitur tambahan, yang tidak dapat diaktifkan dalam paket

pre-compiled binary.

• Ketika kompilasi, kita juga dapat menonaktifkan fitur tambahan yang tidak diperlukan untuk

lingkungan tertentu. Sebagai contoh, kita mungkin tidak perlu helper Otentikasi atau dukungan

ICMP.

• Menggunakan mengkonfigurasi, kita dapat menentukan lokasi alternatif untuk menginstal

Squid. Kita bahkan dapat menginstal Squid tanpa hak root atau super user, yang tidak mungkin

dapat dilakukan dengan pre-compiled paket biner.

Meskipun kompilasi Squid dari source memiliki banyak keunggulan dibandingkan menginstal

dari paket binary, paket biner memiliki keunggulan tersendiri. Sebagai contoh, ketika kita berada dalam

mode pengendalian kerusakan atau situasi krisis dan kita perlu untuk mendapatkan proxy server dan

Page 6: Squid indonesia

berjalan sangat cepat, menggunakan paket biner untuk instalasi akan menyediakan instalasi cepat.

Uncompressing arsip

Jika kita memperoleh Squid dalam format arsip terkompresi, kita harus mengekstrak sebelum kita dapat

melanjutkan lebih jauh. Jika kita memperoleh Squid dari Launchpad menggunakan Bazaar, kita tidak

perlu melakukan langkah ini.

tar -xvzf squid-3.1.10.tar.gz

tar adalah perintah populer yang digunakan untuk mengekstrak arsip terkompresi dari berbagai

jenis. Di sisi lain, juga dapat digunakan untuk kompres banyak file ke arsip tunggal. Perintah

sebelumnya akan mengekstrak arsip ke direktori bernama squid-3.1.10.

Konfigurasi atau sistem check

Mengkonfigurasi atau memeriksa sistem adalah langkah pertama dalam proses kompilasi dan

diperoleh dengan menjalankan ./configure pada command line. Program ini memeriksa sistem,

memastikan bahwa paket yang dibutuhkan telah terinstal. Selain itu juga memeriksa kemampuan

sistem dan mengumpulkan informasi tentang arsitektur sistem dan pengaturan standar seperti,

deskriptor file yang tersedia dan sebagainya. Setelah mengumpulkan semua informasi, program ini

menghasilkan makefiles, yang digunakan pada langkah berikutnya untuk mengkompilasi source code

squid.

Menjalankan configure tanpa parameter apapun akan menggunakan default preset. Jika kita

bersedia untuk mengubah pengaturan default Squid atau jika kita ingin menonaktifkan beberapa fitur

opsional yang diaktifkan secara default, atau jika kita ingin menginstal Squid di lokasi alternatif dalam

sistem file, kita perlu menambahkan pilihan untuk mengkonfigurasi. Gunakan perintah berikut untuk

melihat pilihan yang tersedia sebagai gambaran singkat.

Mari kita jalankan configure dengan opsi --help untuk melihat opsi konfigurasi yang tersedia.

./configure --help | less

Ini akan menampilkan halaman yang berisi pilihan dan penjelasan singkat untuk configure. Gunakan

tombol panah atas dan bawah untuk menelusuri informasi. Sekarang mari kita membahas beberapa opsi

yang umum digunakan dengan configure:

--prefix

Opsi --prefix adalah pilihan yang paling umum digunakan. Jika kita sedang menguji versi baru

atau jika kita ingin menguji beberapa versi Squid, kita akan memiliki beberapa versi squid yang

terpasang pada sistem kita. Untuk mengidentifikasi versi yang berbeda dan untuk mencegah

kemungkinan terjadinya gangguan atau kebingungan antar versi, itu ide yang baik untuk menginstal

Page 7: Squid indonesia

mereka dalam direktori terpisah. Sebagai contoh, untuk menginstal versi Squid 3.1.10, kita dapat

menggunakan direktori /opt/squid/3.1.10/ dan perintah configure terkait akan dijalankan sebagai:

./configure --prefix=/opt/squid/3.1.10/

Demikian pula, untuk menginstal versi Squid 3.1, kita dapat menggunakan direktori /opt/squid/3.1/.

Mulai sekarang dan seterusnya, ${prefix} akan mewakili lokasi di mana kita telah menginstal squid,

yaitu, nama direktori yang digunakan dengan opsi --prefix saat menjalankan configure, seperti yang

ditunjukkan pada perintah sebelumnya.

Squid menyediakan lebih dalam mengontrol lokasi dari berbagai jenis file seperti executable

dan file dokumentasi. Penempatan mereka dapat dikontrol dengan pilihan seperti --bindir, --sbindir, dan

seterusnya. Silakan periksa halaman bantuan configure untuk rincian lebih lanjut tentang pilihan ini.

Sekarang, mari kita memeriksa fitur opsional dan paket. Untuk mengaktifkan fitur opsional

apapun, kita gunakan pilihan dalam format --enable-FEATURE_NAME dan untuk menonaktifkan fitur,

format pilihan adalah --disable-FEATURE_NAME or --enable-FEATURE_NAME=no . Sebagai

contoh, icmp adalah nama fitur.

./configure --enable-FEATURE # FEATURE will be enabled

./configure --disable-FEATURE # FEATURE will be disabled

./configure --enable-FEATURE=no # FEATURE will be disabled

Demikian pula, untuk mengkompilasi Squid dengan paket yang tersedia, kita gunakan sebuah

opsi dalam format --with-PACKAGE_NAME dan untuk mengkompilasi Squid tanpa sebuah paket, kita

gunakan pilihan --without-PACKAGE_NAME. openssl adalah sebuah nama paket misalnya.

--enable-gnuregex

Ekspresi reguler yang digunakan untuk membangun Access Control Lists di squid. Jika kita

menjalankan sistem Linux/Unix berbasis operasi modern, kita tidak perlu khawatir tentang pilihan ini.

Tapi jika sistem kita tidak memiliki built-in yang mendukung untuk ekspresi reguler, kita harus

mengaktifkan dukungan untuk ekspresi reguler menggunakan –enable-gnuregex.

-- disable-inline

Squid memiliki banyak kode yang dapat Inlined, yang baik untuk penggunaan produksi. Tapi

kode inline memakan waktu lebih lama untuk mengkompilasi dan berguna ketika kita perlu untuk

mengkompilasi sumber hanya sekali untuk menyiapkan Squid untuk penggunaan produksi. Pilihan ini

dimaksudkan untuk digunakan selama pengembangan ketika kita perlu waktu kompilasi Squid dan lagi.

--disable-optimizations

Squid, secara default, dikompilasi dengan optimasi compiler yang menghasilkan kinerja yang

lebih baik. Sekali lagi pilihan ini harus digunakan saat debugging masalah atau pengujian versi yang

Page 8: Squid indonesia

berbeda yang akan mengurangi waktu kompilasi. Pilihan --disable-inline secara otomatis digunakan

jika kita menggunakan opsi ini.

--enable-storeio

Kinerja squid sangat bergantung pada disk I / O kinerja saat disk caching diaktifkan. Quicker

Squid dapat membaca/menulis file dari cache, pada waktu tertentu ia akan mengambil untuk memenuhi

permintaan, yang pada gilirannya akan mengakibatkan waktu delay (penundaan) yang lebih kecil.

Teknik penyimpanan yang berbeda dapat menyebabkan kinerja yang optimal, tergantung pada jenis lalu

lintas dan penggunaan. Kita dapat menggunakan opsi ini untuk membangun Squid dengan dukungan

untuk modul berbagai penyimpanan I/O. Silakan periksa src/fs/ direktori source code squid untuk

modul penyimpanan I/O yang tersedia.

./configure –enable-storeio=ufs,aufs,coss,diskd,null

--enable-removal-policies

Sewaktu menggunakan disk caching, kita menginstruksikan Squid untuk menggunakan ruang

disk yang ditentukan untuk caching dokumen web. Selama periode waktu, ruang yang dikonsumsi dan

Squid masih perlu lebih banyak ruang untuk cache dokumen baru. Squid kemudian harus memutuskan

mana dokumen lama harus dihapus atau dibersihkan dari cache untuk membuat ruang untuk

menyimpan yang baru. Ada kebijakan yang berbeda untuk membersihkan dokumen untuk mencapai

manfaat maksimal dari caching.

Kebijakan ini didasarkan pada struktur tumpukan dan daftar data. Daftar struktur data diaktifkan

secara default. Silakan periksa src/repl/ direktori source code squid untuk kebijakan penghapusan yang

tersedia.

./configure –enable-removal-policies=heap,lru

--enable-icmp

Opsi ini berguna dalam menentukan jarak dari rekan-rekan cache lainnya dan remote

server untuk memperkirakan perkiraan latency. Hal ini berguna hanya jika kita memiliki rekan-rekan

cache lainnya dalam jaringan.

--enable-delay-pools

Squid menggunakan delay pools untuk membatasi atau mengontrol bandwidth yang dapat

digunakan oleh klien atau sekelompok klien. Delay pools seperti ember bocor yang kebocoran data

(lalu lintas web) untuk klien dan diisi ulang pada tingkat yang terkendali. Hal ini bermanfaat ketika kita

perlu untuk mengontrol bandwidth yang digunakan oleh sekelompok pengguna.

--enable-esi

Opsi ini memungkinkan Squid untuk menggunakan Edge Side Includes (lihat

Page 9: Squid indonesia

http://www.esi.org untuk informasi lebih lanjut). Jika ini diaktifkan, squid akan mengabaikan header

cache-kontrol dari klien. Pilihan ini hanya dimaksudkan untuk digunakan saat Squid digunakan dalam

modus akselerator.

--enable-useragent-log

Menyediakan kemampuan logging header agen pengguna dari permintaan HTTP oleh klien.

--enable-referer-log

Jika kita mengaktifkan opsi ini, Squid akan mampu menulis kolom header referer dari

permintaan HTTP.

--disable-wccp

Opsi ini menonaktifkan dukungan untuk Web Cache Komunikasi Protocol (WCCP) Cisco.

WCCP memungkinkan komunikasi antara cache, yang pada gilirannya membantu dalam melokalisir

lalu lintas. Secara default, dukungan WCCP diaktifkan.

--disable-wccpv2

Mirip dengan pilihan sebelumnya, ini Menonaktifkan dukungan Cisco WCCP versi 2. WCCPv2

adalah versi perbaikan dari WCCP dan memiliki built-in mendukung untuk load balancing, scaling,

fault-tolerance, dan mekanisme pelayanan jaminan. Secara default, dukungan WCCPv2 diaktifkan.

--disable-snmp

Dalam versi Squid 3.x, SNMP (Simple Network Management Protocol) diaktifkan secara

default. SNMP cukup populer di kalangan administrator sistem untuk server monitoring

dan perangkat jaringan.

--enable-cachemgr-hostname

Cache Manager (cachemgr.cgi) adalah utilitas CGI untuk mengelola squid cache dan melihat

statistik cache menggunakan antarmuka web. Nama host untuk mengakses manajer cache bisa diatur

menggunakan opsi ini. Secara default, kita dapat mengakses cache manager antarmuka web

menggunakan localhost atau alamat IP dari server squid.

./configure –enable-cachemgr-hostname=squidproxy.example.com

--enable-arp-acl

Squid mendukung pengembangan Access Control Lists berdasarkan MAC (atau Ethernet)

address. Fitur ini dinonaktifkan secara default. Jika kita ingin mengontrol akses klien berdasarkan

alamat Ethernet, kita harus mengaktifkan fitur ini. Mengaktifkan ini adalah ide yang baik sambil belajar

squid.

--disable-htcp

Hypertext Caching Protocol (HTCP) dapat digunakan oleh squid untuk mengirim dan menerima

Page 10: Squid indonesia

cache yang dicernanya untuk cache tetangga. Opsi ini menonaktifkan dukungan HTCP.

--enable-ssl

Squid dapat menghentikan koneksi SSL. Ketika Squid dikonfigurasi dalam mode reverse proxy,

Squid dapat menghentikan koneksi SSL dimulai oleh klien dan menanganinya atas nama web server di

backend. pada dasarnya ini berarti bahwa backend web server tidak akan memiliki untuk melakukan

pekerjaan SSL, yang berarti penghematan komputasi yang signifikan. Dalam hal ini, komunikasi antara

Squid dan backend web server akan menjadi HTTP murni, tapi klien masih akan melihatnya sebagai

koneksi aman dengan server web. Hal ini berguna hanya ketika Squid dikonfigurasi untuk bekerja pada

akselerator atau mode reverse proxy.

--enable-cache-digest

Cache digests adalah cara Squid berbagi informasi dengan server Squid tetangga tentang cache

dokumen web, dalam format terkompresi.

--enable-default-err-language

Setiap kali Squid menemukan kesalahan (misalnya, halaman tidak ditemukan, akses ditolak,

atau network unreachable error) yang harus disampaikan kepada klien, squid menggunakan halaman

default untuk menampilkan kesalahan ini. Halaman-halaman kesalahan tersedia dalam bahasa lokal.

Pilihan ini dapat digunakan untuk menentukan bahasa default untuk semua halaman kesalahan. Bahasa

default untuk halaman kesalahan adalah bahasa Inggris.

./configure –enable-default-err-language=Spanish

--enable-err-languages

Secara default, squid membangun dukungan untuk semua bahasa yang tersedia. Jika kita hanya

ingin membangun Squid dengan bahasa yang kita kenal dengan, kita dapat menggunakan opsi ini.

Harap memeriksa errors/ pada direktori source code squid untuk bahasa yang tersedia.

./configure --enable-err-languages='English French German'

--disable-http-violations

Squid memiliki pilihan konfigurasi, dan dengan menggunakan mereka, kita dapat memaksa

Squid untuk melanggar standar protokol HTTP dengan mengganti field header dalam permintaan atau

respons HTTP. Bermain-main dengan HTTP header bertentangan dengan norma HTTP standar. Kita

dapat menonaktifkan dukungan untuk segala macam pelanggaran HTTP dengan menggunakan opsi ini.

--enable-ipfw-transparent

IPFIREWALL (IPFW) adalah aplikasi firewall untuk sistem FreeBSD, FreeBSD dikelola oleh

staf dan sukarelawan. Opsi ini berguna ketika mengatur Transparan Proxy Server pada sistem dengan

IPFW. Jika sistem kita tidak memiliki IPFW, kita harus menghindari menggunakan opsi ini, karena

Page 11: Squid indonesia

Squid akan gagal dikompilasi. Perilaku default adalah auto-detect, yang melakukan pekerjaan dengan

cukup baik.

--enable-ipf-transparent

Ipfilter (IPF) juga merupakan stateful firewall bagi banyak Unix-seperti sistem operasi. Hal ini

disediakan oleh NetBSD, Solaris, dan sebagainya. Jika sistem kita memiliki IPF, maka kita harus

mengaktifkan opsi ini untuk dapat mengkonfigurasi Squid dalam mode Transparan. Mengaktifkan opsi

ini dengan tidak adanya IPF pada sistem akan mengakibatkan kesalahan kompilasi.

--enable-pf-transparent

Packet Filter (PF) adalah satu lagi aplikasi stateful firewall awalnya dikembangkan untuk

OpenBSD. Opsi ini berguna pada sistem dengan PF dipasang untuk mencapai mode Transparent Proxy.

Jangan aktifkan pilihan ini jika PF tidak diinstal.

--enable-linux-netfliter

Netfilter merupakan kerangka penyaringan paket dalam kernel Linux dalam seri 2.4.x dan 2.6.x.

Opsi ini berguna untuk mengaktifkan dukungan Transparent Proxy pada sistem operasi berbasis Linux.

--enable-follow-x-forwarded-for

Ketika sebuah permintaan HTTP diteruskan oleh proxy, proxy menulis informasi penting

tentang dirinya sendiri dan klien dimana permintaan tersebut sedang diteruskan, dalam header HTTP.

Opsi ini memungkinkan Squid untuk mencoba untuk pencarian alamat IP dari klien asli untuk dimana

permintaan itu diteruskan melalui satu atau lebih server proxy.

--disable-ident-lookups

Hal ini untuk mencegah dari melakukan pencarian pada Squid ident atau mengidentifikasi

username untuk setiap koneksi. Menonaktifkan ini dapat mencegah sistem kita dari kemungkinan

serangan Denial Of Service oleh klien berbahaya yang meminta koneksi dalam jumlah besar.

--disable-internal-dns

Squid memiliki implementasi sendiri pada DNS protokol dan mampu membangun query DNS.

Jika kita ingin menggunakan DNS internal squid, maka kita tidak harus menonaktifkan itu. Jika tidak,

kita dapat menonaktifkan dukungan untuk fitur internal DNS Squid dengan menggunakan opsi ini dan

dapat menggunakan server eksternal DNS.

--enable-default-hostsfile

Menggunakan pilihan ini, kita dapat memilih lokasi default dari file host. Pada sistem operasi

pada umumnya, itu terletak di direktori /etc/ hosts.

./configure --enable-default-hostsfile=/some/other/location/hosts

Page 12: Squid indonesia

--enable-auth

Squid mendukung berbagai mekanisme autentikasi. Opsi ini memungkinkan dukungan untuk

skema autentikasi. Konfigurasi pilihan ini (dan berhubungan mengaktifkan opsi auth) sedang

mengalami perubahan.

Sintaks lama

Sebelumnya, opsi ini digunakan untuk mengaktifkan dukungan autentikasi dan daftar skema

autentikasi ini juga berlalu. Skema Autentikasi dari daftar kemudian dibangun selama kompilasi.

./configure –enable-auth=basic,digest,ntlm

Sintaks baru

Sekarang, pilihan ini hanya digunakan untuk mengaktifkan dukungan global untuk otentikasi

dan daftar skema otentikasi tidak diteruskan. Skema autentikasi diaktifkan dengan opsi --enable-auth-

AUTHENTICATION_SCHEME dimana AUTHENTICATION_SCHEME adalah nama dari skema

autentikasi. Secara default, semua skema autentikasi diaktifkan dan helper autentikasi yang sesuai

dibangun selama kompilasi. helper otentikasi (authentication helper) adalah program eksternal yang

dapat mengotentikasi klien menggunakan berbagai mekanisme autentikasi, terhadap database pengguna

yang berbeda.

./configure –enable-auth

--enable-auth-basic

Opsi ini memungkinkan dukungan untuk skema Otentikasi Dasar dan membangun daftar helper

tertentu. Jika daftar helper tidak disediakan, Hal ini memungkinkan akan mengaktifkan semua helper

mungkin. Daftar helper yang tersedia untuk skema ini dapat ditemukan di helpers/basic_auth/ direktori

dalam source code squid. Untuk menonaktifkan skema autentikasi, kita dapat menggunakan --disable-

auth-basic.

./configure --enable-auth-basic=PAM,NCSA,LDAP

Jika kita ingin mengaktifkan opsi ini tetapi tidak ingin membangun semua helper, kita harus

menggunakan "none" di tempat dari daftar helper

./configure –enable-auth-basic=none

Sebelumnya, opsi ini dikenal sebagai –enable-basic-auth-helpers. Daftar helper dilewatkan dengan cara

yang sama.

./configure –enable-basic-auth-helpers=PAM,NCSA,LDAP

“Sintaks opsi lama dan baru untuk semua skema otentikasi lainnya yang serupa.”

--enable-auth-ntlm

Squid mendukung skema otentikasi NTLM diaktifkan dengan pilihan ini. Helper yang tersedia

Page 13: Squid indonesia

untuk skema ini berada di direktori helpers/ntlm_auth/ dalam source codesquid. Untuk menonaktifkan

dukungan autentikasi NTLM skema, gunakan opsi --disable-auth-ntlm .

./configure –enable-auth-ntlm=smb_lm,no_check

--enable-auth-negotiate

Opsi ini memungkinkan skema Otentikasi Negotiate. Rincian dan sintaks mirip dengan opsi

skema otentikasi di atas.

./configure –enable-auth-negotiate=kerberos

--enable-auth-digest

Opsi ini memungkinkan dukungan untuk skema Otentikasi Digest. Rincian lainnya mirip

dengan opsi di atas.

--enable-ntlm-fail-open

Jika opsi ini diaktifkan dan helper gagal melakukan otentikasi pengguna, itu masih dapat

memungkinkan Squid untuk mengotentikasi pengguna. Pilihan ini harus digunakan dengan hati-hati

karena dapat mengakibatkan celah keamanan.

--enable-external-acl-helpers

Squid mendukung ACL eksternal menggunakan helper. Jika kita bersedia untuk menggunakan

ACL eksternal, kita harus mempertimbangkan menggunakan opsi ini. Kita juga bisa menggunakan opsi

ini sambil belajar. Daftar helper ACL eksternal harus dilalui untuk membangun helper tertentu. Perilaku

default adalah untuk membangun semua helper yang tersedia. Sebuah daftar yang tersedia helper ACL

eksternal dapat ditemukan di direktori helpers/external_acl/ pada source code squid.

./configure –enable-external-acl-helpers=unix_group,ldap_group

--disable-translation

Secara default, squid berusaha menyajikan kesalahan dan halaman manual dalam bahasa lokal.

Jika kita tidak ingin ini terjadi, maka kita dapat menggunakan opsi ini.

--disable-auto-locale

Berdasarkan permintaan header klien, Squid mencoba untuk secara otomatis menyediakan

halaman kesalahan lokal. Kita dapat menggunakan pilihan ini untuk menonaktifkan lokalisasi otomatis.

Tag error_directory di file konfigurasi squid harus dikonfigurasi jika kita menggunakan opsi ini.

--disable-unlinkd

unlinkd adalah proses eksternal yang digunakan untuk memutuskan tautan panggilan sistem.

Opsi ini menonaktifkan dukungan unlinkd di squid. Menonaktifkan unlinkd bukanlah ide yang baik

karena system call unlink dapat memblokir proses memakan waktu yang cukup banyak, yang dapat

menyebabkan keterlambatan dalam respons.

Page 14: Squid indonesia

--with-default-user

Kita biasanya tidak ingin menjalankan squid sebagai user root untuk menghilangkan risiko

keamanan. Secara default, squid berjalan sebagai user nobody. Namun, jika kita telah menginstal Squid

dari biner pre-compiled, Squid dapat menjalankan sebagai 'squid' atau 'proxy' pengguna tergantung

pada sistem operasi yang kita gunakan. Menggunakan pilihan ini, kita dapat mengatur default user

untuk menjalankan squid. Lihat contoh berikut bagaimana menggunakan opsi ini:

./configure –with-default-user=squid

--with-logdir

Secara default, squid menulis semua laporan log dan kesalahan untuk file yang ditunjuk di $

{prefix}/var/logs/. Lokasi ini berbeda dari lokasi yang digunakan oleh semua proses lainnya dan

daemon untuk menulis log mereka. Dalam rangka untuk mendapatkan akses cepat ke log Squid, kita

mungkin ingin menempatkan mereka di direktori default sistem log, yang ini /var/log/ di sebagian besar

sistem operasi berbasis Linux. Lihat contoh sintaks berikut untuk melakukan hal ini:

./configure –with-logdir=/var/log/squid/

--with-pidfile

Lokasi default untuk menyimpan file PID squid adalah ${prefix}/var/run/squid. pid, bukan

merupakan lokasi sistem standar untuk menyimpan file PID. Pada kebanyakan sistem operasi berbasis

Linux, file PID disimpan di /var/run/. Jadi, kita mungkin ingin mengubah lokasi default pidfile

menggunakan opsi berikut:

./configure –with-pidfile=/var/run/squid.pid

--with-aufs-threads

Menggunakan pilihan ini, kita dapat menentukan jumlah thread untuk digunakan ketika sistem

penyimpanan aufs digunakan untuk mengelola direktori cache. Jika opsi ini tidak digunakan, squid

secara otomatis menghitung jumlah thread yang harus digunakan:

./configure –with-aufs-threads=12

--without-pthreads

Versi Squid dibangun tanpa dukungan thread POSIX. Sekarang, Squid dibangun dengan

dukungan pthreads secara default, karena itu, jika kita tidak ingin mengaktifkan dukungan pthreads,

kita harus secara eksplisit menonaktifkan itu.

--with-openssl

Jika kita ingin membangun Squid dengan dukungan OpenSSL, kita dapat menggunakan opsi ini

untuk menentukan path instalasi OpenSSL, jika tidak diinstal di lokasi default:

./configure –with-openssl=/opt/openssl/

Page 15: Squid indonesia

--with-large-files

Dalam lalu lintas yang padat, log file squid ini (terutama log akses) tumbuh dengan cepat dan

dalam jangka panjang ukuran file dapat menjadi cukup besar. Kita dapat menggunakan opsi ini untuk

mengaktifkan dukungan untuk file log besar.

“Untuk kinerja yang lebih baik, itu adalah praktik yang baik untuk memutar file-file log yang sering

bukannya pergi dengan file besar.”

--with-filedescriptors

Sistem operasi menggunakan deskriptor file (pada dasarnya integer) untuk melacak file dan

soket yang terbuka. Secara default, ada batas pada jumlah deskriptor file, pengguna dapat

menggunakan (biasanya 1024). Begitu Squid sudah menerima koneksi yang telah dikonsumsi semua

deskriptor file yang tersedia untuk pengguna Squid, squid tidak dapat menerima koneksi lebih banyak,

kecuali beberapa file deskriptor yang dilepas. Di bawah beban(load) berat, squid sering kehabisan file

deskriptor. Kita dapat menggunakan pilihan berikut untuk mengatasi masalah kekurangan file

descriptor:

./configure –with-filedescriptors=8192

Kita juga perlu meningkatkan batas system-width pada jumlah deskriptor file yang tersedia untuk

pengguna.

Have a go hero – file descriptors

Cari tahu jumlah maksimum deskriptor file yang tersedia untuk pengguna Anda. Juga, tuliskan

perintah yang akan menetapkan batas maksimum file deskriptor yang tersedia untuk 8192.

Solusi: Untuk memeriksa file deskriptor yang tersedia gunakan perintah berikut:

ulimit -n

Untuk mengatur batas file descriptor dengan 8192, kita perlu menambahkan baris berikut di

/etc/security/limits.conf:

username hard nofile 8192

username soft nofile 8192

Tindakan ini hanya dapat dilakukan dengan hak root atau super user.

Saatnya untuk bertindak - menjalankan perintah configure

Sekarang setelah kita telah memiliki sekilas tentang beberapa pilihan yang tersedia, kita dapat

layout pilihan untuk lingkungan dimana kita membangun squid. Sekarang, kita siap untuk menjalankan

perintah configure dengan opsi-opsi berikut:

./configure --prefix=/opt/squid/ --with-logdir=/var/log/squid/ --with- pidfile=/var/run/squid.pid

Page 16: Squid indonesia

--enable-storeio=ufs,aufs --enable-removal- policies=lru,heap --enable-icmp --enable-

useragent-log --enable-referer- log --enable-cache-digests –with-large-files

dan menghasilkan keputusan atas dasar library dan modul yang tersedia. configure menulis keluaran

debug ke file config.log dalam direktori yang sama. Ini adalah cara untuk memeriksa config.log untuk

setiap kesalahan yang mungkin terjadi saat menjalankan perintah configure. Jika semuanya berjalan

baik-baik saja, configure akan menghasilkan makefiles dalam beberapa direktori yang akan dibutuhkan

untuk kompilasi source code pada langkah berikutnya.

Apa yang baru saja terjadi?

Menjalankan program configure dengan opsi-opsi yang disebutkan dalam contoh kode

sebelumnya, akan menghasilkan makefiles yang dibutuhkan untuk mengkompilasi source code dan

source code Squid dari modul diaktifkan. Ini juga akan menghasilkan config.log dan file config.status.

Semua pesan yang dihasilkan selama menjalankan program configure dicatat ke file config.log. File

config.status adalah eksekusi yang dapat dijalankan untuk menciptakan makefiles.

Have a go hero – debugging configure errors

Dalam direktori source squid, jalankan perintah configure, seperti yang ditunjukkan dalam kode

berikut:

./configure –enable-storeio='aufs,disk'

Sekarang cobalah untuk memeriksa apa yang salah dan memperbaiki kesalahan.

Saatnya untuk bertindak - kompilasi source

Setelah menentukan lingkungan kita dan membangun persyaratan, kita perlu melakukan

kompilasi aktual. Kompilasi source code sangat mudah dan hanya dengan menggunakan satu perintah:

make

Kita tidak perlu menjadi root atau super user untuk menjalankan perintah ini. Perintah ini dapat

mengambil cukup banyak waktu untuk mengeksekusi, tergantung pada perangkat keras sistem.

Menjalankan make akan menghasilkan banyak output di terminal. Hal ini juga dapat menghasilkan

banyak peringatan kompilator yang aman dapat diabaikan dalam banyak kasus.

Jika make berakhir dengan error, kita harus periksa bugzilla squid untuk masalah yang sama.

Kita dapat memperbarui sebuah bug yang ada dengan laporan kesalahan kita atau membuat laporan bug

baru jika tidak ada bug yang sama. Untuk rincian tentang pemecahan masalah dan menyelesaikan

laporan bug, silakan lihat Bab 12, Troubleshooting Squid .

Jika make berakhir tanpa kesalahan, kita dapat dengan cepat melanjutkan ke tahap instalasi.

Kita juga dapat menjalankan make lagi untuk memverifikasi bahwa segala sesuatu dikompilasi dengan

Page 17: Squid indonesia

sukses. Menjalankan make lagi akan menghasilkan banyak baris serupa dengan berikut ini:

Making all in compat

make[1]: Entering directory '/home/user/squid-source/compat'

make[1]: Nothing to be done for 'all'.

make[1]: Leaving directory '/home/user/squid-source/compat'

Apa yang baru saja terjadi?

Kita baru saja menjalankan perintah make yang akan mengkompilasi source code dari Squid

dan modul yang terkait, untuk menghasilkan executable, jika selesai tanpa kesalahan. Executable yang

dihasilkan siap untuk diinstal sekarang.

Saatnya untuk bertindak - menginstal Squid

Kompilasi yang sukses dari kode sumber dalam bagian sebelumnya akan menghasilkan

program yang dibutuhkan tergantung pada fitur dan paket telah kita aktifkan atau dinonaktifkan.

Namun, mereka harus dipindahkan ke lokasi yang telah ditentukan, sehingga mereka dapat digunakan.

Mari kita melakukan langkah-langkah akhir instalasi.

1. Tergantung pada ${prefix} , kita mungkin perlu hak root atau super user untuk menginstal

Squid. Jika root atau super user diperlukan, pertama kita harus beralih ke root atau super user

dengan menggunakan perintah berikut:

sudo su

2. Sekarang semua yang perlu kita lakukan adalah untuk menjalankan perintah make dengan

install sebagai argumen:

make install

Perintah ini akan menginstal atau hanya memindahkan program ke lokasi yang telah ditentukan,

tergantung pada path yang digunakan dengan opsi --prefix saat menjalankan program configure.

Apa yang baru saja terjadi?

Kita baru saja belajar bagaimana untuk melakukan langkah terakhir dalam menginstal Squid, yang

menempatkan program-program yang dihasilkan dan file penting lainnya di lokasi yang telah

ditentukan.

Mari kita melihat file dan direktori yang dihasilkan selama instalasi. Cara termudah untuk

memeriksa direktori dan file yang dihasilkan adalah dengan menggunakan perintah tree. Jika perintah

tree tidak tersedia, kita bisa melihat daftar file dengan menggunakan perintah ls juga.

tree ${prefix} | less

${prefix} adalah direktori yang digunakan dengan opsi --prefix saat configure. Sekarang mari kita

Page 18: Squid indonesia

memiliki gambaran singkat di file penting yang dihasilkan oleh squid saat instalasi. Semua direktori

dan file berikut terdaftar, berada di ${prefix}:

bin

Direktori ini berisi program-program yang dapat dieksekusi atau dijalankan oleh pengguna tanpa hak

root atau super user.

bin/squidclient

squidclient adalah klien HTTP dengan kemampuan canggih, yang memungkinkan untuk melakukan

permintaan HTTP untuk menguji server Squid. Jalankan squidclient untuk memeriksa pilihan yang

tersedia:

${prefix}/bin/squidclien

etc

Ini adalah tempat di mana untuk semua file konfigurasi yang berkaitan dengan Squid berada.

“Ini adalah ide yang baik untuk menggunakan pilihan --sysconfdir=/etc/squid/ dengan configure,

sehingga Anda dapat berbagi konfigurasi pada instalasi squid yang berbeda saat pengujian.”

etc/squid.conf

Ini adalah lokasi default untuk file konfigurasi squid. File squid.conf dihasilkan selama instalasi ini

merupakan konfiguasi minimum yang dibutuhkan untuk Squid untuk digunakan. Kita selalu membuat

perubahan pada file ini jika kita perlu mengubah konfigurasi squid.

etc/squid.conf.default

Squid menghasilkan file konfigurasi default ini sehingga kita dapat menyalin dan rename menjadi

squid.conf dan mulai lagi.

etc/squid.conf.documented

Ini adalah versi yang didokumentasikan dengan lengkap dari squid.conf, berisi ribuan baris komentar.

Kita harus selalu merujuk ke file ini untuk tag konfigurasi yang tersedia untuk versi Squid yang telah

kita instal.

libexec

Direktori ini berisi program pembantu(helper) dibangun selama kompilasi squid.

libexec/cachemgr.cgi

Program CGI menyediakan antarmuka web untuk mengelola cache Squid yang disebut Cache Manajer.

Sbin

Direktori ini berisi program-program yang hanya dapat dieksekusi oleh root atau user dengan hak akses

super user.

Page 19: Squid indonesia

sbin/squid

Ini adalah program Squid yang sebenarnya, yang umumnya dijalankan sebagai daemon.

share

Ini adalah lokasi untuk template halaman error, dokumentasi, dan file lain yang digunakan oleh squid.

share/errors

Direktori ini berisi template halaman kesalahan lokal. Template adalah halaman HTML dan kita dapat

menyesuaikan pesan kesalahan yang ditampilkan oleh Squid, dengan memodifikasi template HTML

ini.

share/icons

Direktori ini berisi sejumlah gambar kecil yang digunakan untuk daftar direktori FTP atau Gopher.

share/man

Ini adalah tempat di mana halaman manual untuk squid squidclient, dan helper dibangun selama

kompilasi. man adalah halaman manual atau halaman bantuan yang dapat dilihat dengan menggunakan

perintah man (tersedia di semua Linux / Unix distribusi). Untuk melihat halaman manual yang terletak

di /opt/squid/ share/man/man8/squid.8 , kita dapat menggunakan perintah man sebagai berikut:

man /opt/squid/share/man/man8/squid.8

Untuk rincian lebih lanjut tentang halaman manual, silakan kunjungi

http://en.wikipedia.org/wiki/Man_page.

var

Sebuah tempat untuk file yang sering berubah ketika squid berjalan.

var/cache

Ini adalah direktori default untuk menyimpan dokumen-dokumen web cache pada hard disk.

var/logs

Ini adalah default home untuk semua file log (seperti cache.log, access.log, dan sebagainya) yang

digunakan oleh squid.

Apa yang baru saja terjadi?

Kita baru saja melihat berbagai file dan direktori yang dihasilkan selama instalasi dan gambaran

singkat tentang apa isi dari setiap direktori.

Installing Squid dari paket binary

Paket binary Squid tersedia dalam repositori perangkat lunak pada kebanyakan sistem operasi

dan kita dapat menginstal mereka dengan menggunakan manajer paket yang disediakan oleh sistem

operasi masing-masing. Selanjutnya, kita akan melihat bagaimana menggunakan manajer paket pada

Page 20: Squid indonesia

beberapa sistem operasi untuk menginstal Squid.

“Versi terbaru atau beta mungkin tidak tersedia dalam repositori perangkat lunak dari semua sistem

operasi. Dalam kasus tersebut, kita harus mendapatkan versi terbaru atau beta dari situs squid, seperti

yang dijelaskan sebelumnya dalam bab ini.”

Fedora, CentOS or Red Hat

Yum adalah manajer paket yang populer pada sistem operasi berbasis RPM. Squid RPM tersedia di

Fedora, CentOS, dan repositori Red Hat. Untuk menginstal Squid, kita tinggal bisa menggunakan

perintah berikut:

yum install squid

Debian or Ubuntu

Kita dapat menggunakan apt-get untuk menginstal Squid di Debian atau Ubuntu:

apt-get install squid3

FreeBSD

Squid tersedia dalam koleksi port FreeBSD. Perintah berikut dapat digunakan untuk menginstal Squid

pada FreeBSD:

pkg_add -r squid31

Untuk informasi lebih lanjut tentang manajemen paket di FreeBSD, silahkan kunjungi

http://www.freebsd.org/doc/handbook/packages-using.html.

OpenBSD or NetBSD

menginstal squid di OpenBSD atau NetBSD mirip dengan menginstal pada FreeBSD dan dapat

dilakukan dengan menggunakan perintah berikut:

pkd_add squid31

Untuk mempelajari lebih lanjut tentang sistem manajemen paket pada OpenBSD dan NetBSD, silakan

lihat http://www.openbsd.org/ports.html#Get dan

http://www.netbsd.org/docs/pkgsrc/using.html#installing-binary-packages masing-masing.

Dragonfly BSD

Untuk menginstal squid di Dragonfly BSD, kita dapat menggunakan perintah berikut:

pkg_radd squid31

Untuk informasi lebih lanjut tentang cara menginstal paket biner pada Dragonfly BSD, silakan

kunjungi http://www.dragonflybsd.org/docs/newhandbook/pkgsrc/ .

Gentoo

Kita dapat menginstal Squid di Gentoo Linux dengan perintah emerge, seperti yang ditunjukkan berikut

ini: emerge =squid-3.1*

Page 21: Squid indonesia

Arch Linux

Untuk menginstal squid di Arch Linux, kita dapat menggunakan pengelola paket pacman,

seperti terlihat pada perintah berikut:

pacman -S squid

Untuk informasi lebih lanjut tentang pacman, silakan kunjungi

https://wiki.archlinux.org/index.php/Pacman.

Quick start

Sebelum kita mengeksplorasi file konfigurasi secara rinci, mari kita lihat konfigurasi minimal

yang Anda akan butuhkan untuk memulai. Bersiaplah dengan file konfigurasi yang terletak di

/opt/squid/etc/squid.conf. Karena kita akan membuat perubahan dan penambahan yang diperlukan

secara cepat setting server proxy yang minimal.

cache_dir ufs /opt/squid/var/cache/ 500 16 256

acl my_machine src 192.0.2.21 # Replace with your IP address

http_access allow my_machine

Kita harus menambahkan baris sebelumnya di bagian atas file konfigurasi saat ini kita

(memastikan bahwa kita mengubah alamat IP yang sesuai). Sekarang, kita perlu menciptakan direktori

cache. Kita dapat melakukannya dengan menggunakan perintah berikut:

$ /opt/squid/sbin/squid -z

Kita sekarang sudah siap untuk menjalankan server proxy kita, dan ini dapat dilakukan dengan

menjalankan perintah berikut:

$ /opt/squid/sbin/squid

Squid akan mulai mendengarkan pada port 3128 (default) pada semua antarmuka jaringan pada

komputer kita. Sekarang kita dapat mengkonfigurasi browser kita untuk menggunakan Squid sebagai

proxy server HTTP dengan host sebagai alamat IP komputer kita dan port 3128.

Setelah browser dikonfigurasi, coba browsing ke http://www.example.com/. Itu saja! Kita telah

mengkonfigurasi Squid sebagai server proxy HTTP! Sekarang mencoba browse ke

http://www.example.com:897/ dan mengamati pesan yang Anda terima. Pesan yang ditampilkan adalah

akses ditolak pesan yang dikirim kepada Anda oleh Squid.

Sekarang, mari kita lanjutkan untuk memahami file konfigurasi secara rinci.

Sintaks dari file konfigurasi

File konfigurasi squid ini pada normalnya dapat ditemukan pada direktori /etc/squid/squid.conf ,

/usr/local/squid/etc/squid.conf , atau $ ${prefix}/etc/squid.conf dimana ${prefix} adalah nilai untuk

Page 22: Squid indonesia

opsi --prefix, yang dilewatkan ke perintah configure sebelum kompilasi squid.

Dalam versi baru squid, versi didokumentasikan dari squid.conf, yang dikenal sebagai squid.

conf.documented, dapat ditemukan bersama squid.conf. Dalam bab ini, kita akan membahas beberapa

perintah impor yang tersedia di file konfigurasi. Untuk penjelasan rinci tentang semua perintah yang

digunakan dalam file konfigurasi, silakan cek http://www.squid-cache.org/Doc/config/.

Sintaks untuk file konfigurasi Squid documented mirip dengan program lainnya untuk Linux/

Unix. Secara umum, ada beberapa baris komentar yang berisi dokumentasi terkait yang berguna

sebelum setiap perintah digunakan dalam file konfigurasi. Hal ini membuat lebih mudah untuk

memahami dan mengkonfigurasi perintah, bahkan untuk orang yang tidak biasa mengkonfigurasi

aplikasi yang menggunakan file-file konfigurasi. Biasanya, kita hanya perlu membaca komentar dan

menggunakan opsi yang sesuai dan tersedia untuk perintah tertentu.

Baris dimulai dengan karakter # diperlakukan sebagai komentar dan benar-benar diabaikan oleh squid

ketika parsing file konfigurasi. Selain itu, setiap baris kosong juga diabaikan.

# Test comment. This and the above blank line will be ignored by

Squid.

Mari kita lihat potongan dari file konfigurasi documented (squid.conf.documented).

# TAG: cache_effective_user

# If you start Squid as root, it will change its effective/real

# UID/GID to the user specified below. The default is to change

# to UID of nobody.

# see also; cache_effective_group

#Default:

# cache_effective_user nobody

Dalam potongan sebelumnya, baris pertama menyebutkan nama direktif, yang dalam hal ini,

cache_effective_user. Baris berikut tag line memberikan informasi singkat tentang penggunaan

Instruksi. Baris terakhir berisi nilai default untuk direktif ini, jika tidak di tentukan.

Jenis perintah

Sekarang, mari kita lihat sekilas berbagai jenis perintah dan nilai-nilai yang dapat

ditentukan.

Single valued directives

Ini adalah perintah yang mengambil hanya satu nilai. Petunjuk-petunjuk ini tidak boleh

digunakan beberapa kali di file konfigurasi karena kejadian terakhir dari perintah akan menimpa semua

Page 23: Squid indonesia

deklarasi sebelumnya. Sebagai contoh, logfile_rotate harus ditentukan hanya sekali.

logfile_rotate 10

# Few lines containing other configuration directives

logfile_rotate 5

Dalam kasus ini, 5 logfile_rotate akan dibuat ketika kita memicu squid untuk memutar sebuah file log.

Boolean-valued or toggle directives

Ini juga petunjuk bernilai tunggal(single value), tetapi instruksi ini umumnya digunakan untuk

mengaktifkan atau menonaktifkan fitur.

query_icmp on

log_icp_queries off

url_rewrite_bypass off

Kita menggunakan perintah ketika kita perlu mengubah perilaku default.

Multi-valued directives

Perintah(direktif) jenis ini secara umum mengambil satu atau lebih dari satu nilai. Kita dapat

menentukan semua nilai pada satu baris setelah perintah tersebut atau kita dapat menuliskannya pada

beberapa baris dengan direktif berulang setiap waktu. Semua nilai-nilai untuk direktif yang

dikumpulkan dari baris yang berbeda:

hostname_aliases proxy.exmaple.com squid.example.com

Secara opsional, kita dapat melewatinuliskan perintah diatas pada baris yang berbeda sebagai berikut:

dns_nameservers proxy.example.com

dns_nameservers squid.example.com

Kedua potongan kode sebelumnya akan menginstruksikan Squid untuk menggunakan

proxy.example.com dan squid.example.com sebagai alias untuk nama host dari server proxy kita.

Directives with time as a value

Ada beberapa instruksi yang mengambil nilai-nilai dengan waktu sebagai unit. Squid

memahami kata-kata detik, menit, jam, dan seterusnya, dan ini dapat diakhiri dengan nilai-nilai

numerik untuk menentukan nilai yang sebenarnya. Sebagai contoh:

request_timeout 3 hours

persistent_request_timeout 2 minutes

Directives with file or memory size as values

Nilai yang dikirimkan untuk instruksi ini umumnya diakhiri dengan unit ukuran file atau

memori seperti byte, KB, MB, atau GB. Sebagai contoh:

reply_body_max_size 10 MB

Page 24: Squid indonesia

cache_mem 512 MB

maximum_object_in_memory 8192 KB

Sebagaimana kita telah familiar dengan sintaks file konfigurasi sekarang, mari kita buka file squid.conf

dan belajar tentang direktif yang sering digunakan.

Have a go hero – categorize the directives

Buka file konfigurasi squid documented dan menemukan setidaknya tiga instruksi dari tiap jenis

yang kita bahas sebelumnya. Jangan gunakan direktif yang sudah digunakan dalam contoh.

HTTP port

Direktif ini digunakan untuk menentukan port dimana squid akan mendengarkan untuk koneksi

klien. Secara default adalah untuk mendengarkan pada port 3128 pada semua interface yang tersedia

pada mesin.

Waktu untuk tindakan - pengaturan port HTTP

Sekarang, kita akan melihat berbagai cara untuk mengatur port HTTP dalam file squid.conf:

• Dalam bentuk yang paling sederhana, kita hanya menentukan port yang kita ingin Squid untuk

mendengarkan:

http_port 8080

• Kita juga dapat menentukan alamat IP dan kombinasi port yang kita ingin Squid untuk

mendengarkan. Kita biasanya menggunakan pendekatan ini ketika kita memiliki beberapa

interface pada mesin kita dan kita ingin Squid untuk mendengarkan hanya pada interface yang

terhubung ke Local Area Network(LAN):

http_port 192.0.2.25:3128

Hal ini akan menginstruksikan Squid untuk mendengarkan pada port 3128 pada interface

dengan alamat IP 192.0.2.25.

• Bentuk lain di mana kita dapat menentukan http_port adalah dengan menggunakan kombinasi

nama host dan port:

http_port myproxy.example.com:8080

Hostname akan diterjemahkan ke alamat IP oleh Squid dan kemudian Squid akan

mendengarkan pada port 8080 pada alamat IP tertentu.

Aspek lain dari direktif ini adalah bahwa, ia dapat mengambil beberapa nilai pada baris

terpisah. Mari kita lihat apa yang akan dilakukan baris berikut:

http_port 192.0.2.25:8080

http_port lan1.example.com:3128

Page 25: Squid indonesia

http_port lan2.example.com:8081

Baris ini akan memicu Squid untuk mendengarkan pada tiga alamat IP yang berbeda dan

kombinasi port. Pada umumnya membantu ketika kita memiliki klien di LAN yang berbeda,

yang dikonfigurasi untuk menggunakan port yang berbeda untuk server proxy.

• Dalam versi terbaru dari Squid, kita juga dapat menentukan modus operasi seperti intercept,

tproxy, accel, dan sebagainya.

Modus Intercept akan mendukung permintaan intersepsi tanpa perlu mengkonfigurasi mesin

klien. Kita akan belajar lebih banyak tentang proxy server intersepsi pada Bab 10, squid dalam

Mode Intercept.

tproxy modus digunakan untuk mengaktifkan dukungan proxy Linux Transparan untuk koneksi

outgoing spoofing menggunakan alamat IP klien.

http_port 8080 tproxy

“Kita harus memperhatikan bahwa mengaktifkan mode intercept atau tproxy menonaktifkan

beberapa mekanisme autentikasi. Juga, IPv6 didukung untuk tproxy tetapi membutuhkan versi

kernel yang sangat baru. IPv6 tidak didukung dalam modus intercept.”

Accelerator modus diaktifkan menggunakan modus accel. Ini adalah ide yang baik untuk

mendengarkan pada port 80, jika kita mengkonfigurasi Squid dalam mode akselerator. Mode ini

tidak dapat digunakan seperti itu. Kita harus menentukan setidaknya satu website kita ingin

mempercepat. Kita akan belajar lebih banyak tentang modus akselerator dalam Bab 9, squid

dalam Mode Accelerator.

http_port 80 accel defaultsite=website.example.com

“Kita harus mengatur port HTTP hati-hati karena port standar seperti 3128 atau 8080 dapat

menimbulkan risiko keamanan jika kita tidak dapat mengamankan port dengan benar. Jika kita

tidak ingin menghabiskan waktu pada pengamanan port, kita dapat menggunakan nomor port

acak di atas 10000.”

Apa yang baru saja terjadi?

Pada bagian ini, kita belajar tentang penggunaan dari salah satu arahan yang paling penting,

yaitu, http_port. Kita telah belajar tentang berbagai cara di mana kita dapat menentukan port HTTP,

tergantung pada kebutuhan. Kita dapat memaksa Squid untuk mendengarkan pada beberapa interface

dan port yang berbeda, pada antarmuka yang berbeda.

Access control lists

Access Control Lists (ACL) adalah elemen dasar untuk kontrol akses dan biasanya digunakan

Page 26: Squid indonesia

dalam kombinasi dengan perintah lain seperti http_access, icp_access, dan sebagainya, untuk

mengontrol akses ke berbagai komponen Squid dan sumber daya web. ACL mengidentifikasi transaksi

web dan kemudian instruksi seperti http_access, cache, dan kemudian memutuskan apakah transaksi

tersebut harus diizinkan atau tidak. Juga, kita harus mencatat bahwa instruksi terkait dengan akses

sumber daya umumnya berakhir dengan _access.

Setiap definisi access control list harus memiliki nama dan jenis, diikuti oleh nilai-nilai untuk

jenis ACL tertentu:

acl ACL_NAME ACL_TYPE value

acl ACL_NAME ACL_TYPE "/path/to/filename"

Nilai-nilai untuk setiap nama baik ACL dapat ditentukan langsung setelah ACL_TYPE atau Squid

dapat membacanya dari sebuah file terpisah. Di sini kita harus mencatat bahwa nilai-nilai dalam file

harus ditulis sebagai salah satu nilai per baris.

Time for action – constructing simple ACLs

Mari kita membangun sebuah daftar access control untuk nama domain example.com:

acl example_site dstdomain example.com

Dalam kode ini, example_site adalah nama dari ACL dengan tipe dstdomain, yang mencerminkan

bahwa nilai, example.com, adalah nama domain.

Sekarang jika kita ingin membangun sebuah access control list yang dapat mencakup banyak situs

contoh, kita memiliki tiga cara berikut kemungkinan untuk melakukannya:

1. Nilai pada satu baris: Kita dapat menentukan semua nilai yang mungkin pada satu baris:

acl example_sites dstdomain example.com example.net example.org

Ini bekerja dengan baik asalkan hanya ada beberapa nilai.

2. Nilai pada banyak baris: Dalam kasus daftar nilai-nilai yang kita ingin tentukan tumbuh secara

signifikan, kita dapat membagi daftar dan menuliskan nilai pada beberapa baris:

acl example_sites dstdomain example.com example.net

acl example_sites dstdomain example.org

3. Nilai dari sebuah file: Jika kasus jumlah nilai yang ingin kita tentukan cukup besar, kita bisa

menempatkan mereka dalam sebuah file yang didedikasikan dan kemudian menginstruksikan

Squid untuk membaca nilai dari file tertentu:

acl example_sites dstdomain '/opt/squid/etc/example_sites.txt'

Kita dapat menempatkan file example_sites.txt dalam direktori yang sama dengan squid.conf

sehingga mudah untuk menemukan. Isi dari file example_sites.txt harus sebagai berikut:

Page 27: Squid indonesia

# This file can also have comments

# Write one value (domain name) per line

example.net

example.org # Temporarily remove example.org from example_sites

acl

example.com

Nama ACL adalah case-insensitive dan multi-nilai. Jadi kita dapat menggunakan mereka,

beberapa kali, dan nilai-nilai akan agregat:

acl NiCe_NaMe src 192.0.2.21

acl nIcE_nAmE src 192.0.2.23

Kode ini tidak mewakili dua access control list yang berbeda. Ini hanya satu ACL dengan dua

alamat, yaitu, 192.0.2.21 dan 192.0.2.23, sebagai nilai-nilai.

“Kita harus hati-hati perhatikan bahwa salah satu nama ACL tidak dapat digunakan dengan

lebih dari satu jenis ACL.

acl destination dstdomain example.com

acl destination dst 192.0.2.24

Kode di atas tidak valid karena menggunakan nama tujuan ACL di dua ACL yang berbeda

jenis.”

Contoh-contoh sebelumnya dari access list sangat dasar dan sederhana hanya untuk permulaan.

Kita akan mengeksplorasi daftar akses dan kontrol dalam Bab 4, Chapter 4, Getting Started with

Squid's Powerful ACLs and Access Rules

Apa yang baru saja terjadi?

Kita baru saja belajar untuk membuat beberapa ACL dstdomain sederhana dari jenis ACL, yang

mengidentifikasi domain tujuan dalam permintaan.

Have a go hero – understanding the pre-defined ACLs

Langsung ke bagian ACL di file konfigurasi Squid dan mencoba untuk memahami ACL

disediakan oleh Squid, secara default.

Mengontrol akses ke server proxy

Saat Squid berjalan pada server kita, dapat diakses dengan beberapa cara misalnya, melalui web

browsing normal oleh pengguna akhir atau sebagai induk atau server proxy yang sibling oleh proxy

server tetangga. Squid menyediakan berbagai petunjuk untuk mengontrol akses ke sumber daya yang

berbeda. Berikutnya, kita akan belajar tentang pemberian atau mencabut akses ke sumber daya yang

Page 28: Squid indonesia

berbeda.

HTTP akses kontrol

ACL hanya membantu dalam mengidentifikasi permintaan berdasarkan aturan yang berbeda. ACL

tidak berguna dengan sendirinya, mereka harus dikombinasikan dengan perintah kontrol akses untuk

membolehkan atau menolak akses ke berbagai sumber daya. http_access adalah salah satu direktif

seperti yang digunakan untuk memberikan akses untuk melakukan transaksi HTTP melalui squid.

Mari kita lihat sintaks dari http_access:

http_access allow|deny [!]ACL_NAME

Mari kita lihat sintaks dari http_access:

Menggunakan http_access, kita bisa membolehkan atau menolak akses ke transaksi HTTP melalui

squid. Para ACL_NAME dalam kode menandakan permintaan yang mengakses harus diberikan atau

dicabut. Jika tanda seru (!) Diawali dengan ACL_NAME, akses akan diberikan atau dicabut untuk

semua permintaan yang tidak diidentifikasi oleh

ACL_NAME.

Saatnya untuk bertindak - ACL menggabungkan dan HTTP akses

Mari kita lihat pada beberapa kasus untuk mengendalikan akses HTTP menggunakan ACL misalnya.

Ketika kita memiliki beberapa aturan akses, squid cocok dengan sebuah permintaan tertentu terhadap

mereka dari atas ke bawah dan terus melakukannya sampai tindakan tertentu (mengizinkan atau

menolak) ditentukan. Harap dicatat bahwa jika kita memiliki beberapa ACL dalam aturan akses

tunggal, maka permintaan yang cocok dengan semua ACL dari kiri ke kanan, dan proses Squid

berhenti aturan dengan cepat menemukan sebuah ACL yang tidak dapat mengidentifikasi permintaan.

Aturan akses dengan hasil beberapa ACL dalam sebuah tindakan tertentu, hanya jika permintaan

diidentifikasi oleh semua ACL yang digunakan dalam aturan.

acl my_home_machine src 192.0.2.21

acl my_lab_machine src 198.51.100.86

http_access allow my_home_machine

http_access allow my_lab_machine

ACL dan aturan akses dalam kode sebelumnya akan memungkinkan host 192.0.2.21 dan 198.51.100.86

untuk mengakses server proxy. Aturan akses tersebut juga dapat ditulis sebagai:

acl my_machines src 192.0.2.21 198.51.100.86

http_access allow my_machines

Perilaku default adalah untuk memungkinkan akses ke semua klien dalam jaringan area lokal dan

menolak akses ke semua klien lain. Jika kita ingin klien (yang tidak dalam jaringan area lokal kita)

Page 29: Squid indonesia

untuk dapat menggunakan server proxy kita, kita harus menambahkan aturan akses tambahan untuk

memungkinkan mereka.

Perilaku default dari kontrol akses HTTP sedikit rumit jika akses untuk klien tidak dapat diidentifikasi

oleh salah satu aturan akses. Dalam kasus tersebut, perilaku standar adalah untuk melakukan

kebalikan dari aturan akses terakhir. Jika aturan akses terakhir adalah menolak, maka tindakan akan

menjadi memungkinkan akses begitu pun sebaliknya. Oleh karena itu, untuk menghindari kebingungan

atau perilaku yang tidak diinginkan, ini adalah praktek yang baik untuk menambahkan baris menolak

semua setelah aturan akses.

http_access deny all

Semua parameter elemen ACL khusus yang disediakan oleh Squid dan itu mewakili semua alamat IP.

Baris ini akan menolak akses dari semuanya. Karena ini berjalan setelah semua aturan akses lainnya,

permintaan dari klien yang tidak dikenal akan ditolak.

Apa yang baru saja terjadi?

Kita belajar untuk menggabungkan ACL dengan direktif http_access untuk membolehkan atau

menolak akses ke klien. Kita juga belajar bagaimana kelompok ACL yang berbeda dari jenis yang

sama dan kemudian menggunakannya untuk mengontrol akses.

HTTP reply access

Balasan HTTP adalah respon yang diterima dari server web sesuai dengan permintaan diinisiasi oleh

klien. Menggunakan direktif http_reply_access, kita dapat mengontrol akses terhadap jawaban yang

diterima. Sintaks dari http_reply_access mirip dengan http_access.

http_reply_access allow|deny [!]ACL_NAME

Direktif ini menimpa sebagian izin yang diberikan oleh http_access. Mari kita lihat contoh:

acl my_machine src 192.0.2.21

http_access allow my_machine

http_reply_access deny my_machine

Kita telah mengizinkan http_access ke host 192.0.2.21 tapi tetap saja tidak akan dapat mengakses situs

dengan benar seperti itu tidak diperbolehkan untuk menerima balasan. Host hanya bisa membuat

permintaan ke server proxy untuk dokumen web tetapi tidak akan menerima jawaban apapun.

Direktif ini biasanya digunakan untuk menolak akses untuk jenis konten seperti audio, video, dan

sebagainya, untuk mencegah pengguna dari mengakses konten media.

Kita harus benar-benar berhati-hati saat menggunakan direktif http_reply_access. Ketika permintaan

diijinkan oleh http_access, Squid akan menghubungi server asli, bahkan jika aturan dengan direktif

Page 30: Squid indonesia

http_reply_access menyangkal respon. Hal ini dapat mengakibatkan masalah keamanan serius.

Sebagai contoh, perhatikan klien menerima URL jahat, yang dapat mengirimkan informasi penting

pribadi seorang klien menggunakan metode HTTP POST. Jika permintaan klien melewati aturan

http_access tetapi tidak mendapatkan respon ditolak oleh aturan http_reply_access, maka client akan

berada di bawah mengira bahwa tidak ada yang terjadi namun hacker akan memiliki cerdik mencuri

informasi pribadi klien kita.

ICP access

Direktif ini digunakan untuk mengontrol akses query dengan cache sekitar kita menggunakan Internet

Cache Protocol (ICP). Pada dasarnya memungkinkan atau menolak akses ke port ICP. Sintaks mirip

dengan http_access dan perilaku standar adalah untuk menolak semua permintaan ICP.

icp_access allow|deny [!]ACL_NAME

HTCP access

Menggunakan direktif ini, kita dapat mengontrol apakah Squid akan merespon permintaan HTCP

tertentu atau tidak. Sintaks mirip dengan http_access dan perilaku standar adalah untuk menolak semua

permintaan.

HTCP CLR access

Cache yang berdekatan dapat membuat permintaan untuk membersihkan atau menghapus objek cache

dalam bentuk permintaan HTCP CLR. Direktif htcp_clr_access dapat digunakan untuk memberikan

akses membersihkan cache hanya kepada rekan terpercaya.

Miss access

Direktif ini digunakan untuk menentukan rekan-rekan atau klien cache semua dapat menggunakan

sebagai cache induk mereka. Ketika rekan cache atau klien mencoba untuk mengambil konten

menggunakan server proxy kita, permintaan dapat mengakibatkan LEWATKAN (tidak ada dalam

cache) atau HIT (dapat dipenuhi dari cache kita). Umumnya, sebuah LEWATKAN diambil oleh server

kita atas nama klien atau rekan. Jika kita tidak ingin klien kita atau rekan-rekan untuk mengambil

konten menggunakan proxy kita, maka kita dapat menggunakan direktif miss_access, seperti yang

ditunjukkan:

acl bad_clients src 192.0.2.0/24

miss_access deny bad_clients

miss_access allow all

Kode ini tidak akan mengizinkan bad_clients untuk menggunakan proxy server kita sebagai induk

proxy. Perilaku default adalah untuk memungkinkan semua klien yang lewat aturan http_access untuk

Page 31: Squid indonesia

menggunakan server proxy sebagai induk.

Catatan:

Tembolok (Inggris: 'cache') dalam teknologi informasi adalah mekanisme penyimpanan data sekunder

berkecepatan tinggi yang digunakan untuk menyimpan data / instruksi yang sering diakses. Memori

cache dimaksudkan untuk memberi kecepatan memori yang mendekati memori yang paling cepat yang

bisa diperoleh, dan pada waktu yang sama menyediakan kapasitas memori yang besar dengan harga

yang lebih murah dari jenis-jenis memori semikonduktor. Jika data yang diminta yang terkandung

dalam cache (cache hit), permintaan ini dapat dilayani hanya dengan membaca cache, yang relatif

lebih cepat. Jika tidak (cache miss), data harus menghitung ulang atau diambil dari lokasi penyimpanan

aslinya, yang relatif lebih lambat. Oleh karena itu, semakin besar jumlah permintaan yang dapat

dilayani dari cache, semakin cepat kinerja sistem secara keseluruhan

Ident lookup access

Direktif ini yang menentukan atau tidak Squid harus melakukan lookup username untuk permintaan

klien TCP.

acl ident_aware_hosts src 192.0.2.0/24

ident_lookup_access allow ident_aware_hosts

ident_lookup_access deny all

Kode ini akan memungkinkan Squid untuk melakukan lookup ident hanya untuk ident_aware_hosts.

Seting default tidak melakukan lookup ident bagi semua permintaan.

Hanya TC/IP berbasis ACL didukung dengan direktif ini.

Cache peers or neighbors

Cache teman atau tetangga adalah server proxy lain yang Squid proxy server kita dapat:

Berbagi cache untuk mengurangi penggunaan bandwidth dan waktu akses

Gunakan sebagai induk atau saudara server proxy untuk memenuhi permintaan klien '

Gunakan sebagai induk atau server proxy yang saudara

Kita biasanya menggunakan lebih dari satu server proxy dalam jaringan yang sama untuk berbagi

beban dari sebuah server tunggal untuk kinerja yang lebih baik. Server proxy dapat menggunakan

cache masing-masing untuk mengambil dokumen-dokumen web cache lokal untuk meningkatkan

kinerja. Mari kita lihat sekilas arahan yang diberikan oleh squid untuk komunikasi antara rekan-rekan

cache yang berbeda.

Declaring cache peers (Mendeklarasikan Cache rekan-rekan)

Direktif cache_peer digunakan untuk memberitahu squid tentang proxy server di sekitar kita. Mari kita

Page 32: Squid indonesia

melihat sekilas pada sintaks untuk direktif ini:

cache_peer HOSTNAME_OR_IP_ADDRESS TYPE PROXY_PORT ICP_PORT [OPTIONS]

Dalam kode ini, HOSTNAME_OR_IP_ADDRESS adalah alamat host atau IP dari server proxy target

atau rekan cache. JENIS menentukan jenis server proxy, yang pada gilirannya, menentukan bagaimana

proxy server akan digunakan oleh server proxy kita. Server proxy lain dapat digunakan sebagai induk,

sibling, atau anggota dari kelompok multicast.

Saatnya untuk bertindak - menambahkan peer cache

Mari kita menambahkan server proxy (parent.example.com) yang akan bertindak sebagai proxy ke

server proxy induk kita:

cache_peer parent.example.com parent 3128 3130 default proxy-only

3130 adalah port ICP standar. Jika server proxy lain tidak menggunakan ICP port standar, kita harus

mengubah kode yang sesuai. Kode ini akan mengarahkan Squid untuk menggunakan

parent.example.com sebagai server proxy untuk memenuhi permintaan klien dalam kasus itu tidak

mampu melakukannya sendiri.

Opsi default menetapkan bahwa rekan Cache harus digunakan sebagai upaya terakhir dalam skenario di

mana rekan-rekan lainnya tidak dapat dihubungi. Pilihan proxy-only menentukan bahwa konten

diambil menggunakan peer ini tidak harus di-cache lokal. Hal ini bermanfaat ketika kita tidak ingin

mereplikasi dokumen web cache, terutama ketika dua rekan-rekan yang terhubung dengan backbone

bandwidth tinggi.

Apa yang baru saja terjadi?

Kita menambahkan parent.example.com sebagai rekan cache atau proxy induk ke server Squid

proxy kita. Kita juga menggunakan pilihan proxy-only, yang berarti permintaan yang diambil

menggunakan rekan cache tidak akan di-cache di server proxy kita.

Ada beberapa opsi lain di mana anda dapat menambahkan rekan cache, untuk berbagai tujuan,

seperti, sebuah hirarki. Kita akan membahas rekan cache lebih rinci dalam Bab 8, Membangun Hirarki

Cache Squid.

Membatasi Dengan cepat akses menuju domain menggunakan peer

Jika kita telah menambahkan beberapa proxy server sebagai peer Cache ke server Squid kita,

kita mungkin memiliki keinginan untuk memiliki sedikit kontrol atas permintaan diteruskan ke peers.

Direktif cache_peer_domain adalah cara cepat untuk mencapai kontrol yang diinginkan. Sintaks dari

direktif ini cukup sederhana:

cache_peer_domain CACHE_PEER_HOSTNAME [!]DOMAIN1 [[!]DOMAIN2 ...]

Page 33: Squid indonesia

Dalam kode tersebut, CACHE_PEER_HOSTNAME adalah alamat IP dari host atau peer cache yang

digunakan ketika mendeklarasikan sebagai peer cache, menggunakan direktif cache_peer. Kita dapat

menentukan sejumlah domain yang dapat diambil melalui peer cache. Menambahkan tanda seu (!)

Sebagai awalan untuk nama domain akan mencegah penggunaan peer cache ini untuk domain tertentu.

Katakanlah kita ingin menggunakan peer cache yang videoproxy.example.com untuk browsing portal

video seperti Youtube, Netflix, Metacafe, dan sebagainya.

cache_peer_domain videoproxy.example.com .youtube.com .netflix.com

cache_peer_domain videoproxy.example.com .metacafe.com

Kedua baris diatas akan mengkonfigurasi Squid untuk menggunakan cache videoproxy.example.com

cache peer untuk request ke domain youtube.com, netflix.com, dan metacafe.com saja. Permintaan

untuk domain lain tidak akan diteruskan menggunakan peer ini.