25 February 2014

Instalasi Squid Lusca Proxy di Ubuntu Server 12.04 LTS


Ada beberapa artikel yang pernah saya baca yang membahas tentang cara instalasi Squid Lusca di Ubuntu, baik itu untuk versi 12.04 maupun untuk versi Ubuntu sebelum-sebelumnya. Tapi dari beberapa artikel tersebut, kebanyakan kurang jelas step by step instalasinya. Ada juga yang kurang mantap performanya, bahkan ada yang tidak bisa HIT sama sekali!

Satu-satunya tutorial yang membahas secara gamblang dan lengkap sekali petunjuk step by stepnya hanyalah di trit yang ada di forum Ubuntu-indonesia.com ini. Oleh karena itu, berdasarkan sumber dari trit tersebut, saya akan mencoba menuliskannya kembali disini dengan step by step yang insyaAllah lebih saya perjelas lagi. Tujuannya tentu agar semua orang bisa mencoba membuat Squid Lusca ini dengan mudah dan benar. :)

Yang Harus Disiapkan
  1. Memiliki pengetahuan dasar tentang jaringan dan Linux. Setidaknya kalian sudah harus paham betul konsep jaringan TCP/IP seperti ip address, subnet mask, dll. Selain itu kalian juga harus sudah paham cara pengkonfigurasian jaringan di Ubuntu, seperti mengganti ip address, gateway, dan dns. Silahkan download ebook saya disini untuk pembahasan mengenai cara-cara konfigurasi jaringan dasar di Ubuntu Server 12.04 LTS.
  2. Memiliki pengetahuan tentang perintah-perintah dasar di Linux, seperti cp, mv, mkdir, chown, chmod, dan vim atau nano. Bisa kalian cari di google ebook-ebook yang membahas mengenai perintah dasar terminal di Linux.
  3. Memiliki pengetahuan tentang cara instalasi Ubuntu Server 12.04 LTS. Silahkan download ebook saya disini untuk pembahasan mengenai cara instalasi Ubuntu Server 12.04 LTS.
  4. Memiliki Harddisk paling minimal 2 buah. Karena wajib hukumnya untuk memisahkan antara harddisk untuk sistem dan harddisk untuk penyimpanan cache. Tujuannya agar performa si Squid bisa mencapai kemampuan tertinggi. 
  5. 1 buah kartu jaringan. Boleh menggunakan kartu jaringan yang onboard kok.

Spesifikasi Komputer Saya

Spek komputer berikut merupakan spek komputer yang saya gunakan di Virtualbox untuk keperluan praktek pembuatan Proxy pada artikel ini. Konsepnya sama saja, silahkan disesuaikan dengan spesifikasi komputer yang kalian punya.

1. Processor : Intel Core i3
2. Ram : 2 GB
3. HDD :
  • HDD1 : 8 GB --> Untuk sistem
  • HDD 2 : 20 GB --> Untuk penyimpanan cache
4. 1 buah kartu jaringan onboard.

Instalasi Ubuntu Server 12.04 LTS dan Pemartisian

Proses instalasi Ubuntu Server 12.04 LTS untuk keperluan Proxy server notabene sama saja dengan cara instalasi Ubuntu Server yang saya tulis di ebook saya. Jadi silahkan kalian ikuti saja step-by-step yang ada disitu. Letak perbedaannya hanya terdapat pada bagian pemartisian harddisk. Kalau di ebook saya menggunakan metode Guided, maka khusus untuk pembuatan Proxy, kita harus mempartisi Harddisk kita secara manual. Berikut adalah langkah-langkahnya :

1. Saat muncul bagian Partition Method, pilih Manual.


2. Kemudian akan terlihat ada dua buah harddisk disitu beserta ukurannya. HDD1 yang berukuran 8 GB akan saya bagi untuk Swap Area sebesar 2GB dan sisanya untuk sistem /. Ukuran Swap Area idealnya adalah 2x RAM. Namun apabila RAM kalian sudah 2GB keatas, maka sebaiknya ukuran Swap Area kalian buat sebesar 2GB saja. Karena nanti mubazir si Swap Areanya jarang terpakai sebab ukuran RAM kalian sudah cukup besar. 

Tekan Enter pada HDD1. Apabila Harddisk kalian adalah Harddisk baru, maka ketika kalian tekan Enter, akan muncul pertanyaan seperti berikut. Pilih Yes.


Setelah itu akan terlihat Free Space dari HDD1. Tekan Enter pada Free Space tersebut.


Pilih Create New Partition.


Ketikkan ukuran partisi yang ingin kalian buat. Karena disini saya ingin membuat Swap Area terlebih dahulu, maka ketik saja 2 GB. Lalu tekan Enter.


Untuk tipe partisinya, pilih saja Primary.


Pilih Beginning apabila muncul pertanyaan seperti ini.


Ganti bagian Use As menjadi Swap Area. Jika sudah pilih Done Setting Up New Partition.


Lakukan hal yang sama untuk membuat partisi /. Bedanya adalah pada bagian Partition Settings, kalian pilih Use As : Ext4 journaling file system, dan Mount point : /. Jika sudah pilih Done Setting Up New Partition.

Untuk harddisk yang kedua pun caranya sama seperti diatas. Perbedaannya pada bagian Partition Settings, kalian pilih Use As : ReiserFS journaling file system, Mount point > Enter Manually > /proxy. Jika sudah pilih Done Setting Up New Partition.


Jika kalian melakukannya dengan benar, maka tampilannya kira-kira akan seperti berikut. Setelah itu tekan Enter pada Finish partitioning and write changes to disk.


Terakhir pilih Yes.


Instalasi Squid Lusca

1. Pertama-tama pastikan bahwa si Proxy kalian ini sudah bisa terkoneksi ke internet. Silahkan diatur saja settingan gateway dan dns sesuai dengan skema jaringan milik kalian. Kalau topologi jaringan saya adalah sebagai berikut :

internet --------------------------------(10.0.0.2)mikrotik(192.168.1.1)--(192.168.1.2-192.168.1.100) client
(192.168.0.1)
|
|
(192.168.0.2)
 proxy

2. Aktifkan user root agar nanti tidak terlalu ribet menggunakan sudo di setiap perintah yang kalian lakukan. Langkah ini sebenarnya opsional saja, karena walaupun tidak mengaktifkan user root, kalian masih bisa melakukan semua langkah-langkah instalasi Squid Lusca-nya.

Untuk mengaktifkan user root silahkan eksekusi perintah berikut :

$ sudo -i
# passwd

Lalu masukkan password baru untuk user root.

3. Langkah kedua, kalian perlu menaikkan jumlah maksimal file descriptor yang bisa dibaca oleh sistem. Ini sangat diperlukan apabila ukuran cache kalian sudah diatas 100GB, karena semakin besar ukuran cache, maka semakin besar pula kebutuhan file descriptornya.

Untuk menaikkan file descriptor, eksekusi perintah berikut :

# nano /etc/security/limits.conf

Pada bagian paling bawah file tersebut tambahkan script ini :

root - nofile 65535

Setelah itu restart komputer :

# reboot

Setelah komputer direstart, pastikan bahwa efeknya sudah berjalan :

# ulimit -a | grep 'open files'
open files   (-n) 65535

4. Selanjutnya kita harus menambahkan modul ip_conntrack agar performa squid semakin baik :

# nano /etc/modules

Pada baris paling bawah tambahkan :

ip_conntrack

Simpan jika sudah.

5. Langkah berikutnya adalah menginstall paket-paket yang diperlukan untuk menginstall Lusca :

# apt-get update
# apt-get install apache2 php5 squid squidclient squid-cgi gcc build-essential sharutils ccze libzip-dev automake1.9 libfile-readbackwards-perl -y

6. Setelah itu download juga paket Luscanya :

# wget http://backcode.googlecode.com/files/LUSCA_HEAD-r14809-patch.tar.bz2

7. Setelah proses download selesai, ekstraklah file tersebut :

# tar -xvjf LUSCA_HEAD-r14809-patch.tar.bz2

8. Sekarang baru kita masuk ke dalam tahap pengkompilan. Sebelum itu, kalian harus mengetahui terlebih dahulu kode CFLAGS dari tipe prosesor kalian. Karena kode CFLAGS ini kita perlukan untuk proses pengkompilan.

Ketahui terlebih dahulu tipe prosesor kalian dengan mengetikkan perintah berikut :

# cat /proc/cpuinfo

Perhatikan bagian yang kira-kira ada seperti ininya :

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Core(TM) i3 CPU       M 380  @ 2.53GHz

Setelah kalian mengetahui tipe prosesor kalian, baru cari CFLAGS nya dari web ini http://wiki.gentoo.org/wiki/Safe_CFLAGS atau web ini http://gentoo-en.vfose.ru/wiki/Safe_Cflags/Intel#Core_i7_and_Core_i5.2C_Xeon_55xx khusus untuk intel Xeon.



Dari situ kalian bisa dapatkan kode yang kira-kira seperti ini (yang ini merupakan CFLAGS untuk Processor Intel Core i3) :

CHOST="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=core2 -msse4 -mcx16 -mpopcnt -msahf -fomit-frame-pointer" CXXFLAGS="${CFLAGS}"

Silahkan kalian kopi, lalu simpan baik-baik. Kode ini akan kita perlukan untuk langkah selanjutnya.

9. Yuk kita mulai proses kompilnya :

# cd LUSCA_HEAD-r14809
# make clean
# CHOST="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=core2 -msse4 -mcx16 -mpopcnt -msahf -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" \
./configure -prefix=/usr -exec-prefix=/usr -bindir=/usr/sbin -sbindir=/usr/sbin \
-libexecdir=/usr/lib/squid -sysconfdir=/etc/squid -localstatedir=/var/spool/squid \
-datadir=/usr/share/squid --enable-gnuregex --enable-async-io=24 --with-aufs-threads=24 \
--with-pthreads --with-aio --with-dl --enable-storeio=aufs,null \
--enable-removal-policies=heap --enable-icmp --enable-delay-pools --disable-wccp \
--enable-snmp --enable-cache-digests --enable-default-err-language=English \
--enable-err-languages=English --enable-linux-netfilter --disable-ident-lookups \
--with-maxfd=65535 --enable-follow-x-forwarded-for --enable-large-cache-files \
--with-large-files --enable-referer-log
# make
# make install

nb : pada script yang saya tandai merah, kalian ganti dengan kode CFLAGS milik kalian masing-masing.

Jika tidak ada pesan error, maka sampai tahap ini squid lusca kalian sudah berhasil terinstall.

10. Selanjutnya kalian harus mengganti hak akses partisi penyimpanan cache kalian agar menjadi kepemilikan user proxy dan grup proxy :

# chown -R proxy.proxy /proxy
# chmod -R 777 /proxy

11. Buat juga direktori untuk penyimpanan file log dari si Squid :

# mkdir /var/log/squid

Jangan lupa ganti kepemilikannya menjadi milik user proxy dan grup proxy juga :

# chown -R proxy.proxy /var/log/squid

12. Untuk file-file konfigurasi milik squidnya, saya sudah menyiapkannya untuk kalian. File-file konfigurasi ini saya dapatkan dari trit ubuntu-indonesia.com juga. Silahkan didownload saja :

# wget https://dl.dropboxusercontent.com/u/64064946/fileconfig.tar.gz

13. Ekstrak dan kopikan file-file konfigurasi tersebut ke direktori /etc/squid :

# tar -xvf fileconfig.tar.gz
# cp fileconf/* /etc/squid

14. Beri hak akses eksekusi untuk semua file berekstensi .pl pada direktori /etc/squid :

# chmod 0755 /etc/squid/*.pl

15. Dari semua file-file konfigurasi yang saya berikan hampir semuanya sudah tinggal pakai. Namun apabila kalian ada yang menggunakan konfigurasi yang berbeda dari punya saya, seperti subnet klien, nama disk cache, besar RAM, maupun ukuran harddisk disk cache, maka ada beberapa file yang perlu kalian edit.

Merubah subnet klien

Sesuai dengan topologi jaringan saya berikan diatas, subnet untuk klien saya adalah 192.168.1.0/24. Jika kalian ingin merubahnya sehubungan dengan perbedaan topologi jaringan, maka edit file acl.conf :

# nano /etc/squid/acl.conf

Cari baris acl localnet src 192.168.1.0/24 (Gunakan fasilitas search dengan menekan tombol CTRL + W). Lalu ganti bagian 192.168.1.0/24 sesuai dengan yang kalian inginkan. Jika sudah simpan dan tutup file tersebut.

Merubah nama disk cache

Pada artikel ini, disk cache yang saya buat bernama /proxy. Apabila kalian menggunakan nama lain, silahkan edit file squid.conf :

# nano /etc/squid/squid.conf

Cari bagian cache_dir aufs /proxy 16000 37 256 , lalu ganti bagian /proxy menjadi nama disk cache sesuai dengan milik kalian masing-masing.

Mengubah ukuran disk cache

Ukuran harddisk untuk disk cache pada artikel ini adalah sebesar 20GB. Untuk mengubahnya sesuai dengan ukuran disk cache kalian, edit file /etc/squid/squid.conf :

# nano /etc/squid/squid.conf

Cari bagian cache_dir aufs /proxy 16000 37 256 . Perhatikan yang saya tandai merah dan biru. Untuk yang saya tandai merah, itu merupakan 80% dari ukuran total disk cache saya yang sebesar 20GB. Ini merupakan prinsip penggunaan disk cache yang baik. Sehingga disitu saya tulis 16000 (satuannya megabyte). Silahkan kalian ganti dengan 80% dari total ukuran disk cache kalian masing-masing.

Sedangkan untuk yang saya tandai biru, itu diperoleh dari rumus : ukuran 80% disk cache  dalam satuan byte/13/256/256 X 2.

Kira-kira cara menghitungnya seperti ini : 16000000/13/256/256 X 2 = 37.5. Dibulatkan saja menjadi 37.

Mengubah ukuran RAM

RAM yang saya gunakan pada artikel ini adalah 2GB. Jika kalian memiliki ukuran RAM yang berbeda dari saya, untuk mengubahnya kalian perlu mengedit file tune.conf :

# nano /etc/squid/tune.conf

Cari bagian ipcache_size 4096 lalu ganti angka 4096 dengan 2X ukuran RAM kalian dalam satuan Megabyte. Sebagai contoh, disitu tertulis 4096 karena hasil dari 2 X ukuran ram saya yaitu 2048.

Setelah itu cari lagi bagian fqdncache_size 2048 lalu ganti angka 2048 dengan ukuran RAM kalian dalam satuan Megabyte. Jika sudah simpan dan tutup file tersebut.

Untuk script-script lainnya, bisa kalian pelajari sendiri dengan melihat semua file yang ada didalam direktori /etc/squid.

Testing

1. Sebelum kalian mengetes squid kalian, pertama-tama matikan terlebih dahulu service dari Squid3. Karena nanti akan bentrok dengan service milik Squid Lusca.

# service squid3 stop

2. Kemudian kalian harus membuat direktori-direktori untuk tempat penyimpanan cache didalam disk cache kalian dengan menggunakan perintah berikut :

# squid -f /etc/squid/squid.conf -z

3. Baru sekarang jalankan squidnya :

# squid -NDd1 &

Berhubung kita menjalankan squidnya pada mode background, maka setelah kalian menjalankan perintah diatas, kalian bisa tekan tombol Enter.

4. Lalu pastikan kalau squid sudah mampu menjalankan servicenya dengan file descriptor yang sudah kalian tentukan diawal, yaitu sebesar 65535 :

# squidclient mgr:info | grep 'file descri'
Maximum number of file descriptors: 65535
Available number of file descriptors: 65511

Reserved number of file descriptors: 100

5. Terakhir, pantau log file dari squid dengan perintah berikut :

# tail -f /var/log/squid/access.log | ccze



Membuat Autostart Squid

Agar service squid langsung berjalan setiap komputer menyala, maka kalian harus menambahkan script autostart baru pada direktori /etc/init.d :

# nano /etc/init.d/squid

Kopikan semua script yang ada di halaman ini http://web.suffieldacademy.org/ils/netadmin/docs/software/squid/etc/init.d/squid kedalam file tersebut. Jika sudah simpan dan tutup filenya.

nb : file /etc/init.d/squid memang kosong. jadi jangan kaget ketika kalian mengetikkan perintah diatas, ternyata malah seperti membuat file baru.

Kemudian eksekusi dua perintah berikut untuk memberikan hak akses executable dan membuat file tersebut autostart setiap komputer dijalankan :

chmod 755 /etc/init.d/squid
update-rc.d squid defaults

Selanjutnya masukkan juga script berikut pada file /etc/rc.local untuk membuat squid3 tidak berjalan setiap komputer nyala. Kalau tidak, takutnya nanti bentrok antara squid3 dengan lusca.

nano /etc/rc.local

Masukkan script ini :

service squid3 stop

Simpan dan tutup file tersebut.

Memonitor Kinerja Squid Lusca dengan Squid Analyzer

Apabila kita hanya melihat file log milik squid secara mentah, rasanya kita agak kurang paham dan kurang bisa melihat statistiknya secara lengkap. Oleh karena itu kita memerlukan tools tambahan agar kita bisa memantau file log squid dengan tampilan yang lebih user friendly. Kalian bisa membaca artikel milik saya tentang cara memonitor kinerja Squid Lusca dengan Squid Analyzer disini.

Komentar Pribadi

Seluruh konfigurasi diatas sudah sering saya coba di beberapa PC dengan spek yang berbeda, seperti Intel Pentium 4, Dual Core, Core 2 Duo, sampai Intel Core i3 dan Intel Xeon. Untuk ngehit situs-situs HTTP dan game-game HTTP seperti game facebook dan friv.com sangat lancar. Untuk ngehit youtube pun lancar. Yang kurang adalah tidak seluruh update patch game online bisa ngehit (saya baru mencoba yang bisa terHIT hanya beberapa game gemscool saja, sedangkan untuk game online selain itu tidak bisa), serta tidak bisa ngehit speedtest. Sehingga ketika di test di speedtest, hanya bisa menampilkan angka yang sesuai dengan bandwidth asli.

Saya masih dalam tahap mengoprek-oprek lagi agar kekurangan yang saya alami diatas agar bisa segera teratasi.  Apabila ada diantara kalian yang mempunyai script yang lebih mantap dari milik saya, yang mungkin bisa ngehit semua patch game online dan speedtest monggo dishare saja dengan mengomentari artikel ini.

Semoga bermanfaat :)

UPDATED 15 JUNI 2014

Artikel ini bakalan sering saya update, jadi tolong dicek secara berkala jika kalian memang membuat proxy berdasarkan artikel ini.

SUMBER
Share:

0 komentar:

Post a Comment

Blog Archive