Tutorial membuat proxy dengan FreeBSD 8.2 ZFS
April 6, 2011 oleh reges007 Sebelum memulai sebaiknya untuk tutorial ini jika ingin mendapatkan hasil yang maksimal gunakanlah
real PC dan jangan menggunakan virtual pc, penulis sudah menerapkan tutorial ini pada mesin
intel atom D945GCLF memakai RAM 1G dan HDD sata samsung 80G.
Dan jika hanya untuk belajar/sekedar testing gunakanlah minimal VMware7 (disarankan).
Untuk menginstall aplikasi pada FreeBSD ada dua cara yaitu melalui pkg_add untuk yang simpel
atau koleksi ports untuk custome. Bisa juga menginstall dari source aslinya yaitu kita mengkonfigurasi manual(berarti ada 3 cara ya bukan 2 cara hehehe)
pastikan anda sudah menginstall OS FreeBSD 8.2 dengan ZFS seperti pada tutorial disini:
Install File System ZFS di FreeBSD untuk pemula
Cara pertama
kita pilih mirror freebsd yang terdekat yaitu link lokal (IIX) ketik di terminal:
# setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
untuk install squid dengan cara simpel cukup pake perintah:
# pkg_add -r squid
tunggu sampai proses instalasi otomatis selesai,
Cara kedua melalui ports
(lewati langkah ini jika memakai install melalui pkg_add)
ketik di console:
# setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
# pkg_add -r cvsup-without-gui
# rehash
kita edit dulu csup untuk mirror ke link lokal (IIX) biar proses update port lebih cepat
# cp /usr/share/examples/cvsup/ports-supfile /etc
# ee /etc/ports-supfile
cari string berikut "*default host=CHANGE_THIS.FreeBSD.org"
lalu edit menjadi "*default host=cvsup.itb.ac.id"
exit dari editor dan simpan lalu jalankan perintah berikut:
# cvsup -L 2 -g /etc/ports-supfile

setelah itu tunggu proses update ports sampai selesai,prosesnya bisa memakan waktu tergantung kecepatan koneksi internet anda dan kesibukan jaringan server mirror.
setelah selesai update ports silahkan pindah ke direktori squid:
# cd /usr/ports/www/squid
# make config

pilih option yg di perlukan dan sesuai kebutuhan saja
(kalau penulis memakai sebagai berikut)

pilih OK lalu proses make dan install
# make install
nanti akan muncul popup config PERL langsung pilih OK saja (default)
Cara ketiga
(hanya untuk expert only)
langsung ambil source mungkin yg sudah di patch (kustom) menggunakan fetch/wget dan extrak lalu recompile
# ./configure --prefix=/usr/local/squid
bla..bla.....
berhubung cara ketiga ini sudah expert maka tidak perlu lagi saya menuliskan tutorial ini
(padahal penulis juga belum pernah mencoba cara ketiga ini :ngakak)
jika sudah selesai install squidnya sekarang tinggal create direktori cache dan edit squid.conf.
saya ambil contoh dir cache dengan kapasitas 20G
# zfs create -o compression=gzip-9 -o atime=off -o mountpoint=/cache1 -o quota=20 tank/cache1
lalu set permissionnya sebagai berikut:
# chown -R squid:squid /cache1
timpah/edit squid.conf
# ee /usr/local/etc/squid/squid.conf
dengan konfigurasi berikut:
(jng di copas langsung tp gunakan view source pada kanan atas code ini baru copas)
(lebih mudah mengedit menggunakan WinSCP)
01 | http_port localhost:3128 |
02 | #192.168.1.7--> sesuaikan IP mesin ini |
03 | http_port 192.168.1.7:3128 transparent |
05 | #cache deny url that has cgi-bin and ? this is the default earlier than squid 2.7 version |
06 | acl QUERY urlpath_regex cgi-bin \? |
09 | #acl nocache dstdomain "/usr/local/etc/squid/disable.acl" # khusus membypass domain yg tidak - |
10 | #cache deny nocache # perlu untuk di cache seperti rapidshare,megaupload dan file hosting lainya |
13 | acl all src 0.0.0.0/0.0.0.0 |
14 | acl manager proto cache_object |
15 | acl localhost src 127.0.0.1/255.255.255.255 |
16 | acl warnet src 192.168.0.0/16 |
19 | acl Safe_ports port 80 # http |
20 | acl Safe_ports port 21 # ftp |
21 | acl Safe_ports port 443 # https |
22 | acl Safe_ports port 70 # gopher |
23 | acl Safe_ports port 210 # wais |
24 | acl Safe_ports port 1025-65535 # unregistered ports |
25 | acl Safe_ports port 280 # http-mgmt |
26 | acl Safe_ports port 488 # gss-http |
27 | acl Safe_ports port 591 # filemaker |
28 | acl Safe_ports port 777 # multiling http |
30 | acl CONNECT method CONNECT |
32 | http_access allow purge all |
33 | http_access allow manager all |
34 | http_access deny !Safe_ports |
35 | http_access deny CONNECT !SSL_ports |
36 | http_access allow localhost |
37 | http_access allow warnet |
39 | http_reply_access allow all |
41 | # optional jika tidak memakai dns nawala |
42 | # acl block dstdomain "/usr/local/etc/squid/block.acl" |
43 | # http_access deny block |
45 | # disini penulis juga belum begitu paham jd untuk settingan di bawah ini menggunakan RAM 1G dan dir cache 20G |
46 | # silahkan oprek sendiri untuk hasil yang maksimal |
51 | maximum_object_size 180 MB |
52 | maximum_object_size_in_memory 32 KB |
54 | cache_replacement_policy heap LFUDA |
55 | memory_replacement_policy heap GDSF |
56 | cache_dir aufs /cache1 20000 40 256 |
57 | cache_access_log /cache1/access.log |
58 | # /cache1/access.log none |
59 | cache_log /cache1/cache.log |
60 | # /cache1/cache.log none |
61 | cache_store_log /dev/null |
64 | # refresh pattern untuk squid disini belum support store-stale jd ini hanya sebagai contoh dan ini yg saya pake sekarang |
65 | refresh_pattern -i \.(css|js|jsp|xml)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload |
66 | refresh_pattern -i \.(gif|png|jpg|ico|bmp|tiff)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload |
67 | refresh_pattern -i \.(swf|wav|mp3|mp4|au|mid)$ 10080 100% 604800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth ignore-private ignore-reload |
69 | refresh_pattern .photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0 |
70 | refresh_pattern .wordpress.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0 |
71 | refresh_pattern .speedtest.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0 |
72 | refresh_pattern .piceye.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png) 14400 99999999% 14400 override-expire ignore-reload ignore-private negative-ttl=0 |
73 | refresh_pattern ^ftp: 1440 20% 10080 |
74 | refresh_pattern ^gopher: 1440 0% 1440 |
75 | refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 |
76 | refresh_pattern . 0 20% 4320 |
78 | visible_hostname proxy.server |
86 | cache_effective_user squid |
87 | cache_effective_group squid |
89 | pid_filename /var/squid/logs/squid.pid |
91 | # vary_ignore_expire on |
92 | header_access From deny all |
93 | # header_access Link deny all |
94 | # header_access Server deny all |
95 | header_access Via deny all |
96 | header_access X-Forwarded-For deny all |
97 | # header_access Host deny all |
98 | # header_access Referer deny all |
99 | # header_access Location deny all |
setelah selesai edit squid.conf ketik di terminal:
# rehash
untuk cek squid.conf
# squid -k parse
jika tanpa error lanjut create swap
# squid -z
dan jalankan squidnya
# squid

silahkan test squid anda
# squidclient mgr:info
Langkah terakhir beberes config, pertama edit rc.conf
# ee /etc/rc.conf
tambahkan entry berikut:
2 | sendmail_submit_enable="NO" |
3 | sendmail_outbound_enable="NO" |
4 | sendmail_msp_queue_enable="NO" |
edit juga loader.conf
# ee /boot/loader.conf
tambahkan entry berikut:
(ingat ram minimal 1G)
4 | vfs.zfs.vdev.cache.size="5M" |
dan membuat start-up untuk squidnya
# ee /usr/local/etc/rc.d/squid.sh
copas entry berikut:
lalu
# chmod 755 /usr/local/etc/rc.d/squid.sh
jika anda ingin menambahkan dir_cache tinggal create zfs lagi seperti:
# zfs create -o compression=gzip-9 -o atime=off -o mountpoint=/cache2 -o quota=20 tank/cache2
lalu set permissionnya sebagai berikut:
# chown -R squid:squid /cache2
lalu tambahkan ke squid.conf
1 | cache_dir aufs /cache2 20000 40 256 |
dan seterusnya.....
Sekian dan terima kasih atas perhatiannya dan semoga bermanfaat.
Special thank's to all my friends at facebook, kaskus and FMI
yang telah bersedia saya tanya-tanyain dan memberi ilmunya untuk dibagi ke sesama.
tutorial selanjutnya memasang sqstat dan install lighttpd+php5+fastcgi
Like this:
2 bloggers like this post.
dan membuat start-up untuk squidnya
# ee /usr/local/etc/rc.d/squid.sh
copas entry berikut:
!/bin/sh
/usr/local/sbin/squid
kmrn tes squid di freebsd cuma ngandalin /usr/local/sbin/squid -D -sYCF ama /usr/local/sbin/squid -k shutdown
:hammer:
!/bin/sh
name=squid
command=/usr/local/sbin/squid
squid_stop() {
echo “Stopping ${name}.”
${command} -k shutdown
run_rc_command poll
}
oiya lif itu scriptnya di taruh mana?
nubi ijin nyimak + save as mbah greg
makasih udah mampir hehe
setelah sukses edisi zfs
——————————–
izin oprek edisi squid bos
+save :hammer
yo squid.sh kwi mau mbah.
Script kumplite wis tak simpen, durung tak tes, ngko tak tes nek aku wis muleh :hammer:
izin nymak gannn…
sing penting mlaku dhisik
atau bisa juga “shutdown -h +(time)” untuk halt “shutdown -r +(time) untuk reboot
(time) dalam satuan menit contoh delay 1 menit “shutdown -h +1″
untuk perintah stop dan start, baru tak bikin ky gini di /etc/rc.d/squid nya
#!/bin/sh
squid_start(){
echo “start $name”
${command} ${argumen}
}
squid_stop() {
echo “stop $name”
${command} -k shutdown
run_rc_command poll
}
. /etc/rc.subr
name=Squid
rcvar=${name}_enable
command=/usr/sbin/squid
start_cmd=”squid_start”
stop_postcmd=”squid_stop”
argumen=”-D -sYCF”
load_rc_config ${name}
run_rc_command “$1″
server# pkg_add -rv perl
scheme: [ftp]
user: []
password: []
host: [ftp.freebsd.org]
port: [0]
document: [/pub/FreeBSD/ports/i386/packages-8.2-release/Latest/perl.tbz]
—> http://ftp.freebsd.org:21
looking up http://ftp.freebsd.org
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/Latest/perl.tbz: No address record
pkg_add: unable to fetch ‘ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/Latest/perl.tbz‘ by URL
pkg_add: 1 package addition(s) failed
ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/Latest/perl.tbz
bisa koq
kok failed..
# setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
usahakan minimal ada ups kecil buat menunda mati mendadak jika pln padam.
settingan di mikrotiknya gmn
Kalo di restart manual autorun squidnya jalan, tapi kalau abis mati lampu squidnya ndak mau jalan lagi setelah kmptrnya nyala, help plis……
dan untuk menhindari padam listrik sebaiknya memakai ups untuk mesin proxynya.
TCP_HIT jg kurang
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
kl ga dipatch youtubenya malah ga bs ngecache HIT jg kurang
trs kl squid.2.7-STABLE7 bisa ndak dipatch dengan patch diatasnya kyk patch squid.2.7-STABLE9
mohon penjelasannya..
Thx bro
cannot create ‘tank/cache1′: out of space
knapa ada pesan seperti diatas ya… mohon petunjuk???
q buat squid nya pake cara yang pertama
#squid -k parse
FATAL: Bungled squid.conf line 56: cache_dir aufs /cache1 20000 40 256
Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
setelah saya rubah begini jalan normal squid nya
cache_dir ufs /cache1 20000 40 256
saya gogling dan saya coba cek pake
#squid -v
– bla –bla — bla ‘–enable-storeio=ufs diskd null’ –bla –bla
apa perngaruh dari instal default nya ? trus bgmana solusinya?
trimaksih
kog g bisa yaa, down ato gmn bang???