Tampilkan postingan dengan label TUTORIAL JARINGAN. Tampilkan semua postingan
Tampilkan postingan dengan label TUTORIAL JARINGAN. Tampilkan semua postingan

Kamis, 12 April 2012

Cara Menggabung 2 Line Speedy dengan Load Balancing Menggunakan Ubuntu Server 9.04





Menyediakan 1 buah perangkat komputer dengan spesifikasi
1. Komputer P IV, memory minimal 512 MB
2. 3 LAN Card

oke bro mari kita ikuti langkah-langkah berikut :

ad1.
Install Ubuntu server 9.04

jika sudah diinstall
maka pelajari system data input/ output nya

Lan Card pada ubuntu dikenali dengan
eth0 ( lan card 1 )
eth1 ( lan card 2 )
eth2 ( lan card 3 )
dan strsx ............



ad.2
tentukan fungsi masing-masing LAN card, misal:

eth0 untuk speedy 1
eth1 untuk speedy 2
eth2 untuk LAN ke HUB

Ad3
langkah pertama-tama yang perlu dilakukan dan paling penting adalah menentukan alamat speedy 1 dan alamat speedy 2, dua alamat ini harus dibedakan dan tidak boleh sama, biasanya IP adress speedy dari telkom 192.168.1.1 untuk modem TPLink
jika keduanya sama, maka ganti alamat tersebut dengan men-set dari program modemnya

dari sini misal kita mendapat IP adress dari masing-masing modem

misal didapat IP adress modem speedy1 192.168.1.254
IP adress modem speedy2 192.168.2.1
IP adress LAN card 192.168.3.1

kemudian mencoba input lan card untuk speedy 1 dan speedy 2 dengan mencoba satu persatu. ........
misal ..........ketik ping ... ( DNS telkom / gateway/IP adress modem)

oke bro kita anggap semua sudah oke, kemudian ikuti langkah selanjutnya

ad4
jadi kita mempunyai IP adress masing LAN card misal sbb :

* Lan card 1 untuk LAN
IP address 192.168.3.1

* Modem speedy 1
* lan card 2
IP address 192.168.1.2
gateway 192.168.1.254

* Modem speedy 2
* lan card 3
IP address 192.168.2.3
gateway 192.168.2.1

ad.5
masuk ke root
kemudian edit
root@server:nano /etc/nerwork/interfaces

edit sesuai dengan data-data diatas

# LAN card
auto eth0
iface eth0 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broatcash 192.168.3.255
# masukkan DNS telkom karena sama, maka dijadikan dns global
dns-nameserver 202.134.1.10

#modem speedy 1
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broatcash 192.168.1.255
gateway 192.168.1.254

#modem speedy 2
auto eth2
iface eth2 inet static
address 192.168.2.3
netmask 255.255.255.0
network 192.168.2.0
broatcash 192.168.2.255
gateway 192.168.2.1

simpan dan kemudian

ad.6
Install beberapa aplikasi pendukung
apt-get install openssh-server
# /etc/init.d/ssh restart

Selanjutnya kita perlu menset routing dan load balancing
supaya tidak hilang masukkan configurasi berikut di rc.local

ad.7
edit file rc.local
root@server:/nano /etc/rc.local

/sbin/ip link set lo up
/sbin/ip link set eth0 up
/sbin/ip link set eth1 up
/sbin/ip link set eth2 up

/sbin/ip route flush table adsl1
/sbin/ip route flush table adsl2
/sbin/ip route flush table internet

/sbin/ip addr add 127.0.0.1/8 brd 127.0.0.255 dev lo

/sbin/ip addr add 192.168.3.0/24 brd 192.168.3.255 dev eth0
/sbin/ip addr add 192.168.1.0/24 brd 1923.168.1.255 dev eth1
/sbin/ip addr add 192.168.2.0/24 brd 192.168.2.255 dev eth2

/sbin/ip rule add prio 10 table main
/sbin/ip rule add prio 20 table adsl1
/sbin/ip rule add prio 30 table adsl2
/sbin/ip rule add prio 40 table internet

/sbin/ip route del default table main
/sbin/ip route del default table adsl1
/sbin/ip route del default table adsl2
/sbin/ip route del default table internet

/sbin/ip rule add prio 20 from 192.168.1.0/24 table adsl1
/sbin/ip route add default via 192.168.1.2 dev eth1 src 192.168.1.254 proto static table adsl1
/sbin/ip route append prohibit default table adsl metric 1 proto static

/sbin/ip rule add prio 30 from 192.168.2.0/24 table adsl2
/sbin/ip route add default via 192.168.2.3 dev eth0 src 192.168.2.1 proto static table adsl2
/sbin/ip route append prohibit default table adsl2 metric 5 proto static

# Set up load balancing gateways
/sbin/ip rule add prio 40 table internet
/sbin/ip route add default proto static table internet nexthop via 192.168.1.254 dev eth1 weight 1 nexthop via 192.168.2.1 dev eth2 weight 1

ad.8
Konfigurasi di atas membutuhkan tiga (3) tabel routing tambahan, yaitu, adsl1, adsl2 dan lan yang kita masukan dalam file /etc/iproute2/rt_tables, isinya kira-kira sbb,

120 adsl1
121 adsl2
123 internet

ad.9
Selanjutnya kita perlu menset NAT / proxy agar dapat sekaligus melakukan NAT ke dua (2) interface yang berbeda, yaitu, 192.168.1.2 dan 192.168.2.3 Adapun perintahnya adalah sebagai berikut,

tambahkan dibawah konfigurasi diatas di file rc.local

/bin/echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -F
/sbin/iptables -P INPUT DROP

/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 –dport 25 -j ACCEPT
/sbin/iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A INPUT -p tcp -i eth1 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT –reject-with tcp-reset
/sbin/iptables -A INPUT -p udp -i eth1 -j REJECT –reject-with icmp-port-unreachable
/sbin/iptables -A INPUT -p udp -i eth2 -j REJECT –reject-with icmp-port-unreachable

/sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT –to 192.168.1.2
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.2.3

simpan
dan reboot

jika ingin mengetahui apakah load balancing kita sudah berhasil maka :
test di komputer server

test server, ping google.com
test server, dns telkom misal ping 202.134.1.10
test server, ping IP adress lan


test di komputer client (windows XP)
ping IP adress lan
ping IP adress lan speedy 1
ping IP adress lan speedy 2
ping IP adress adsl modem 1
ping IP adress adsl modem 2
ping dns speedy misal 202.134.1.10

jika oke semua maka load balancing sudah okeeeeeeeeee .... oke bro

jika load balancing sudah oke
maka tugas selanjutnya adalan men-set DSN server, dan proxy server supaya server kita menjadi benar-benar server.

Senin, 19 Maret 2012

Tips agar web/blog kita terindex dengan baik oleh Google


Google webmaster
Bagi yang mempunyai blog atau web site, google saat ini tidak bisa dilupakan begitu saja. Jika kita ingin punya banyak pengunjung maka salah satu caranya bagaimana agar web site / blog kita terindex dengan baik oleh google. Karena google merupakan mesin pencari terbesar, maka terindex-nya web kita tentu akan memberikan keuntungan.
Sebagai contoh, rata-rata lebih dari 80% pengunjung ebsoft berasal dari search engine google. Jika pengunjung sehari sebanyak 4000, maka lebih dari 3200 pengunjung berasal dari google. Bagaimana agar web kita terindex dengan baik oleh google ?

Sebelumnya jika belum pernah memasukkan alamat web ke google, bisa menambahkan di Add your URL to Google. Berikut beberapa langkah atau tips yang bisa dilakukan agar web/blog kita terindex dengan baik oleh google :
1. Daftar di Google Webmaster Tools
Google webmaster tool , bisa dikatakan tool utama (wajib) untuk mengetahui seberapa baik web site kita terindex oleh google. JIka web/blog kita belum di daftarkan, maka segera daftarkan, karena gratis. Setelah ikut mendaftar, maka langkah selanjutnya adalah verifikasi web kita, baik dengan menuliskan kode yang di perintahkan atau menambahkan file html tertentu di root folder kita.
Jika sudah di verifikasi, maka langkah selanjutnya adalah menambahkan Sitemap menggunakan fasilitas di google webmaster. Apa itu sitemap dan bagaimana membuatnya bisa di baca bagian kedua dibawah ini. Berbagai fasilitas tersedia di google webmaster tools ini adalah :
  • Diagnostics, meliputi gambaran umum, web crawl, mobile crawl dan content analysis
  • Statistics, meliputi kata-kata kunci yang paling banyak dicari dan melalui kata kunci tersebut pengunjung datang ke web kita (Top Seacrh Query), ditampilkan per minggu atau per bulan. Apa yang sebenarnya dilihat oleh Googlebot tentang isi web kita, statistik crawl, index dan juga subscriber.
  • Links, berisi jumlah dan detail link-link dari luar yang menuliskan link ke web kita (external link) dan juga link yang mengarah keluar (internal link), serta Sitelinks ( berisi informasi link tambahan yang tampil di google). Misalnya ketika mencari “ebsoft” akan ditampilkan sitelinks sebagai berikut :

  • Sitemaps, untuk menambahkan sitemap web/blog kita, dan statusnya saat ini.
  • Tools, fasilitas tambahan lainnya seperti Robot.txt, set target lokasi geografi dan lainnya.
Jika sudah berjalan sebulan atau lebih, maka google webmaster akan sangat bermanfaat untuk menganalisa tentang web site kita dan bagaimana cara meng-optimalkannya.
Contoh tampilan statistik (Crawl stats) dari google web master :

2. Tambahkan Sitemap di web/blog
Secara singkat Sitemap merupakan ringkasan apa saja isi website kita. Sitemap biasanya berupa link-link (URL) yang ada di web site kita, baik dalam format HTML maupun XML. Dengan adanya sitemap ini maka akan mempermudah google apa saja yang akan di index (crawl), karena akan dijadikan sebagai referensi utama. Bagaimana membuat sitemap ini ?
Bagi pengguna wordpress ada plugins yang namanya XML sitemap Generator. Dengan plugins ini kita tinggal meng-install, maka ketika kita menulis artikel baru atau mengeditnya, otomatis akan dihasilkan sitemap baru dan otomatis memberi informasi ke beberapa search engine seperti google, MSN, yahoo dan lainnya. Kita juga bisa men-generate sitemap secara manual setiap saat.
Informasi selengkapnya tentang Sitemap, termasuk plugins untuk CMS lainnya bisa dibaca disini XML Sitemap
3. Sebisa mungkin mengikuti petunjuk penulisan (Webmaster Guidelines)
Google telah membuat petunjuk agar isi web kita bisa optimal. Meskipun hal ini tidak wajib, tetapi ada banyak point-point penting dari apa yang dijelaskan di Google Webmaster guidelines yang hendaknya di ikuti. Berikut beberapa point aturan umum dalam membuat konten web/blog :
  • Buat tulisan yang bermanfaat, kaya akan informasi dan tulisan dengan judul sesuai ( Judul mendeskripsikan isinya)
  • Perkiran menulis yang berisi kata-kata yang nantinya akan di cari melalui google atau search engine.
  • Jika menambahkan gambar, pastikan memberikan deskripsi gambar
  • Perhatikan kesalahan penulisan kode HTML ( lebih baik jangan copy paste dari MS Word, karena kode HTML akan berukuran besar dan kadang tidak kompatibel dengan browser)
Masih banyak point-point lainnya yang dianjurkan. Selengkapnya tentang google guidelines ini bisa melihat langsung di Webmaster Guidelines. Selain itu, sebaiknya di hindari artikel yang hanya copy paste saja, karena sepertinya google tidak akan mengindex [dengan baik] artikel yang hanya copy paste dari artikel lain

Selasa, 06 Maret 2012

BLOKIR IP SELAIN LISTQUEE

/ ip firewall filter
add chain=forward in-interface=LAN \
src-address-list=!ip-total action=jump \
jump-target=ip-blocked comment="block sisa ip" \
disabled=no

add chain=ip-blocked action=log \
log-prefix="" comment="" disabled=no

add chain=ip-blocked action=drop \
comment="" disabled=no

Sabtu, 25 Februari 2012

Monitoring Squid Proxy Menggunakan sqstat, SARG, dan Lightsquid


I. Pendahuluan

Pada tutorial sebelumnya sudah dijelaskan tentang apa itu squid dan bagaimana cara mengkonfigurasinya di Linux (Centos 5.2). Dan juga sudah dijelaskan tentang bagaimana cara kita agar sebuah jaringan harus melewati sebuah proxy yang sudah kita buat. Pada bagian terakhir pada tulisan itu dijelaskan pula bagaimana cara memonitor user-user tersebut yang melewati proxy yaitu dengan menuliskan perintah:
# tail -f /var/log/squid/access.log
Namun perintah tersebut sangat tidak manusiawi karena hasil yang ditampilkan terlalu cepat untuk diikuti. Oleh karena itu di dalam tutorial kali ini akan dijelaskan tentang 3 buah tool untuk memonitor proxy server squid yang sangat manusiawi. Ketiga buah tool tersebut adalah sqstat, SARG dan lightsquid dan ketiga aplikasi tersebut akan diinstal di centos 5.2

A. sqstat

sqstat adalah sebuah aplikasi yang dibuat oleh Alex Samorukov. Aplikasi ini berfungsi untuk memonitor squid secara real time sehingga kita bisa melihat secara langsung IP berapa yang sedang mendownload dan lain sebagainya. Untuk menginstal sqstat ke dalam sistem kita, maka ikuti langkah-langkah berikut ini:
1. Download paket
Download paket sqstat di sini.
2. Ekstrak Paket
# gunzip sqstat-1.20.tar.gz
# tar -xvf sqstat-1.20.tar
3. Pindah Folder ke webserver
# mv sqstat-1.20 /var/www/html/; cd /var/www/html
4. Merubah Nama
# mv sqstat-1.20 sqstat 
5. Konfigurasi sqstat
# cd sqstat
# cp config.inc.php.defaults config.inc.php
# vi config.inc.php
 
Di dalam file config.inc.php, rubah ip address dan port squid kita. Di sini, penulis memasukkan ip dan port squid penulis:
/* Squid proxy server ip address or host name */
 $squidhost[0]="192.168.0.250";  /* Squid proxy server port */
 $squidport[0]=3128;
Setelah itu kita akan merubah file squid.conf
# vi /etc/squid/squid.conf
Di dalam file tersebut, tambahkan skrip berikut ini:
 acl manager proto cache_object
 acl webserver src 192.168.0.250/255.255.255.255
 http_access allow manager webserver
 http_access deny manager
6. Restart Webserver
# service httpd restart 
7. Tes sqstat
Buka browser lalu ketikkan:
 http://alamat_ip/sqstat
Maka akan ada tampilan sebagai berikut:



Rubahlah Auto refresh dari nilai 0 menjadi 5 agar aplikasi ini dapat refresh setiap 5 detik lalu tekan tombol Update.
6. Troubleshooting
Umumnya error yang terjadi adalah pada saat pengetesan sqstat di browser yaitu ada pernyataan error:

SqStat error
Error (1): Cannot get data. Server answered: HTTP/1.0 403 Forbidden


Hal ini dikarenakan kita salah menempatkan skrip: http_access deny manager di file squid.conf. Tempatkanlah skrip tersebut dibagian paling bawah pada item http_access. 

Jika tidak ada tampilan gambar seperti di atas, tetapi hanya berupa list saja pada browser, maka ketikkan:
# mv sqstat.php index.php

B. SARG

SARG atau Squid Analysis Report Generator merupakan sebuah aplikasi yang dibuat oleh Pedro Lineu Orso yang bertujuan untuk melihat dan merekam aktivitas user selama berada di internet. Aplikasi ini sangat lengkap sehingga kita bisa melihat situs-situs apa yang dikunjungi oleh user, berapa bandwidth yang terpakai, dan sebagainya. Untuk menginstal aplikasi ini ke dalam sistem, berikut adalah langkah-langkahnya:
1. Download paket
Download paket SARG di sini.
2. Ekstrak Paket
# tar -zxvf sarg-2.2.5.tar.gz
 # cd sarg-2.2.5
3. Instalasi SARG
# ./configure
 # make
 # make install
4. Konfigurasi SARG
 # cd /usr/local/sarg/
 # cp sarg.conf sarg.conf.ori
 # vi sarg.conf
Di file ini, rubahlah konfigurasi sarg sesuai dengan kebutuhan. Di bawah ini adalah konfigurasi sarg penulis:
 language English
 access_log /usr/local/squid/var/logs/access.log
 graphs yes
 graph_days_bytes_bar_color orange
 title "Squid User Access Reports"
 font_face Tahoma,Verdana,Arial
 header_color darkblue
 header_bgcolor blanchedalmond
 font_size 9px
 header_font_size 9px
 title_font_size 11px
 background_color white
 text_color #000000
 text_bgcolor lavender
 title_color green
 logo_image none
 logo_text ""
 logo_text_color #000000
 image_size 80 45
 background_image none
 password none
 temporary_dir /tmp
 output_dir /var/www/html/squid-reports
 output_email none
 resolve_ip no
 user_ip yes
 topuser_sort_field BYTES reverse
 index yes
 use_comma no
 long_url yes
 
5. Generate SARG
Untuk menjalankan SARG, maka ketikkan perintah di bawah ini untuk men-generate SARG:
# /usr/bin/sarg -l /var/log/squid/access.log
Maka secara ototmatis di dalam folder /var/www/html ada folder baru yang bernama squid-reports.
6. Restart Webserver
# service httpd restart
7. Melihat SARG
Untuk melihat tampilan SARG, maka ketikkan perintah berikut di browser:
http://alamat_ip/squid-reports
maka akan ada tampilan sebagai berikut:



Klik item yang berada pada kolom FILE/PERIOD, maka akan ada tampilan sebagai berikut:


Jika sudah ada tampilan seperti itu, maka SARG sudah berhasil diinstalasi di dalam sistem.

7. Penjadwalan Generate SARG
Untuk men-generate SARG, kita harus mengetikkan di dalam konsol perintah seperti berikut:  
# /usr/bin/sarg -l /var/log/squid/access.log
Namun, alangkah capeknya jika kita mengetikkan perintah tersebut secara manual. Maka dari itu kita menggunakan crontab untuk melakukan eksekusi otomatis. Misalnya kita ingin agar setiap 1 jam sekali perintah di atas dieksekusi secara otomatis oleh sistem, maka terlebih dahulu kita membuat skrip misalnya di folder /home dengan nama sarg.txt dan tambahkan skrip berikut:
#!/bin/bash
  /usr/bin/sarg -l /var/log/squid/access.log
Setelah itu, berikan perintah agar skrip tersebut dapat dieksekusi:
# chmod +x sarg.txt
Setelah itu kita konfigurasi crontab-nya:
# crontab -e
tambahkan skrip berikut:
0 * * * * /home/sarg.txt
Dan setelah itu sistem akan men-generate SARG secara otomatis.

C. lightsquid

Lightsquid merupakan aplikasi monitoring squid yang mempunyai fungsi yang sama dengan SARG. Aplikasi ini menggunakan bahasa perl untuk men-generatenya. Maka dari itu ceklah di dalam sistem apakah sudah ada paket-paket perl atau belum dan jika sudah ada, paket perl versi berapa karena ada penambahan skrip perl versi tertentu yang akan dibahas nanti.
# rpm -qa | grep perl
 # perl -v
Untuk menginstal lightsquid ke dalam sistem kita, maka ikuti langkah-langkah berikut:
1. Download paket
Download paket lightsquid di sini.
2. Ekstrak ke Webserver
# tar -zxvf lightsquid-1.7.1.tgz -C /var/www/html/; cd /var/www/html
3. Merubah Nama Folder
#  mv lightsquid-1.7.1/ lightsquid
4. Konfigurasi lightsquid
 # cd lightsquid
 # cp lightsquid.cfg lightsquid.cfg.ori
 # vi lightsquid.cfg
Di dalam file ini, rubahlah path cfgpath, tplpath, langpath, reportpath, logpath, ip2namepath yang sesuai dengan dimana folder lightsquid itu berada. Penulis menggunakan konfigurasi berikut:

#path to additional `cfg` files
$cfgpath ="var/www/html/lightsquid";
#path to `tpl` folder
$tplpath  ="/var/www/html/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/html/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/html/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/html/lightsquid/ip2name";
Jika sudah selesai, maka ketikan perintah berikut:
5. Merubah Mode
# chmod +x *.cgi
# chmod +x *.pl
6. Cek Setup lightsquid
Ketikkan perintah berikut untuk mengecek apakah konfigurasi lighsquid sudah benar atau belum:
# perl check-setup.pl
Jika ada tampilan seperti berikut:


Maka konfigurasi kita sudah benar.
7. Mengedit File Webserver
Setelah itu, kita mengkonfigurasi webserver yang berada di /etc/httpd/conf/httpd.conf, lalu cari skrip sebagai berikut:

    AllowOverride None
    Options None
    Order allow, deny
    Allow from all
menjadi:

    AddHandler cgi-script .cgi
    AllowOverride All
8. Generate lightsquid
Untuk men-generate lightsquid, gunakan perintah berikut:
# /var/www/html/lightsquid/lightparser.pl
9. Restart Webserver
# service httpd restart
10. Lihat lightsquid
Buka browser, lalu ketikkan
http://alamat_ip/lightsquid
maka akan ada tampilan sebagai berikut:


Klik pada item Date, maka akan muncul tampilan:


Jika sudah tampil gambar-gambar di atas, maka lightsquid sudah terinstal dalam sistem.
9. Penjadwalan Generate lightsquid
Sama seperti SARG, lightsquid bisa di generate secara otomatis menggunakan crontab. Buat dahulu filenya misalnya di /home yang bernama lightsquid.txt lalu masukkan skrip berikut:
#!/bin/bash
cd /var/www/html/lightsquid
/var/www/html/lightsquid/lightparser.pl
Dan kita ingin agar setiap 1 jam sekali sistem mengeksekusi file ini, maka masukkan di crontab:

0 * * * * /home/lightsquid.txt 
Dan jangan lupa berikan perintah:
 # chmod +x /home/lightsquid.txt
agar file tersebut dapat dieksekusi.

10. Troubleshooting

Pada umumnya error yang terjadi biasanya terlihat pada saat mengecek konfigurasi lightsquid, yaitu pada saat kita memberikan perintah:
 # perl check-setup.pl 
ada pernyataan error:
 no: GD.PM found, please install or set $graphreport=0 to disable
Error tersebut dikarenakan di dalam sistem kita tidak mempunyai paket gd yang digunakan untuk membuat tampilan grafik. Oleh karena itu, installah paket tersebut dengan menuliskan:
# yum -y install gd perl-gd

Atau jika kita tidak mau menginstal paket gd hal itu tidak menjadi masalah dan konsekwensi yang timbul hanyalah kita tidak bisa melihat tampilan grafik. Tapi kita harus mensetting di file lightsquid.cfg dan merubah nilai dari
$graphreport dari 1 menjadi 0.
Dan juga perlu diingat jika kita menggunakan perl versi 5.10, ada skrip yang harus ditambahkan di file lightparser.pl yaitu dengan merubah:
 
#extract site name
if $url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o;
      $site=$2.$3.$5;
      $site=$Lurl if ($site eq "");

menjadi:

#extract site name
if ($url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o) { $site=$2.$3.$5; } else { $site=$Lurl; }

V. Kesimpulan

Di atas, sudah dijelaskan tentang ketiga monitoring squid yang dapat digunakan. Namun, ada beberapa yang harus diperhatikan. Untuk sqstat, terkadang aplikasi ini tidak menampilkan seluruh IP yang sedang melewati proxy atau juga tidak dapat menampilkan user mana yang sedang mendownload. Maka dari itu, lengkapi pula di dalam sistem kita dengan aplikasi jnettop. Untuk SARG, kelebihannya adalah fitur yang lengkap sehingga kita mungkin merasa cukup dengan apa yang dilakukan oleh SARG. Tetapi sayangnya, aplikasi ini sangat boros memakan ruang dalam hard disk karena file-file yang digenerate berbentuk html. Pengalaman penulis, aplikasi ini mampu memakan ruang dalam hard disk sebesar kira-kira 1GB dalam sehari semalam. Berbeda halnya dengan lightsquid. Karena file-file yang dihasilkannya berbentuk txt, maka aplikasi ini tidak memakan ruang yang banyak di dalam hard disk tetapi sayangnya fiturnya dibawah SARG. Namun, penulis pikir ini adalah sebuah selera saja. Mana yang lebih mendekati selera si system administrator, maka aplikasi tersebut yang akan digunakan. Namun penulis menyarankan untuk lebih mendapatkan hasil yang akurat, selain menginstal aplikasi di atas, juga bisa ditambahkan aplikasi bwstat, dan jnettop dimana bwstat digunakan untuk melihat berapa bandwidth yang sudah dihabiskan per IP dan jnettop digunakan untuk melihat IP mana yang sedang download secara real-time. Sedangkan SARG dan lightsquid untuk melihat akumulatif bandwidth per hari.

Referensi
http://lightsquid.sourceforge.net/
http://paidjo.files.wordpress.com
http://masrifqi.web.id
http://samm.kiev.ua

Cara Instalasi dan Konfigurasi Squid


I. Pendahuluan

Internet pada saat ini bagi sebagian atau banyak kalangan sudah menjadi  kebutuhan primer dan digunakan untuk kebutuhan mereka masing-masing. Kebanyakan para pengguna internet mengunjungi situs yang sama secara berulang-ulang. Misalnya suatu situs sudah pernah dikunjungi oleh pengguna tertentu yang lebih dahulu menggunakan jaringan internet, mungkin pada kesempatan berikutnya ada pengguna lain yang mengunjungi situs yang sama. Pengguna-pengguna ini akan berhubungan langsung dengan web yang sama melalui jaringan lokal yang sama dan memerlukan bandwidth untuk koneksi ke internet. Karena terbatasnya bandwidth dan banyaknya para pengguna, maka koneksi internet menjadi begitu lambat.


Cara kerja Proxy

Untuk meningkatkan efisiensi penggunaan bandwidth, biasanya dalam jaringan lokal dipasang suatu server proxy. Server proxy adalah server yang berguna sebagai perantara antara client dengan server gateway sebelum berhubungan ke internet. Server proxy mempunyai kemampuan untuk menyimpan file-file yang berasal dari situs yang pernah dikunjungi. Gambar di atas menunjukkan cara kerja Proxy. Misalnya seorang user meminta www.yahoo.com, maka proxy akan mengambil dan meletakkannya di harddisk server untuk selanjutnya diambil oleh user yang bersangkutan. Bila ada user lain yang meminta data yang sama, server tidak perlu lagi mendownloadnya dari www.yahoo.com, tapi cukup memberikan data yang ada di cachenya sehingga akan lebih cepat dan menghemat bandwidth. Dengan adanya server proxy ini, maka situs yang sering di browsing akan semakin terasa semakin cepat oleh user karena telah disimpan di dalam cache proxy. Selain itu, server proxy juga memiliki fungsi lainnya, diantaranya autentifikasi user, memblok situs, memblok banner, dan lain-lain.

II. Squid

Salah satu software terbaik yang ada di GNU/Linux adalah Squid. Squid merupakan software proxy server open ource dengan banyak fitur. Program squid mempunyai kemampuan untuk berlaku sebagai server cache maupun sebagai filter. Objek data yang dapat disimpan oleh squid meliputi objek permintaan data dari permintaan klien HTTP, FTP maupun Gopher. Sebagian besar para sistem administrator menggunakan squid sebagai server Proxy.

Dalam menjalankan fungsinya sebagai server proxy, squid biasanya dikombinasikan dengan firewall (Iptables). Dalam hal ini iptables diunakan untuk mengarahkan komputer klien untuk menggunakan server proxy dalam berhubungan dengan jaringan internet. Dalam kaitannya dengan firewall, server proxy dapat dipasang pada komputer yang sama dengan firewall atau dapat juga dipasang pada komputer yang terpisah dengan firewall. Masing-masing konfigurasi akan menentukan aturan rantai yang diberlakukan pada firewall maupun konfigurasi server proxy sendiri.

Squid dapat dikonfigurasikan sebagai :
a. Mode httpd-accelerator untuk meningkatkan performansi web server kita.
Squid server berlaku seperti  reverse proxy-cache, squid akan  menerima  permintaan  client,  memberikan  data  di  cachenya,  jika  tidak  ada akan mengambil langsung dari server aslinya (reverse proxy).

b. Proxy  caching-server  agar  seluruh  user  dalam  jaringan  kita  dapat menggunakan squid untuk mengakses internet.
Sebagai  proxy  cache  server, kita dapat mengontrol secara keseluruhan  kinerja jaringan kita dan memberlakukan beberapa aturan dalam memberikan data yang dapat dilihat, diakses atau didownload. Kita juga dapat mengontrol penggunaan bandwith, waktu koneksi dan sebagainya.

III. Parent dan Sibling pada squid

Dalam squid dikenal istilah parent dan sibling. Parent akan mengambil langsung ke web site yang diminta, sedangkan sibling akan mencarinya dulu ke parent. Bila tidak ada, maka sibling mencarinya langsung ke web site yang bersangkutan. Sebuah proxy cache dapat dikonfigurasikan untuk berjalan standalone server atau sebagai hierarki  cache dengan  dengan proxy-proxy  lainnya, yang akan kita bahas lebih lanjut berikut ini.

Standalone server, tanpa parent dan sibling
Ini  merupakan  konfigurasi  yang  paling  sederhana yang biasa  dipakai  oleh ISP (Internet  Service  Provider) dan warung internet  dimana  squid  server local akan langsung mencari ke web server www.detik.com untuk memenuhi permintaan client bila data tidak terdapat di cache.

Sibling tanpa parent

Biasanya konfigurasi ini dipakai untuk jaringan yang tidak terlalu besar. Permintaan oleh klien pada suatu URL akan  diterima lokal  yang  akan mencarinya ke sibling, bila tidak ada, lokal akan langsung  mencarinya  langsung ke webserver yang bersangkutan.

Parent dan Sibling
Biasanya konfigurasi  ini diterapkan untuk  jaringan yang besar. Efisiensi  jaringan  ini cukup baik, karena yang bekerja untuk mendapatkan halaman web keluar  jaringan hanyalah parent sisanya sibling dan para client  tidak dapat memperolehnya secara langsung (dengan  firewall). Klien yang meminta halaman web www.detik.com akan diterima squid server lokal yang kemudian akan memeriksa cachenya, bila tidak ada dia akan mencari ke sibling, bila ada sibling akan memberikannya ke  lokal, namun bila  tidak  ada  lokal  akan  meminta  ke  parent.  Sebagai  parent  ia  harus  melayani permintaan  ini.  Walaupun  ia  tidak  memiliki  halaman  yang  diminta, ia harus memenuhinya  dengan  mengambil  langsungke  www.detik.com. Setelah  itu permintaan dikembalikan ke lokal dan akhirnya ke klien.

Hierarki Squid
Server proxy dapat dihubungkan dengan  server-server proxy lain  dan membentuk hierarki seperti pada sebuah organisasi. Jika server proxy bergabung dalam sebuah hierarki, sebuah  server proxy bisa memilih  untuk  mengambil dokumen yang diinginkan  dari server proxy lain  dalam  hierarki atau mengambil  dari  server  asal. Hierarki ini terdiri dari cache pada  tingkat nasional, regional, dan organisasi. Dalam prototipe  ini cache pada  tingkat nasional melayani permintaan akses untuk domain negara  tersebut.  Misalnya  terdapat  permintaan  dokumen  dari  URL http://www.republika.co.id  yang  berada  di  bawah  domain  id  (Indonesia),  maka dokumen tersebut diminta dari cache tingkat nasional di Indonesia. 



Prototipe Hierarki cache

IV. Squid di Centos 5.2

Pada tutorial kali ini kita akan menggunakan squid bawaan dari distro Centos 5.2. Untuk melihat apakah di dalam sistem kita sudah ada squid bawaan, maka bisa dilihat dengan cara sebagai berikut:
# rpm -qa | grep squid
Dan squid bawaan untuk centos 5.2 adalah squid-2.6.STABLE6-5.el5_1.3.

Kalau ternyata paket squid belum terinstal dalam sistem kita, maka silahkan download di sini. Misal kita sudah mendownload squid versi 2.7 dan ingin memasukkannya ke dalam sistem kita. Maka, urutan langkah-langkahnya adalah sebagai berikut:

1. Ekstrak Paket Squid
# tar -zxvf squid-2.7.STABLE6.tar.gz 

2. Membuat User Squid
# useradd –d /cache/ -r –s /dev/null squid >/dev/null 2>&1  
# mkdir /cache 
# chown –R squid.squid /cache/ 
3. Instalasi Squid
# cd squid-2.7.STABLE6  
# ./configure  --prefix=/usr/local/squid 
# make  
# make install  
Atau cara lebih mudahnya kita menggunakan yum dengan mengetikkan:
# yum install squid
Dan perlu diperhatikan juga bahwa jika kita menggunakan squid bawaan distro, maka kita juga harus melakukan langkah-langkah sebagai berikut:
# mkdir /cache 
# chown -R squid.squid /cache 

V. Konfigurasi Squid

Setelah proses instalasi selesai, langkah selanjutnya adalah mengkonfigurasi squid. Dan perlu diketahui bahwa ada perbedaan lokasi direktori file konfigurasi squid. Jika kita menggunakan squid bawaan distro (dalam hal ini Centos 5.2) maka file direktorinya terletak di /etc/squid, sedangkan file direktori konfigurasi squid hasil instalasi maka file tersebut berada di /usr/local/squid/etc. Karena tutorial ini menggunakan squid bawaan centos, maka silahkan buka file tersebut di /etc/squid.
# cd /etc/squid 
Kemudian buat duplikat dari file squid.conf dengan cara:
# cp squid.conf squid.conf.ori
Setelah itu, untuk melihat konfigurasi squid, ketikkan:
# vi squid.conf
Di dalam file squid.conf banyak opsi-opsi yang bisa digunakan sesuai dengan kebutuhan. Namun, pada umumnya orang-orang yang menggunakan squid lebih menitikberatkan pada opsi kendali akses (Access List) dan http_access serta membiarkan default opsi-opsi lainnya.Opsi  kendali akses pada squid digunakan untuk mengatur akses pada server proxy. Pola kendali akses yang diberlakukan pada squid cukup lengkap. Akses internet yang dilakukan user dapat dibatasi dengan acl (access control list). Masing-masing acl mendefinisikan suatu tipe aktivitas tertentu, seperti waktu akses atau jaringan asal kemudian dihubungkan dengan pernyataan http_access yang memberitahu pada squid apakah akses diijinkan atau tidak.

Format penulisan acl adalah sebagai berikut:
acl nama_acl tipe_acl string1 ...
acl nama_acl tipe_acl "file" ...

Nama acl dapat diberikan sembarang sesuai dengan macam akses yang akan dikendalikan. Tipe acl yang dapat digunakan beserta parameter yang mengikuti dan keterangannya dapat dilihat pada tabel di bawah ini:


Tipe Acl
Argumen
Keterangan
src
IP/netmask
Asal alamat IP Klien
IP1-IP2
Rentang alamat IP
dst
IP/netmask
Tujuan IP URL
myip ip/netmask
Socket alamat ip lokal
srcdomain
nama_domain
Asal Domain Klien
dstdomain
nama_domain
Tujuan Domain URL
srcdom_regex [-i] xxx … Pernyataan untuk asal klien
dstdom_regex [-i] xxx … Pernyataan untuk tujuan server
time [hari] [h1:m1-h2:m2] ...
Singkatan nama hari
S – Sunday
M – Monday
T – Tuesday
W – Wednesday
H – Thursday

F – Friday
A - Saturday
url_regex [-i] ^http:// ...
Pernyataan nama URL lengkap
urlpath_regex [-i] \.gif$ ...
Pernyataan path pada URL
port Port ...
Nomor port
Port1-port2 ...
Rentang nomor port
myport Port … Port socket TCP local
proto Protocol ...
Nama protocol yang dikendalikan (HTTP, FTP, dll)
method Metode … Nama metode yang dikendalikan (GET,POST,dll)
browser [-i] regexp ...
Pernyataan untuk pola pencocokan pada header permintaan
ident Username … Daftar username
ident_regex [-i] pola … Pernyataan untuk username
src_as Angka … Angka asal autonomi asal klien
dst as Angka … Angka system autonomi tujuan server
proxy_auth Username … Autentifikasi username melalui proses eksternal
proxy_auth_regex [-i] pattern … Autentifikasi username melalui proses eksternal
snmp_community String … Nama komunitas untuk membatasi agen SNMP
maxconn Jumlah Jumlah maximum koneksi HTTP untuk satu alamat IP
req_mime_type Type_mime1 … Pernyataan berdasarkan tipe MIME yang diminta klien


VI. Contoh-Contoh Konfigurasi Squid

Untuk mengkonfigurasi squid, kita harus masuk ke file squid.conf yang berada di /etc/squid.

A. Agar seluruh user bisa internet
acl dwinetwork src 192.168.0.0/24
http_access allow dwinetwork

B. Agar salah satu user tidak bisa internet

acl test src 192.168.0.190/32
http_access deny test
 
C. Agar user tidak bisa mengkases beberapa domain
 acl test src 192.168.0.190/32
acl restdomain dstdomain "/etc/squid/list/domain.txt"
http_access deny restdomain test

Setelah itu, membuat file domain.txt yang berisi nama-nama domain yang terlarang untuk dikunjungi di direktori /etc/squid/list. Misalnya seperti berikut ini:

.okezone.com
.detik.com 
.yahoo.com
D. Agar user tidak bisa mencari kata-kata tertentu di Search engine seperti Google
 acl test src 192.168.0.190/32
acl restkata url_regex -i "/etc/squid/list/kata.txt"
http_access deny restkata test

Setelah itu, membuat file kata.txt yang berisi kata-kata yang terlarang untuk dicari dimesin search engine
di direktori /etc/squid/list. Misalnya berisi:

proxy
sex 
naked
E. Agar user tidak bisa berkunjung ke situs tertentu dengan menggunakan IP
 acl test src 192.168.0.190/32
acl restip dst "/etc/squid/list/ip.txt"
http_access deny restip test

Setelah itu, membuat file ip.txt yang berisi ip-ip yang terlarang untuk dikunjungi di direktori /etc/squid/list. Misalnya berisi:

66.55.141.20/32 
64.38.255.172/32 
216.34.131.135/32
70.84.171.179/32
F. Agar semua komputer dibatasi jumlah downloadnya maksimal 2 MB (2000 x 1024 byte = 2048000 byte) yang berlaku dari jam 8 sampai jam 17.30 pada hari kerja
acl nodownload time M-F 08.00-17.30  
acl ekstensi url_regex -i ftp .exe .mp3 .tar.gz .gz .tar.bz2 .bz2 
acl ekstensi url_regex -i ftp .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso 
reply_body_max_size 2048000 allow ekstensi nodownload
UPDATE
Setelah saya memasukkan rule di atas, terlihat bahwa download file lebih dari 2 MB masih bisa walaupun pada jam 08:00-17.30, kemudian saya coba mengkonfigurasi rule diatas menjadi:
reply_body_max_size 2048000 allow ekstensi nodownload
Dan setelah squid di reload, maka tidak ada lagi yang bisa mendownload file lebih dari 2 MB pada jam 08:00-17:30.

G. Menggabungkan seluruh rule-rule pada satu squid
Pada point a-f, sudah dijelaskan tentang bagaimana caranya agar sebuah rule dibuat di proxy. Namun pertanyaan yang muncul adalah bagaimana jika kita ingin menggabungkan seluruh rule tersebut? Misalnya kita ingin rule seperti berikut:
- Beberapa website diblok saat jam kerja (08:00-12:00 dan 13:30-17:00)
- Website tertentu hanya diblok untuk IP tertentu saja
- Menolak website yang mengandung kata kunci

Berikut adalah settingan rule di file squid.conf:
acl morning_hours time M T W H F 8:00-12:00
acl evening_hours time M T W H F 13:30-18:00

acl deniedDomains url_regex src "/etc/squid/deniedDomains"
acl blacklistIP src "/etc/squid/blacklistIP"

http_access deny deniedDomains morning_hours blacklistIP
http_access deny deniedDomains evening_hours blacklistIP

acl myNetwork src "/etc/squid/acl"
http_access allow myNetwork

# vi /etc/squid/deniedDomains
friendster
metacafe
myspace
youtube
facebook

# vi /etc/squid/blacklistIP
192.168.1.54
192.168.1.221
192.168.1.236
172.16.70.5

# vi /etc/squid/acl
192.168.1.0/24
172.16.70.0/24

Setelah itu restart squid dan seharusnya rule-rule tersebut bisa teraplikasi di jaringan kita.

VII. Sesudah Konfigurasi Squid

Setelah semua konfigurasi yang diperlukan diatur sesuai dengan yang diinginkan, program squid dapat dijalankan. Squid server proxy dapat dijalankan secara mudah dengan perintah squid disertai beberapa opsi yang diperlukan. Sintaks perintah dan opsi yang dapat digunkan untuk menjalankan squid adalah sebagai berikut:

# Squid [-dhsvzCDFNRVYX] [-f konfig] [-[au] port] [-k signal]
Keterangan:
-a: menentukan nomor port akses HTTP (default:3128)
-d: menulis debugging ke suatu stderr
-f: menggunakan file konfigurasi selain default /etc/squid/squid.conf
-h: mencetak pesan help
-k: member isyarat untuk menjalankan squid. Isyarat yang diperbolehkan adalah reconfigure, rotate, shutdown, interrupt, kill, debug, check dan parse
-s: membuat enable logging ke syslog
-u: menentukan nomor port ICP (defaulr:3130), dapat dibuat disable dengan 0
-v: menampilkan verbose
-z: membuat direktori swap cache
-C: membuat disabled test DNS awal
-F: tidak melayani permintaan sampai simpanan terbentuk
-N: menjalankan squid tidak menggunakan daemon
-R: tidak mengatur REUSERADDR pada port
-S: dua kali memeriksa cache selama pembentukan
-V: menjalankan virtual host httpd-accelerator
-x: melakukan debugging penuh
-Y: Hanya return UDP_HIT atau UDP_MISS_NOFETCH selama reload cepat

Sebelum dijalankan untuk pertama kali, squid harus membentuk direktori untuk menyimpan cache. Direktori sesuai dengan yang diatur pada file squid.conf menggunakan opsi cache_dir yang secara default adalah /var/spool/squid. Untuk membentuk cache digunakan perintah squid diikuti opsi –z sebagai berikut:
# squid –z
Jika direktori cache sudah terbentuk, selanjutnya squid cukup dijalankan tanpa membentuk cache baru. Biasanya squid dijalankan sebagai daemon, sehingga untuk menjalankan squid digunakan perintah berikut ini:
# squid –D
Opsi –D digunakan agar squid tidak memeriksa DNS. Opsi ini diberikan karena proses memeriksa DNS biasanya memerlukan waktu yang agak lama.
Untuk menyalakan squid, tuliskan perintah berikut:
# service squid start
Untuk merestart squid, tuliskan perintah berikut:
# service squid restart
Jika kita merubah sesuatu di file squid.conf, lalu kita mau mengaplikasikannya di sitem kita, maka pada umumnya kita menggunakan perintah service squid restart. Namun, kalau kita menggunakan perintah ini, maka squid akan dimatikan terlebih dahulu baru kemudian dinyalakan kembali dan ini bisa mengganggu aktifitas yang melibatkan squid. Sebagai penggantinya, maka gunakan perintah berikut:
# squid –k reconfigure

VII. Troubleshooting

1. Error $SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
Setelah kita mengkonfigurasi squid untuk pertama kalinya, biasanya akan ada error seperti berikut pada saat kita start squid:

Starting squid: /etc/init.d/squid: line 42: 17137 Aborted
$SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
dan akan terlihat gambar seperti berikut:



Setelah di cari penyebabnya di file /var/log/message, ternyata penyebabnya adalah tidak adanya visible_hostname.



Solusinya adalah menambahkan visible_hostname di file konfigurasi squid. Masuk ke file /etc/squid/squid.conf, lalu cari bagian visible_hostname dan tambahkan visible_hostname di bagian tersebut. Di squid penulis, penulis menambahkan visible_hostname sebagai berikut:
visible_hostname proxy.catatanlepas.com
Setelah itu, start kembali squidnya dan seharusnya squid sudah bisa berjalan dengan baik.

2. Error squid: ERROR: No running copy
Penulis juga pernah mengalami error seperti berikut:
# squid -k reconfigure
squid: ERROR: No running copy

Setelah mencari di google, maka penulis mengecek di /var/log/messages dan ada log sebagai berikut:
# tail -f /var/log/messages
Feb 24 10:34:07 backup squid[18208]: Squid Parent: child process 18217 started
Feb 24 10:34:08 backup squid[18217]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:08 backup squid[18208]: Squid Parent: child process 18217 exited due to signal 6
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 started
Feb 24 10:34:11 backup squid[18220]: storeUfsDirOpenSwapLog: Failed to open swap log.
Feb 24 10:34:11 backup squid[18208]: Squid Parent: child process 18220 exited due to signal 6

Hal ini karena adanya perubahan kepemilikan file swap.state di folder /var/spool/squid seperti yang ada di bawah ini:
-rw-r-----   1 root  squid   69504 Feb 24 10:16 swap.state
kemudian ubah kepemilikan menjadi
# chown squid /var/spool/squid/swap.state
kemudian start squid dengan cara:
# service squid start
dan seharusnya squid kembali normal.

Referensi

Jaringan Komputer Teori dan Implementasi Berbasis Linux, Wagito
http://www.systmbx.com/
www.Ilmukomputer.org
http://adimaulana.wordpress.com/
http://rantsa.wordpress.com/
Dari Berbagai Sumber

Sabtu, 14 Januari 2012

TUTORIAL SQUID UNTUK WINDOWS

Squid adalah sebuah daemon yang digunakan sebagai proxy server dan web cache. Squid memiliki banyak jenis penggunaan, mulai dari mempercepat server web dengan melakukan caching permintaan yang berulang-ulang, caching DNS, caching situs web, dan caching pencarian komputer di dalam jaringan untuk sekelompok komputer yang menggunakan sumber daya jaringan yang sama, hingga pada membantu keamanan dengan cara melakukan penyaringan (filter) lalu lintas. Meskipun seringnya digunakan untuk protokol HTTP dan FTP, Squid juga menawarkan dukungan terbatas untuk beberapa protokol lainnya termasuk Transport Layer Security (TLS), Secure Socket Layer (SSL), Internet Gopher, dan HTTPS. Versi Squid 3.1 mencakup dukungan protokol IPv6 dan Internet Content Adaptation Protocol (ICAP).

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. Pekerjaan selanjutnya dilakukan hingga selesai di University of California, San Diego dan didanai melalui National Science Foundation. Squid kini hampir secara eksklusif dikembangkan dengan cara usaha sukarela.

Squid umumnya didesain untuk berjalan di atas sistem operasi mirip UNIX, meski Squid juga bisa berjalan di atas sistem operasi Windows. Karena dirilis di bawah lisensi GNU General Public License, maka Squid merupakan perangkat lunak bebas.



CARA KERJA SQUID PROXY
Tiap kita mengakses situs sebenarnya yang kita lakukan adalah mendownload semua data berupa tulisan, link, teks, gambar dan file lain dalam halaman tersebut. Dalam proses standar, semua file ini akan disimpan dalam file temporer browser. Namun pada prakteknya, tiap kita membuka halaman yang sama, kita tetap mendownload file yang sama, berulang kali. Anggap saja suatu halaman web berukuran total 500KB, maka jika kita membuka halaman tersebut sepuluh kali dalam sehari maka kita akan menggunakan bandwith sebesar 500KB x 10 = 5MB!

Proxy atau juga yang disebut Squid sebenarnya adalah program yang dikembangkan dalam dunia Linux yang bekerja efektif mengelola file temporer. Saya menemukan SquidNT yang dikembangkan dari versi linuxnya oleh Guido Serassio. Cara kerjanya sama dengan Squid di Linux, yakni dengan otomatis menyimpan semua file yang kita download saat mengakses situs di dalam satu file temporer yang disebut cache. Di sana semua konten, alamat, teks, gambar dan halaman web disimpan. Pada saat kita mengakses situs untuk pertama kali, squid akan secara otomatis menyimpannya dan membuat link bayangan agar saat halaman yang sama dibuka untuk kedua kali, browser tidak langsung mendownload dari situs aslinya. Melainkan mendownload dari cache squid yang notabene ada di PC/LAN. Sehingga halaman web akan lebih cepat terbuka. Jika kita sering membuka halaman yang sama, prosesnya akan jauh lebih cepat saat kedua kali dan seterusnya..

Sekarang kita lihat, berapa perhitungan bandwithnya. Suatu halaman sebesar 500KB, berisi halaman web sederhana dan berbagai gambar. Squid hanya akan mendownload kode HTML nya saja dan menyaring semua informasi yang ada di dalamnya. Jika dalam screening ini semua data pendukung (gambar, skrip, file) sudah ada di cache, bandwith Anda tidak akan lebih besar dari 100Kb bahkan lebih kecil lagi. Anggap saja kita lakukan refresh selama 10 kali maka hasil yang didapat adalah: 100KB x 10 = 2MB saja. Anda bisa menghemat bandwith menjadi 1/5 bahkan lebih kecil lagi!
Itulah mengapa, dulu saya tetep bisa maen Travian dengan lancar, meski cuman pake GPRS dengan kecepatan 152kbps.. hehehe.

INSTALASI DAN SETTING SQUID
Untuk memulai instalasi, silakan download dulu SquidNT. Anda bisa mendapatkan SquidNT ini di sini atau dari situs Acme Conlsulting langsung. Jika Anda berencana menggunakan squid untuk Windows Server, silakan tunggu artikel berikutnya yang akan membahas hal tersebut secara lebih detail.


Selanjutnya langkah instalasi:
1. Ekstrak file Squid-2.7STABLE7.bin yang telah Anda download. Saya sarankan Anda ekstrak ke c:\squid\ untuk lebih mempermudah Anda mengikuti tutorial ini.
2. Lihat dan perhatikan isi folder c:\squid\etc\. Disana ada beberapa file konfigurasi default squid sebagai berikut:
- cachemgr.conf.default
- mime.conf.default
- squid.conf.default
- squid_radius_auth.conf.default
Yang perlu Anda lakukan adalah, me-rename keempat tersebut menjadi:
- cachemgr.conf
- mime.conf
- squid.conf
- squid_radius_auth.conf
3. Buka file squid.conf dengan editor teks. Anda bisa gunakan Notepad, Wordpad atau program pihak ketiga seperti Notepad++. Temukan tulisan TAG: http_port. Pastikan di bagian bawah TAG ini sudah ada tulisan http_port 3128 sehingga tampak seperti berikut:
# TAG: http_port
# Usage: port [options]
# hostname:port [options]

# If you run Squid on a dual-homed machine with an internal
# and an external interface we recommend you to specify the
# internal address:port in http_port. This way Squid will only be
# visible on the internal address.
#
# Squid normally listens to port 3128
http_port 3128
4. Temukan TAG: visible_hostname, tambahkan tulisan visible_hostname localhost di bagian bawah tag ini. Anda boleh menghapus tulisan # none. sehingga tampak seperti berikut:
# TAG: visible_hostname
# If you want to present a special hostname in error messages, etc,
# define this. Otherwise, the return value of gethostname()
# will be used. If you have multiple caches in a cluster and
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
visible_hostname localhost
5. Temukan http_access allow localnet. Tambahkan http_access allow localhost di bawahnya menjadi:
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
6. Temukan TAG: dns_nameservers, pada tulisan dns_nameservers. Pada bagian bawah tag ini, isi dengan alamat DNS dari ISP yang Anda gunakan dengan format dns_nameservers [primary DNS] [secondary DNS]. Dalam hal ini saya menggunakan ISP speedy Wilayah Jatim maka akan tampak sebagai berikut:
# TAG: dns_nameservers
# Use this if you want to specify a list of DNS name servers
# (IP addresses) to use instead of those given in your
# /etc/resolv.conf file.
# On Windows platforms, if no value is specified here or in
# the /etc/resolv.conf file, the list of DNS name servers are
# taken from the Windows registry, both static and dynamic DHCP
# configurations are supported.
#
# Example: dns_nameservers 10.0.0.1 192.172.0.4
#
#Default:
dns_nameservers 202.134.1.10 203.130.208.18
Anda bisa temukan DNS yang lebih tepat untuk koneksi Anda dengan mencoba alamat DNS dari koleksi Server DNS Guntingbatukertas.
Akhiri dengan menyimpan file squid.conf tersebut.
7. Buka Start > Run > Ketik CMD [Enter]. Dalam Command Prompt, ketik baris perintah berikut:
c:\squid\sbin\squid.exe -z [Enter]
Jika muncul pesan popup Windows Security Alert seperti gambar di bawah, pilih Unblock untuk memberi akses kepada instalasi Squid Proxy.
8. Selanjutnya, ketik perintah berikut:
c:\squid\sbin>squid.exe -d l -D [Enter]
Tunggu beberapa saat kemudian tekan CTRL + C.
9. Ketik perintah berikut:
c:\squid\sbin>squid.exe -i [Enter]
c:\squid\sbin\squid.exe -O -D [Enter]
Setelah mengetik keempat baris perintah di atas, layar Command Prompt Anda seharusnya akan tampak seperti berikut ini:
10. Jalankan Service Panel  melalui Control Panel > Administrative Tools > Services. atau
Start > Run > ketik Services.msc [Enter]
Temukan service bernama Squid > Klik link Start di panel sebelah kiri untuk menjalankan Squid.
11. Selanjutnya, Ubah setting Browser Anda. Arahkan proxy pada browser anda ke alamat localhost dengan port 3128. Untuk Firefox, langkah setting nya tampak seperti berikut:
Secara default Squid akan menjalankan proses sendiri tiap kali PC melakukan restart. Cache squid ini disimpan dalam folder c:\squid\var\cache. Untuk melihat log file squid proxy, Anda bisa mengetikkan:
more c:\squid\var\logs\access.log [Enter]

UNINSTALL
Jika Anda ingin menghapus squid, ketikkan perintah berikut di Command Prompt.
c:\squid\sbin>squid -r -n squid [Enter]
Selesai. Gampang bukan?
BONUS: CARA MUDAH INSTALASI
Bagi Anda yang nggak mau pusing-pusing dengan setting di atas, saya sudah sediakan Squid Proxy di atas yang sudah saya konfigurasi lengkap. Anda tinggal meng-ekstrak, dobel klik file konfigurasi, setting browser dan Voila! Kecepatan akses Anda sekarang jadi beberapa kali lebih cepat.


Password: guntingbatukertas.com

Keterangan:
Dalam file konfigurasi default (squid.conf) Squid siap pakai di atas saya menggunakan dns dari Google. Dengan setting tersebut seharusnya Anda sudah bisa langsung online tanpa melakukan perubahan apapun.
Tapi sekedar untuk backup, saya sudah menyertakan beberapa DNS lain seperti DNS Speedy dan OpenDNS. Jika perlu, silakan pilih sesuai keinginan. Dalam hal ini yang perlu Anda lakukan adalah membuka file squid.conf di \squid\etc\ dan temukan bagian berikut:
….
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS Speedy Jatim dan Jateng
#dns_nameservers 202.134.1.10 203.130.208.18
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS Speedy Jakarta – Jateng
#dns_nameservers 202.134.0.155 203.130.208.18
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS OpenDNS
#dns_nameservers 208.67.222.222 208.67.220.220
# Tambah tanda (#) di depan baris berikut jika Anda TIDAK ingin menggunakan DNS Google
dns_nameservers 8.8.8.8 8.8.4.4
…..
Perhatikan, dari baris di atas, hanya satu baris dns_nameservers yang tidak didahului tanda comment (tanda #). Yakni di depan dns_nameservers punya Google. Itulah setting yang sedang aktif/digunakan. Untuk memilih setting dns yang lain Anda tinggal memberi comment (tanda #) di depan dns_nameservers yang sedang aktif dan menghapus dns_nameservers lain yang Anda inginkan. Ingat, Anda hanya diperbolehkan memlih dns_nameservers yang aktif.
Misalnya saya pengen pake OpenDNS, maka setting diatas perlu saya ubah menjadi:
….
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS Speedy Jatim dan Jateng
#dns_nameservers 202.134.1.10 203.130.208.18
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS Speedy Jakarta – Jateng
#dns_nameservers 202.134.0.155 203.130.208.18
# Hapus tanda (#) di depan baris berikut jika Anda ingin menggunakan DNS OpenDNS
dns_nameservers 208.67.222.222 208.67.220.220
# Tambah tanda (#) di depan baris berikut jika Anda TIDAK ingin menggunakan DNS Google
#dns_nameservers 8.8.8.8 8.8.4.4
…..
Simpan, dan setting Anda yang baru siap dicoba!
Semoga bermakna dan bermanfaat