Anda di halaman 1dari 34

SQUID DAN SARG Gulam@staff.itb.ac.

id

Proxy Server

Proxy Server adalah sistem komputer yang berada antara client yang merequest web document

ke target server (web server )/ komputer lain. Atau secara simpelnya, proxy server menjembatani

komunikasi antar client dan target server tanpa memodifikasi pesan request dan reply.

Cara Kerja:

Dari gambar diatas kita bisa ambil contoh untuk cara kerja proxy server:

1. Client request untuk web document ke webserver.

2. Proxy server akan meng hijack request tersebut, dan melihat konfigurasi yang ada pada

proxy untuk melihat aturan yang dimasukan oleh administrator.

3. Jika diperbolehkan lewat, proxy server akan memforwardkan request dari client tersebut

ke webserver.

4. Saat pesan reply dijawab dari web server, proxy server akan memforwardkan ke client

yang tadi request.


SQUID DAN SARG Gulam@staff.itb.ac.id

Dengan gambaran diatas client sebenarnya komunikasi langsung dengan web server, tetapi

sebenarnya pesan tersebut melewati proxy sever dahulu.

Pada implementasi Advance Server Proxy dapat juga bertugas sebagai :

• Memfilter request berdasarkan berbagai aturan yang dikonfigurasi administrator.

Aturannya dapat berdasarkan IP address client atau server, Protocol, Type content dokumen, dll.

• Menghemat bandwidth.

• Menambah user experience saat browsing menjadi lebih ceapat, karena content web

dicache pada proxy server.

• Menambah network policy.

• Montitoring user traffic, reporting penggunaan internet user.

• Menambah privacy user, dengan cara tidak mengekspose client langsung ke internet.

• Load balance network traffic lewat multiple koneksi network.

Reverse Proxy

Reverse proxy adalah teknik yang digunakan untuk menyimpan reply dari web server, kemudian

disimpan dalam local server proxy, sehingga jika ada client lain yang harus mendapatkan reply

yang sama tidak perlu ke web server tetapi hanya ke proxy server saja.

Teknik ini sering disebut web caching.

Web caching sering digunakan untuk :


SQUID DAN SARG Gulam@staff.itb.ac.id

• Mengurangi penggunaan bandwidth. Jadi jika ada static komunikasi dari client ke Web

server tentang CSS, file java script, Video, dan lain-lain dapat disimpan pada proxy server.

• Oleh ISP digunakan untuk menambah performa experience user saat browsing internet.

Squid

Squid adalah aplikasi yang dapat digunakan sebagai proxy server atau reverse proxy. Aplikasi

squid sendiri dapat berjalan pada sistem operasi Linux, UNIX, Windows.

Aplikasi squid sendiri dapat dipasangkan pada server dengan cara:

1. Install lewat source code.

2. Install lewat binary seperti .deb .RPM dll.

File source code dan binary dapat didownload di official website squid http://squid-cache.org.

Ada banyak versi untuk aplikasi squid sendiri namun kita harus memilih versi yang stable dan

paling terbaru, untuk melihat list versi squid dapat ke alamat http://squid-cache.org/Versions/

Pada modul ini installasi hanya akan menggunakan cara lewat nomor 2 yaitu install lewat binary.

Alat dan Bahan Untuk Praktek pada modul

1. Komputer yang sudah diinstall OS Debian GNU/Linux 7.0 (wheezy) 32 bit.

2. Koneksi ke internet.

3. Client dengan sistem operasi windows/linux.


SQUID DAN SARG Gulam@staff.itb.ac.id

No Langkah Pengerjaan Screenshoot


Install Aplikasi Squid
1 Pada bagian pertama ini kita akan menginstall squid

dengan menggunakan binary. Caranya kita lihat

apakah aplikasi squid3 ada pada repository kita.

# aptitude search squid

- dari gambar disamping kita lihat ada banyak binary

yang masuk dalam kategori searching kata “squid”,

2 install aplikasi Squid

# apt-get install squid3

- tekan tombol “y” untuk memulai installasi.


SQUID DAN SARG Gulam@staff.itb.ac.id

3 Untuk melihat apakah squid sudah dinstall dapat

menggunakan peritah:

# dpkg --get-selections |grep squid

4 Untuk melihat versi squid yang diinstall dan opsi apa

saja yang dipasang saat installasi dapat dilihat

menggunakan perintah:

# squid3 –v
SQUID DAN SARG Gulam@staff.itb.ac.id

Struktur Direktori Squid

Agar lebih mengerti tentang aplikasi squid kita harus tahu dimana saja folder/file squid yang

dipasang saat installasi, berikut folder squid yang harus diketahui:

/usr/lib/squid3/

Folder ini berisi informasi library untuk menjalankan aplikasi squid

/etc/squid3

Berisi file konfigurasi aplikasi squid

/usr/sbin/squid3

Ini adalah program utama dari squid, digunakan sebagai deamon aplikasi squid.

/usr/share/doc/squid3

Berisi informasi manual page untuk aplikasi squid.

/var/log/squid3/

Berisi informasi log tentang acces log dan cache log dari squid.

/var/cache

Directory default saat kita menggunakan fitur cache pada hardisk


SQUID DAN SARG Gulam@staff.itb.ac.id

Quick Start Squid

NO Langkah pengerjaan Screenshoot


Konfigurasi Quick Start Squid
1. Sebelum mengetahui squid lebih jauh, kita buat dahulu

minimal konfigurasi dari squid.

• Konfigurasi utama squid ada di directory /etc/squid3/

• File konfigurasi squid.conf

• Buat backup file konfigurasi default dari squid.

# cp /etc/squid3/squid.conf

/etc/squid3/squid.conf.asli
SQUID DAN SARG Gulam@staff.itb.ac.id

2 • Buka file squid.conf dan tambahkan konfigurasi

berikut:

# nano /etc/squid3/squid.conf

tambahkan baris berikut:

cache_dir ufs /var/squid/cache 500 16 256

acl client_pc src 10.205.11.166 # Ganti

dengan IP address client

http_access allow client_pc

access_log /var/log/squid3/access.log squid

3 Untuk mengecek konfigurasi squid jika ada error dapat

dengan perintah:

# squid3 –f /etc/squid3/squid.conf
SQUID DAN SARG Gulam@staff.itb.ac.id

4 Terkahir kita butuh directory untuk menyimpan file cache,

buat directory tersebut dan rubah owner direkotry tersebut

menjadi squid:

# mkdir /var/squid

# mkdir /var/squid/cache

# chown –R proxy:proxy /var/squid/cache

5 Matikan service squid, kemudian jalanakan menggunakan

perintah squid3 –z, agar squid dapat membuat cache

directory:

# /etc/init.d/squid3 stop

# squid3 -z

6 Jalankan service squid

# /etc/init.d/squid3 start
SQUID DAN SARG Gulam@staff.itb.ac.id

7 Coba lakukan testing dengan menggunakan pc user IP

10.205.11.166, kemudian buka web browser pada bagian

proxy masukan IP address proxy dan port proxy (default

port 3128):
SQUID DAN SARG Gulam@staff.itb.ac.id

8 Cobalah lakukan buka situs web. www.itb.ac.id

9 Coba lihat log dari squid dengan perintah:

# tail –f /var/log/squid3/access.log
SQUID DAN SARG Gulam@staff.itb.ac.id

Type Perintah Pada Squid

Sebelum kita lanjut ke lab squid berikutnya, kita harus mengerti ada beberap type perintah

yang dapat dimasukan dalam file konfigurasi squid.conf, dengan mengerti hal tersebut

kedepannya kita dapat dengan mudah troubleshoot masalah contohnya.

• Perintah single value

type perintah ini hanya dapat digunakan satu kali dalam konfigurasi squid.conf, jika ada

2 perintah yang sama maka akan direplace contohnya adalah perintah logfile_rotate:

logfile_rotate 10

# Few lines containing other configuration directives

logfile_rotate 5

• Perintah Boolean

Dalam konfigurasi squid juga ada perintah untuk Boolean, yaitu perintah untuk ON/OFF

sebuah fitur.

query_icmp on

log_icp_queries off

url_rewrite_bypass off

• Perintah Multiple Value

Type perintah ini dapat kita gunakan beberapa kali dalam konfigurasi squid.conf,

contohnya:

dns_nameservers proxy.example.com

dns_nameservers squid.example.com
SQUID DAN SARG Gulam@staff.itb.ac.id

• Perintah dengan value ukuran waktu

Type perintah ini menggunakan nilai waktu sebagai opsinya, seperti seconds, minutes,

hours. Contoh:

request_timeout 3 hours

persistent_request_timeout 2 minutes

• Perintah dengan value ukuran memory

Type perintah ini menggunakan ukuran memory sebagai opsinya, seperti bytes, KB, MB,

GB.

contoh:

reply_body_max_size 10 MB

cache_mem 512 MB

maximum_object_in_memory 8192 KB
SQUID DAN SARG Gulam@staff.itb.ac.id

Access Control Pada Squid

Pada bagian sebelumnya kita mengetahui type perintah apa saja yang dapat dimasukan

dalam konfigurasi squid.conf. Pada bagian ini kita akan mempelajari bagiamana aplikasi squid

mengontrol akses client, web, reply dll.

Ada 2 elemen untuk mengontrol hal tersebut yaitu ACL Type dan access List. Access list

bekerja untuk meng allow atau deny yang diikuti oleh satu atau sekumpulan ACL Type.

Contoh ACL type yang tersedia:

• Src : Source (client) IP address.

• Dst : Tujuan (server) IP address.

• Time : ukuran waktu.

• Proto : transfer protocol (http,ftp).

• Arp : Ethernet (mac address).

• Dstdomain : tujuan server berdasarkan domain.

• Srcdomain : source client berdasarkan domain.

Adapun penulisan untuk ACL Type adalah:

acl ACL_NAME ACL_TYPE value

acl ACL_NAME ACL_TYPE "/path/to/filename"

- ACL_NAME : nama dari acl, bisa ditulis bebas seperti komputer_1, case sensitive.

- ACL_TYPE : nama dari type acl, contohnya dstdomain.

- Value : nilai dari acl type tersebut bisa berupa waktu, IP address tergantung dari acl type.

Value juga dapat disimpan dibeda file.

Contoh penulisan type acl.


SQUID DAN SARG Gulam@staff.itb.ac.id

1. Menggunakan acl type src

acl komputer_staff src 167.205.84.10

2. Menggunakan acl type dstdomain dengan multiple value.

acl blok_website dstdomain kompas.com

acl blok_website dstdomain facebook.com

3. Menggunakan acl type arp dengan value ada difile konfigurasi yang berbeda.

acl mac_dosen arp “/etc/squid3/client_dosen”

Access List

Saat menggunakan squid, access list bertugas untuk mengontrol akses berbagai resource,

contohnya apkah di allow/deny. Pengontrolan akses ini berdasarkan aturan dari ACL type yang

kita tulis.

Ada berbagai macam acess list yang tersedia dalam squid:

 http_access : memperbolehkan http clients (browser) untuk mengakses http port (80). Ini

adalah access list utama dalam squid.

 http_reply_access: memperbolehkan http client (browser) untuk menerima jawaban dari

pesan request yang dikirim.

 Icp_access: memperbolehkan neighbor squid untuk mengquery cache kita.

 Always_direct : mengontrol request untuk selalu diforwardkan langsung ke server

tujuan.

 Never_direct: mengontrol request untuk tidak memforwardkan langsung ke server.

 Cache : mengatur website/server mana yang web documentnya harus di simpan dalam

cache.
SQUID DAN SARG Gulam@staff.itb.ac.id

Format penulisan Access list:

http_access allow|deny ACL_NAME

http_access allow|deny [!]ACL_NAME

- http_access : kita dapat mengontrol transaksi http lewat squid apakah di allow/deny.

- ACL_NAME : nama acl type yang sudah dideklarasikan.

- [!] : artinya kecuali.

- Jika tidak ada akses yang match berdasarkan access list defaultnya pada akhir baris ada

http_access deny all. Baris ini untuk mengegaskan bahwa selain aturan yang dibuat

harus oleh admin di deny.

Contoh penulisan access type digabung dengan access list

 Kasus 1 : hanya alamat IP 167.205.79.0/24 yang dapat menggunakan squid server, selain

itu tidak boleh:

Konfigurasi

acl client_itb src 167.205.79.0/24

http_access allow client_itb

 Kasus 2 : alamat website kompas.com dan detik.com tidak boleh di cache pada server.

acl kompas dstdomain kompas.com

acl detik dstdomain detik.com

cache deny kompas detik


SQUID DAN SARG Gulam@staff.itb.ac.id

 Kasus 3 : mencegah user untuk mengakses situs yang mengandung kata porn dan sex.

acl sex url_regex sex

acl porn url_regex porn

acl client_itb src 167.205.79.0/24

http_access deny sex

http_access deny porn

http_access allow client_itb

http_access deny all


SQUID DAN SARG Gulam@staff.itb.ac.id

Lab Squid berdasarkan skenario.

Pada modul ini tidak akan dibahas secara detail tentang squid secara detail, tetapi kita

akan mencoba implementasi squid berdasarkan scenario tertentu.

Sebelum kita memulai scenario yang pertama dalam squid, kita buat dulu basic

konfigurasi dari squid. Jika kita buka file /etc/squid3/squid.conf dalam baris tersebut banyak

baris yang di # artinya konfigurasi tersebut tidak akan dibaca oleh daemon squid. Jika kita lihat

default konfigurasinya hanya baris konfigurasi dibawah ini yang dibaca oleh squid.

acl manager proto cache_object

acl localhost src 127.0.0.1/32 ::1

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl SSL_ports port 443

acl Safe_ports port 80 # http

acl Safe_ports port 21 # ftp

acl Safe_ports port 443 # https

acl Safe_ports port 70 # gopher

acl Safe_ports port 210 # wais

acl Safe_ports port 1025-65535 # unregistered ports

acl Safe_ports port 280 # http-mgmt

acl Safe_ports port 488 # gss-http

acl Safe_ports port 591 # filemaker

acl Safe_ports port 777 # multiling http

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager


SQUID DAN SARG Gulam@staff.itb.ac.id

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

http_port 3128

coredump_dir /var/spool/squid3

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern -i (/cgi-bin/|\?) 0 0% 0

refresh_pattern . 0 20% 4320


SQUID DAN SARG Gulam@staff.itb.ac.id

LAB 2: Transparent Proxy

Topology:

Konsep Transparent Proxy:

Transparent proxy adalah sebuah teknik untuk memaksa client (PC) menggunakan Proxy

server tanpa harus mengubah sedikitpun konfigurasi pada sisi client. Konfigurasi disini seperti

mengubah settingan proxy pada web browser dan juga system komputer.

Note: Transparent proy sama saja istilahnya dengan intercept proxy.

Keuntungan :

- Zero client configuration : client tidak perlu mengkonfigurasi setting proxy, sangat

berguna jika client proxy kita banyak.

- Menambah reliability : kita dapat langung memforwardkan request client lewat

router/switch jika proxy kita dalam keadaan mati.

Kerugian :

- Hanya support protocol HTTP.

- Tidak dapat menggunakan proxy authentikasi


SQUID DAN SARG Gulam@staff.itb.ac.id

- Meskipun hanya protocol HTTP yang dapat digunakan untuk pengecekan, ada beberapa

proctocol yang harus terhubung langsung tanpa melewati server proxy yaitu HTTPS,

FTP, DNS.

Cara Kerja

Dari gambar topology diatas kita akan coba jelaskan cara kerja transparent proxy.

1. PC client akan browsing website contohnya facebook.com menggunakan http dan https port

80/443.

2. Pesan tersebut akan diterima oleh Gateway karena pesan server tersebut berperan sebagai

jalur untuk keluar jaringan daerah Client.

3. Saat Gateway menerima pesan dengan port http/https port 80/443 gateway akan

melamparkan/redirect ke server proxy dengan port 3128.

4. Server Proxy kemudian akan mengidentifikasi pesan tersebut berdasarkan konfigurasi yang

dimasukan oleh administrator.

5. Jika pesan tersebut diperbolehkan oleh proxy untuk dikirim, maka gateway akan

mengirimkan ke alamat facebook.com.

Skenario yang akan dibuat:

- Port proxy = 3128

- Cache manager = admin@comlabs.itb.ac.id

- Visible host = comlabs.itb.ac.id

- Website yang diblok = kompas.com dan detik.com


SQUID DAN SARG Gulam@staff.itb.ac.id

NO Langkah pengerjaan Screenshoot

1 Konfigurasi IP address Server

proxy/gateway sesuai topology.

# nano

/etc/network/interfaces

2 Restart service network

# /etc/init.d/networking

restart

3 Untuk memverifikasi konfigurasi ip

address dapat menggunakan

perintah:

# ifconfig
SQUID DAN SARG Gulam@staff.itb.ac.id

4 Untuk memverifikasi IP default

gateway pada sistem opreasi

linux/unix

# netstat –nr

5 Pada topology diatas kita lihat

bahwa server proxy juga sebagai

gateway, maka server tersebut harus

bisa melakukan routing. Untuk

mengenable fitur routing pada linux

caranya buka file:

nano /etc/sysctl.conf

kemudaian hapus tanda “#” pada

baris berikut:
SQUID DAN SARG Gulam@staff.itb.ac.id

6 Tambahkan fitur NAT (network

address translation) agar network

client dapat terhubung ke alamat IP

publik menggunakan IPtables

# iptables -t nat -A

POSTROUTING -o eth0 -j

MASQUERADE

7 Lakukan konfigurasi untuk

mengarahkan paket dengan port 80

(http) browsing dari client (eth1)

untuk diarahkan ke aplikasi squid

proxy port (3128) menggunakan IP

tables.

# iptables -t nat -A

PREROUTING -i eth1 -p tcp --

dport 80 -j REDIRECT --to-

port 3128
SQUID DAN SARG Gulam@staff.itb.ac.id

Mari kita membaca apa konfigurasi yang dimasukan.

- -t = nama table (yaitu table NAT)

- -A = tambahkan baris firewall

- PREROUTING = filtering akan dilakukan sebelum routing.

- -i eth1 = paket yang dating dari eth1 (network client).

- -p tcp = protocol yang di filter.

- --dport = protocol port number 80 (http)

- -j REDIRECT = aksi yang akan dilakukan adalah di REDIRECT / dilemparkan.

- --to-port 3128= ke port 3128 yaitu aplikasi squid.

jika kita coba runtunkan maka akan dibaca seperti berikut.

“Tambahkan filter ke dalam table NAT yaitu sebelum paket di routingkan yang datang pada interface eth1 dengan tujuan paket port

80 (http) akan di REDIRECT/dilemparkan ke port 3128 yaitu aplikasi squid. “


SQUID DAN SARG Gulam@staff.itb.ac.id

8 Save konfigurasi IP tables yang dibuat

# iptables-save

9 Langkah selanjutnya konfigurasi aplikasi http_port 3128 transparent

squid untuk menjalankan fitur transparent


acl manager proto cache_object
proxy dan melakukan konfiguras sesuai
acl localhost src 127.0.0.1/32 ::1
scenario: acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

## ACL BLOK SITE kompas.com dan detik.com ##

acl blok_site dstdomain kompas.com

acl blok_site dstdomain detik.com

## ACL BLOK regex/url yang mengandung kata facebook dan twitter ##

acl facebook_regex url_regex -i kompas

acl twitter_regex url_regex -i detik

## ACL IP Komputer yang boleh akses ##

acl komputer_user src 192.168.0.0/24


SQUID DAN SARG Gulam@staff.itb.ac.id

## informasi email admin saat error/deny page (CACHE MANAGER) ##

cache_mgr admin@comlabs.itb.ac.id

## INFORMASI VISIBLE HOSTNAME

visible_hostname comlabs.itb.ac.id

## access list control ##

http_access allow localhost

http_access deny blok_site

http_access deny facebook_regex

http_access deny twitter_regex

http_access allow komputer_user

http_access deny all


SQUID DAN SARG Gulam@staff.itb.ac.id

PC Client.

1. Konfigurasi IP address client seperti dibawah ini.

2. Testing konfigurasi yang dilakukan untuk transparent proxy menggunakan browser tanpa

harus setting proxy. Buka alamat itb.ac.id dan kaskus.com harusnya dapat dibuka.
SQUID DAN SARG Gulam@staff.itb.ac.id

3. Sekarang coba buka alamat kompas.com dan detik.com pasti diblok.


SQUID DAN SARG Gulam@staff.itb.ac.id

SARG (Squid Analysis Report Generator)


Sarg adalah tool yang dapat melihat user mana saja yang menggunakan proxy squid kita. Sarg
berisi informasi tentang users, IP address, Bytes, sites dan waktu user mengkases dalam halaman
website.

No Langkah Pengerjaan Screenshoot

1 Untuk menginstall aplikasi


sarg serta web servernya pada
debian dapat dengan
perintah:

# apt-get install
sarg apache2
libapache2-mod-php5

2 Konfigurasi aplikasi sarg, # TAG: access_log file


konfigurasi sarg sendiri
# Where is the access.log file
banyak opsinya namun kali ini
kita akan coba merubah : # sarg -l file

#
- File access log squid
- Output directory untuk access_log /var/log/squid3/access.log
halaman web
# TAG: output_dir
nano
# The reports will be saved # in that directory
/etc/sarg/sarg.conf
# sarg -o dir

output_dir /var/www/squid-reports
SQUID DAN SARG Gulam@staff.itb.ac.id

3 Setelah melakukan konfigurasi,


selanjutnya generate sarg.
Proses ini untuk mengkonversi
informasi access.log pada squid
menjadi halaman HTML.

# sarg –x

3 Buka halama browser dan akses


menggunakan alamat:

http://IP_server_proxy/squid-
reports
SQUID DAN SARG Gulam@staff.itb.ac.id

4 Halaman TOP sites.

5 Halaman denied access.


SQUID DAN SARG Gulam@staff.itb.ac.id

6 Untuk membuat Sarg otomatis


generate access.log menjadi
halaman HTML maka gunakan
crontab.

# crontab –e

* */1 * * *

/usr/bin/sarg -x

server proxy akan otomatis

menggenrate access.log

menjadi halaman html satu

jam sekali setiap hari.

Anda mungkin juga menyukai