Menyimpan Video Youtube Pakai Squid3 Dan Nginx

Embed Size (px)

Citation preview

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    1/22

    Menyimpan Video Youtube Pakai Squid3

    dan Nginx

    http://www.walecha.net/content/menyimpan-video-youtube-pakai-squid3-dan-nginx

    Submitted by walecha

    Assalamu'alaikum warahmatullahi wabarakatuh,

    Selamat malam semuanya. Bagaimana malam minggunya? Semoga semuanya dapat

    merasakan bahagia bersama orang-orang yang kita sayangi, aamiin. Malam ini saya akan

    membagikan sebuah resep utamanya untuk para proxier yang selalu dikeluhkesahi oleh

    pengguna-pengguna proxy-nya tentang kecepatan buffering video dari YouTube. Sudah

    menjadi fakta bahwa YouTube merupakan penyedia materi multimedia yangpaling sering

    diakses saat ini. Kekuatan jaringan data Googlememang sangat membantu meningkatkankepopuleran YouTube.

    Meskipun demikian, kepopuleran YouTube ini berimbas pula pada ketersediaan jalur data

    atau bandwidth. Di banyak negara berkembang permintaan akan akses materi multimedia

    YouTube umumnya kurang terakomodasi oleh kekuatan jalur data yang ada. Jika anda

    sedang berada di Jepang atau Korea mungkin anda tidak akan merasakan lambatnya proses

    pengunduhan video dari YouTube. Akan tetapi minimnya infrastruktur jaringan tersebut

    bukanlah alasan untuk penggemar video online dan akhirnya muncullah Lusca.

    LUSCALusca adalah sebuah tambahan pada Squid 2.x untuk membuat squid proxy menyimpan dan

    mengubah alamat seluruh berkas video yang sedang disaksikan oleh pengguna proxy

    sehingga jika video tersebut dibuka kembali di lain waktu, squid tidak perlu mengambilnya

    kembali dari internet. Teknik ini mengimplementasikan sebuah algortima untuk

    menterjemahkan alamat video hasil penyandian YouTube sehingga jika berkas video tersebut

    dibuka kembali, meskipun akan berasal dari squid, pengguna akan melihat bahwa video yang

    dilihatnya berasal dari YouTube. Sayangnya Lusca belum tersedia untuk squid3. Pilihannya

    hanya gunakan squid2 atau tidak pakai lusca.

    Tetapi pengguna squid3 janganlah terlalu gusar dengan keputusan pengembang lusca yangmasih belum menyediakan plugin ini untuk squid3. Toh squid3 juga masih tergolong baru.

    Masih ada kesempatan lain. Dan satu hal lagi, masih ada cara yang lain kok. Sesuai judul

    artikel ini, ternyata kita bisa memanfaatkanNGINX untuk melakukan hal yang mirip dengan

    lusca.

    Simpan dengan Nginx

    Sejatinya Nginx adalah sebuah program web server ringan yang menurut saya dapat

    menyaingi kualitas Apache HTTPD. Dalam kasus ini, kenapa kita pilih nginx? Ya karena

    ukurannya yang lebih kecil jika dibandingkan dengan Apache2. Di slackware saya, Apache2berukuran 10MB sedangkan Nginx cuma 1MB. Toh yang kita butuhkan saat ini hanyalah

    http://www.walecha.net/users/walechahttp://youtube.com/http://youtube.com/http://www.usatoday.com/tech/news/2006-07-16-youtube-views_x.htmhttp://www.usatoday.com/tech/news/2006-07-16-youtube-views_x.htmhttp://www.usatoday.com/tech/news/2006-07-16-youtube-views_x.htmhttp://google.com/http://google.com/https://code.google.com/p/lusca-cache/http://www.nginx.org/http://youtube.com/http://www.usatoday.com/tech/news/2006-07-16-youtube-views_x.htmhttp://www.usatoday.com/tech/news/2006-07-16-youtube-views_x.htmhttp://google.com/https://code.google.com/p/lusca-cache/http://www.nginx.org/http://www.walecha.net/users/walecha
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    2/22

    fitur proxy dari nginx. Lagipula sumber daya sistem yang digunakan oleh nginx lebih kecil

    daripada Apache2. Jadi sepertinya sepertinya terlalu berlebihan jika menggunakan Apache2

    hanya untuk menyediakan alamat palsu YouTube.

    Baik kita mulai saja. Hal pertama yang harus kita lakukan adalah menginstal nginx.

    Pengguna slackware dapat menggunakan skrip SlackBuild dariSlackBuilds.org ataumenggunakan skrip SlackBuild punya saya. Setelah instalasi kita harus mengganti

    konfigurasi nginx.conf menggunakan konfigurasi berikut:

    # This config file is not written by me,# My Email address is inserted Just for tracking purposes# For more info, visit http://code.google.com/p/youtube-cache/# Syed Jahanzaib / aacable [at] hotmail.com# Modified for Slackware by Widya Walesa

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    3/22

    proxy_store"/var/www/nginx/files/id=$arg_id.itag=$arg_itag.range=$arg_range.algo=$arg_algorithm";

    proxy_ignore_client_abort off;proxy_method GET;proxy_set_header X-YouTube-Cache "[email protected]";

    proxy_set_header Accept "video/*";proxy_set_header User-Agent "YouTube Cacher (nginx)";proxy_set_header Accept-Encoding "";proxy_set_header Accept-Language "";proxy_set_header Accept-Charset "";proxy_set_header Cache-Control "";

    }}

    }

    Setelah itu kita perlu menyiapkan direktori-direktori yang diperlukan oleh proxy nginx ini:

    $ mkdir -p /var/www/nginx/files /var/www/nginx/tmp$ chmod 777 /var/www/nginx/files /var/www/nginx/tmp

    Kemudian jalankan nginx dan cek apakah nginx sudah berjalan atau belum:

    $ /etc/rc.d/rc.nginx start$ netstat -nlp -t tcp | grep nginx

    Jika sudah siap, kita dapat menyiapkan skrip ruby yang digunakan sebagai program penulis

    ulang alamat oleh squid:

    $ mkdir -p /etc/squid/nginx.rb

    $ nano /etc/squid/nginx.rb

    Isikan skrip ruby berikut ke file tersebut dan simpan

    #!/usr/bin/env ruby# This script is not written by me,# My Email address is inserted Just for tracking purposes# For more info, visit http://code.google.com/p/youtube-cache/# Syed Jahanzaib / aacable [at] hotmail.com# Modified for Slackware by Widya Walesa

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    4/22

    STDIN.each_line do |ln|r = SquidRequest.newr.url, r.client_ip, r.user, r.method, *dummy = ln.rstrip.split(' ')(STDOUT

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    5/22

    # sumber pertama untuk permintaan video YouTube sebelum YouTube.comcache_peer 127.0.0.1 parent 8081 0 proxy-only no-query connect-timeout=10cache_peer_access 127.0.0.1 allow youtube_videos id_param itag_paramsver3_param !begin_param !range_requestcache_peer_access 127.0.0.1 deny all

    Kemudian kita coba me-reload squid:

    $ /etc/rc.d/rc.squid reloadatau$ squid -k reconfigure

    Supaya mudah untuk mengetahui apakah proses pengubahan alamat dan penyimpanan video

    YouTube sudah benar, serta untuk mengetahui ada atau tidak permasalahan pada squid dan

    nginx, kita dapat mengaktifkan log squid dan nginx:

    # FILE: /etc/squid/squid.confcache_access_log /var/log/squid/access.logcache_log /var/log/squid/cache.log# Supaya log-nya mirip dengan log apache/nginxemulate_httpd_log onlogformat squid %tl %6tr %>a %Ss/%03Hs %

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    6/22

    cache_access_log /dev/nullcache_log /dev/nullcache_store_log /dev/null

    Tulisan ini diadaptasi dengan beberapa modifikasi dari artikel penulis aslinya. Silakan

    kunjungi artikel aslinya jika menginginkan informasi lebih lanjut:

    http://aacable.wordpress.com/2012/08/13/youtube-caching-with-squid-nginx/

    INSTALASI & KONFIGURASI SQUID3 DI UBUNTU SERVER

    http://ecaknyo.blogspot.com/2012/11/instalasi-konfigurasi-

    squid3-di-ubuntu.html

    Tutorial yang membahas squid3 sudah banyak sekali di internet dan

    mudah sekali diketemukan, tetapi ada beberapa tutorial yang malah

    membingungkan bagi para pemula yang masih mencoba mengunakannya.

    Disini akan saya paparkan secara sederhana agar lebih mudah dipahami yaitu

    tentang bagaimana instalasi dan konfigurasi squid3. Dari pengalaman saya

    konfigurasinya tidak begitu jauh berbeda dari versi squid dibawahnya misal

    squid 2.7 Stable7.

    Persiapan :

    1. Putty

    Diperlukan untuk me-reconfigure konfigurasi squid melalui terminal via remote.

    2. WinSCP

    Memudahkan dalam mengakses, mem-backup & mengedit squid3.conf. File

    konfigurasi squid3 berada dalam folder /etc/squid3

    Langkah-langkahnya sebagai berikut :

    1. Backup-lah terlebih dahulu konfigurasi atau folder squid lama dengan winSCP,

    simpanlah di komputer lain, misalnya laptopmu.

    2. Login sebagai root di ubuntu server lewat putty , lalu instal squid3 dengan

    http://aacable.wordpress.com/2012/08/13/youtube-caching-with-squid-nginx/http://4.bp.blogspot.com/-ESon9kB6G0E/ULRhGLSH-PI/AAAAAAAADyk/h9sY8EMPOPI/s1600/SQUID+100x100.jpghttp://aacable.wordpress.com/2012/08/13/youtube-caching-with-squid-nginx/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    7/22

    cara ketik di terminal :

    # apt-get install squid3

    bagi yang telah memakai squid versi lama misalnya squid 2.7, tenang saja

    karena folder squid yang lama tidak akan hilang atau tertimpa. Nanti akan adadua folder : squid dan squid3, untuk amannya di backup dulu seperti langkah 1.

    Tunggu prosesnya hingga selesai, untuk sementara koneksi internet di jaringan

    akan terputus.

    3. Jika instalasi sudah selesai, akseslah folder squid3 lewat winSCP kemudian

    copy paste file konfigurasi squid3 yang asli dan pada file copy tersebut berikan

    nama default dibelakangnya contoh : squid.conf.default.

    Di dalam folder /etc/squid3/squid.conf -> copy paste

    |_ squid.conf copy -> di ubah menjadi squid3.conf.default

    4. Buka file squid.conf dengan winSCP, lalu konfigurasi seperti dibawah ini :

    Carilah tag-tag berikut dengan dengan Ctrl+F :

    # TAG: acl

    Tambahkan jaringan lokal.

    Misal :

    acl manager proto cache_object

    acl localhost src 127.0.0.1/32

    acl s3a50net src 10.5.50.0/24

    # TAG: http_access

    Bolehkan akses untuk jaringan lokal diatas.

    Misal :

    #Recommended minimum configuration:

    http_access allow manager localhost

    http_access deny manager

    http_access allow purge localhost

    http_access allow SSL_ports

    http_access deny purgehttp_access deny !Safe_ports

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    8/22

    http_access deny CONNECT !SSL_ports

    http_access allow localnet

    http_access allow localhost

    http_access allow s3a50net http_access allow CONNECT !webmin_ports

    http_access allow CONNECT !ssh_ports

    http_access deny all

    # TAG: http_port

    Lalu hapus tanda pagar dan tambahkan dibelakangnya transparent.

    3128 adalah port default service squid, ini bisa diubah bila di inginkan.

    transparent adalah untuk membuat squid otomatis dapat diakses oleh usertanpa harus mengarahkan ( men-setting ) browser user ke squid.

    Contoh :

    # Squid normally listens to port 3128

    http_port 3128 transparent

    # TAG: cache_mem (bytes)#Default:

    cache_mem 8 MB

    # TAG: maximum_object_size_in_memory (bytes)#Default:

    maximum_object_size_in_memory 8 KB

    # TAG: memory_replacement_policy#Default:

    #memory_replacement_policy lru

    memory_replacement_policy heap GDSF

    # TAG: cache_replacement_policy#cache_replacement_policy lru

    cache_replacement_policy heap LFUDA

    # TAG: cache_dir# Uncomment and adjust the following to add a disk cache

    directory.

    cache_dir ufs /var/spool/squid3 6000 16 256

    Ket :

    - Kalkulasinya ukuran cache ini harus tepat disesuaikan dengan spesifikasi server

    ubuntu, semakin besar cache-nya belum tentu bagus malahan akan membuat

    pencarian file yang tersimpan menjadi lebih lama.

    - Letak direktorinya di /var/spool/squid3 ,berbeda lokasi dengan direktori

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    9/22

    konfigurasi squid.

    # TAG: minimum_object_size (bytes)#Default:

    minimum_object_size 0 KB

    Ket :- Besaran minimum file yang akan tersimpan di squid

    # TAG: maximum_object_size (bytes)#Default:

    maximum_object_size 4096 KB

    Ket :

    - Besaran maksimum file yang akan tersimpan di squid

    # TAG: cache_swap_low (percent, 0-100)#Default:

    cache_swap_low 90

    # TAG: cache_swap_high (percent, 0-100)#Default:

    cache_swap_high 95

    # TAG: logfile_rotate#Default:

    logfile_rotate 1

    Ket :

    - Akan berguna jika sudah menginstal Sarg & calamaris

    Untuk Tuning Cache squid

    # TAG: refresh_pattern

    Tambahkan refresh_pattern berikut sesudah refresh_pattern default

    refresh_pattern -i .(class|css|js|gif|jpg)$ 10080 100% 43200 ignore-no-cache

    ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(jpe|jpeg|png|bmp|tif)$ 10080 100% 43200 ignore-no-cache

    ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(tiff|mov|avi|qt|mpeg)$ 10080 100% 43200 ignore-no-cache

    ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(mp3|3gp|mpg|mpe|wav|au|mid)$ 10080 100% 43200 ignore-

    no-cache ignore-no-store reload-into-ims override-expirerefresh_pattern -i .(exe|iso|tar|rar|zip|gz|arj|lha|lzh)$ 10080 100% 43200 ignore-

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    10/22

    no-cache ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(rar|tgz|tar|exe|bin|vpx)$ 10080 100% 43200 ignore-no-cache

    ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(hqx|pdf|rtf|doc|swf)$ 10080 100% 43200 ignore-no-cache

    ignore-no-store reload-into-ims override-expire

    refresh_pattern -i .(inc|cab|ad|txt|dll)$ 10080 100% 43200 ignore-no-cacheignore-no-store reload-into-ims override-expire

    # TAG: quick_abort_min (KB)#Default:

    quick_abort_min 16 KB

    # TAG: quick_abort_max (KB)#Default:

    quick_abort_max 16 KB

    # TAG: quick_abort_pct (percent)#Default:

    quick_abort_pct 95

    # TAG: read_ahead_gap buffer-size#Default:

    read_ahead_gap 16 KB

    # TAG: positive_dns_ttl time-units#Default:

    # positive_dns_ttl 6 hours

    positive_dns_ttl 1 hour

    # TAG: negative_dns_ttl time-units#Default:

    # negative_dns_ttl 1 minutesnegative_dns_ttl 1 minute

    # TAG: store_avg_object_size (kbytes)

    #Default:

    store_avg_object_size 13 KB

    # TAG: dns_nameserversdns_nameservers 203.130.193.74 203.130.208.18

    202.134.0.155 202.134.1.5 8.8.4.4 8.8.8.8

    Ket :

    - Di atas mengunakan dns telkom speedy & google.

    - Gantilah dns server sesuai dengan yang diberikan oleh ISP anda.

    # TAG: ipcache_size (number of entries)#Default:

    #ipcache_size 1024

    ipcache_size 4096

    # TAG: ipcache_low (percent)#Default:

    ipcache_low 90

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    11/22

    # TAG: ipcache_high (percent)# The size, low-, and high-water marks for

    the IP cache.

    #Default:

    ipcache_high 95

    # TAG: fqdncache_size (number of entries)# Maximum number ofFQDN cache entries.

    #Default:

    #fqdncache_size 1024

    fqdncache_size 4096

    # TAG: reload_into_ims on|off# see also refresh_pattern for a more

    selective approach.

    #Default:

    reload_into_ims on

    SIMPAN..jika konfigurasi sudah selesai.

    5. Buatlah swap squid3, matikan dahulu service squid melalui terminal putty

    dengan :

    # /etc/init.d/squid3 stop

    - Lalu lanjutkan dengan # squid3 -z

    - Tunggulah sampai prosesnya selesai.

    6. Jika pembuatan swap squid sudah berhasil, hidupkan kembali service squid

    dengan :

    # squid3 start

    7. Terakhir, untuk memastikan telah berjalan dengan sukses atau belum,

    monitorlah lalu lintas squid3 dengan :

    # tail -f /var/log/squid3/access.log

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    12/22

    Install & Konfigurasi Squid3 di Ubuntu Server 12.04

    oke agan2 sekalian akhirnya kita jumpa lagi ya pada pertemuan kali ini, kali ini

    saya akan membahas tentang bagaimana cara melakukan konfigurasi squid 3 di

    ubuntu server 12.04.

    oke gan langsung saja ya kita mulai

    Pertama

    Instal terlebih dahulu squid 3 pada ubuntu server agan2 sekalian, dengan

    menggunakan perintah :

    Sudo apt-get install squid3

    Kedua

    Setelah proses instalasi selesai masuk ke dalam direktori squid3 dengan

    menggunakan perintah :

    cd /etc/squid3

    kemudian lanjutkan dengan perintah mengcopy squid.conf.origin dan ganti

    namanya dengan squid.conf, adapun perintah yang digunakan yaitu :

    cp squid.conf.origin squid.conf

    Ketiga

    Setelah proses pengcopyan file selesai selanjutnya lakukan konfigurasi di dalam

    squid.conf tersebut, dengan menggunakan perintah :

    sudo nano /etc/squid3/squid.conf

    kemudian cari http port 3128, http_access allow localhost, dan acl localnet src

    192.168.0.0/16 hilangkan tanda # didepannya, jika semuanya telah dihilangkan

    save dan keluar dari jendela konfigurasi.

    Keempat

    Jika konfigurasi squid3 telah selesai restart squid3 dengan perintah :

    sudo /etc/init.d/squid3 restart

    Keelima

    Selanjutnya hubungkan komputer clien dengan komputer server dengan

    menggunakan kartu jaringan 1 buah lagi setting ip pada kedua komputer

    tersebut dalam 1 kelas ip yang sama.

    Keenam

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    13/22

    Jika telah selesai tes dengan perintah ping. Pastikan kedua komputer telah

    terhubung dengan mendapatkan balasan reply. jika telah terhubung ketikkan

    perintah berikut di komputer server

    sudo tail -f /var/log/squid3/access.log

    Jika selesai setting proxy pada komputer clien dengan ip yang terdapat pada

    komputer server dan dengan port 3128 yang di konfigurasi pada squid3 tadi. Jika

    selesai, lakukan browser pada alamat tertentu pada komputer clien jika

    konfigurasi benar maka akan alamat tersebut akan tampil pada komputer server.

    oke agan2 sekalian mungkin cukup sampai disini saja pertemuan kita kali ini

    semoga semua ini dapat berguna bagi kita semua. ^_^

    Setting Mikrotik dan Squid Proxy External

    Full Versi

    Written By Agustinus Sriyanto on Jumat, 30 Maret 2012 |

    11.11

    Settingan ini cocokuntuk warnet atau penyedia hotspotmenurut saya, tau menurut sobatmah

    ahahhaha. Settingan ini yang saya pake sekarang, Sudah siap untuk melihat dan menelitinya?

    Ok Lanjuuuuuuuut.......!!!

    Alat Yang di Gunakan :

    - Modem Speedy

    - RB750 ROS 4.6 atau Mikrotik v5.xx

    - Squid proxy yang berjalan transparant pada port 3128 + zph

    Topologi :

    - Speedy 2M down dan 512 up

    - 1M untuk jatah download semua client dengan batasan maksimal 256kbps/client- Akses tanpa dibatasi limit untuk beberapa IP tertentu (dalam hal ini IP 192.168.2.16 dan

    192.168.2.17)

    - Browsing tidak dibatasi

    - Aplikasi QOS pada outbound/paket yang keluar dari modem speedy

    Manifest IP address yang digunakan :

    [MODEM]

    Public IP Address = 192.168.1.2/24

    [CLIENTS]

    Client IP Address = 192.168.2.2-192.168.2.17 (ip selain itu tidak konek internet)

    [SQUID BOX]

    Proxy Ip Address = 192.168.3.2squid.conf dengan zph

    http://serverstutorial.blogspot.com/2012/03/setting-mikrotik-dan-squid-proxy.htmlhttp://serverstutorial.blogspot.com/2012/03/setting-mikrotik-dan-squid-proxy.htmlhttp://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://serverstutorial.blogspot.com/2012/03/setting-mikrotik-dan-squid-proxy.htmlhttp://serverstutorial.blogspot.com/2012/03/setting-mikrotik-dan-squid-proxy.htmlhttp://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    14/22

    http_port 3128 transparent

    zph_mode tos

    zph_local 0x30

    zph_parent 0

    zph_option 136

    ================Basic Configuration================

    /interface ethernet

    set 0 comment="Public Interface" name=Public

    set 1 comment="Local Interface" name=Local

    set 2 comment="Proxy Interface" name=Proxy

    /ip address

    add address=192.168.2.1/24 broadcast=192.168.2.2 comment="" disabled=no \

    interface=Local network=192.168.2.0

    add address=192.168.3.1/24 broadcast=192.168.3.2 comment="" disabled=no \

    interface=Proxy network=192.168.3.0add address=192.168.1.2/24 broadcast=192.168.1.3 comment="" disabled=no \

    interface=Public network=192.168.1.0

    /ip dns

    set allow-remote-requests=yes cache-max-ttl=1w cache-size=4096KiB \

    max-udp-packet-size=512 servers="125.160.4.82,203.130.196.155"

    (sesuaikan dengan DNS ISP sobat)

    /ip route

    add gateway=192.168.1.1 comment="" disabled=no

    /ip service

    set telnet address=0.0.0.0/0 disabled=yes port=23

    set ftp address=0.0.0.0/0 disabled=yes port=21

    set www address=0.0.0.0/0 disabled=no port=80

    set ssh address=0.0.0.0/0 disabled=yes port=22

    set www-ssl address=0.0.0.0/0 certificate=none disabled=yes port=443

    set api address=0.0.0.0/0 disabled=yes port=8728

    set winbox address=0.0.0.0/0 disabled=no port=8291

    /system ntp client

    set enabled=yes mode=unicast primary-ntp=152.118.24.8 secondary-ntp=\

    202.169.224.16

    /ip firewall address-list

    add address=192.168.3.1/24 comment="" disabled=no list=ProxyNETadd address=192.168.2.2-192.168.2.17 comment="" disabled=no list=localNet

    (saya hanya menjalankan client konek internet 2-17 client)

    =================end of basic configuration=================

    Untukfirewall filternya saya terapkan yang terpentingnya saja.

    /ip firewall filter

    add action=drop chain=input comment="Drop Invalid connections" \

    connection-state=invalid disabled=no

    add action=add-src-to-address-list address-list="port scanners" \address-list-timeout=2w chain=input comment="Port scanners to list " \

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    15/22

    disabled=no protocol=tcp psd=21,3s,3,1

    add action=add-src-to-address-list address-list="port scanners" \

    address-list-timeout=2w chain=input comment="NMAP FIN Stealth scan" \

    disabled=no protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg

    add action=add-src-to-address-list address-list="port scanners" \

    address-list-timeout=2w chain=input comment="SYN/FIN scan" disabled=no \protocol=tcp tcp-flags=fin,syn

    add action=add-src-to-address-list address-list="port scanners" \

    address-list-timeout=2w chain=input comment="SYN/RST scan" disabled=no \

    protocol=tcp tcp-flags=syn,rst

    add action=add-src-to-address-list address-list="port scanners" \

    address-list-timeout=2w chain=input comment="FIN/PSH/URG scan" disabled=\

    no protocol=tcp tcp-flags=fin,psh,urg,!syn,!rst,!ack

    add action=add-src-to-address-list address-list="port scanners" \

    address-list-timeout=2w chain=input comment="ALL/ALL scan" disabled=no \

    protocol=tcp tcp-flags=fin,syn,rst,psh,ack,urg

    add action=add-src-to-address-list address-list="port scanners" \address-list-timeout=2w chain=input comment="NMAP NULL scan" disabled=no \

    protocol=tcp tcp-flags=!fin,!syn,!rst,!psh,!ack,!urg

    add action=drop chain=input comment="Dropping port scanners" disabled=no \

    src-address-list="port scanners"

    add action=accept chain=input comment="Allow Established connections" \

    connection-state=established disabled=no

    add action=accept chain=input comment="Allow Related connections" \

    connection-state=related disabled=no

    add action=accept chain=input comment="Allow ICMP from LOCAL Network" \

    disabled=no protocol=icmp src-address-list=localNet

    add action=accept chain=input comment="Allow ICMP from PROXY Network" \

    disabled=no protocol=icmp src-address-list=ProxyNET

    add action=accept chain=input comment="Allow Input from LOCAL Network" \

    disabled=no src-address-list=localNet

    add action=accept chain=input comment="Allow Input from PROXY Network" \

    disabled=no src-address-list=ProxyNET

    add action=drop chain=input comment="Drop everything else" disabled=no

    add action=drop chain=forward comment="Drop Invalid connections" \

    connection-state=invalid disabled=no

    add action=jump chain=forward comment="Bad packets filtering" disabled=no \

    jump-target=tcp protocol=tcpadd action=jump chain=forward comment="" disabled=no jump-target=udp \

    protocol=udp

    add action=jump chain=forward comment="" disabled=no jump-target=icmp \

    protocol=icmp

    add action=drop chain=tcp comment="deny SMTP" disabled=no dst-port=25 \

    protocol=tcp

    add action=drop chain=tcp comment="deny TFTP" disabled=no dst-port=69 \

    protocol=tcp

    add action=drop chain=tcp comment="deny RPC portmapper" disabled=no dst-port=\

    111 protocol=tcp

    add action=drop chain=tcp comment="deny RPC portmapper" disabled=no dst-port=\135 protocol=tcp

  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    16/22

    add action=drop chain=tcp comment="deny NBT" disabled=no dst-port=137-139 \

    protocol=tcp

    add action=drop chain=tcp comment="deny cifs" disabled=no dst-port=445 \

    protocol=tcp

    add action=drop chain=tcp comment="deny NFS" disabled=no dst-port=2049 \

    protocol=tcpadd action=drop chain=tcp comment="deny NetBus" disabled=no dst-port=\

    12345-12346 protocol=tcp

    add action=drop chain=tcp comment="deny NetBus" disabled=no dst-port=20034 \

    protocol=tcp

    add action=drop chain=tcp comment="deny BackOriffice" disabled=no dst-port=\

    3133 protocol=tcp

    add action=drop chain=tcp comment="deny DHCP" disabled=no dst-port=67-68 \

    protocol=tcp

    add action=drop chain=tcp comment="deny P2P" disabled=no p2p=all-p2p

    add action=drop chain=udp comment="deny TFTP" disabled=no dst-port=69 \

    protocol=udpadd action=drop chain=udp comment="deny PRC portmapper" disabled=no dst-port=\

    111 protocol=udp

    add action=drop chain=udp comment="deny PRC portmapper" disabled=no dst-port=\

    135 protocol=udp

    add action=drop chain=udp comment="deny NBT" disabled=no dst-port=137-139 \

    protocol=udp

    add action=drop chain=udp comment="deny NFS" disabled=no dst-port=2049 \

    protocol=udp

    add action=drop chain=udp comment="deny BackOriffice" disabled=no dst-port=\

    3133 protocol=udp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \

    icmp-options=0:0-255 limit=5,5 protocol=icmp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \

    icmp-options=3:0 protocol=icmp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \

    icmp-options=3:3 limit=5,5 protocol=icmp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \

    icmp-options=3:4 limit=5,5 protocol=icmp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \

    icmp-options=8:0-255 limit=5,5 protocol=icmp

    add action=accept chain=icmp comment="limit packets 5/secs" disabled=no \icmp-options=11:0-255 limit=5,5 protocol=icmp

    add action=drop chain=icmp comment="Drop other icmp packets" disabled=no

    add action=accept chain=forward comment="Allow Established connections" \

    connection-state=established disabled=no

    add action=accept chain=forward comment="Allow Forward from LOCAL Network" \

    disabled=no src-address-list=localNet

    add action=accept chain=forward comment="Allow Forward from PROXY Network" \

    disabled=no src-address-list=ProxyNET

    add action=drop chain=forward comment="Drop everything else" disabled=no

    UntukNAT nya sebagai berikut :

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    17/22

    /ip firewall nat

    add action=masquerade src-address-list=localNet chain=srcnat comment="NAT-LOCAL"

    disabled=no \

    out-interface=Public

    add action=masquerade src-address-list=ProxyNet chain=srcnat comment="NAT-PROXY"

    disabled=no \out-interface=Public

    add action=dst-nat chain=dstnat comment="TRANSPARENT PROXY" disabled=no \

    dst-address-list=!ProxyNET dst-port=80,8080,3128 in-interface=Local \

    protocol=tcp to-addresses=192.168.3.2 to-ports=3128

    (atau yang saya punya redirect proxy seperti ini :)

    add action=dst-nat chain=dstnat comment="TRANSPARENT PROXY" disabled=no \

    src-address=192.168.2.2-192.168.2.17 dst-port=80,8080,3128 in-interface=Local \

    protocol=tcp to-addresses=192.168.3.2 to-ports=3128

    add action=dst-nat chain=dstnat comment="TRANSPARENT DNS" disabled=no \dst-port=53 in-interface=Local protocol=udp to-ports=53

    add action=dst-nat chain=dstnat comment="" disabled=no dst-port=53 \

    in-interface=Local protocol=tcp to-ports=53

    add action=dst-nat chain=dstnat comment="" disabled=no dst-port=53 \

    in-interface=Proxy protocol=udp to-ports=53

    add action=dst-nat chain=dstnat comment="" disabled=no dst-port=53 \

    in-interface=Proxy protocol=tcp to-ports=53

    Penjelasan :

    - Transparent DNS agar client tidak bisa menggunakan NS selain yang terpasang di mikrotik

    (bisa sobat gunakan atau tidak, tergantung keinginan)

    - Mengarahkan request dari client tujuan port 80,8080,3128 ke squid external

    saya beri contoh 2 untuk redirect terserah sobat mo pilih yang mana pastinya keduanya jalan

    jika ada interface lain misalkan hotspot sobat tingal tambahkan tanda ! pada src.address

    atau dst.address list

    Untukmanglenya biar saya jelaskan satu-persatu biar tidak bingung :

    /ip firewall mangle

    add action=mark-packet chain=forward comment="PROXY-HIT-DSCP 12" disabled=no \

    dscp=12 new-packet-mark=proxy-hit passthrough=no

    Menandai paket proxy-hit dari external proxy yang nantinya pada rule queue diberikan

    kebebasan tanpa proses limitasi

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    18/22

    add action=change-dscp chain=postrouting comment=CRITICAL disabled=no \

    new-dscp=1 protocol=icmp

    add action=change-dscp chain=postrouting comment="" disabled=no dst-port=53 \

    new-dscp=1 protocol=udp

    add action=change-dscp chain=postrouting comment="" disabled=no dst-port=53 \

    new-dscp=1 protocol=tcpadd action=mark-connection chain=postrouting comment="" disabled=no dscp=1 \

    new-connection-mark=critical_conn passthrough=yes

    add action=mark-packet chain=postrouting comment="" connection-mark=\

    critical_conn disabled=no new-packet-mark=critical_pkt passthrough=no

    Menandai paket ICMP dan DNS request untuk diberikan prioritas tertinggi

    add action=mark-connection chain=prerouting comment=MARK-ALL-CONN disabled=no \

    dst-address-list=!localNet in-interface=Local new-connection-mark=\

    all.pre_conn passthrough=yes

    add action=mark-connection chain=forward comment="" disabled=no \new-connection-mark=all.post_conn out-interface=Local passthrough=yes \

    src-address-list=!localNet

    add action=mark-packet chain=prerouting comment="" connection-mark=\

    all.pre_conn disabled=no new-packet-mark=all.pre_pkt passthrough=yes

    add action=mark-packet chain=forward comment="" connection-mark=all.post_conn \

    disabled=no new-packet-mark=all.post_pkt passthrough=yes

    Menandai SEMUA paket keluar masuk dari Local interface SELAIN ke Local Address

    add action=mark-connection chain=prerouting comment=GAMES connection-mark=\

    all.pre_conn disabled=no dst-port=9339,843 new-connection-mark=games_conn \

    passthrough=yes protocol=tcp

    add action=mark-connection chain=prerouting comment="" connection-mark=\

    all.pre_conn disabled=no dst-port=40000-40010 new-connection-mark=\

    games_conn passthrough=yes protocol=udp

    add action=mark-packet chain=forward comment="" connection-mark=games_conn \

    disabled=no new-packet-mark=games_pkt passthrough=no

    Menandai PaketGAMESuntuk diberikan prioritas KEDUA

    add action=mark-connection chain=prerouting comment=HTTP-CLIENT \

    connection-mark=all.pre_conn disabled=no new-connection-mark=\

    browsing_conn packet-size=0-64 passthrough=yes protocol=tcp tcp-flags=ack

    add action=mark-connection chain=prerouting comment="" connection-mark=\

    all.pre_conn disabled=no dst-port=80,443 new-connection-mark=\

    browsing_conn passthrough=yes protocol=tcp

    add action=mark-packet chain=forward comment="" connection-bytes=0-131072 \

    connection-mark=browsing_conn disabled=no new-packet-mark=browsing_pkt \

    passthrough=no protocol=tcp

    add action=mark-connection chain=prerouting comment=HTTP-PROXY disabled=no \dst-address-list=!localNet dst-port=80,443 new-connection-mark=proxy_conn \

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    19/22

    passthrough=yes protocol=tcp src-address-list=ProxyNET

    add action=mark-packet chain=forward comment="" connection-mark=proxy_conn \

    disabled=no new-packet-mark=proxy_pkt passthrough=no

    Menandai paket untuk browsing TERMASUK http req dari external proxy dengan conn-

    byte=0-131072 serta paket-paket protocol tcp yang berukuran kecil (packet-size=0-64 tcp-

    flags=ack) untuk diberikan prioritas KETIGA

    add action=mark-connection chain=prerouting comment=REALTIME connection-mark=\

    all.pre_conn disabled=no dst-port=22,179,110,161,8291 \

    new-connection-mark=realtime_conn passthrough=yes protocol=tcp

    add action=mark-connection chain=prerouting comment="" connection-mark=\

    all.pre_conn disabled=no dst-port=123 new-connection-mark=realtime_conn \

    passthrough=yes protocol=udp

    add action=mark-packet chain=forward comment="" connection-mark=realtime_conn \disabled=no new-packet-mark=realtime_pkt passthrough=no

    Menandai paket-paket REALTIME ACCESS untuk diberikan prioritas KEEMPAT

    add action=mark-connection chain=prerouting comment=FILETRANSER \

    connection-mark=all.pre_conn disabled=no dst-port=20,21,23 \

    new-connection-mark=communication_conn passthrough=yes protocol=tcp

    add action=mark-packet chain=forward comment="" connection-mark=\communication_conn disabled=no new-packet-mark=communication_pkt \

    passthrough=no

    Menandai paket-paket FILETRANSFER untuk diberikan prioritas KELIMA

    add action=mark-connection chain=prerouting comment=NORMAL connection-mark=\

    all.pre_conn disabled=no dst-address-list=!ProxyNET new-connection-mark=\

    normal_conn passthrough=yes

    add action=mark-packet chain=forward comment="" connection-mark=normal_conn \

    disabled=no new-packet-mark=normal_pkt passthrough=no

    Menandai semua paket yang tersisa SELAIN tujuan Proxy untuk diberikan prioritas

    KEENAM

    add action=mark-packet chain=forward comment=DOWNLOAD connection-bytes=\

    131072-4294967295 connection-mark=all.post_conn disabled=no dst-address=\

    192.168.2.2 new-packet-mark=client1 passthrough=no protocol=tcp

    add action=mark-packet chain=forward comment="" connection-bytes=\

    131072-4294967295 connection-mark=all.post_conn disabled=no dst-address=\

    192.168.2.3 new-packet-mark=client2 passthrough=no protocol=tcp

    ..dst sampai jumlah client yang di perlukanterpenuhi

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    20/22

    add action=mark-packet chain=forward comment=DOWNLOAD-NO-LIMIT connection-

    bytes=\

    131072-4294967295 connection-mark=all.post_conn disabled=no dst-address=\

    192.168.2.16 new-packet-mark=client16 passthrough=no protocol=tcp

    add action=mark-packet chain=forward comment="" connection-bytes=\

    131072-4294967295 connection-mark=all.post_conn disabled=no dst-address=\192.168.2.17 new-packet-mark=client17 passthrough=no protocol=tcp

    Menandai paket protocol tcp yang diteruskan ke client untuk memberikan batasan download

    pada masing-masing client dengan conn-byte=131072-4294967295

    Setelah itu buat queue type nya

    /queue type

    add kind=pcq name=pcq_up pcq-classifier=src-address pcq-limit=200 pcq-rate=0 \

    pcq-total-limit=8000

    add kind=pcq name=pcq_down pcq-classifier=dst-address pcq-limit=200 pcq-rate=\0 pcq-total-limit=8000

    add kind=pfifo name=pfifo-critical pfifo-limit=10

    add kind=pcq name=pcq_critical.up pcq-classifier=src-address,src-port \

    pcq-limit=20 pcq-rate=0 pcq-total-limit=500

    add kind=pcq name=pcq_critical.down pcq-classifier=dst-address,dst-port \

    pcq-limit=20 pcq-rate=0 pcq-total-limit=500

    di lanjut menambahkan queue tree nya..

    /queue tree

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="A. PROXY HIT" packet-mark=proxy-hit parent=Local \

    priority=1 queue=default

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="B. CRITICAL" packet-mark=critical_pkt parent=Public \

    priority=1 queue=pfifo-critical

    Tanpa limit dengan prioritas pertama untukproxy hit dan critical

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="C. INBOUND" packet-mark=all.post_pkt parent=global-out \priority=8

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="D. OUTBOUND" packet-mark=all.pre_pkt parent=Public \

    priority=8

    Membuat parent untuk inbound (traffic masuk ke client) dan outbound (traffic keluar

    dari public)

    Untuk child INBOUND nya saya bagi menjadi beberapa prioritas seperti berikut :

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \max-limit=0 name="A. GAMES" packet-mark=games_pkt parent="C. INBOUND" \

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    21/22

    priority=2 queue=pcq_critical.down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="B. HTTP" packet-mark=browsing_pkt parent="C. INBOUND" \

    priority=3 queue=pcq_down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=128k name="C. REALTIME" packet-mark=realtime_pkt parent=\"C. INBOUND" priority=4 queue=pcq_critical.down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=128k name="D. FILETRANS" packet-mark=communication_pkt parent=\

    "C. INBOUND" priority=5 queue=pcq_down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=128k name="E. NORMAL" packet-mark=normal_pkt parent=\

    "C. INBOUND" priority=6 queue=pcq_down

    selanjutnya parent untuk download per client nya :

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \max-limit=1024k name="F. DOWN 1M" parent="C. INBOUND" priority=8

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="G. DOWN 2M" parent="C. INBOUND" priority=8

    membuat 2 parent untuk 1M dan 2M (atau tanpa limit)

    Setelah itu buat child nya, untuk memberikan batasan download per clientnya

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=256k name=Client1 packet-mark=client1 parent=\

    "F. DOWN 1M" priority=8 queue=pcq_down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=256k name=Client2 packet-mark=client2 parent=\

    "F. DOWN 1M" priority=8 queue=pcq_down

    ..dst sampai semua paket ke client yang di perlukan terpenuhi

    Batasan download sebesar 1M untuk semua client dan maksimum 256k per client

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name=Client16 packet-mark=client16 parent=\"G. DOWN 2M" priority=8 queue=pcq_down

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name=Client17 packet-mark=client17 parent=\

    "G. DOWN 2M" priority=8 queue=pcq_down

    Tanpa batasan download untuk IP 192.168.2.16 dan 192.168.2.17

    Kemudiam membuat limit untuk uploadnya

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \

    max-limit=0 name="A. GAMES UP" packet-mark=games_pkt parent="D. OUTBOUND" \priority=2 queue=pcq_critical.up

    http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/http://gressnet-hotspot.blogspot.com/
  • 7/23/2019 Menyimpan Video Youtube Pakai Squid3 Dan Nginx

    22/22

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=256k name="B. HTTP UP" packet-mark=proxy_pkt parent=\

    "D. OUTBOUND" priority=3 queue=pcq_up

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=32k \

    max-limit=64k name="C. REALTIME UP" packet-mark=realtime_pkt parent=\

    "D. OUTBOUND" priority=4 queue=pcq_critical.upadd burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=128k name="D. FILETRANS UP" packet-mark=communication_pkt \

    parent="D. OUTBOUND" priority=5 queue=pcq_up

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64k \

    max-limit=128k name="E. NORMAL UP" packet-mark=normal_pkt parent=\

    "D. OUTBOUND" priority=6 queue=pcq_up

    C a t a t a n

    - Silahkan sobat sesuaikan Untuk IP ADDRESS, Nama Ethernet. dll

    - Tanda Hijau Biru dan Merah sengaja saya tandai agar sobat tidak tertukar jika sobat sudah

    memberi nama lain (maksudnya harus di sesuaikan)

    - Tanda Jingga da Ping harus sama dengan yang ada di address list (jika sobat menggantidengan nama lain)

    - Silahkan sobat Kopi script yang saya buat dan pastekan dahulu di notepad (maksudnya di di

    hilangkan keterangan-keteranganya, buat satu block satu block biar tidak pusing eheheh)

    Diurutkan berdasarkan prioritas paket keluar, mulai dari games, http request, realtime

    connection, filetransfer dan normal request

    Hasil akhir yang saya capai, masing-masing client tidak terganggu oleh aktifitas download

    ketika mereka browsing atau main games, baik pada saat user sedang upload pun tidak

    mengganggu/memperbesar latency games. sependek pengetahuan saya soal mikrotik

    setelah beberapa kali uji coba, mungkin ini settingan terbaik yang pernah saya buat.

    Semoga bermanfaat dan selamat mereset Mikrotiknya, succes!!!!