Anda di halaman 1dari 68

DIKTAT PROGRAM KEAHLIAN GANDA

TEKNIK KOMPUTER DAN JARINGAN


MODUL D - PROFESIONAL

INSTALASI DAN KONFIGURASI SQUID


SEBAGAI PROXY SERVER

Oleh :
Omar Muhammad Altoumi Alsyaibani, S.Pd.

PPPPTK BBL MEDAN


PB SMK NEGERI 2 BANJARBARU

JL. NUSANTARA NO. 1 LOKTABAT SELATAN


KOTA BANJARBARU KALIMANTAN SELATAN 70712
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

TUJUAN
1. Peserta mampu menginstal dan melakukan konfigurasi dasar Squid.
2. Peserta mampu mengaktifkan fitur TRANSPARENT dan menggunakan
IPTABLES untuk membelokkan data.
3. Peserta mampu memblokir IP Address dan domain tertentu
menggunakan proxy server.

ALAT DAN BAHAN


A. Alat
1. PC / Laptop
B. Bahan
1. Software VirtualBox.
2. ISO CD / DVD Debian Server.
3. File Virtual Machine yang berisi web server.
4. Virtual Machine yang sudah terinstal Debian server.

DASAR TEORI
A. Proxy Server
Proxy server adalah sebuah komputer server yang melakukan
pengecekan terhadap setiap paket data yang keluar masuk jaringan.
Proxy Server biasanya juga adalah komputer yang bertindak sebagai
gateway. Sebuah gateway bertugas sebagai pintu gerbang bagi jaringan
private ke jaringan publik saja, sedangkan sebuah proxy server adalah
sebuah gateway yang mendapat tugas tambahan untuk mengecek paket
data yang akan melewati pintu gerbang. Sebuah gateway kadang disebut
juga tunneling proxy karena tidak memodifikasi data apapun yang
melewatinya.
Beberapa atribut yang biasanya diperiksa oleh proxy adalah ip
address/domain asal, ip address/domain tujuan, port asal, port tujuan,
bahkan hingga konten yang ingin diakses oleh pengguna. Jika atribut-
atribut tersebut memenuhi persyaratan dan tidak melanggar peraturan
yang sudah ditetapkan oleh administrator, maka paket data diizinkan
untuk melewati pintu gerbang. Peraturan untuk mengontrol konten ini
dapat berupa teks, ekstensi file, maupun keyword yang digunakan.

1
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Fungsi-fungsi yang disebutkan di atas sebenarnya bersifat menyaring


data (filter). Saat proxy memfilter atribut-atribut seperti IP Address asal
dan tujuan, ini dikenal dengan isitilah packet filtering karena proses
filter ini berada pada layer 3 (network). Jika yang difilter oleh proxy
adalah atribut-atribut berupa keyword, ekstensi file, dan lain-lain, ini
dikenal dengan istilah content filtering karena kegiatan filter dilakukan
pada layer 7 (aplikasi). Proses content filtering ini dilakukan secara
manual oleh administrator maupun dengan menggunakan antivirus dan
anti-malware yang bekerja sama dengan proxy.

Private Network (Local) Public Network

user service

Data yang
melewati
Permintaan layanan pemeriksaan Data diteruskan ke
user proxy akan jaringan publik service
diteruskan
oleh NAT

user service

Gambar 1. Gambaran sederhana squid


Selain itu, terkadang proxy juga mendapat tugas untuk membatasi
kecepatan akses seorang pengguna baik kecepatan upload maupun
kecepatan download. Bahkan ada juga proxy yang bertugas untuk
mengotentikasi pengguna mana saja yang boleh melewatkan paket data
melalui pintu gerbang. Pencatatan (log) dilakukan oleh proxy, baik untuk
mengetahui alamat (URL) mana saja yang diakses oleh user tertentu
ataupun untuk memonitor statistik penggunaan bandwidth.
Beberapa user di dalam sebuah jaringan private terkadang akan
mengakses sebuah layanan yang sama sehingga proxy server akan
meminta layanan yang sama berulang kali. Dalam hal ini, proxy akan
menggunakan fitur caching. Sebuah konten layanan yang sering diakses
oleh pengguna akan disimpan di dalam proxy sehingga proxy tidak perlu
meminta layanan yang sama berulang-ulang. Cache ini akan diupdate
oleh proxy dalam waktu rentang tertentu. Fitur cache ini dapat
menghemat penggunaan bandwidth Internet. Dengan fiturnya ini,
terkadang proxy server disebut juga cache server.

2
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Cache yang disimpan oleh proxy bisa saja expired dan untuk
memeriksanya dilakukan validasi. Jika validasi ini dilakukan setelah ada
permintaan dari klien, metode ini disebut caching pasif. Pada caching
aktif, cache server mengamati object dan pola perubahannya. Misalkan
pada sebuah object didapati setiap harinya berubah setiap jam 12 siang
dan pengguna biasanya membacanya jam 14, maka cache server tanpa
diminta klien akan memperbaharui object tersebut antara jam 12 dan 14
siang, dengan cara update otomatis ini waktu yang dibutuhkan pengguna
untuk mendapatkan object yang fresh akan semakin sedikit.

Internet

Gambar 2. Cara kerja caching

Pada kondisi tertentu, kapasitas penyimpanan akan terkuras habis oleh


object. Oleh karena itu, perlu dilakukan pengaturan agar ruang
penyimpanan cache tetap dapat digunakan untuk melayani pengguna
lokal, yakni dengan cara menghapus cache. Penghapusan didasarkan
pada umur dan kepopuleran, semakin tua umur object akan tinggi
prioritasnya untuk dihapus. Dan juga untuk object yang tidak popular
akan lebih cepat dihapus juga.
Jika seorang user ingin menggunakan fasilitas proxy untuk mengakses
sebuah layanan publik, maka user tersebut harus mendefinisikan alamat
proxy bersama port proxy pada aplikasi yang digunakan. Misal, kita ingin
mengakses sebuah web menggunakan proxy, maka user harus
mendefinisikan alamat dan port proxy pada web browser yang ingin
digunakan. Namun, proxy server sering kali tidak terlihat oleh komputer
klien (bersifat transparent), sehingga user yang mencoba mengakses
sebuah web melalui gateway secara otomatis akan menggunakan proxy.
Salah satu keuntungan transparent proxy adalah user tidak perlu
repot-repot mendefinisikan alamat dan port proxy karena bagi pengguna
awam hal tersebut cukup sulit dan merepotkan. Jika dilihat dari sisi yang
lain, sebenarnya penggunaan transparent proxy adalah tindakan

3
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

pemaksaan oleh administrator kepada pengguna untuk menggunakan


proxy. Seorang pengguna yang berinteraksi dengan Internet melalui
sebuah transparent proxy server tidak akan mengetahui bahwa sebuah
proxy server sedang menangani request yang dilakukannya.
Dilihat dari posisinya terhadap jaringan publik dan jaringan private, proxy
server dapat dibedakan menjadi dua macam, yaitu:
1. Forward Proxy, yaitu proxy yang bertugas untuk memfilter data-data
yang keluar dari jaringan private ke jaringan publik. Sering kali
forward proxy dicampur pada satu perangkat dengan gateway. Sebuah
forward proxy yang dapat diakses dari Internet dan dapat digunakan
untuk mengakses layanan lain yang juga berada di Internet disebut
open proxy. Sebuah open proxy yang dapat diakses oleh siapa saja
tanpa terkecuali dan tanpa otentikasi disebut anonymous open
proxy, yaitu proxy yang dapat digunakan oleh user untuk
menyembunyikan identitas aslinya saat mengakses sebuah layanan di
Internet.

Gambar 3. Cara kerja open proxy

2. Reverse Proxy, yaitu proxy yang bertugas untuk memfilter akses yang
masuk ke dalam jaringan private dari jaringan publik dan sering kali
proxy jenis ini juga sekaligus bertugas sebagai firewall. Umumnya,
reverse proxy mempunyai tugas seperti load balancing,
authentication, decryption dan caching.
Dari sisi client, sebuah reverse proxy tampak seperti web server biasa
yang melayani request HTTP dari client. Saat request HTTP datang
menuju reverse proxy, request akan diteruskan ke web server untuk
direspon. Responnya dari web server kemudian disampaikan kembali
ke reverse proxy dan kemudian diteruskan oleh reverse proxy ke
pengguna yang melakukan request. Respon yang diterima pengguna
ini dibuat seakan berasal dari reverse proxy sehingga user tidak
mengetahui keberadaan web server yang sebenarnya berada di
belakang reverse proxy. Implementasi reverse proxy ini biasanya
menggunakan DNAT dan menerapkan skenario DMZ.

4
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 4. Skenario reverse proxy

Web Proxy
Web proxy merupakan forward proxy yang meneruskan permintaan
layanan HTTP. Web proxy sering kali berupa website yang dapat
digunakan untuk mengakses website lain di Internet.
B. Squid
Squid adalah cumi-cumi. Hahahaa... tapi serius, squid itu artinya cumi-
cumi. Dalam situs resminya, squid disebut sebagai caching proxy
untuk website yang support protokol HTTP, HTTPS, FTP, dan lain-
lain. Seperti yang dibahas di bagian proxy, caching proxy akan
mengurangi penggunaan bandwidth dan meningkatkan kecepatan respon
dengan menggunakan cache halaman web yang sering digunakan. Squid
dapat dijalankan pada hampir semua sistem operasi dan dilisensikan di
bawah GNU GPL.

Gambar 5. Situs resmi squid

5
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Squid awalnya dikembangkan sebagai Harvest object cache, bagian dari


Harvest project di University of Colorado Boulder. Project ini kemudian
dilanjutkan di University of California, San Diego dan didanai dua grant
dari National Science Foundation. Versi gratis dari Harvest project ini
diberi nama squid untuk membedakkannya dengan yang versi berbayar
yang diberi nama Cache 2.0 (sekarang NetCache). Squid 1.0.0 dirilis pada
Juli 1996.

Squid dapat dijalankan pada beberapa sistem operasi berikut:


1. AIX
2. BSDI
3. Digital Unix
4. FreeBSD
5. HP-UX
6. IRIX
7. Linux
8. Mac OS X
9. Microsoft Windows
10. NetBSD
11. NeXTStep
12. OpenBSD
13. OS/2 and eComStation
14. SCO OpenServer
15. Solaris
16. UnixWare

Saat melakukan konfigurasi squid nanti, Anda akan banyak berurusan


dengan yang namanya access control list (acl). Access control list
digunakan untuk menunjuk sebuah rentang alamat, kumpulan domain,
kumpulan IP Address dan lain-lain dengan tujuan menyederhanakan
pekerjaan administrator. Setiap access control list harus mempunyai
nama agar mempermudah saat administrator ingin menggunakannya
nanti dalam pembuatan aturan akses. Aturan akses sederhananya ada
dua macam, aturan untuk melarang (deny) dan aturan untuk
mengizinkan (allow). Aturan yang melarang dikenal dengan istilah
Blacklist Accessed dan aturan yang mengizinkan dikenal dengan istilah
Whitelist Accessed.
Ada dua elemen di dalam access control list, yaitu class dan operator.
Acl-class ini didefinisikan menggunakan sintak acl, sedangkan acl-
operator didefinisikan menggunakan sintak http_access (yang paling

6
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

umum digunakan), http_access2, delay_access, http_reply_access,


miss_access, htcp_clr_access, cache_peer_access,
ident_lookup_access, authenticate_ip_shortcircuit_access, dll.

PRASYARAT PRAKTIKUM
1. Siswa mampu mengkonfigurasi IP Address pada Debian Server.
2. Siswa mampu membuat NAT sederhana pada Debian Server.

SKENARIO

Gambar 6. Skenario praktikum

Pada skenario di atas, terdapat tiga server dengan domain smk.net,


penipu.com, dan pembajak.com. Pada praktikum ini kita akan memblokir
akses ke domain penipu.com dan pembajak.com menggunakan proxy,
sedangkan domain smk.net tidak diblokir. Selain itu, kita juga akan
memblokir IP Address dua situs tersebut, yaitu 181.10.60.250 dan
181.10.70.250.
Mesin virtual yang menyediakan IP Address dan domain pada skenario di
atas masih sama dengan mesin virtual yang Anda gunakan pada praktikum

7
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

sebelumnya (Membuat NAT sederhana pada Debian). Jika Anda tidak


mempunyai mesin virtual tersebut, Anda juga dapat membuatnya sendiri
dengan domain dan IP Address sesuka Anda. Mesin virtual yang
dimaksudkan tidak akan diperlukan jika pada lab tempat Anda melakukan
praktikum terdapat koneksi Internet. Anda dapat saja memblokir akses ke
domain dan IP Address sesungguhnya di Internet.
Pada mesin virtual proxy server (yang menggunakan icon Router),
diasumsikan sudah terkonfigurasi NAT IP Masquerading sehingga sebelum
dimulainya praktikum, pastikan bahwa Client sudah dapat melakukan ping
ke semua domain dan IP Address server.

LANGKAH KERJA
A. Instalasi Squid
1. Proses instalasi squid sama saja dengan instalasi software lain pada
Debian.
#apt-get install squid

pada beberapa kasus, Anda perlu menyertakan nomor versi squid saat
instalasi.
#apt-get install squid3

Gambar 7. Instalasi squid

8
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

2. Tunggulah proses instalasi hingga selesai.

Gambar 8. Instalasi selesai

B. Uji coba pada client


1. Bukalah web browser Anda. Di bawah ini adalah contoh jika
menggunakan web browser firefox. Klik pada menu Firefox kemudian
klik tombol Options.

Gambar 9. Masuk ke menu Options

9
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

2. Saat muncul kotak dialog Options, klik pada icon Advanced dan
kemudian pilih tab Network. Selanjutnya klik tombol Settings.

Gambar 10. Masuk ke pengaturan proxy


3. Pada kotak dialog Connection Settings, pilih opsi “Manual proxy
configuration”, kemudian masukkan IP Address proxy server yang
digunakan untuk konek ke jaringan private/lokal beserta port 3128.
Port 3128 adalah port default yang digunakan oleh squid. Jika Anda
memberi tanda centang pada opsi “Use this proxy server for all
protocols”, maka semua koneksi ke SSL, FTP, dan SOCKS yang
menggunakan web browser firefox akan memakai melewati proxy
server.

10

Gambar 11. Manual configuration proxy


MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Pada bagian No Proxy for, Anda dapat memasukkan IP Address atau


domain yang Anda tidak ingin mengaksesnya menggunakan proxy
server (pengecualian untuk penggunaan proxy).
4. Tutup semua kotak dialog dengan mengklik tombol OK.
5. Pada web browser, cobalah untuk mengakses IP Address salah satu IP
Address server, misal 181.10.50.250.

Gambar 12. Mencoba mengakses IP Address

Jika Anda mendapat ERROR seperti gambar di atas, maka Anda sudah
berhasil membuat web browser Anda menggunakan proxy server.
6. Cobalah juga untuk mengakses domain smk.net.

11
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 13. Mencoba mengakses domain smk.net

7. Jika Anda menggunakan web browser Google Chrome, langkah-


langkah berikut dapat Anda ikuti untuk memasang alamat proxy
server pada web browser Anda.
8. Klik pada menu, kemudian pilih Settings.

Gambar 14. Masuk ke Settings Chrome

12
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

9. Scroll ke bagian bawah, klik pada link “Show advanced settings”.

Gambar 15. Mengklik link advanced settings

10. Klik pada tombol “Change proxy settings”.

Gambar 16. Masuk ke pengaturan proxy

13
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

11. Pada kotak dialog Internet Properties, klik tab Connections kemudian
klik pada tombol LAN settings.

Gambar 17. Masuk ke pengaturan LAN

12. Pada kotak dialog LAN settings, beri tanda centang pada opsi “Use a
proxy server ….. ”, kemudian isi IP Private milik proxy server pada
bagian Address dan isi bagian Port dengan 3128. Jika Anda tidak ingin
menggunakan proxy saat mengakses alamat-alamat lokal (localhost,
127.0.0.1, hostname), beri tanda centang pada opsi “Bypass proxy
server for local addresses”. Tentu saja kita tidak ingin menggunakan
proxy server saat akan mengakses service di komputer/laptop sendiri,
kecuali untuk keperluan eksperiment.

Gambar 18. Memasukkan alamat proxy


14
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Tutup semua kotak dialog dengan mengklik tombol OK.


13. Cobalah untuk mengakses IP Address salah satu server.

Gambar 19. Mengakses IP Address Server

14. Coba juga mengakses domain smk.net.

Gambar 20. Mengakses domain smk.net


15
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

C. Membackup file konfigurasi squid


1. File konfigurasi squid berada di bawah direktori /etc/squid/ dengan
nama squid.conf. Pada beberapa kasus, ada juga yang berada di
bawah direktori /etc/squid3/.
2. Masuklah ke dalam direktori /etc/squid/, kemudian backuplah file
konfigurasi menggunakan perintah cp. Backup ini sebenarnya tidak
wajib dilakukan, hanya sebatas perlu saja. Backup perlu dilakukan
bagi pemula yang masih belajar karena ada kemungkinan saat Anda
membuat konfigurasi terjadi kesalahan dan mungkin Anda tidak bisa
menemukan bahkan lupa dimana konfigurasi terakhir dilakukan.
Dengan file asli milik squid, Anda dapat mengembalikan squid ke
konfigurasi awal seperti saat baru saja diinstal.

Gambar 21. Membackup file konfigurasi squid

3. Cobalah untuk membuka isi file squid.conf, mungkin tampilan awalnya


seperti di bawah ini. File konfigurasi squid.conf ini cukup lengkap
dokumentasinya berupa keterangan untuk setiap sintak konfigurasi,
hal inipun berdampak pada banyaknya isi file konfigurasi. Saat
mengubah konfigurasi pada file ini nantinya, harap berhati-hati.

16
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 22. Bagian atas file konfigurasi squid.conf

D. Mengubah port Squid


1. Seperti layanan-layanan yang lain, squid juga mempunyai port
koneksi dan port ini juga dapat diubah.
2. Pertama-tama, bukalah dulu file konfigurasi squid.conf. Kemudian
carilah baris “http_port 3128”. Dalam mencari baris ini Anda dapat
melakukannya secara manual atau dapat pula menggunakan fasilitas
bawaan nano (jika Anda menggunakan teks editor nano). Untuk
menggunakan fasilitas pencarian sintak konfigurasi nano, tekan
tombol Ctrl + W (Where Is). Kemudian ketikkan sintak yang ingin
dicari, lalu tekan Enter. Perhatikan pada gambar di bawah ini!

17
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 23. Mencari sintak “http_port 3128”

3. Jika sudah ditemukan, ubahlah angka port proxy menjadi angka lain,
misalnya 3132.

Gambar 24. Mengubah port squid

18
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

4. Simpan file konfigurasi dan restart service squid.


#service squid restart , pada beberapa kasus, kadang digunakan:
#service squid3 restart

Gambar 25. Me-restart service squid

5. Pada web browser, ubah port yang digunakan menjadi 3132.

Gambar 26. Mengubah port pada web browser 19


MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

6. Cobalah untuk mengakses server kembali, jika Anda masih mendapat


ERROR yang sama, maka Anda sudah berhasil mengubah port web
browser.

Gambar 27. Mengakses web server kembali

7. Untuk memastikan bahwa Anda benar-benar berhasil, hapuslah history


yang ada pada web browser. Hal ini terkadang perlu dilakukan saat
mengkonfigurasi proxy server karena secara default web browser akan
menyimpan history website yang sudah diakses.
8. Jika Anda mendapat respon seperti di bawah ini dari web browser,
maka perubahan port squid masih belum berhasil. Cobalah untuk
mengembalikan port squid ke port default atau menggantinya ke
angka port yang lain.

20
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 28. Proxy menolak permintaan pada port yang baru


E. Mengkostumasi identitas proxy
1. Sebenarnya mengkostumasi identitas proxy ini tidak wajib hukumnya,
karena tidak memberikan pengaruh apapun terhadap kinerja proxy
server.
2. Carilah sintak “cache _mgr” (Cache Manager).

Gambar 29. Mencari sintak cache_mgr 21


MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

3. Jika sudah ditemukan, sintaknya seperti di bawah ini.

Gambar 30. Sintak cache_mgr

4. Ubahlah sintak webmaster menjadi alamat email administrator. Jika


Anda mempunyai mail server di jaringan lokal Anda, maka tulislah
alamat email yang menggunakan mail server milik Anda.

Gambar 31. Mengganti email cache manager

22
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Email yang dipasang itu pada praktiknya akan menerima email


(laporan) dari squid mengenai cache yang sudah expired.
5. Berikutnya, cari sintak “visible_hostname” yang tampilannya seperti
gambar di bawah ini.

Gambar 32. Mencari sintak visible_hostname

6. Tambahlah sintak konfigurasinya seperti di bawah ini.

Gambar 33. Menambah baris konfigurasi visible_hostname

23
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Baris konfigurasi ini digunakan agar squid tidak menampilkan


hostname asli milik proxy server (memalsukan hostname yang
ditampilkan squid). Pada squid versi 3, penggunaan sintak http:// pada
tag visible_hostname mengakibatkan squid menutup port-nya
sehingga tidak merespon request dari user. Hal ini mengakibatkan
web browser mengeluarkan respon Connection Refused. Oleh karena
itu, silakan diganti menjadi www.smk.net.
7. Simpan file konfigurasi dan kemudian restart service squid.
8. Cobalah untuk mengakses kembali situs smk.net dan kemudian
perhatikan kembali identitas dari squid.

Gambar 34. Mengecek identitas squid

F. Menambahkan Whitelist Accessed untuk jaringan private


1. Pada gambar-gambar sebelumnya, terlihat bahwa akses dari user ke
web browser ditolak, karena secara default squid akan menutup
semua akses dari user. Jika administrator ingin memperbolehkan
sekumpulan client melewatkan data di proxy, maka user-user tersebut
harus dimasukkan ke dalam Whitelist Accessed.
2. Buka kembali file konfigurasi, kemudian cari baris konfigurasi “acl
to_localhost”.

24
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 35. Mencari sintak konfigurasi “acl to_localhost”

3. Tampilan sintak acl to_localhost persisnya seperti di bawah ini.

Gambar 36. Sintak acl to_localhost


4. Tambahkan dua baris berikut di bawahnya.
acl jaringandalam src 172.16.10.0/255.255.255.0
http_access allow jaringandalam

25
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 37. Menambahkan Whitelist Accessed untuk jaringan lokal

Pada baris pertama, kita mendefinisikan sebuah access control list


dengan nama jaringandalam. Nama jaringandalam ini dapat diganti
dengan nama apapun terserah Anda, yang penting tidak menyamai
nama variabel lain yang ada di dalam file konfigurasi. Acl
jaringandalam ini digunakan untuk menunjuk alamat jaringan/subnet
dari jaringan lokal/private yang di dalamnya ada client/laptop. Pada
baris kedua, kita me-whitelist/mengizinkan (allow) acl jaringandalam
untuk mendapatkan akses http (http_access) melalui proxy server.
Pada squid versi 3, format acl seperti di atas mulai ditinggalkan.
Direkomendasikan bagi Anda yang menggunakan squid 3 untuk
menggunakan format acl berikut:
acl jaringandalam src 172.16.10.0/24

5. Simpan file konfigurasi dan kemudian restart service squid.


6. Cobalah untuk mengakses kembali IP dan domain web server. Jika
Anda tidak mendapatkan respon Access Denied, berarti konfigurasi
whitelist accessed sudah berjalan.

26
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 38. Mengakses kembali IP Address web server

Gambar 39. Mengakses kembali domain web server

27
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

G. Mengaktifkan transparent proxy


1. Carilah baris http_port dimana kita mengubah port squid sebelumnya.

Gambar 40. Mencari sintak http_port

2. Di belakang angka port, tambahkan sintak “transparent” seperti pada


gambar di bawah ini.

Gambar 41.Mengaktifkan fitur transparent pada squid


28
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

3. Simpan file konfigurasi dan restart service squid.


4. Sebenarnya satu sintak di atas sudah cukup untuk mengaktifkan fitur
transparent pada squid. Namun, kita masih perlu memaksa client
untuk menggunakan squid. Pemaksaan ini dapat kita lakukan
menggunakan perintah iptables.
#iptables -t nat -A PREROUTING -p tcp -s 172.16.10.0/24
–-dport 80 -j DNAT --to-destination 172.16.10.254:3132

Gambar 42. Menambahkan perintah iptables baru

Menggunakan perintah di atas kita menambahkan rule baru (-A =


append) ke dalam tabel nat (-t nat) pada chain PREROUTING
menggunakan protokol tcp dan bukan udp (-p tcp). Rule ini mengatur
semua paket yang berasal dari subnet/network 172.16.10.0/24 (-s =
source) yang menuju port 80 (--dport = destination port) akan di
DNAT-kan/dibelokkan (-j = target) ke IP Address 172.16.10.254 yang
ternyata milik router pada port 3132, yaitu port squid (--to-destination
172.16.10.254:3132). Jadi, semua akses http yang berasal dari
jaringan private akan dimampirkan dulu ke proxy pada port squid.
Inilah yang disebut pemaksaan :-D
5. Periksalah perintah hasil perintah iptables tadi.
#iptables -t nat -L

29
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 43. Mengecek perintah iptables yang berjalan

6. Selain menggunakan perintah iptables di atas, Anda juga dapat


menggunakan alternatif -j (target) yang lain, yaitu REDIRECT.
#iptables -t nat -A PREROUTING -p tcp -–dport 80
-j REDIRECT -–to-ports 3132

Menggunakan iptables di atas kita menambahkan rule baru (-A =


Append) ke dalam tabel nat (-t nat) pada chain PREROUTING
menggunakan protokol tcp. Rule ini mengatur semua paket yang
menuju port 80 (--dport = destination port) akan di diarahkan (-j
REDIRECT) ke port 3132 (--to-port 3132).

Gambar 44. Mengecek isi tabel nat

30
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

7. Perintah iptables kedua di atas sebenarnya tidak jelas untuk mengatur


paket yang berasal dari mana, tujuannya ke mana, dan diarahkan ke
IP Address berapa. Di bawah ini adalah versi lengkapnya.
#iptables -t nat -A PREROUTING -p tcp -s 172.16.10.0/24
-d 0/0 –dport 80 -j REDIRECT –to-ports 3132

Pada perintah iptables ketiga di atas ada tambahan keterangan asal


paket data (-s 172.60.10.0/24) dan tujuannya (-d 0/0). Destination 0/0
berarti anywhere atau ke mana saja.

Gambar 45. Mengecek isi tabel nat

8. Untuk menguji transparent proxy, ubahlah pengaturan pada web


browser agar tidak menggunan proxy seperti pada gambar di bawah.

Gambar 46. Mengubah setting pada browser


31
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

9. Akseslah sembarang IP Address (misal 181.10.50.251) pada web


browser client. Jika error yang dimunculkan oleh web browser masih
berasal dari squid, maka itu artinya web browser telah dipaksa
menggunakan proxy.

Gambar 47. Menguji transparent proxy

10. Agar konfigurasi iptables untuk transparent ini tidak hilang setelah
server di-reboot, masukkan perintah iptables tadi ke dalam file
konfigurasi /etc/rc.local.

Gambar 48. Menambahkan sintak iptables ke dalam file rc.local


Q : Apakah ada pengaruh terhadap squid jika sintak yang baru
ditambahkan itu diletakkan di atas sintak iptables sebelumnya (yang

32
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

digunakan untuk nat)?


A : Tidak. Sama saja. Yang penting kedua sintak tersebut masuk ke
dalam tabel nat (cek menggunakan perintah : iptables -t nat -L).

H. Memblokir domain
1. Buka kembali file konfigurasi squid.conf.
2. Carilah sintak “jaringandalam” yang sudah kita masukkan sebelumnya
(masih menggunakan ctrl + w).
3. Persis di bawah tulisan “#Recommended minimum configuration:”,
tambahkan baris konfigurasi berikut ini.
acl domainjelek dstdomain “/etc/squid/daftardomain”
http_access deny domainjelek

Pada baris pertama kita mendefinisikan acl baru dengan nama


domainjelek yang berisi daftar domain-domain yang nantinya akan
diblokir. Daftar ini disimpan di dalam sebuah file dengan nama
daftardomain yang berlokasi di dalam direktori /etc/squid/. Pada baris
kedua kita mem-blacklist (deny) domain-domain tersebut dari akses
http.
Q: Pak, apakah menyimpan filenya harus di dalam direktori
/etc/squid/ ?
A: Tidak harus. Anda boleh menyimpan file ini dimana saja (misal:
di /home/omar). Yang penting file tersebut dapat diakses oleh squid
(perhatikan hak akses squid terhadap filenya).
Ingat! Sesuaikan nama direktori konfigurasi squid milik Anda, apakah
hanya “squid/” saja atau ada tambahan angka versi squid di
belakangnya.

33
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 49. Memblacklist domain tertentu

4. Simpan file konfigurasi.


5. Buatlah sebuah file baru dengan nama yang disesuaikan dengan apa
yang Anda tuliskan pada file squid.conf tadi, kemudian isilah dengan
domain-domain yang ingin di blokir seperti pada gambar di bawah ini.

Gambar 50. Membuat daftar domain yang ingin diblokir


6. Simpan file yang berisi daftar domain Anda dan kemudian restart
service squid.

34
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

7. Cobalah untuk mengakses domain-domain tersebut menggunakan


web browser client.

Gambar 51. Mencoba mengakses domain pembajak.com

Gambar 52. Mencoba mengakses domain penipu.com

8. Dengan kita mengaktifkan fitur transparent pada squid dan


menambahkan perintah iptables baru, maka kita telah membelokkan
paket data dari jaringan private. Karena proxy server telah

35
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

membelokkan data tersebut, maka proxy server juga harus


bertanggung jawab mengembalikan paket data tadi ke jalur
seharusnya. Misal, ada paket data dengan tujuan 181.10.50.250:80
dari client di jaringan private, akan dibelokkan oleh proxy ke
smk.net:3132. Setelah dilakukan pemeriksaan oleh squid, paket
tersebut harus diteruskan ke tujuan sebelumnya. Nah, disini
permasalahan muncul pun muncul. Proxy server harus mengetahui
berapa IP Address dari domain smk.net. Oleh karena itu, pada proxy
server harus disetting IP Address DNS Server.

Gambar 53. Menambahkan alamat DNS pada proxy server

Jika tidak disetting, apa yang akan terjadi? Ya bakal bingung proxy
server-nya.
Q: Bingungnya seperti apa? Apakah client tidak mendapatkan respon
sama sekali dari web server?
A: Awalnya sih penulis berpikir demikian. Namun ternyata tidak
demikian. Pada client didefinisikan juga alamat DNS Server juga,
berarti client sudah me-resolve domain terlebih dahulu sebelum
melakukan request http. Sehingga destination pada paket data itu
sudah berupa IP Address, bukan domain lagi, meskipun sebenarnya
jika paket data tersebut dibongkar hingga layer aplikasi masih tetap
ada domainnya. Lho, kok masih ada domainnya, katanya sudah di-
resolve sendiri sama client? IP Address hasil resolve client digunakan
sebagai destination pada paket data di layer network. Jika di dalam
sebuah paket data tidak ada domainnya, bagaimana cara squid
memblokir domain tertentu? Redirect data ini terjadi pada layer
network, sedangkan domain berada pada layer aplikasi. Jadi, domain
itu sebenarnya tetap masih ada, namun pada lapisan paling dalam
sehingga tidak diketahui oleh iptables.
Saat penulis melakukan eksperimen, sebenarnya client masih dapat
mengakses sebuah domain meskipun squid sudah menggunakan fitur
transparent dan pada file /etc/resolv.conf di proxy server tidak
dipasang IP DNS Server. Namun, saat penulis beberapa kali me-refresh

36
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

web browser, maka penulis baru akan mendapat respon kembali


dalam jeda waktu yang cukup lama. Hal tersebut tidak terjadi lagi saat
penulis mendefinisikan alamat DNS server pada proxy server.
I. Memblokir IP address
1. Buka kembali file konfigurasi squid.c onf, kemudian cari baris
konfigurasi yang digunakan untuk memblokir domain tertentu tadi,
kemudian tambahkanlah sintak berikut di bawah atau di atasnya.
acl ipjelek dst “/etc/squid/daftarip”
http_access deny ipjelek

Gambar 54. Menambahkan acl ipjelek


Sama seperti saat memblacklist domain tertentu sebelumnya, baris
pertama pada sintak konfigurasi digunakan untuk mendefinisikan
sebuah acl baru dengan ipjelek yang disimpan di dalam file daftarip
yang berlokasi di bawah direktori /etc/squid/. Pada baris kedua, kita
mem-blacklist (deny) akses http ke tujuan yang terdapat dalam file
konfigurasi milik acl ipjelek (file daftarip).
Jika Anda perhatikan lagi, perbedaan antara cara memblokir akses ke
IP Address tertentu dan ke domain tertentu itu hanya berbeda pada
cara mendefinisikan acl-nya saja.
2. Simpan file konfigurasi.
3. Berikutnya, kita harus membuat file daftarip yang akan kita isi dengan
IP Address yang akan diblokir.

37
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY


#nano /etc/squid/daftarip

Gambar 55. Membuat file daftarip

4. Simpan file daftarip dan kemudian restart service squid.


5. Cobalah untuk mengakses IP Address yang sudah kita masukkan ke
dalam file konfigurasi milik acl ipjelek.

Gambar 56. Mencoba mengakses IP Address 181.10.60.250

38
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 57. Mencoba mengakses IP Address 181.10.70.250

J. Memblokir akses dari alamat tertentu ke domain tertentu


1. Ini sebenarnya hanya pengembangan dari topik sebelumnya yaitu
bagaimana memblokir situs tertentu. Sintak konfigurasi yang
digunakanpun masih sama seperti di atas, namun dengan tambahan
acl baru yang mendefinisikan alamat-alamat yang akan diblok.
2. Perhatikan sintak awal di bawah ini:
acl domainjelek dstdomain “/etc/squid/daftardomain”
http_access deny domainjelek

Sintak di atas dapat kita lebih spesifikkan lagi menjadi seperti di


bawah ini.
acl alamattertentu src 172.16.10.10.172.16.10.20
acl domainjelek dstdomain “/etc/squid/daftardomain”
http_access deny domainjelek alamattertentu

3. Dengan sintak konfigurasi di atas kita hanya memblokir akses dari IP


Address 172.16.10.10 sampai dengan IP Address 172.16.10.20 ke
situs-situs yang sudah didefinisikan larangannya. Tentu saja acl src ini
dapat diganti dengan alamat jaringan/subnet sesuai dengan keperluan
masing-masing.

39
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

K. Memblokir kata kunci/keyword (Pengayaan)


1. Sebenarnya ini sama saja dengan cara memblokir akses ke IP Address
dan domain tertentu, untuk memblokir akses yang menggunakan
keyword tertentu juga hanya berbeda pada acl-nya saja.
2. Tambahkan lagi baris acl dan http_access seperti di bawah ini di
bawah baris konfigurasi sebelumnya:
acl keywordjelek url_regex -i “/etc/squid/daftarkeyword”
http_access deny keywordjelek

Gambar 58. Menambahkan acl dan http_access baru untuk memblokir keyword
Parameter “-i” digunakan agar pencarian kata bersifat case-
insensitive.

3. Buatlah sebuah file sesuai yang sudah kita definisikan pada acl di
atas. File ini nantinya berisi kata-kata kunci yang tidak boleh
digunakan oleh pengguna.

40
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 59. Membuat file yang berisi kata kunci

4. Restart service squid.


5. Lakukan pengujian pada web browser client. Tentu saja pengujian ini
dapat dilakukan jika proxy terkoneksi dengan Internet.

Gambar 60. Melakukan pengujian pada client

41
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

6. Lho, kok pada gambar di atas client masih bisa mengakses jaringan
publik menggunakan kata kunci yang sudah dilarang? Perhatikanlah
kotak berwarna merah pada gambar di atas. Jika search engine yang
digunakan adalah Google, maka Anda tidak akan bisa membloknya
menggunakan konfigurasi Anda sekarang, karena setiap koneksi yang
mengarah ke situs Google secara otomatis diarahkan menggunakan
protokol https yang berjalan di port 443, bukan 80. Masih ingat apa
yang Anda lakukan saat mengaktifkan fitur transparent pada squid.
Yes, kita menggunakan iptables untuk mengarahkan data yang
menuju port 80 ke port milik squid. Karena akses ke Google
menggunakan https, maka datanya tidak dapat dibelokkan oleh squid.
Jadi, kita harus menambahkan iptables baru yang menangkap semua
data yang menuju port 443 ke port yang dipakai squid seperti pada
gambar di bawah.

Gambar 61. Menambahkan iptables baru untuk port https

7. Awalnya penulis berpikir demikian, namun hal ini terhalang masalah


SSL milik Google. Secara sederhana, SSL (Secure Socket Layer) adalah
standar teknologi yang digunakan untuk membuat koneksi antara web
server dan web browser. Nah, dari sini saja sudah terjadi kejanggalan.
Squid yang menangkap setiap data yang menuju port 443 dari user
harus bertanggung jawab mengirimnya ke web server. Ini seakan-akan
terjadi serangan MITM (Man In The Middle) dan hal ini adalah salah
satu hal yang diatasi oleh sistem keamanan SSL. Oleh karena itu, acl

42
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

url_regex ini jarang digunakan secara berasamaan dengan transparent


proxy. Jika Anda masih ingin mempelajari lebih jauh lagi mengenai
SSL, artikel yang ditulis oleh Endy Muhardin berikut cukup rinci dan
jelas membahas SSL: http://software.endy.muhardin.com/aplikasi/apa-
itu-ssl/.

Gambar 62. Error SSL Connection pada Firefox

Gambar 63. Error SSL Connection pada Chrome


43
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

L. Memblokir situs tertentu pada jam tertentu (Pengayaan)


1. Sebenarnya ini masih sama dengan memblokir domain seperti biasa,
hanya saja pada waktu tertentu saja. Misal, di jaringan sekolah kita
ingin memblokir situs-situs sosial media, namun hanya pada jam
belajar sekolah saja. Akses ke situs-situs sosial media ini dapat
dilakukan lagi setelah jam sekolah selesai. Berarti, waktu pemblokiran
dilakukan pada hari senin sampai hari sabtu pada pukul 07.15 sampai
dengan 14.30.
2. Perhatikanlah baris konfigurasi di bawah ini.

Gambar 64. Memblokir situs tertentu pada jam tertentu

Baris pertama yang diawali tanda pagar adalah contoh acl seperti
yang sudah kita buat saat memblokir domain biasa. Sintak tersebut
dapat digantikan dengan sintak di bawahnya jika situs yang ingin
diblokir hanya sedikit saja, sehingga tidak perlu membuat file khusus.
Baris ketiga adalah acl yang mendefinisikan waktu pemblokiran situs.
Sintak MTWHFA mendefinisikan hari dan sintak berikutnya
mendefinisikan waktu (jam dan menit). Apa sih artinya MTWHFA?
Perhatikan potongan gambar dokumentasi squid di dalam isi file
konfigurasi squid.conf di bawah ini.

44
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 65. Dokumentasi mengenai hari di dalam file konfigurasi squid.conf

3. Pertanyaan baru muncul, peraturan acl ini didasarkan pada waktu di


komputer mana? Jam yang ada pada web server, proxy server, atau
client? Jika ini didasarkan pada waktu yang ada pada client, maka hal
ini sangat mudah dimanupulasi oleh pengguna. Jika hal ini didasarkan
waktu yang ada pada web server, hal ini akan menjadi masalah
karena server situs-situs sosial media ini tidak berada di Indonesia.
Tentu saja waktu ini didasarkan pada waktu yang ada di proxy server.
Oleh karena itu, sebelum melakukan pengujian, cek terlebih dahulu
waktu yang ada di proxy server. Lakukanlah perubahan waktu pada
proxy server jika diperlukan.

45
Gambar 66. Mengecek dan mengubah waktu pada proxy server
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

4. Cobalah untuk mengakses situs media sosial yang diblokir.

Gambar 67. Mencoba mengakses situs media sosial

M. Membatasi bandwidth (Pengayaan)


1. Pembatasan bandwidth ini perlu dilakukan jika sebuah instansi
memiliki bandwidth ke Internet yang terbatas dan administrator
mengharapkan bandwidth ini dapat dibagi secara adil ke setiap user.
Pembatasan bandwidth masih menggunakan acl seperti pembuatan
aturan-aturan sebelumnya. Oleh karena itu, pembatasan ini dapat
dibuat berdasarkan source address, destination address/url, dan lain-
lain.
2. Untuk mempelajari tentang bagaimana caranya membatasi bandwidth
menggunakan squid, ada empat istilah utama yang perlu Anda
pahami, yaitu:
a. delay_pools.
Sebelum membahas delay_pools, mari kita bahas tentang pool-nya
dulu saja. “pool” secara bahasa berarti kolam, genangan air,
kelompok, atau bola biliar. Nah, arti yang digunakan pada squid
adalah kelompok. Di dalam aplikasi server khususnya di Linux, pool
sering digunakan untuk menyebutkan sekumpulan IP Address atau
sebuah range IP Address.

46
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Pada squid, delay_pools merupakan sintak yang digunakan untuk


mendefinisikan berapa jumlah pool yang akan dibuat. Kita dapat
menerapkan aturan yang berbeda untuk setiap pool. Misal, di
jaringan sebuah sekolah seorang administrator ingin membedakan
kecepatan koneksi guru dengan siswa. Kecepatan koneksi guru =
100 KBps dan kecepatan koneksi siswa 70 KBps. Maka
administrator harus membuat (minimal) dua buah pool pada squid.
Pool pertama digunakan untuk guru yang akan dibatasi
kecepatannya menjadi 100 KBps dan pool kedua digunakan untuk
siswa yang akan dibatasi kecepatannya menjadi 70KBps. Berikut
adalah contoh mendefinisikan sintak delay_pools.
delay_pools 1

Pada sintak di atas, hanya didefinisikan satu pool saja, sehingga


kita hanya membuat aturan hanya untuk satu kelompok user saja.
delay_pools 4

Dengan sintak di atas kita mendefinisikan empat buah pool


(kelompok user). Sehingga nantinya akan ada pool 1, pool 2, pool
3, dan pool 4. Angka 1 sampai 4 ini nanti akan digunakan pada
sintak delay lain (akan dijelaskan di bawah), sehingga dapat
dikatakan bahwa angka 1 sampai 4 ini adalah nama pool.
b. delay_class.
Pada praktiknya, delay_class ini cukup sederhana namun secara
teoritis cukup kompleks. Sintak delay_class digunakan untuk
mendefinisikan class untuk masing-masing pool. Setiap pool hanya
boleh menggunakan satu class. Apa sih gunanya class buat pool?
Class pada sebuah pool digunakan untuk menentukan bagaimana
cara squid membatasi bandwidth. Jadi, terdapat perbedaan
cara membatasi bandwidth antara class 1, class 2, class 3, dan
seterusnya. Pada praktiknya, perbedaan class pada masing-masing
pool akan membuat perbedaan parameter pembatasan
kecepatan koneksi. Beberapa orang menyebut delay_class sebagai
jenis pool.
Sebagai perumpanaan, pool adalah manusia dan class adalah jenis
kelamin. Sintak delay_pools digunakan untuk menentukan jumlah
manusia (pool) yang akan dibuat. Setiap manusia (pool) harus
didefinisikan apa jenis kelaminnya (class). Setiap manusia (pool)
hanya boleh mempunyai satu jenis kelamin (class). Lho pak,
bagaimana dengan orang yang mempunyai kelamin dua? Coba deh

47
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

cek KTP-nya, apakah ditulis keduanya? Tidak toh..?


c. delay_parameters.
Sintak ini digunakan untuk mendefinisikan parameter kecepatan
sebuah pool sesuai dengan jenis class-nya. Parameter umumnya
terdiri dari dua bagian, yaitu restore_rate dan max_limit yang
ditulis dengan format restore_rate/max_limit. Saat koneksi seorang
user mencapai max_limit yang sudah ditentukan pada
delay_parameter, maka kecepatan koneksi user akan dibatasi
sesuai dengan apa yang dituliskan pada bagian restore_rate.
Restore_rate sebaiknya tidak lebih besar dari max_limit. Penulisan
kecepatan ini ditulis dalam satu bytes, bukan bits. Penjelasan lebih
lanjut mengenai delay_parameter akan dibahas nanti.
d. delay_access.
Sintak ini merupakan salah satu acl-operator yang digunakan untuk
menghubungkan sebuah pool dengan acl. Mungkin sintak ini mirip
dengan sintak http_access yang menghubungkan antara akses http
dengan acl.

Pada squid 2.7.STABLE9, terdapat tiga macam class. Namun, sejak


squid versi 3, squid menyediakan lima class.
a. Class 1
Pool class 1 membatasi total bandwidth yang dapat digunakan
oleh semua user yang disebutkan pada acl secara bersama-sama
“aggregate”. Contoh:
acl kumpulan_user src 172.16.10.0/24
delay_pools 1
delay_class 1 1
delay_parameters 1 500000/10000000
#delay_parameters nomorpool aggregate
delay_access 1 allow kumpulan_user

Baris pertama mendefinisikan acl user-user yang akan dibatasi


bandwidth-nya dengan nama kumpulan_user dengan source (src)
addressnya adalah 172.16.10.0/24. Format acl yang digunakan
sama saja dengan format acl yang sudah digunakan pada topik-
topik sebelumnya. Baris kedua memberitahu squid bahwa hanya

48
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

ada satu pool yang akan dibuat (Ingat! Itu jumlah). Karena hanya
ada satu pool, maka nomor pool tersebut adalah 1. Pada baris
ketiga, kita memberitahukan kepada squid bahwa jenis class pool
nomor 1 (angka 1 yang pertama) adalah class 1 (angka 1 yang
kedua). Baris keempat memberitahu squid bahwa kecepatan rata-
rata pool 1 adalah 500KBps. Namun pada saat squid sedang idle,
kecepatan maksimal yang dapat dicapai pool 1 adalah 1 Mbps.
Baris kelima merupakan kaidah penggunaan sintak
delay_parameters yang berupa komentar. Di baris keenam, kita
memberi tahu squid bahwa peraturan pool 1 ini akan diterapkan
pada user yang sudah didefinisikan pada acl dengan nama
kumpulan_user.
Permasalahan terjadi saat ada banyak user dari pool yang sama
sedang menggunakan bandwidth dan sebagian user mendapat
bandwidth yang lebih banyak dari sebagian yang lain, karena
pembatasan bandwidth hanya berlaku untuk semua user secara
keseluruhan, tidak untuk masing-masing user yang ada di dalam
pool. Permasalahan ini dapat diselesaikan oleh pool class 2.
b. Class 2
Pool class 2 mempunyai dua parameter, yaitu aggregate dan
individual. Parameter aggregate adalah parameter yang sama
dengan yang digunakan pada class 1. Dengan kata lain, class 2
adalah class 1 dengan tambahan fitur baru yaitu pembatasan
bandwidth untuk masing-masing user. Pembatasan bandwidth
untuk masing-masing user ini tentu saja berdasarkan IP Address
pada PC user. Adapun kaidah penggunaan delay_parameters untuk
class 2 adalah sebagai berikut:
delay_parameters nomorpool aggregate individual

Contoh:
delay_pools 2
acl kelompok_user src 192.168.10.2-192.168.10.254
delay_class 1 2
delay_parameters 1 900000/1000000 9000/10000
delay_access 1 allow kelompok_user
acl mimin src 192.168.10.1
delay_class 2 1

49
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY


delay_parameters 1 -1/-1
delay_access 1 allow mimin

Pada contoh konfigurasi di atas kita membuat dua buah pool


(delay_pools 2).
Pool pertama digunakan untuk membatasi akses user yang berasal
dari acl kelompok_user. Pool ini menggunakan class 2 (delay_class
1 2). Karena menggunakan class 2, maka ada dua parameter yang
dituliskan setelah sintak delay_parameters. Pada contoh di atas,
kita membatasi bandwidth rata-rata untuk semua user pada
kecepatan 900KBps dan maksimal total koneksi adalah 1MBps.
Dengan asumsi bahwa kemungkinan hanya ada 10 user yang
menggunakan bandwidth secara bersamaan dalam satu waktu,
maka pembatasan bandwidth untuk masing-masing user adalah
10% dari total yang dituliskan pada parameter aggregate, yaitu
90KBps kecepatan rata-rata setiap user dan pada saat bandwidth
sedang sepi user dapat mencapai kecepatan maksimal 100KBps.
Pool kedua digunakan untuk membatasi akses user yang berasal
dari acl mimin (hanya terdiri dari satu user, misalkan ini adalah
pool khusus buat administrator). Pool ini menggunakan class 1.
Karena menggunakan class 1, maka parameternya hanya
aggregate saja. Pada contoh di atas, nilai dari delay_parameters-
nya adalah -1/-1 yang artinya tidak dibatasi.
Contoh kasus lain: sebuah jaringan mempunyai IP Address yang
sering berganti-ganti administrator cukup kerepotan jika harus
mengubah terus-menerus IP Address yang dituliskan pada acl.
Contoh sintak di bawah ini mungkin dapat menyelesaikan masalah
ini.
delay_pools 1
delay_class 1 2
delay_parameters 1 900000/1000000 9000/10000
delay_access 1 allow all

Dengan contoh penggunaan sintak delay_access di atas, maka


aturan pada pool 1 akan diterapkan ke semua user, tidak perduli
berapapun dan pada subnet manapun IP Address-nya.

50
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

c. Class 3
Pada class 3, tidak hanya dapat membatasi jumlah total bandwidth
(aggregate) dan bandwidth peruser (individual), tetapi juga dapat
membatasi bandwidth untuk masing-masing subnet (network).
Misal, pada sebuah jaringan yang mempunyai total bandwidth
1MBps terdapat lima subnet dengan subnetmask /24, yaitu
172.16.10.0/24, 172.16.20.0/24, 172.16.30.0/24, 172.16.40.0/24,
dan 172.16.50.0/24. Jika bandwidth dibagi rata, maka masing-
masing subnet mendapatkan bandwidth sebesar 200KBps. Dengan
asumsi bahwa rata-rata ada 20 user yang menggunakan bandwidth
secara bersamaan dalam satu waktu untuk masing-masing subnet,
maka setiap user akan mendapatkan bandwidth 200KBps dibagi 20
sama dengan 10KBps. Kaidah penggunaan sintak
delay_parameters untuk class 3 adalah sebagai berikut:
delay_parameters nomorpool aggregate network individual

Contoh:
delay_pools 1
delay_class 1 3
delay_parameters 1 900000/1000000 180000/200000 9000/10000
#delay_parameters 1 900KBps/1MBps 190KBps/200KBps 9KBps/10KBps
delay_access 1 allow all

Dengan konfigurasi di atas, sebenarnya bandwidth tidak digunakan


secara maksimal karena bandwidth yang digunakan hanya
900KBps saja, sedangkan 100KBps disisakan idle meskipun sudah
didefinisikan bahwa total bandwidth adalah 1MBps (perhatikan
parameter aggregate). Begitu juga yang terjadi pada parameter
network dan individual. Pertanyaannya, apakah boleh nilai
restore_rate dibuat sama dengan nilai max_limit pada setiap
parameter seperti contoh di bawah ini?
delay_pools 1
delay_class 1 3
delay_parameters 1 1000000/1000000 200000/200000 10000/10000
delay_access 1 allow all

Tentu saja boleh. Yang tidak adalah nilai restore_rate lebih tinggi
dari pada nilai max_limit (meskipun pada praktiknya bisa) karena
hal ini akan mengacaukan kalkulasi pembagian bandwidth.

51
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Apakah pada penggunaan class 3 ini kita juga dapat


mendefinisikan acl sendiri menggunakan source address? Bisa saja.
Perhatikan contoh di bawah ini.
acl pengguna src 192.168.10.1-192.168.50.254
delay_pools 1
delay_class 1 3
delay_parameters 1 1000000/1000000 200000/200000 10000/10000
delay_access 1 allow pengguna

Sebagai bahan perbandingan, jika kita ingin membuat konfigurasi


yang fungsinya sama seperti sintak di atas menggunakan class 2,
maka konfigurasinya akan jadi seperti di bawah ini.
delay_pools 5
acl pengguna1 src 192.168.10.0/24
delay_pools 1
delay_class 1 2
delay_parameters 1 200000/200000 10000/10000
delay_access 1 allow pengguna1
acl pengguna2 src 192.168.20.0/24
delay_pools 2
delay_class 2 2
delay_parameters 2 200000/200000 10000/10000
delay_access 2 allow pengguna2
acl pengguna3 src 192.168.30.0/24
delay_pools 3
delay_class 3 2
delay_parameters 3 200000/200000 10000/10000
delay_access 3 allow pengguna3
acl pengguna4 src 192.168.40.0/24
delay_pools 4
delay_class 4 2
delay_parameters 4 200000/200000 10000/10000

52
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY


delay_access 4 allow pengguna4
acl pengguna5 src 192.168.50.0/24
delay_pools 5
delay_class 5 2
delay_parameters 5 200000/200000 10000/10000
delay_access 5 allow pengguna5

Cukup panjang ya..?


d. Class 4
Class 4 dan class 5 adalah fitur baru pada squid versi 3.
Menggunakan class 4, kita dapat membatasi bandwidth pengguna
yang sudah login dan terotentikasi pada squid. Tentu saja class ini
hanya berlaku jika Anda mengaktifkan fitur auth_param pada squid.
Pool class 4 juga masih mempunyai semua fitur yang dimiliki oleh
class 3. Berikut kaidah penggunaan sintak delay_parameters pada
class 4.
delay_parameters aggregate network individual user

Contoh:
delay_pools 1
delay_class 1 4
delay_parameters 1 1000000/1000000 -1/-1 -1/-1 30000/30000
delay_access 1 allow all

Pada contoh di atas kita membatasi bandwidth maksimal yang


dapat digunakan adalah 1MBps, namun kita tidak membatasi
bandwidth maksimal yang digunakan untuk masing-masing subnet.
Kita juga tidak membatasi bandwidth maksimal yang digunakan
untuk masing-masing individual pengguna (berdasarkan IP
Address) karena sudah dibatasi pada parameter user, yaitu 30KBps
untuk masing-masing user.
Q: Bagaimana dengan user yang tidak login, apakah ia tidak
dikenai batasan bandwidth?
A: Ya, benar sekali. Namun pengguna yang tidak terotentikasi tidak
dapat mengakses apapun.
Q: Bagaimana dengan user yang mempunyai lebih dari satu akun
dan user tersebut menggunakan beberapa akun untuk login
menggunakan beberapa web browser?

53
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

A: Jika menggunakan konfigurasi di atas, maka pengguna akan


mendapatkan bandwidth berkali lipat karena kita tidak membatasi
bandwidth maksimal untuk masing-masing pengguna berdasarkan
IP Address. Oleh karena itu, sebaiknya kita juga memberikan
parameter batasan penggunaan bandwidth pada bagian parameter
individual.
delay_pools 1

delay_class 1 4

delay_parameters 1 1000000/1000000 -1/-1 30000/30000 30000/30000

delay_access 1 allow all

e. Class 5
Pool class 5 digunakan khusus untuk acl “external_acl_type” dan
tidak support untuk bentuk acl yang biasanya kita gunakan. Pada
dasarnya external_acl_type merupakan acl yang dapat
menggunakan program (software) tambahan untuk mengecek
suatu request layaknya acl biasa. Nah, karena biasanya
pengecekan menggunakan acl ini sangat terbatas, pengecekan
menggunakan program tambahan ini dapat lebih kompleks dari acl
biasa. Pada konteks pool class 5, external_acl_type ini akan
menggunakan program tambahan tadi untuk memberikan label
(tag) pada setiap paket data sehingga pembatasan bandwidth
nanti dapat dilakukan berdasarkan labelnya. Setiap label yang akan
mendapatkan bucket (ember) atau kelompoknya sendiri dan
pembatasan bandwidth dilakukan berdasarkan kelompok
bandwidth. Dengan ini kita dapat mengelompokkan user dengan
berbagai skema yang kita inginkan yang tentu saja lebih dinamis.
Pada beberapa referensi yang penulis temui, program tambahan ini
kebanyakan menggunakan bahasa perl. Berikut adalah kaidah
penggunaan sintak delay_parameters pada pool class 5:
delay_parameters nomorpool tagrate
Contoh:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

auth_param basic children 20

auth_param basic realm Squid proxy-caching web serverauth_param basic credentialsttl 1800 seconds

external_acl_type checkip children = 20 %LOGIN %SRC /usr/local/Squid/bin/checkip.pl

acl password external checkip

54
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY


delay_pools 1

delay_class 1 5

delay_parameters 1 490000/500000

delay_access 1 allow password

Kelemahan delay_pools
Biasanya, pembatasan bandwidth umum dilakukan pada layer network-
transport dimana paket data dapat diatur dengan tepat dan akurat.
Masalahnya adalah delay_pools diimplementasikan pada layer aplikasi.
Squid sebenarnya tidak mengirim dan menerima paket data secara
langsung, tetapi kernel lah yang melakukan hal ini sehingga squid tidak
benar-benar punya akses langsung untuk mengontrol aliran data. Terus,
bagaimana caranya squid mengontrol data? Squid sebenarnya mendapat
data melalui perantara kernel.
Saat squid membatasi bandwidth, sebenarnya squid tidak bisa
membatasi seberapa banyak data yang sudah diterima oleh kernel, ia
hanya membatasi seberapa banyak data yang ia dapatkan dari kernel,
meskipun sebenarnya data sudah sampai di kernel. Data-data yang
sudah sampai dan belum boleh dibaca oleh squid ini disimpan pada
penyimpanan sementara yang disebut buffer. Hal ini cukup konyol,
karena seakan-akan squid adalah birokrat yang senangnya
memperlambat sebuah proses padahal proses tersebut bisa saja lebih
cepat. Umumnya, besarnya memory untuk buffer adalah 32KB hingga
64KB. Untuk mengatasi hal ini Duane Wessels menyarankan untuk
mengurangi memory buffer. Pada Debian 7, Anda dapat melihat besarnya
default buffer memory ini di dalam direktori /proc/sys/net/core dan
Andapun dapat mengubah valuenya secara manual (secara hati-hati
tentunya). Selain itu, Anda juga dapat meng-override besarnya buffer
memory default system dengan menggunakan sintak
“net.core.rmem_max” dan “net.core.wmem_max” di file /etc/sysctl.conf.
Pada contoh di bawah ini kita mengubah nilai wmem (send memory) dan
rmem (receive memory) menjadi 5KB.
#echo 'net.core.wmem_max=5000' >> /etc/sysctl.conf
#echo 'net.core.rmem_max=5000' >> /etc/sysctl.conf

N. Membatasi jenis file yang dapat diakses (Pengayaan)


1. Di sini kita tidak menggunakan sintak baru. Kita dapat membuat acl
yang akan menyaring content berdasarkan ekstensi file. Untuk

55
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

melakukan ini kita hanya menggunakan sintak url_regex. Perhatikan


contoh di bawah ini.
acl fileberbahaya url_regex -i \.vbs
acl fileberbahaya url_regex -i \.bat
acl fileberbahaya url_regex -i \.exe
http_access deny fileberbahaya

Gambar 68. Membuat acl berdasarkan ekstensi file

Perhatikan juga pada gambar di atas bahwa kita dapat mendefinisikan


sebuah nama acl lebih dari sekali untuk beberapa fungsionalitas. Pada
contoh di atas kita membuat sebuah acl dengan nama fileberbahaya
yang akan memblokir akses ke file-file yang berekstensi .vbs, .bat
dan .exe.
2. Simpan file konfigurasi dan restartlah service squid.
3. Untuk melakukan pengujian, bukalah web browser client dan akseslah
alamat http://smk.net/download/.

56
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 69. Melakukan pengujian pada client

4. Kliklah pada salah satu file yang harusnya diblokir. Jika Anda
mendapat hasil seperti di bawah ini berarti our recent configuration
works. :-)

Gambar 70. Akses ke file-file tertentu diblokir proxy

57
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

O. Membuat variasi acl src


1. Masih ingat waktu kita membuat whitelist accessed dengan nama
jaringandalam? Masih dong ya.. Nah, itu kita membuatnya
menggunakan acl src sederhana karena kita hanya memasukkan satu
alamat network saja ke dalam whitelist accessed. Bagaimana jika kita
mempunyai banyak alamat yang ingin kita masukkan dan alamatnya
bervariasi? Jawabannya simple, external file seperti yang sudah kita
lakukan saat memblokir domain dan IP Address. Perhatikanlah
perubahan konfigurasi acl jaringandalam di bawah ini.

Gambar 71. Mengedit acl jaringandalam

2. Setelah itu, buatlah file alamatkita sesuai dengan yang sudah


didefinisikan di atas.

Gambar 72. Contoh file external acl src


Pada contoh konfigurasi di atas terdapat beberapa variasi cara
mendefinisikan alamat IP, subnet, atau range IP.

58
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

3. Simpanlah file konfigurasi dan restart service squid.


4. Lakukan pengujian koneksi dari web browser client.
P. Membuat otentikasi (Pengayaan)
1. Secara default squid mendukung otentikasi berbasis web, hanya saja
fitur ini tidak dapat digabungkan dengan fitur transparent. Hal ini
dituliskan di dalam file konfigurasi squid.conf. Pada paragraf yang
sama squid juga mengklaim bahwa hal ini merupakan keterbatasan
dari pembelokan protokol TCP/IP dari port 80 ke port proxy
(menggunakan iptables), dan bukan keterbatasan dari squid.

Gambar 73. Dokumentasi mengenai auth_param

2. Secara umum sintak konfigurasi untuk membuat otentikasi pada squid


selalu diawali dengan sintak auth_param. Untuk mengaktifkan fitur
auth_param yang sudah dikonfigurasi hanya dapat dilakukan dengan
me-restart service squid, tidak bisa hanya dengan reload seperti fitur
yang lain.
3. Di dalam file konfigurasi squid juga dituliskan bahwa squid
mendukung empat macam skema otentikasi, yaitu: basic, digest,
NTLM, dan NEGOTIATE. Secara umum, konfigurasi auth_param
mengikuti pola di bawah ini.
auth_param namaskema parameterpengaturan nilaipengaturan

59
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

4. Jika Anda ingin memperdalam pengetahuan mengenai bagaimana


penggunaan sintak auth_param, Anda dapat mempelajarinya dengan
mencari tag auth_param pada file konfigurasi squid.conf.

Gambar 74. Mencari tag auth_param

5. Di bawah ini adalah uraian singkat untuk masing-masing skema.


a. Basic
Skema ini merupakan skema yang paling sering digunakan (dari
apa yang penulis jumpai) karena penerapannya cukup sederhana
dan dapat menggunakan program bawaan dari squid. Di bawah ini
adalah parameter pengaturan untuk skema basic yang dikutip dari
file konfigurasi squid.conf.
auth_param program alamat_lokasi_program
auth_param children jumlahproses
auth_param concurrency jumlahchannel
auth_param realm stringselamatdatang
auth_param credentialsttl lamanya_otentikasi_berlaku
auth_param casesensitive on/off

Sintak yang berwarna kuning merupakan sintak asli milik squid dan
sintak yang berwarna merah muda adalah parameter untuk
masing-masing sintak dan perlu diganti sesuai keperluan dan
keadaan tentunya.

60
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Baris pertama (program) digunakan untuk merupakan baris


konfigurasi wajib untuk setiap skema karena dari baris ini squid
akan mengetahui lokasi program yang harus digunakan oleh squid.
Baris kedua (children) ini membatasi jumlah proses yang dapat
diperbanyak (spawn) untuk mengotentikasi. Jika kita membatasi
terlalu sedikit proses yang digunakan untuk mengotentikasi
(authenticator process) dan ada banyak user yang login, maka hal
ini akan membuat delay karena squid harus menunggu dan
membuat antrian otentikasi. Oleh karena itu, sebaiknya jangan
membatasi terlalu sedikit opsi ini terlebih lagi jika
diimplementasikan pada jaringan yang mungkin lambat. Baris
ketiga (concurrency) digunakan untuk membatasi jumlah request
atau channel yang disupport oleh program helper. Jika program
helper tidak support multi request, maka sintak konfigurasi ini tidak
perlu didefinisikan. Berikutnya adalah realm, digunakan untuk
menampilkan teks (berupa string) kepada user. Teks ini akan
ditampilkan pada kotak dialog login. Baris konfigurasi credentialsttl
menentukan seberapa lama sesi login user masih dianggap valid.
Misal, sintak ini diberi parameter 1 jam, maka user harus
melakukan login setiap satu jam setelah login untuk membuat sesi
baru. Sintak terakhir adalah casesensitive yang opsinya berupa
toggle on-off. Jika diberi parameter on, maka proses otentikasi akan
mempermasalahkan besar kecilnya huruf username (tidak
berpengaruh pada password).
Alright. Kita kembali ke sintak paling atas, yaitu program.
Sehubungan dengan sintak konfigurasi program, squid mempunyai
software default yang dapat Anda gunakan yaitu ncsa yang
berlokasi di /usr/lib/squid/ncsa_auth. Dalam dokumentasi squid-
cache.org dituliskan bahwa ncsa merupakan program penolong
(helper) yang menggunakan password file seperti yang digunakan
oleh http (httpd-style password file). Untuk membuat password file
ini digunakan utilitas sederhana milik apache2 karena memang ini
tipe password file milik apache2. Oleh karena itu, pastikan bahwa
di dalam sistem sudah terinstal utilitas htpasswd. Pada Debian,
software ini dapat diinstal dengan perintah:
#apt-get install apache2-utils

Apa sih kepanjangan NCSA? Nah, jujur saja nih, penulis juga masih
belum menemukan sumber resminya bahkan dari pihak squid
sekalipun (mungkin penulis masih kurang banyak google kali ya).
Namun, dari beberapa sumber tidak resmi penulis mendapat dua

61
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

kepanjangan yang paling cocok (menurut penulis) untuk ncsa


sehubungan konteksnya dengan otentikasi pada squid, National
Center for Supercomputing Applications dan National Cyber
Security Alliance.
So, bagaimana praktiknya? Di dalam file konfigurasi squid.conf
sebenarnya sudah ada contoh konfigurasi yang dapat kita
kostumasi dan gunakan. Contoh konfigurasi ini ditempatkan di
bagian paling bawah pembahasan mengenai auth_param. Salah
satu cara paling mudah untuk menemukannya adalah dengan
menggunakan keyword “tradeoff” dalam pencarian.

Gambar 75. Menggunakan keyword “tradeoff”

Tentu saja yang kita perlukan bukanlah sintak tradeoff (yang pada
kenyataannya memang bukan sintak). Yang perlu diperhatikan
adalah sintak konfigurasi yang berada dalam kotak kuning. Selain
contoh untuk skema basic, ada juga contoh konfigurasi untuk
skema yang lain. Contoh-contoh baris konfigurasi ini adalah
konfigurasi minimum yang direkomendasikan oleh pihak squid.
Ubahlah contoh konfigurasi tersebut menjadi seperti di bawah ini.

62
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Gambar 76. Mengubah contoh sintak konfigurasi


Sintak yang berada di dalam kotak yang berwarna merah adalah
perubahan contoh sintak konfigurasi bawaan squid, sedangkan
sintak yang berada di dalam kotak yang berwarna kuning adalah
sintak tambahan untuk mendefinisikan acl baru yang memanggil
otentikasi proxy saat ada akses http. Kemudian, perhatikan juga
sintak yang digarisbawahi warna hijau. Sintak tersebut menunjuk
file yang berisi daftar username dan password yang menjadi
referensi bagi program ncsa. Oleh karena itu, kita juga harus
membuat file ini. Seperti yang dibahas di atas, pembuatan file ini
dibuat menggunakan utilitas htpasswd.

Gambar 77. Melihat cara penggunaan software htpasswd

63
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Dari gambar di atas dapat diketahui bahwa untuk membuat file


baru, gunakan parameter “-c”. Jika ingin menambahkan user baru,
gunakan tanpa parameter apapun. Untuk menghapus user tertentu
dari isi file, gunakan parameter “-D”. Perhatikanlah contoh
penggunaan htpasswd di bawah ini. Buatlah

Gambar 78. Contoh penggunaan utilitas htpasswd

Restartlah service squid.


Saatnya pengujian dari client menggunakan web browser. Sebelum
melakukan pengujian, pastikan web browser tidak mengharapkan
transparent proxy karena auth_param tidak support transparent.

64
Gambar 79. Setting manual proxy configuration
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Setelah itu, cobalah untuk mengakses web server.

Gambar 80. Tampilan otentikasi ncsa

Sebenarnya, untuk mengaktifkan otentikasi skema basic ini kita


cukup menggunakan satu baris auth_param saja menggunakan
parameter program seperti pada gambar di bawah ini.

Gambar 81. Menonaktifkan sintak selain program

65
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

Bagi Anda yang curious dan ingin membuktikan hal ini, silakan
simpan file konfigurasi dan restart service squid. Kemudian lakukan
uji coba pada web browser client.
b. Digest
auth_param program alamat_lokasi_program
auth_param children jumlahproses
auth_param concurrency jumlahchannel
auth_param realm stringselamatdatang
auth_param nonce_garbage_interval range_waktu
auth_param nonce_max_duration range_waktu_maksimal
auth_param nonce_max_count jumlah_nonce_maksimal
auth_param nonce_strictness on/off
auth_param check_nonce_count on/off
auth_param post_workaround on/off

c. NTLM
auth_param program alamat_lokasi_program
auth_param children jumlahproses
auth_param keep_alive on/off

d. NEGOTIATE
auth_param program alamat_lokasi_program
auth_param children jumlahproses
auth_param keep_alive on/off

Water flows from higher to lower place

66
MENGADMINISTRASI LAYANAN JARINGAN PPPPTK BBL MEDAN
PADA SERVER TINGKAT LANJUT PB SMKN 2 BANJARBARU

INSTALASI DAN KONFIGURASI SQUID SEBAGAI PROXY

TUGAS
Buatlah tutorial langkah-langkah konfigurasi SSH Server baik dalam
bentuk video ataupun dalam bentuk dokumen yang disertai penjelasan!

DAFTAR PUSTAKA
Kiranjith. 2009. Squid - Delay Pools Bandwidth Management.
https://www.howtoforge.com/squid-delay-pools-bandwidth-
management. Diakses pada tanggal 9 Februari 2015 pukul 12.30 WITA.
NixCraft. 2009. Linux Tune Network Stack (Buffers Size) To Increase
Networking Performance. http://www.cyberciti.biz/faq/linux-tcp-tuning/.
Diakses pada tanggal 13 Februari 2015 pukul 06.02 WITA.
Route, Margaret. 2015. proxy server.
http://whatis.techtarget.com/definition/proxy-server. Diakses pada
tanggal 3 Februari 2015 pukul 16.15 WITA.
Squid-Cache. ncsa_auth. http://www.squid-
cache.org/Versions/v3/3.1/manuals/ncsa_auth.html. Diakses pada
tanggal 13 Februari 2015 pukul 18.27 WITA.
Squid-Cache. Squid configuration directive delay_parameters.
http://www.squid-cache.org/Doc/config/delay_parameters/. Diakses
pada tanggal 10 Februari 2015 pukul 06.53 WITA.
Squid-Cache. Squid configuration directive delay_class. http://www.eu.squid-
cache.org/Doc/config/delay_class/. Diakses pada tanggal 11 Februari
2015 pukul 08.35 WITA.
Squid-Cache. Squid: Optimising Web Delivery. http://www.squid-cache.org/.
Diakses pada tanggal 6 Februari 2015 pukul 16.43 WITA.
Visolve. Squid 3.0 Configuration Manual.
http://www.visolve.com/uploads/resources/squid30.pdf. Diakses pada
tanggal 13 Februari 2015 06.00 WITA.
Wessels, Duane. 2004. Squid: The Definitive Guide. O'Reilly: Sebastopol.
Wikipedia. 2015. Proxy server. http://en.wikipedia.org/wiki/Proxy_server.
Diakses pada tanggal 3 Februari 2015 pukul 16.09 WITA.
Wikipedia. 2015. Squid (software).
http://en.wikipedia.org/wiki/Squid_(software). Diakses pada tanggal 6
Februari 2015 pukul 16.39 WITA.
Wismanu. 2013. Administrasi Server Untuk SMK/MAK Kelas X Semester 2.
PPPPTK BOE: Malang.

67

Anda mungkin juga menyukai