modul praktikum uji kompetensi - squid proxy dan sarg
DESCRIPTION
Modul untuk SMK jurusan informatikaTRANSCRIPT
-
SQUID DAN SARG [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
- 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 = [email protected]
- Visible host = comlabs.itb.ac.id
- Website yang diblok = kompas.com dan detik.com
-
SQUID DAN SARG [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
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 [email protected]
8 Save konfigurasi IP tables yang dibuat
# iptables-save
9 Langkah selanjutnya konfigurasi aplikasi
squid untuk menjalankan fitur transparent
proxy dan melakukan konfiguras sesuai
scenario:
http_port 3128 transparent
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 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 [email protected]
## informasi email admin saat error/deny page (CACHE MANAGER) ##
cache_mgr [email protected]
## 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 [email protected]
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 [email protected]
3. Sekarang coba buka alamat kompas.com dan detik.com pasti diblok.
-
SQUID DAN SARG [email protected]
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, konfigurasi sarg sendiri
banyak opsinya namun kali ini
kita akan coba merubah :
- File access log squid - Output directory untuk
halaman web
nano /etc/sarg/sarg.conf
# TAG: access_log file
# Where is the access.log file
# sarg -l file
#
access_log /var/log/squid3/access.log
# TAG: output_dir
# The reports will be saved # in that directory
# sarg -o dir
#
output_dir /var/www/squid-reports
-
SQUID DAN SARG [email protected]
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 [email protected]
4 Halaman TOP sites.
5 Halaman denied access.
-
SQUID DAN SARG [email protected]
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.