Lompat ke konten Lompat ke sidebar Lompat ke footer

Tutorial membuat proxy dengan FreeBSD 8.2 ZFS

Tutorial membuat proxy dengan FreeBSD 8.2 ZFS

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)
1SQUID_KERB_AUTH
2SQUID_NIS_AUTH
3SQUID_CARP
4SQUID_SSL
5SQUID_IDENT
6SQUID_AUFS
7SQUID_KQUEUE
8SQUID_LARGEFILE


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)
01http_port localhost:3128
02#192.168.1.7--> sesuaikan IP mesin ini
03http_port 192.168.1.7:3128 transparent
04
05#cache deny url that has cgi-bin and ? this is the default earlier than squid 2.7 version
06acl QUERY urlpath_regex cgi-bin \?
07cache deny QUERY
08
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
11cache deny nocache1
12
13acl all src 0.0.0.0/0.0.0.0
14acl manager proto cache_object
15acl localhost src 127.0.0.1/255.255.255.255
16acl warnet src 192.168.0.0/16
17
18acl SSL_ports port 443
19acl Safe_ports port 80 # http
20acl Safe_ports port 21 # ftp
21acl Safe_ports port 443 # https
22acl Safe_ports port 70 # gopher
23acl Safe_ports port 210 # wais
24acl Safe_ports port 1025-65535 # unregistered ports
25acl Safe_ports port 280 # http-mgmt
26acl Safe_ports port 488 # gss-http
27acl Safe_ports port 591 # filemaker
28acl Safe_ports port 777 # multiling http
29acl purge method PURGE
30acl CONNECT method CONNECT
31
32http_access allow purge all
33http_access allow manager all
34http_access deny !Safe_ports
35http_access deny CONNECT !SSL_ports
36http_access allow localhost
37http_access allow warnet
38http_access deny all
39http_reply_access allow all
40
41# optional jika tidak memakai dns nawala
42# acl block dstdomain "/usr/local/etc/squid/block.acl"
43# http_access deny block
44
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
47cache_mem 8 MB
48cache_swap_low 95
49cache_swap_high 99
50
51maximum_object_size 180 MB
52maximum_object_size_in_memory 32 KB
53
54cache_replacement_policy heap LFUDA
55memory_replacement_policy heap GDSF
56cache_dir aufs /cache1 20000 40 256
57cache_access_log /cache1/access.log
58# /cache1/access.log none
59cache_log /cache1/cache.log
60# /cache1/cache.log none
61cache_store_log /dev/null
62logfile_rotate 7
63
64# refresh pattern untuk squid disini belum support store-stale jd ini hanya sebagai contoh dan ini yg saya pake sekarang
65refresh_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
66refresh_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
67refresh_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
68
69refresh_pattern .photobucket.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)         14400  99999999% 14400  override-expire ignore-reload ignore-private negative-ttl=0
70refresh_pattern .wordpress.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)           14400  99999999% 14400  override-expire ignore-reload ignore-private negative-ttl=0
71refresh_pattern .speedtest.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)           14400  99999999% 14400  override-expire ignore-reload ignore-private negative-ttl=0
72refresh_pattern .piceye.*\.(jp(e?g|e|2)|tiff?|bmp|gif|png)              14400  99999999% 14400  override-expire ignore-reload ignore-private negative-ttl=0
73refresh_pattern ^ftp: 1440 20% 10080
74refresh_pattern ^gopher: 1440 0% 1440
75refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
76refresh_pattern . 0 20% 4320
77
78visible_hostname proxy.server
79cache_mgr proxy
80
81zph_mode tos
82zph_local 0x30
83zph_parent 0
84zph_option 136
85
86cache_effective_user squid
87cache_effective_group squid
88
89pid_filename /var/squid/logs/squid.pid
90
91# vary_ignore_expire on
92header_access From deny all
93# header_access Link deny all
94# header_access Server deny all
95header_access Via deny all
96header_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 :D
# squidclient mgr:info
Langkah terakhir beberes config, pertama edit rc.conf
# ee /etc/rc.conf
tambahkan entry berikut:
1sendmail_enable="NO"
2sendmail_submit_enable="NO"
3sendmail_outbound_enable="NO"
4sendmail_msp_queue_enable="NO"
edit juga loader.conf
# ee /boot/loader.conf
tambahkan entry berikut:
(ingat ram minimal 1G)
1vm.kmem_size="512M"
2vm.kmem_size_max="512M"
3vfs.zfs.arc_max="40M"
4vfs.zfs.vdev.cache.size="5M"
dan membuat start-up untuk squidnya
# ee /usr/local/etc/rc.d/squid.sh
copas entry berikut:
1#!/bin/sh
2/usr/local/sbin/squid
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
1cache_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

47 Tanggapan untuk Tutorial membuat proxy dengan FreeBSD 8.2 ZFS

  1. m3tr0mini mengatakan:
    m3tr0mini was here and P.E.R.T.A.M.A.X…ehhehehehe
  2. m3tr0 mengatakan:
    mangstabb…..GUD job Mbah greg
  3. m3tr0 mengatakan:
    ed..squid service start up scriptnya kayak apa yah??..punyaku mesthi gagal start kalo abis mati lampu, tapi kalo cuman di restart ajah it’s okay…
    • reges007 mengatakan:
      ea..ea… makanya pelan-pelan kalo baca gan hahaha….
      dan membuat start-up untuk squidnya
      # ee /usr/local/etc/rc.d/squid.sh
      copas entry berikut:
      !/bin/sh
      /usr/local/sbin/squid
      • lif2k3 mengatakan:
        Kalo halt 0/poweroff, squid otomatis shutdown sndiri ga mbah, klo isi squid.sh nya cm segitu?
        kmrn tes squid di freebsd cuma ngandalin /usr/local/sbin/squid -D -sYCF ama /usr/local/sbin/squid -k shutdown
        :hammer:
  4. lif2k3 mengatakan:
    oh wes ktemu contone :D
    !/bin/sh
    name=squid
    command=/usr/local/sbin/squid
    squid_stop() {
    echo “Stopping ${name}.”
    ${command} -k shutdown
    run_rc_command poll
    }
    • reges007 mengatakan:
      sebetulanya di /etc/rc.shutdown itu juga sudah ada &cmd buat -k shutdown, tp setelah ta cek lognya ternyata shutdown squidnya gak komplit :hammer:
      oiya lif itu scriptnya di taruh mana?
    • m3tr0mini mengatakan:
      lif kae script’e dideleh nduk endi?
  5. nubicopo mengatakan:
    pembahasan tingkat tinggi :(
    nubi ijin nyimak + save as mbah greg :D
  6. buaya mengatakan:
    akhirnya edisi squid terbit juga
    setelah sukses edisi zfs
    ——————————–
    izin oprek edisi squid bos
  7. maput mengatakan:
    maput ijin bookmard pai..
    +save :hammer
  8. lif2k3 mengatakan:
    maaf mbah, baru mbales,msh di smrg. Ni msh pake hape :hammer:
    yo squid.sh kwi mau mbah.
    Script kumplite wis tak simpen, durung tak tes, ngko tak tes nek aku wis muleh :hammer: :)
  9. lif2k3 mengatakan:
    @metro: piye php5cgi ne? Wis dites po rung mbah? Sakjane ak wis niat, nek proxy modyaarr nembe ak install freebsd, tp suwi2 racunmu ngeri,pengin tak jajal di pc real :mewek
  10. LordCyber mengatakan:
    Wueeh.. muantaaabff..
    izin nymak gannn… :D
  11. buaya mengatakan:
    nunggu babak selanjutnya
    sing penting mlaku dhisik
  12. reges007 mengatakan:
    NB: sebaiknya sebelum melakukan shutdown/reboot lakukan “squid -k shutdown” secara manual untuk mencegah squid error.
    atau bisa juga “shutdown -h +(time)” untuk halt “shutdown -r +(time) untuk reboot
    (time) dalam satuan menit contoh delay 1 menit “shutdown -h +1″
    • lif2k3 mengatakan:
      Iya juga ya pake delay, akhirnya squid bisa terbunuh secara pelan2 :hammer:, trims mbah :shakehand: :kiss
      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″
  13. banyakkasus mengatakan:
    mantabs mabh ..izin nyontek …
  14. ARy Al-City mengatakan:
    server# cd /tmp/
    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
  15. ARy Al-City mengatakan:
    itu kira² kenapa yah
    kok failed..
  16. Dwi mengatakan:
    Mantabs… Makasih tutornya bang, jalan 2 hari dan squidnya 2x mati ndak tau kenapa? mati pertama di restart komputer bisa lagi, mati kedua direstart ndak mau2, akhirnya mulai dari awal lagi :(
    • reges007 mengatakan:
      hampir semua mesin squid emang tidak boleh kebanyakan hard shutdown om :)
      usahakan minimal ada ups kecil buat menunda mati mendadak jika pln padam.
  17. didiLz mengatakan:
    tutor ini bisa diaplikasikan untuk instalasi Lusca Head tidak?
  18. didiLz mengatakan:
    kelanjutannya donK..
    settingan di mikrotiknya gmn
  19. jipaw mengatakan:
    thakyu mas bro,,, aq jadi tambah semangat ja mau migrasi ke free BSD.. hehe.. gak apa2 masih cupu n cacad yang penting semangat belajar…
  20. wellydwi mengatakan:
    hua…hua….
    Kalo di restart manual autorun squidnya jalan, tapi kalau abis mati lampu squidnya ndak mau jalan lagi setelah kmptrnya nyala, help plis……
    • reges007 mengatakan:
      semua mesin yg terinstall squid lambat atau cepat jika prosedur mematikan power langsung cut pasti akan macet.
      dan untuk menhindari padam listrik sebaiknya memakai ups untuk mesin proxynya.
  21. didiLz mengatakan:
    punya ane ga bs buka applikasi di yahoo np ya gan
    TCP_HIT jg kurang
  22. PaK-Dee mengatakan:
    FATAL: Bungled squid.conf line 36: cache_dir aufs /cache-1 28000 65 256
    Squid Cache (Version 2.7.STABLE9): Terminated abnormally.
  23. Satpam mengatakan:
    kl install dengan cara port ini untuk ngepatchnya gmn paK?
    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..
  24. doet mengatakan:
    mfsbsd# zfs create -o compression=gzip-9 -o atime=off -o mountpoint=/cache1 -o quota=10 tank/cache1
    cannot create ‘tank/cache1′: out of space
    knapa ada pesan seperti diatas ya… mohon petunjuk???
  25. doet mengatakan:
    maz ane punya masalah
    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
  26. Pingback: Tutorial membuat proxy dengan FreeBSD 8.2 ZFS » Artikel Arunals
  27. budi mengatakan:
    # setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
  28. budi mengatakan:
    # setenv PACKAGEROOT “ftp://ftp.itb.ac.id”
    kog g bisa yaa, down ato gmn bang???

Posting Komentar untuk "Tutorial membuat proxy dengan FreeBSD 8.2 ZFS"