Instalasi dan Konfigurasi Proxy Server Sebagai Cache Pada Ubuntu 14.04
Disusun oleh:
Alang Mafuzakaria
3.33.14.2.02
2017
HALAMAN PENGESAHAN PERUSAHAAN
Alang Mafuzakaria
NIM. 3.33.14.2.02
Mengetahui,
IT & Network Manager Pembimbing Magang
ii
HALAMAN PENGESAHAN LAPORAN PKL
Alang Mafuzakaria
NIM. 3.33.14.2.02
Mengetahui,
Kaprodi D3 Teknik Telekomunikasi Pembimbing
iii
KATA PENGANTAR
Puji syukur kehadirat Allah SWT atas segala hidayah dan rahmat-Nya,
sehingga penulis dapat melaksanakan Praktek Kerja Lapangan yang bertempat di PT
Bintang Komunikasi Utama dengan baik. Laporan ini merupakan laporan kegiatan
yang dilakukan selama pelaksanaan Praktek Kerja Lapangan di divisi IT Network PT
Bintang Komunikasi Utama.
Penulis tentunya tak lepas dari dorongan dan uluran tangan dari berbagai
pihak demi terselesaikannya laporan ini. Oleh karena itu, penulis mengungkapkan
rasa terima kasih kepada:
iv
7. Seluruh Dosen Pengajar dan Pegawai Politeknik Negeri Semarang
Program Studi D3 Telekomunikasi yang telah membantu penulis
mendapatkan informasi dan urusan kampus.
8. Rohadi, S. Kom. selaku Direktur Utama PT Bintang Komunikasi Utama
yang telah memberikan izin untuk melaksanakan praktek kerja lapangan.
9. Galih Cendana Indra Putra, A.Md. selaku Pembimbing Magang yang telah
meluangkan waktu untuk membimbing dan mengarahkan penulis dalam
menyusun laporan magang ini.
10. Adi Mulyadi selaku Pembimbing Lapangan yang telah meluangkan waktu
untuk memberikan pengarahan dan masukan kepada penulis dalam
melaksanakan Praktek Kerja Lapangan.
11. Seluruh Staff dan Pegawai PT Bintang Komunikasi Utama yang
berinteraksi langsung maupun tidak langsung dengan penulis yang telah
membantu, mengajarkan dan membimbing penulis saat melakukan
Praktek Kerja Lapangan.
12. Seluruh sahabat yang tidak bisa penulis sebutkan satu persatu. Terima
kasih atas persahabatan yang tidak akan pernah penulis lupakan.
Terlepas dari kekurangan yang ada, penulis berharap semoga laporan ini dapat
memberikan manfaat, baik bagi penulis sendiri maupun pembaca pada umumnya.
Penulis
v
DAFTAR ISI
HALAMAN JUDUL
BAB I ............................................................................................................................ 1
1.3. Tujuan................................................................................................................ 2
BAB II ........................................................................................................................... 4
vi
2.4. Layanan Produk dan Jasa .................................................................................. 6
2.4.8. Survey....................................................................................................... 11
vii
3.2.1. Proxy Server ............................................................................................. 17
3.2.4. Firewall..................................................................................................... 21
3.3.3. Instalasi dan Konfigurasi Remote Access dan File Sharing .................... 35
BAB IV ....................................................................................................................... 69
4.1 Kesimpulan...................................................................................................... 69
LAMPIRAN
viii
DAFTAR GAMBAR
ix
Gambar 3.24. Konfigurasi IP client ............................................................................ 34
Gambar 3.25. Pengujuan koneksi jaringan ................................................................. 34
Gambar 3.26. Pengujian SSH...................................................................................... 35
Gambar 3.27. Pengujian file sharing FTP ................................................................... 37
Gambar 3.28. Pemeriksaan versi squid ....................................................................... 39
Gambar 3.29. Debugging pada file squid ................................................................... 63
Gambar 3.30. Mengambil file sertifikat ...................................................................... 63
Gambar 3.31. Mengimpor file sertifikat pada browser ............................................... 63
Gambar 3.32. Mengimpor file sertifikat pada browser ............................................... 64
Gambar 3.33. Konfigurasi proxy pada browser .......................................................... 64
Gambar 3.34. File sebelum dicache ............................................................................ 65
Gambar 3.35. File setelah dicache .............................................................................. 66
Gambar 3.36. Hasil monitoring melalui SARG .......................................................... 68
x
DAFTAR TABEL
xi
BAB I
PENDAHULUAN
Praktek Kerja Lapangan (PKL) merupakan salah satu kurikulum yang wajib,
penting, dan harus ditempuh dalam mengikuti program pendidikan di Politeknik
Negeri Semarang, khususnya Jurusan Teknik Elektro Program Studi D3 Teknik
Telekomunikasi.
1
Proxy Server berguna untuk menyimpan atau caching file tertentu dari
halaman web yang pernah diakses oleh client sehingga jika client yang lain
mengakses website yang sama, maka file yang telah disimpan oleh proxy akan
diambilkan dari cache proxy bukan dari internet secara langsung. Sehingga akses
internet akan lebih cepat dan kepadatan aliran data di jalur internet akan berkurang.
Permasalahan yang akan dibahas dalam laporan Praktek Kerja Lapangan di Divisi
IT Network PT Bintang Komunikasi Utama meliputi:
1.3. Tujuan
Tujuan yang dapat dicapai dari pelaksanaan Praktek Kerja Lapangan adalah
sebagai berikut:
2
1.4. Tempat dan Waktu Pelaksanaan
Bab I: Pendahuluan
Pada bab ini meliputi latar belakang, tujuan, pembatasan masalah, tempat dan
waktu pelaksanaan kerja praktek lapangan.
Pada bab ini menjelaskan tentang PT Bintang Komunikasi Utama, visi dan
misi perusahaan, stuktur organisasi perusahaan, serta layanan produk dan jasa.
Pada bab ini menjelaskan tentang kegiatan yang dilakukan selama kegiatan
Praktek Kerja Lapangan di PT Bintang Komunikasi Utama. Kegiatan tersebut
meliputi deskripsi serta gambaran kerja selama pelaksanaan Praktek Kerja Lapangan,
penjelasan teori dasar tentang proxy server, serta uraian hasil kegiatan dalam
perancangan proxy server.
Bab V: Penutup
Pada bab ini berisi kesimpulan, serta saran yang didapat selama Praktek Kerja
Lapangan di Divisi IT Network PT Bintang Komunikasi Utama.
3
BAB II
PROFIL PERUSAHAAN
4
Hal ini bermula dari kesadaran PT Bintang Komunikasi Utama, betapa
pentingnya layanan jasa telekomunikasi yang mememerlukan kecepatan dan tenaga
teknis yang profesional, sehingga PT Bintang Komunikasi Utama siap membantu
dengan penyediaan perangkat, sumber daya manusia, dan teknologi yang berkualitas.
5
2.2.2. Struktur Organisasi
Gambar 2.3. Salah Satu Layanan dan Produk PT Bintang Komunikasi Utama
6
2.4.1. VSAT
Shared Remote BW
2.4.2. MPLS
7
radio wireless yang berkapasitas besar dan memiliki jangkauan yang cukup
jauh akan mengantarkan teknologi MPLS sampai ke daerah-daerah yang
sebelumnya tidak terjangkau teknologi tersebut. Bisa jadi untuk mencapai satu
daerah yang sangat jauh diukur dari titik terakhir node MPLS yang ada atau
karena terhalang oleh bukit atau pegunungan yang tinggi, diperlukan
pembangunan sebuah Repeater wireless yang biasanya dilengkapi dengan
solar cell sebagai sumber listriknya. Untuk menjaga availabilitas dari layanan,
WDL juga dilengkapi VSAT sebagai backup-nya.
8
2.4.3. Radio Wireless VSAT Backup
2.4.4. Siskompad
9
Video - Smart Video Conference
CCTV
SMS Center
2.4.6. Maintenance
10
2.4.7. Instalation
2.4.8. Survey
11
2.4.10. Jasa Drive Test Cellular
Drive Test untuk BTS (Base Tranceiver Station) Indoor dan Outdoor
Drive Test untuk Repeater BTS (Base Transceiver Station) Indoor dan
Outdoor
Drive test untuk New Site
Drive Test untuk Benchmark
Drive Test untuk Optimalisasi BTS
2.4.11. Relokasi
12
2.4.13. Dismantle
13
pasokan energi maka saat ini hampir di seluruh Indonesia sedang gencar
membangun jaringan yang berkaitan dengan penggunaan distribusi diatas.
14
BAB III
15
Adapun ketrampilanketrampilan baru yang diperoleh penulis selama
magang kerja yaitu:
b. Profesionalisme
c. Komunikasi
d. Kemampuan
16
3.2. Dasar Teori
17
Proxy meliliki tiga fungsi utama proxy server, yaitu:
a. Connection sharing
b. Filtering
c. Caching
3.2.2. Ubuntu
Ubuntu adalah salah satu distro linux debian yang populer saat ini,
bahkan pada versi desktopnya saja banyak kalangan yang sudah memakai,
karena UI hampir mirip dengan windows. Pada sisi server Ubuntu bisa
menjadi salah satu opsi, karena selain mudah digunakan Ubuntu juga adalah
distro yang stabil, aman, cepat, dan perintahnya cukup mudah terutama bagi
pemula. Hal ini dibuktikan dengan beberapa para penjual VPS banyak yang
menyediakan distro ini sebagai pilihan OS untuk ditanam dalam server.
18
Versi Ubuntu yang digunakan adalah 14.0 LTS karena lebih stabil
apabila digunakan untuk proxy server. Sistem operasi Ubuntu dapat diperoleh
di: http://www.ubuntu.com/download/
a. Remote Access
19
Mengendalikan komputer lain dari lokasi yang remote, misalnya
untuk mengakses software di komputer yang ada di divisi atau
bagian lain di perusahaan oleh pengguna technical support
perusahaan diruang kerjanya.
b. File Sharing
20
berbagi, mencari dan mengunduh file satu ke tempat yang lainnya. Atau
bisa dikatakan sebagai transfer data antar personal komputer atau
perangkat sejenis.
3.2.4. Firewall
21
Gambar 3.2. Ilustrasi Firewall
Salah satu aplikasi proxy yang paling banyak digunakan pada sistem
Linux adalah Squid. Setelah proxy berjalan dengan lancar, diperlukan aplikasi
untuk memonitoring aktifitas client pada proxy tersebut.
22
3.3. Uraian Hasil Kegiatan
2. Pada tahap ini terdapat 2 pilihan yaitu Try Ubuntu untuk mencoba
Ubuntu tanpa harus menginstal Ubuntu ke dalam harddisk dan Install
Ubuntu untuk menginstal Ubuntu ke dalam harddisk. Pilih bahasa saat
instalasi. Pilih Install Ubuntu untuk melakukan instalasi Ubuntu
Desktop.
23
Gambar 3.4. Tahap Pemilihan bahasa instalasi
24
4. Tahap berikutnya yaitu Installation Type. Ada beberapa pilihan yang
bisa dipilih seperti berikut:
Erase disk and install Ubuntu: Pilihan ini akan menghapus seluruh
partisi yang ada dan langsung melakukan instalasi Ubuntu.
25
6. Pilih negara/region untuk Time Zone.
7. Pada bagian Keyboard Layout, biarkan saja pilihan default yaitu English
(US).
26
Gambar 3.10. Tahap pengisian identitas pengguna
27
10. Restart server untuk menyelesaikan proses instalasi.
11. Setelah itu login dengan username dan password ketika proses instalasi.
28
3.3.2. Konfigurasi Jaringan
a. Pengalamatan IP
Dalam proxy server, dibutuhkan dua interface yaitu eth0 dan eth1.
Eth0 akan terhubung pada koneksi internet dengan konfigurasi secara
DHCP sedangkan eth1 akan terhubung ke jaringan lokal dengan
konfigurasi secara static.
29
2. Pilih tipe jaringan yang digunakan untuk eth0.
30
4. Interface eth0 akan mendapatkan alamat IP secara otomatis.
31
Gambar 3.20. Konfigurasi interface eth1
32
b. Firewall
Salah satu tools firewall default pada sistem operasi linux adalah
Iptables. Perintah 'iptables' yang digunakan yaitu Masquerade NAT
yang berfungsi untuk menghubungkan jaringan lokal yang
menggunakan alamat IP privat ke internet yang menggunakan IP public.
Konfigurasi firewall dilakukan pada file rc.local yang berada di
directory /etc.
Konfigurasi firewall:
$ sudo su
# nano /etc/rc.local
33
4. Kemudian restart server.
# reboot
34
3.3.3. Instalasi dan Konfigurasi Remote Access dan File Sharing
a. Remote Access
Instalasi SSH:
# apt-get update
b. File Sharing
35
keadaan default, ftp berjalan pada port 21 dan bekerja pada protocol
TCP/IP. Dalam FTP Server, terdapat dua cara login user yaitu:
# nano /etc/proftpd/proftpd.conf
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
DisplayChdir .message
</Anonymous>
36
4. Lakukan pengujian dengan menggunakan aplikasi FileZilla.
Aplikasi yang paling popular, dan terkenal ampuh untuk Proxy Server
yaitu SQUID. Squid pada awalnya dikembangkan oleh Duane Wessels
sebagai "Harvest object cache", yang merupakan bagian dari proyek Harvest
yang dikembangkan di University of Colorado at Boulder.
Terdapat dua file yang harus dikonfigurasikan pada squid yaitu file
squid yang terdapat pada directory /etc/squid dan file store-id yang juga
terdapat pada directory /etc/squid. File squid digunakan untuk menjalakankan
proxy server sedangkan file store-id digunakan untuk untuk menulis ulang
URL-URL dinamis ke alamat URL statis supaya bisa diHIT oleh
SQUID.
37
Instalasi Squid:
# wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.12.tar.gz
# cd squid-3.5.12
38
3. Tunggu proses instalasinya. jika saat Instalasi tidak terjadi error maka
dipastikan squid anda sudah terinstall dengan benar. Untuk pemeriksaan
squid versi yang terinstall, bisa dilakukan dengan perintah berikut pada
putty:
# squid -v
# touch /etc/init.d/squid
# nano /etc/init.d/squid
6. Lalu copy script di bawah ini kemudian masukan scriptnya pada file
tersebut.
39
#! /bin/sh
#
# squid32012 Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid3.rc 1.0 07-Jul-2006 luigi@debian.org
#
### BEGIN INIT INFO
# Provides: Squid 3.X
# File-Location: /etc/init.d/squid3
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $network $remote_fs $syslog
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2345
# Default-Stop: 016
# Short-Description: Squid HTTP Proxy version 3.2.0.12
### END INIT INFO
NAME="ALANG"
DESC="HTTP/HTTPS Proxy"
DAEMON=/usr/sbin/squid
PIDFILE=/var/run/$NAME.pid
CONFIG=/etc/squid/squid.conf
SQUID_ARGS="-YC -f $CONFIG"
# RAMFS=/scripts/ramcache
[ ! -f /etc/default/squid ] || . /etc/default/squid
40
. /lib/lsb/init-functions
PATH=/bin:/usr/bin:/sbin:/usr/sbin
[ -x $DAEMON ] || exit 0
ulimit -n 65535
find_cache_dir () {
w=" " # space tab
res=`sed -ne '
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $CONFIG`
[ -n "$res" ] || res=$2
echo "$res"
}
find_cache_type () {
w=" " # space tab
res=`sed -ne '
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $CONFIG`
41
[ -n "$res" ] || res=$2
echo "$res"
}
start () {
# $RAMFS clean
# $RAMFS mount
# $RAMFS restore
#
# Create spool dirs if they don't exist.
#
if [ "$cache_type" = "coss" -a -d "$cache_dir" -a ! -f
"$cache_dir/stripe" ] || [ "$cache_type" != "coss" -a -d "$cache_dir" -a ! -d
"$cache_dir/00" ]
then
log_warning_msg "Creating $DESC cache structure"
$DAEMON -z
fi
umask 027
ulimit -n 65535
cd $cache_dir
42
start-stop-daemon --quiet --start \
--pidfile $PIDFILE \
--exec $DAEMON -- $SQUID_ARGS < /dev/null
return $?
}
stop () {
43
log_action_cont_msg ""
done
log_action_end_msg 0
return 0
else
return 0
fi
}
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
if stop ; then
log_end_msg $?
else
log_end_msg $?
fi
44
# $RAMFS dump
# $RAMFS umount
# $RAMFS clean
;;
reload|force-reload)
log_action_msg "Reloading $DESC configuration files"
start-stop-daemon --stop --signal 1 \
--pidfile $PIDFILE --quiet --exec $DAEMON
log_action_end_msg 0
;;
restart)
log_daemon_msg "Restarting $DESC" "$NAME"
stop
if start ; then
log_end_msg $?
else
log_end_msg $?
fi
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-
reload|restart}"
exit 3
;;
esac
exit 0
# END
45
7. Lakukan perintah di bawah ini menggunakan putty, bertujuan agar file
squid bisa di proses secara default:
# mkdir /cache
# squid -z
#mkdir /etc/squid/ssl_cert
# openssl req -new -newkey rsa:2048 -days 3652 -nodes -x509 -keyout
/etc/squid/ssl_cert/myCA.pem -out /etc/squid/ssl_cert/myCA.pem
pada saat melakukan perintah di atas, akan terdapat form yang harus diisi.
# /usr/lib/squid/ssl_crtd -c -s /var/lib/ssl_db
46
12. File sertifikat telah dibuat. File sertifikat digunakan untuk malakukan
cache pada protocol web HTTPS.
Konfigurasi
# nano /etc/squid/squid.conf
2. Hapus seluruh isi file squid.conf dan masukan script di bawah ini dan
masukkan pada file tersebut.
47
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
########################################
# TAG: QUERY
# -----------------------------------------------------------------------------
acl QUERY urlpath_regex -i
(hackshield|blank.html|infinity.js|hshield.da|renew_session_token.php|reca
ptcha.js|dat.asp|notice.swf|patchlist.txt|hackshield|captcha|reset.css|update.
ver|notice.html|updates.txt|gamenotice|images.kom|patchinfo.xml|noupdat
e.ui|\.Xtp|\.htc|\.txt)
acl QUERY urlpath_regex -i
(patch.conf|uiimageset.xml.iop|gashaponwnd.xml.iop|loading.swf|downloa
d.swf|version.list|version.ini|launch.jnlp|server_patch.cfg.iop|core.swf|Loa
ding.swf|resouececheck.sq|mainloading.swf|config.xml|gemmaze.swf|xml.
png|size.xml|resourcesbar.swf|version.xml|version.list|delete.ini)
acl QUERY urlpath_regex -i \.(jsp|asp|aspx|cfg|iop|zip|php|xml|html)(\?|$)
cache deny QUERY
#
acl dontstore url_regex ^http:\/\/(([\d\w-]*(\.[^\.\-
]*?\..*?))(\/\mosalsal\/[\d]{4}\/.*\/)(.*\.flv))\?start.*
acl dontstore url_regex redbot\.org \.php
acl dontstore url_regex -i ^http:\/\/.*gemscool\.com\/.*
acl dontstore url_regex \.(aspx|php)\?
acl dontstore url_regex goldprice\.org\/NewCharts\/gold\/images\/.*\.png
acl dontstore url_regex google\.co(m|\.[a-z]{2})\/complete\/search\?
acl dontstore url_regex redirector\.([0-
9.]{4}|.*\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com)\/(get
_video\?|videodownload\?|videoplayback.*id|get_video_info\?|ptracking\?|
player_204\?|stream_204\?).*
48
acl store_yt_id url_regex -i
youtube.*(ptracking|stream_204|playback|player_204|watchtime|set_awes
ome|s\?|ads).*(video_id|docid|\&v|content_v)\=([^\&\s]*).*$
acl store_id_list_yt url_regex -i (youtube|googlevideo).*videoplayback.*$
acl store_id_list_yt url_regex ^https?\:\/\/([0-
9.]{4}|.*\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com)\/(get
_video\?|videodownload\?|videoplayback.*id).*
49
http_access allow lan
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3129
http_port 3130 ssl-bump generate-host-certificates=on
dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/myCA.pem
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump peek step1 all
ssl_bump bump all
########################################
# TAG: Store-id Program
# -----------------------------------------------------------------------------
store_id_program /etc/squid/store-id.pl
store_id_children 100 startup=0 idle=1 concurrency=1000
50
store_id_access allow store_id_list_yt
store_id_access allow store_yt_id
store_id_access allow store-id_list
store_id_access deny all
store_id_bypass on
#############################
# Youtube Video
refresh_pattern -i
(get_video\?|videoplayback\?|videodownload\?|\.mp4|\.webm|\.flv|((audio|
video)\/(webm|mp4))) 241920 100% 241920 override-expire ignore-reload
51
ignore-private ignore-no-store ignore-must-revalidate reload-into-ims
ignore-auth store-stale
refresh_pattern -i ^https?\:\/\/.*\.googlevideo\.com\/videoplayback.*
10080 99% 43200 override-lastmod override-expire ignore-reload reload-
into-ims ignore-private reload-into-ims ignore-auth store-stale
refresh_pattern -i ^https?\:\/\/.*\.googlevideo\.com\/videoplayback.*$
241920 100% 241920 override-expire ignore-reload ignore-private ignore-
no-store ignore-must-revalidate reload-into-ims ignore-auth store-stale
# Image Youtube
refresh_pattern -i (yimg|twimg)\.com\.* 1440 100% 129600 override-
expire ignore-reload reload-into-ims
refresh_pattern -i (ytimg|ggpht)\.com\.* 1440 80% 129600 override-
expire override-lastmod ignore-auth ignore-reload reload-into-ims
#Images facebook
refresh_pattern -i
fbcdn.*net\/.*\.((jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|css|js)|(jp(e?g|e|2)|g
if|pn[pg]|bm?|tiff?|ico|swf|css|js)(\?|.*$)) 241920 99% 241920 ignore-no-
store ignore-private override-expire override-lastmod reload-into-ims
ignore-auth
refresh_pattern -i pixel\.facebook\.com.*\.(jpg|png|gif|ico|css|js) 241920
80% 241920 override-expire ignore-reload reload-into-ims ignore-auth
refresh_pattern -i \.akamaihd\.net.*\.(jpg|png|gif|ico|css|js) 241920 80%
241920 override-expire ignore-reload reload-into-ims ignore-auth
refresh_pattern -i ((facebook.com)|(85.131.151.39))\.(jpg|png|gif) 241920
99% 241920 ignore-reload override-expire ignore-no-store store-stale
refresh_pattern -i
fbcdn\.net\/.*\.((jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|css|js)|(jp(e?g|e|2)|g
if|pn[pg]|bm?|tiff?|ico|swf|css|js)(\?|.*$)) 241920 99% 241920 ignore-no-
store ignore-private override-expire override-lastmod reload-into-ims
ignore-auth
refresh_pattern static\.(xx|ak)\.fbcdn\.net*\.(jpg|gif|png) 241920 99%
241920 ignore-reload override-expire ignore-no-store
52
refresh_pattern ^https?\:\/\/profile\.ak\.fbcdn.net*\.(jpg|gif|png) 241920
99% 241920 ignore-reload override-expire ignore-no-store
# Video Facebook
refresh_pattern -i \.video.ak.fbcdn.net.*\.(mp4|flv|mp3|amf)
10080 80% 43200 override-expire ignore-reload reload-into-ims ignore-
private ignore-no-store ignore-must-revalidate
refresh_pattern (audio|video)\/(webm|mp4) 129600 99% 129600 ignore-
reload override-expire override-lastmod ignore-must-revalidate ignore-
private ignore-no-store ignore-auth store-stale
refresh_pattern -i ^http://.*squid\.internal.* 241920 100% 241920
override-lastmod override-expire ignore-reload ignore-must-revalidate
ignore-private ignore-no-store ignore-auth store-stale
# All File
refresh_pattern -i \.(3gp|7z|ace|asx|bin|deb|divx|dvr-
ms|ram|rpm|exe|inc|cab|qt) 10080 80% 10080 override-expire override-
lastmod reload-into-ims
refresh_pattern -i
\.(rar|jar|gz|tgz|bz2|iso|m1v|m2(v|p)|mo(d|v)|arj|lha|lzh|zip|tar|iop|nzp|pak|m
ar|msp) 10080 80% 10080 override-expire override-lastmod reload-into-
ims ignore-reload
refresh_pattern -i \.(jp(e?g|e|2)|gif|pn[pg]|bm?|tiff?|ico|swf|dat|ad|txt|dll)
10080 80% 10080 override-expire override-lastmod reload-into-ims
refresh_pattern -i
\.(avi|ac4|mp(e?g|a|e|1|2|3|4)|mk(a|v)|ms(i|u|p)|og(x|v|a|g)|rm|r(a|p)m|snd|vo
b|webm) 10080 80% 10080 override-expire override-lastmod reload-into-
ims
refresh_pattern -i
\.(pp(t?x)|s|t)|pdf|rtf|wax|wm(a|v)|wmx|wpl|cb(r|z|t)|xl(s?x)|do(c?x)|flv|x-
flv) 10080 80% 10080 override-expire override-lastmod reload-into-ims
refresh_pattern . 0 20% 4320
#################################
53
# files
refresh_pattern -i \.(iso|deb|rpm|zip|tar|tgz|ram|rar|bin|ppt|doc)$ 10080
90% 43200 ignore-no-cache ignore-auth store-stale
refresh_pattern -i \.(zip|gz|arj|lha|lzh)$ 10080 100% 43200 override-expire
ignore-no-cache ignore-auth store-stale
refresh_pattern -i \.(rar|tgz|tar|exe|bin)$ 10080 100% 43200 override-
expire ignore-no-cache ignore-auth ignore-reload ignore-no-cache store-
stale
refresh_pattern -i \.(hqx|pdf|rtf|doc|swf)$ 10080 100% 43200 override-
expire ignore-no-cache ignore-auth store-stale
refresh_pattern -i \.(inc|cab|ad|txt|dll)$ 10080 100% 43200 override-expire
ignore-no-cache ignore-auth store-stale
# END
3. Buat file perl dan berikan nama store-id.pl pada directory /etc/squid/
# touch /etc/squid/store-id.pl
# nano /etc/squid/store-id
6. Masukan Script di bawah ini pada file store-id.pl yang sudah di buat
tadi.
#!/usr/bin/perl
$|=1;
while (<>) {
my $chan = "";
54
if (s/^(\d+\s+)//o) {
$chan = $1;
}
$_ =~ s/(\s+.+)//o;
if ($_ =~
m/^https?\:\/\/.*youtube.*(ptracking|stream_204|player_204|gen_204).*(vi
deo_id|docid|v)\=([^\&\s]*).*/){
$vid = $3 ;
@cpn = m/[&?]cpn\=([^\&\s]*)/;
$fn = "/var/log/squid3/@cpn";
unless (-e $fn) {
open FH,">".$fn ;
print FH "$vid\n";
close FH;
}
print $chan, "ERR\n" ;
55
$id = ;
chomp $id ;
close FH ;
} else {
$id = $ids[0] ;
}
print $chan, "OK store-id=http://googlevideo.squid.internal/id=" . $id
. "&@itag@range@mime\n" ;
} else {
print $chan, "ERR\n" ;
}
56
} elsif ($_ =~ m/^https?:\/\/.*(static|profile).*\.ak\.fbcdn\.net(\/static-
ak\/rsrc\.php\/v[0-9]\/(.*\.(mp4|jpg|bmp|png|flv|m4v|gif|jpeg)))/) {
print $chan, "OK store-id=http://facebook.squid.internal/$3\n" ;
} elsif ($_ =~
m/^https?:\/\/.*(static|profile).*a\.akamaihd\.net(\/rsrc\.php\/v[0-9]\/(.*))/)
{
print $chan, "OK store-id=http://facebook.squid.internal/$3\n" ;
} elsif ($_ =~
m/^https?:\/\/.*(static|profile).*\.ak\.fbcdn\.net(\/rsrc\.php\/v[0-9]\/(.*))/) {
print $chan, "OK store-id=http://facebook.squid.internal/$3\n" ;
} elsif ($_ =~
m/^https?:\/\/[^\/]*(fbcdn|akamaihd)[^\/]*net\/rsrc\.php\/(.*\.(mp4|jpg|bmp|
png|flv|m4v|gif|jpeg))/) {
print $chan, "OK store-id=http://facebook.squid.internal/$2\n" ;
} elsif ($_ =~
m/^https?:\/\/[^\/]*(fbcdn|akamaihd)[^\/]*net\/safe\_image\.php\?.*(url\=.*
\.(mp4|jpg|bmp|png|flv|m4v|gif|jpeg)).*/) {
print $chan, "OK store-id=http://facebook.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/i[0-2].wp\.com\/graph\.facebook\.com\/(.*)/) {
print $chan, "OK store-id=http://facebook.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/(video\.ak\.fbcdn\.net)\/(.*?)\/(.*\.mp4)\??.*$/)
{
print $chan, "OK store-id=http://facebook.squid.internal/$1/$3\n" ;
} elsif ($_ =~ m/^https?:\/\/video\.(.*)\.fbcdn\.net\/(.*?)\/([0-
9_]+\.(mp4|flv|avi|mkv|m4v|mov|wmv|3gp|mpg|mpeg)?)(.*)/) {
print $chan, "OK store-id=http://facebook.squid.internal/$3\n" ;
} elsif ($_ =~
m/^https?:\/\/(fbcdn|scontent).*(akamaihd|fbcdn)\.net\/(h|s)(profile|photos)
.*\/((p|s).*\.(png|gif|jpg))(\?.+)?$/){
print $chan, "OK store-id=http://facebook.squid.internal/$5\n" ;
57
} elsif ($_ =~
m/^https?:\/\/(fbcdn|scontent).*(akamaihd|fbcdn)\.net\/(h|s)(profile|photos)
.*\/(.*\.(png|gif|jpg))(\?.+)?$/){
print $chan, "OK store-id=http://facebook.squid.internal/$5\n" ;
58
} elsif ($_ =~
m/^https?:\/\/.*\.reverbnation\.com\/.*\/(ec_stream_song|download_song_
direct|stream_song)\/([0-9]*).*/){
print $chan, "OK store-id=http://reverbnation.squid.internal/$2\n" ;
} elsif ($_ =~
m/^https?:\/\/.*\.dl\.sourceforge\.net\/(.*\.(exe|zip|mp3|mp4))/){
print $chan, "OK store-id=http://sourceforge.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/fs[0-9]+\.filehippo\.com\/[^\/]*\/[^\/]*\/(.*)/){
print $chan, "OK store-id=http://filehippo.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/download[0-
9]+.mediafire\.com\/.*\/\w+\/(.*)/){
print $chan, "OK store-id=http://mediafire.squid.internal$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*android\.clients\.google\.com\/[a-z]+\/[a-zA-
Z]+\/[a-zA-Z]+\/(.*)\/([0-9]+)\?.*/){
print $chan, "OK store-id=http://android.squid.internal/$1/$2\n" ;
} elsif ($_ =~
m/^https?:\/\/.*(googleusercontent.com|blogspot.com)\/(.*)\/([a-z0-9]+)(-
[a-z]-[a-z]-[a-z]+)?\/(.*\.(jpg|png))/){
print $chan, "OK store-
id=http://googleusercontent.squid.internal/$5\n" ;
} elsif ($_ =~ m/^https?:\/\/global-shared-files-[a-z][0-
9]\.softonic\.com\/.{3}\/.{3}\/.*\/.*\=(.*\.exe)/){
print $chan, "OK store-id=http://softonic.squid.internal/$1\n" ;
} elsif ($_ =~
m/^https?:\/\/.*netmarble\.co\.id\/.*\/(data|ModooMarble)\/(.*)/){
print $chan, "OK store-id=http://netmarble.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/(.*)\.windowsupdate\.com\/(.*)\/(.*)\/([a-
z].*)/){
print $chan, "OK store-id=http://windowsupdate.squid.internal/$4\n"
;
} elsif ($_ =~
m/^https?:\/\/.*filetrip\.net\/.*\/((.*)\.([^\/\?\&]{2,4}))\?.*$/){
59
print $chan, "OK store-id=http://filetrip.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*get4mobile\.net\/.*f=([^\/\?\&]*).*$/){
print $chan, "OK store-id=http://get4mobile.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*thestaticvube\.com\/.*\/(.*)/){
print $chan, "OK store-id=http://thestaticvube.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/113\.6\.235\.171\/youku\/.*\/(.*\.flv)/){
print $chan, "OK store-id=http://youku.squid.internal/$1\n" ;
} elsif ($_ =~
m/^https?:\/\/\d+\.\d+\.\d+\.\d+\/drama\/(.*\.mp4)\?.*\=(\d+)/){
print $chan, "OK store-id=http://drama.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/([a-
z])[\d]{1,2}?(.gstatic\.com.*|\.wikimapia\.org.*)/){
print $chan, "OK store-id=http://gstatic.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*\.[a-z][0-
9]\.(tiles\.virtualearth\.net)\/(.*\&n=z)/){
print $chan, "OK store-id=http://virtualearth.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/imgv2-[0-9]\.scribdassets\.com\/(.*)/){
print $chan, "OK store-id=http://scribdassets.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/(.*?)\/(archlinux\/[a-zA-Z].*\/os\/.*)/){
print $chan, "OK store-id=http://archlinux.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/(.*?)\/speedtest\/(.*\.(jpg|txt))\??.*$/){
print $chan, "OK store-id=http://speedtest.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/i[1-9]{3}\.photobucket\.com\/(.*)/){
print $chan, "OK store-id=http://photobucket.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/i[1-9]{4}\.photobucket\.com\/(.*)/){
print $chan, "OK store-id=http://photobucket.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/avideos\.5min\.com\/.*\/(.*)\?.*/){
print $chan, "OK store-id=http://avideos.squid.internal/$1\n" ;
60
} elsif ($_ =~
m/^https?:\/\/.*\.catalog\.video\.msn\.com\/.*\/(.*\.(mp4|flv|m4v))/){
print $chan, "OK store-id=http://msn-video.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/v\.imwx\.com\/.*\/(.*)\?.*/){
print $chan, "OK store-id=http://imwx.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/video[0-9]\.break\.com\/.*\/(.*)\?.*/){
print $chan, "OK store-id=http://break.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*\.video[0-9]\.blip\.tv\/.*\/(.*)\?.*/){
print $chan, "OK store-id=http://blip.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/ss[0-
9]\.vidivodo\.com\/vidivodo\/vidservers\/server[0-9]*\/videos\/.*\/([a-zA-
Z0-9.]*)\?.*/){
print $chan, "OK store-id=http://vidivodo.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/video\-http\.media\-imdb\.com\/([a-zA-Z0-
9\@\_\-]+\.(mp4|flv|m4v))\?.*/){
print $chan, "OK store-id=http://imdb-video.squid.internal/$1\n" ;
} elsif ($_ =~
m/^https?:\/\/(vl|v)\.mccont\.com\/(.*)\/(.*\.(mp4|m4v|flv))\?.*/){
print $chan, "OK store-id=http://mccont.squid.internal/$3\n" ;
} elsif ($_ =~
m/^https?:\/\/(vid.{0,2}|proxy.*)(\.ak|\.ec|\.akm|)\.(dmcdn\.net|dailymotion
\.com)\/.*\/(frag.*\.(flv|mp4|m4v)).*/){
print $chan, "OK store-id=http://dailymotion.squid.internal/$4\n" ;
} elsif ($_ =~
m/^https?:\/\/[^\/]*\.vimeo[^\/]*\.com.*\/([[^\/]*\.(flv|mp4|avi|mkv|mp3|rm|
rmvb|m4v|mov|wmv|3gp|mpg|mpeg|web))\?.*/){
print $chan, "OK store-id=http://vimeo.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/[^\/]*phobos\.apple\.com\/.*\/([^\/]*\.ipa)/){
print $chan, "OK store-id=http://apple.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/fs\w*\.fileserve\.com\/file\/(\w*)\/[\w-
]*\.\/(.*)/){
61
print $chan, "OK store-id=http://fileserve.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/s[0-9]*\.filesonic\.com\/download\/([0-
9]*)\/(.*)/){
print $chan, "OK store-id=http://filesonic.squid.internal/$2\n" ;
} elsif ($_ =~ m/^https?:\/\/download[0-9]{3}\.avast\.com\/(.*)/){
print $chan, "OK store-id=http://avast.squid.internal/41\n" ;
} elsif ($_ =~ m/^https?:\/\/[a-zA-Z0-9]+\.[a-zA-Z0-9]+x\.[a-
z]\.avast\.com\/[a-zA-Z0-9]+x\/(.*\.vpx)/){
print $chan, "OK store-id=http://avast.squid.internal\$1\n" ;
} elsif ($_ =~ m/^https?:\/\/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/(iavs.*)/){
print $chan, "OK store-id=http://iavs.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/.*\.starhub\.com\/[a-z]+\/[a-z]+\/[a-
z]+\/(.*exe)\?[0-9]/){
print $chan, "OK store-id=http://starhub.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/dnl-[0-9]{2}\.geo\.kaspersky\.com\/(.*)/){
print $chan, "OK store-id=http://kaspersky.squid.internal/$1\n" ;
} elsif ($_ =~ m/^https?:\/\/([^\.]*)\.yimg\.com\/(.*)/){
print $chan, "OK store-id=http://yimg.squid.internal/$1\n" ;
} else {
print $chan, "ERR\n" ;
}
}
7. Rekonfigure squid dan lakukan debugging untuk memastikan tidak
terdapat eror pada konfigurasi squid.
# squid
# squid -k reconfigure
# squid -d1N
62
Gambar 3.29. Debugging pada file squid
Pengujian
63
Gambar 3.32. Mengimpor file sertifikat pada browser
64
3.3.5. Memonitoring File Cache pada Squid
Untuk melakukan monitoring file yang telah dicache pada squid dapat
dilakukan dengan dua cara yaitu dengan mengakses file log pada squid dan
menggunakan aplikasi SARG.
65
Berikut tampilan file yang telah dicache.
Instalasi SARG:
66
2. Kongfigurasi file SARG
# nano /etc/sarg/sarg.conf
access_log /var/log/squid3/access.log
output_dir /var/www/html/squid-reports
resolve_ip yes
# nano /etc/apache2/conf-available/000default.conf
<Directory "/var/www/html/sarg">
# mkdir /var/www/html/sarg
6. Restart apache2.
# /etc/init.d/apache2 restart
7. Jalankan sarg
/usr/bin/sarg
67
9. Berikut adalah hasil file yang telah dicache oleh squid.
68
BAB IV
PENUTUP
4.1 Kesimpulan
2. Dalam konfigurasi proxy server terdapat dua file yang harus dikonfigurasikan
pada squid yaitu file squid yang terdapat pada directory /etc/squid dan file
store-id yang juga terdapat pada directory /etc/squid. File squid digunakan
untuk menjalaankan proxy server sedangkan file store-id digunakan untuk
untuk menulis ulang URL-URL dinamis ke alamat URL statis supaya bisa
diHIT oleh SQUID.
3. Untuk melakukan monitoring file yang telah dicache pada squid dapat
dilakukan dengan dua cara yaitu dengan mengakses file log pada squid dan
menggunakan aplikasi SARG.
69
4.2 Saran
70
DAFTAR PUSTAKA
Andi, Wahana. 2010. Cara Jitu Pengelolaan Jaringan Windows dengan Remote
Desktop dan Administration. Yogyakarta: Andi Publisher.
Utomo Ndon Eko Satriyo, Wijaya I Made Yonatan. Implementasi Remote Access
menggunakan Visual Basic 6.0. Yogyakarta: Library SMIK AMIKOM.
Dhawan. 1998. Enabling Remote Access With PTSN, ISDN and Internet. Edisi
Bahasa Indonesia A Remote access Tutorial
Indra. 2010. Perbandingan Penggunaan File Sharing Antara Pidgin Dengan Samba.
Diakses melalui http://jurtek.akprind.ac.id/sites/default/files/39_43_igkUndip.pdf
Aswin Dwiyono. 2008. Pengenalan Firewall Dan Iptables Pada Jaringan Komputer.
Diakses melalui
http://unsri.ac.id/upload/arsip/Pengenalan%20Firewall%20dan%20IPTABLES%20pa
da%20Jaringan%20Komputer.doc
Suthadi. 2016. Install Squid3 Cache HTTPS dengan SSL-BUMP. Diakses melalui
https://dokter-squid.com/install-squid3-https/
71
LAMPIRAN
Lampiran 4
FOTO KEGIATAN