Implementasi Squid Proxy Server dan enjoy dengan scripting
Sebagai kelanjutan dari laporan gathering ke-13, akan kami laporkan juga topik yang kami bahas bersama, yaitu implementasi mesin proxy menggunakan tool bernama “SQUID”. Software squid yang kami ujicobakan adalah squid versi 2.6.x dalam bentuk paket tgz yang tinggal “installpkg” sehingga mempersingkat waktu kompilasi yang membutuhkan banyak sekali opsi pada saat membuat configurasi kompail.
Mesin proxy berguna untuk menyimpan sementara semua file-file dalam ukuran dan format tertentu yang sering diakses oleh klien. Gambarannya seperti ini, bayangkan dalam sebuah jaringan yang terkoneksi internet, seperti misalnya warnet, bila semua klien mengakses ke internet secara langsung, maka bandwidth akan teralokasi sepenuhnya dan akses file-file di server yang terhubung di internet akan diambil langsung. Begitu seterusnya setiap kali kita melakukan request terhadap file (walaupun sama) akan meminta langsung ke webserver-nya. Nggak masalah sich, memang begitu cara kerja webserver, namun... akan lebih efisien bila file-file statis seperti gambar dan image-image tetap, bisa kita simpan, sehingga setiap dibutuhkan untuk ditampilkan di web browser, tidak perlu meminta langsung ke webserver di luar jaringan lokal alias ke belantara internet, tapi cukup dari mesin penyimpan cache, sehingga menghemat bandwidth. Mesin tersebut bisa kita gunakan sebagai jembatan penghubung antara webserver dengan web browser, file-file statis akan disimpan dalam cache, setiap ada permintaan dari klien pada file dimaksud, maka mesin cache (proxy) tersebut akan memberi file yang telah disimpannya, namun bila tidak menemukan file dimaksud, maka dia akan mencari langsung ke webservernya di internet, dan disimpannya dalam cache untuk keperluan akan datang.
Nah... sering kita mendengar dan kadang tertarik untuk mengimplementasikannya, but... ternyata tidak semudah yang dibayangkan, apalagi kalau menggunakan slackware ! Mungkin cuman mimpi ada konfigurasi semudah opensuse atau ubuntu di slackware, karena slackers diajarkan untuk memahami betul-betul konsep ilmu sebelum mengimplementasikannya. Pun demikian dengan squid proxy server ini, Anda harus kuat membaca manual, sabar sehingga memberikan pemahaman yang cukup. Percaya dech, setelah melewati masa sulit itu, Anda tidak akan bingung walaupun dihadapkan dengan squid proxy di platform lain, apalagi distro lain.
Oke cukup mi memompa semangatnya, sekarang langsung pada tahapan cara-caranya yang sempat dilakukan pada gathering ke-13 kemaren.
Berikut tahapannya...
Langkah pertama
Tentu saja adalah mendapatkan paket squid tgz tersebut, bisa dari slacky.eu atau linuxpackages, atau googling terserah, yang penting dapat yang mudah diinstalasi. Squid versi 2.6.x ini konon dibuat dengan bahasa C, sedangkan versi terbaru 3.x dibuat dengan bahasa C++ dan juga meningkatkan performa serta fiturnya.
Langkah kedua
Tentu saja installpkg squid bla...bla...bla... seperti biasa.
Langkah ketiga
edit squid.conf, perhatikan bagian-bagian penting dalam file konfigurasi squid.conf. Biasanya di direktori /etc/squid
1.edit port
http-port 3128 <=== bisa diganti, misal dengan 8080
2.hierarki...
hierarchy_stoplist cgi-bin ?
tanda tanya biasanya dipakai untuk website dinamis
3.default cache 8 MB
cache_mem 8 MB
Bisa diganti kalau server dibuat khusus untuk proxy saja, bisa pakai 2/3 atau ¾ memory. Lihat memory dengan free.
Hilangkan tanda pagar ganti dengan yang Anda inginkan.
4.maximum_object_size 4096KB
Untuk obyek berukuran lebih dari 4MB tidak dicache. Ubah sesuai kebutuhan Anda jangan terlalu tinggi dan jangan juga terlalu kecil.
5.Cache_dir <== tidak boleh dilupakan.
cache_dir ufs /var/lib/squid/cache 100 16 256
Adalah path atau direktori tempat menyimpan cache.
Perhatikan /cache 100 , itu adalah seting yang berhubungan dengan cache mem atur sesuai kebutuhan.
Jangan lupa membuat direktori tersebut !
6.ACL control. Untuk memberi pembatasan akses.
acl all src 0.0.0.0/0.0.0.0 <== all adalah nameconfig, sedangkan 0.0.0.0/0.0.0.0 itu adalah ip range/ netmask
Acl tentukan nameconfig misal
acl makassar-slacker src 192.168.1.0/255.255.255.0
ip boleh ditambahkan berapapun dengan dipisahkan spasi
7.http_access allow nameconfig dari acl tadi
perhatikan urutan !!!
contoh : http_access allow makassar-slacker
8.simpan
Langkah keempat
buat direktori cache_dir dengan mkdir dan ganti permission dan ownershipnya menjadi “nobody”
Langkah kelima
Buat struktur direktori cache dengan perintah : “/usr/sbin/squid -z”
check dengan perintah ls, seharusnya ada struktur direktori dalam cache_dir
Langkah keenam
Eksekusi daemon untuk menjalankannya “squid”, jika pada saat squid telah running dan dilakukan perubahan pada setting squid.conf jalankan "squid -k reconfigure" untuk menyesuaikan setting pada pada squid
Langkah ketujuh
untuk memaksa semua klien ke proxy harus dipasang firewall di mesin nat/ router dengan perintah
contoh :
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp –dport 80 -j REDIRECT –to 3128
Langkah kedelapan
kalau ingin tutup akses dari jaringan luar bikin firewall sbb
iptables -A INPUT -s ! 192.168.100.0/24 -p tcp –dport 3128 -j DROP
Begitulah secara singkat tahapan implementasi squid proxy server yang diajarkan pada gathering kemaren, dan berhasil dengan indikator dari lognya yang terlihat siapa mengakses apa.
******************************************************************************************
Berikutnya sesi ke-2 bermain dengan scripting
Bermain-main dengan shell script, mestinya menyenangkan terutama buat para sysadmin yang mempunyai “ala” bagaimana dia bekerja dan ber-”style”. Ingat performa dan keamanan sebuah system atau network itu bergantung pada siapa pengelolanya. Anda sebagai administrator, harus bisa berimprovisasi untuk mengelola infrastruktur TI Anda, apalagi bila menggunakan opensource seperti GNU Linux. Di slackware sangat dianjurkan seorang Admin menguasai atau terbiasa dengan scripting. Karena di sanalah cara kita untuk membuat apa yang kita kelola berbeda dengan yang dikelola oleh orang lain walaupun mungkin sama platform bahkan distronya.
Shell sebenarnya adalah interpreter yang digunakan oleh manusia untuk berkomunikasi dengan kernel yang merupakan system call yang berhadapan langsung dengan hardware. Yah... awamnya (seperti saya) cukup dipahami dengan menggunakan shell kita bisa memerintahkan apa saja di system linux kita sesuai dengan kebutuhan kita. Mungkin sebagian besar tools-tools GUI di linux itu dibangun dari pondasi perintah-perintah yang ada di shell.
Sering kita menggunakan perintah-perintah di shell dengan perintah yang panjang dan berkali-kali, seperti contohnya menjalankan iptables dan membuat rule routing. Bisa kita lakukan perintah satu-per-satu di shell terminal, namun lebih efisien bila kita tulis dalam satu file script dan kita jalankan dengan sekali perintah.
Untuk mengambil contoh (biasa juga saya tinggal mencontek), kita bisa melihat file-file script yang ada di direktori /etc/rc.d, di sana semua script startup baik system service maupun daemon dan aplikasi lain disimpan. Bila menggunakan distro yang lain, ada di direktori /etc/init.d
Oke... untuk memulai menulis script, biasanya selalu dimulai dengan baris seperti ini,
#!/bin/bash
Artinya untuk memberi tahu system bahwa skrip tersebut dieksekusi menggunakan inpterpreter bash
kalau di mesin unix yang lain seperti ini
#!/bin/sh
Artinya untuk memberi tahu system bahwa skrip tersebut dieksekusi menggunakan inpterpreter shell biasa
Bila kita tidak menuliskannya, maka secara default system akan menganggap script tersebut adalah script shell. Setelah itu pada baris di bawahnya bisa kita tulis baris-baris perintah shell. Kita juga bisa menggunakan shell programming untuk membuat script kita lebih berdayaguna. Sekali lagi contoh-contohnya ada di file-file startup tersebut di atas, silahkan mencoba. Anda tidak perlu membuat file dengan ekstensi tertentu seperti .bin atau .run atau yang jelek .exe :)) hahaha..., cukup nama file sembarang, script tersebut bisa langsung digunakan, system akan melakukan checking deklarasi pada baris pertama.
Setelah file script dibuat, kita bisa mengeksekusinya dengan perintah
sh ./[nama_file_scriptnya]
Atau... ubah permission modenya menjadi bisa dieksekusi, sehingga tidak membutuhkan perintah sh. Caranya dengan chmod +x [nama_file_scriptnya]
Kita juga bisa memanggil script tersebut dengan full pathnya, sehingga bisa mengeksekusi di direktori aktif manapun.
Yang menarik di shell script ini, adalah kita bisa menggabungkan script-script yang menggunakan interpreter lain seperti PHP, perl, atau pyton, jadi kita tidak perlu terlalu menguasai shell programming untuk membuat script yang bagus, so cukup menguasai salah satu scripting language saja sudah cukup. Namun perhatikan pada baris pertamanya harus menyebutkan script tersebut menggunakan interpreter apa, contoh:
#!/usr/bin/php
Maka script tersebut akan dieksekusi dengan menggunakan interpreter php.
Kemaren saya demokan juga bagaimana memanggil script php dari script shell, dan jalan. Hanya belum bisa mengembed script PHP dalam script shell :D hehehe...
So... dengan memahami filesystem dan scripting di shell, sebenarnya kita sudah cukup mempunyai senjata untuk mengelola server kita. Pernah saya dapati sebuah server yang dikelola seorang teman, ternyata dia buat file script untuk menjalankan X server di tempat yang tidak biasa dan jalan dengan bagus. Dengan sedikit pengalaman dan pemahaman tentang file system akhirnya saya dapat menemukan skripnya dan bisa mengubah-ubah konfigurasinya by-hand to the target point.
Oke...
yang pasti cukup menyenangkan bisa bermain-main dengan scripting di dunia linux. Buatlah linux Anda senyaman yang bisa Anda lakukan dengan improvisasi scripting.
Salam,
denic
- denic's blog
- Login or register to post comments


Den...sebenarnya aku pengin
Den...sebenarnya aku pengin juga ngerti sperti kalian cuman mulai dari mana............
kadang-kadang kalian kurang kerjaan ya....bikin aku ngrasa makin bodo aja....
salam......
Bagus Mas... Mulai dari rasa
Bagus Mas...
Mulai dari rasa ingin !!! itu modal berharga.
Tanpa keinginan mustahil kita punya semangat. Dan Memang, semua ilmu itu dimulai dari rasa ingin tahu, sangat manusiawi. Selebihnya adalah kesabaran atau sering saya kenal dengan istiqomah, keukeh.
Mas Gun bisa mulai dari hal-hal kecil yang biasa dianggap sepele. Misalnya suatu masalah (walaupun di dunia windows sangatlah mudah), kalau berhasil menemukan caranya jangan malu untuk berteriak "YESS !", karena itu amunisi sampeyan untuk menambah semangat mencari ilmu yang lebih tinggi lagi. Jangan khawatir ! tidak ada yang membatasi ilmu pengetahuan di dunia opensource, kecuali kuasa Allah SWT.
Sekali lagi untuk memulai syaratnya cuman satu, yaitu PAKAI !, kalau ada masalah cari tahu, terserah dari mana, bisa dari literatur cetak, maupun internet, bahkan bisa cari orang-orang yang paham GNU Linux. Percayalah, mereka (para linuxer) tidak akan sombong dengan ilmunya, apalagi untuk sharing ! Mereka tidak akan rugi ilmunya dibagi. Berbeda dengan para MVP (milik microsoft), karena mereka akan kehilangan elit-sitasnya. Di linux tidak ada kasta, semua orang sama, tergantung kemampuan ilmunya yang telah diterapkannya.
salam,
denic wibowo
is nothing
clear cache squid ada kah
clear cache squid
ada kah cara otomatis na ?
CMIIW