Sabtu, April 11, 2009

Penerapan Proxy Server Dengan Menggunakan Squid

Penerapan Proxy Server Dengan Menggunakan Squid
Pendahuluan
Transparan cache dinamai demikian karena alat tersebut bekerjanya dengan
menggunakan jalur jaringan secara transparan ke browser. Dalam model ini ,sirkit pendek
cache, proses retrieval, apaka h file yang dikehendaki ada dalam cache.
Transparan cache berguna khususnya untuk ISPs karena mereka tak memerlukan
modifikasi browser set up. Trasparan cache juga merupakan cara yang termudah untuk
menggunakan sebuah cache secara internal pada sebuah jar ingan , karena trasparan cache
tak menggunakan koordinasi yang terperinci dengan cache lainnya.


Apakah trasparan cache itu ?
Penjelasan istilah trasparan cache dan trasparan proxy tergantung pada contohnya , tapi
kami mengasumsikan konteks disini yaitu HTTP Proxy/cache dengan trasparan hijacking
dari port 80 yang mana merupakan jalur HTTP yang gagal di internet.
Perbedaannya yaitu bahwa cache memasukkan cache, tapi proxy hanya proxy-proxy
tanpa caching .Trasparan Overload mempunyai arti yang berbeda-beda tergantung
situasinya . Kata tersebut dapat diartikan setup yang membajak jalur port 80 dimana
klientnya mencoba untuk pergi ke server yang lain, juga bisa diartikan sebuah trasparan
proxyyang tak dapat mengubah arti / isi permintaan . tak ada alat seperti trasparan proxy ,
hanya semi trasparan dan tak ada alat seperti trasnparan cache.
Squid dapat dikonfigurasikan untuk bertindak secara trasparan. Dalam mode ini klient tak
disyaratkan untuk mengkonfigurasikan browser mereka untuk mengakses cache tapi
squid akan menjemput paket yang tepat dan permintaan cache secara transparan.
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
Hal yang bisa memecahkan masalah terbesar dengan menggunakan caching :
menganjurkan para pemakai untuk menggunakan cache server.


Keuntungan trasparan caching:
Keuntungan dan kerugian trasparan caching secara menyeluruh merupakan kebalikan
dari semua yang telah disebutkan dalam contoh untuk proxy caching.
Keuntungannya:
Administrasi yang dibuat mudah untuk dimengerti browser tak perlu dikonfigurasikan
untuk bicara ke cache.
Kontrol pusat, pemakai tak dapat mengubah browsernya untuk melengkapi cache.




Kerugian trasparan caching:
Tidak kuat,
karena trasparan caching tergantung pada routed path yang stabil antara klient dengan
serveryang asli,dalam hal menerobos cache path . Hal tersebut dalam internet mudah
dipengaruhi bagi perubahan – perubahan routing.
Dengan kata lain jika sebuah hubungan antara klient dengan cache ditetapkan dan
perubahan routing terjadi yang mana menyebabkan klient mengambil path yang tak lagi
mengalir melalui alat jaringan diverting,periodenya akan berhenti dan pemakai harus
mengisi ulang halaman, jika rute- rute dalam internet tak menentu maka hasilnya akan
lebih tak bisa diperkirakan.


Dependensi browser,
Untuk operasi yang sukses banyak trasparan cache tergantung pada browser yang
menyediakan sejumlah nama server asli dalam header permintaan HTTP. Hal ini
diperlukan sebab cache ini tak dapat mengakses tujuan IP address server yang asli dari IP
address paket , karena alasan tersebut cache menghilang. Mereka tak dapat menentukan
server address yang asli untuk mengirim permintaan.Beberapa browser awal/sebelumnya
tak menyediakan informasi ini maka dari itu tak akan bekerja secara baik dengan
trasparan cache, tapi 90% dari browser puas.Dalam kenyataannya ,banyak pelengkap
jaringan telah mengobservasi bahwa jumlah signifikan permintaan HTTP adalah untuk
mengisi non cachetable (35-45%).
Angka kemunculan cache tersebut proporsional untuk jumlah isi non cachetable yang
dikirim ke cache.


Apakah squid itu ?
Squid adalah sebuah penampilan yang bagus bagi dari server cacking proxy untuk klient
web, pendukung FTP, gopher dan obyek data HTTP. Tak seperti software cacking
tradisional , squid menangani semua permintaan dalam bentuk singgle , non bloking ,
proses I/O driven. Squit menyimpan data meta dan khususnya obyek panas yang
tersembunyi dalam RAM, menyembunyikan DNS lookups, mendukung DNS lookups
yang tak memihak, dan cacking negatif dari permintaan yang digagalkan .
Squid mendukung SSL,kontrol akses yang extensif dan loging permintaan penuh.
Dengan menggunakan ukuran berat internet cache protokol, squid dapat disusun dalam
sebuah hirarki untuk pengamanan bandwidth extra squid terdiri dari sebuah squid
program main server, sebuah dnsserver program lookups Domain Name Systim, beberapa
program untuk menulis kembali permintaan-permintaan dan keoutentikan penampilan ,
dan beberapa menegemen dan alat-alat klient.
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
Pada saat squid dihidupkan maka akan menghasilkan angka dari proses dnsserver dalam
jumlah yang banyak yang bisa mengkonfigurasi,masing-masing dapat menunjukkan
Domain Name System lookups tunggal dan memihak . Ini menurunkan jumlah waktu
cache yang menunggu DNS lookups.


Bagaimanakah menerapkan Transparent Caching dengan menggunakan Squid ?
Transparent caching dapat diterapkan dengan 3 cara :
•??Kebijaksanaan yang berdasarkan routing
•??Menggunakan smart switching
•??Dengan memasang kotak squid sebagai Gateway


Transparent Caching yang menggunakan kebijaksanaan yang berdasarkan routing.
Penyusunan ini menggunakan sebuah router untuk menempuh jalur WWW (melalui
routing kebijaksanaan) menuju ke kotak Squid cache. Karena router hanya dapat
mengubah IP address dari sebuah paket, kotak Squid Linux harus dikonfigurasikan ke
pengaturan ulang tujuan port dari paket tersebut. Kebijaksanaan Router mengatur ulang
paket-paket dengan port 80 ke kotak squid dan mengatur ulang jalur yang lain ke
interneat secara langsung. Untuk mengatur aturan kebijaksanaan router, acukan ke
manual router anda. Penggunaan alat IP-chains dalam kotak squid, dapat dilakukan
dengan mengatur ulang paket-paket yang dikirim oleh router ke applikasi squid. Karena
beberapa Router (misal: Cisco seri) tidak mengenali kegagalan squid cache, apakah squid
gagal bekerja, pelayanan ke WWW berhenti.
Untuk mengatasi masalah ini, cache guard (Perl script yang mengoperasikan jaringan
yang dipertahankan di dalam komputer) dapat digunakan untuk mengekspresikan
keraguan tentang kotak squid atas obyek-obyek yang disembunyikan. Pada saat cache
guard gagal untuk menemukan kembali obyek dari cache, cache guard mengubah
konfigurasi router (dengan SNMP) untuk melewati jalur WWW secara langsung ke
internet. Dalam hal ini kegagalan karena strategi yang berlebihan dapat dihindari.


Transparent caching menggunakan smart switching .
Susunan ini menggunakan router lapis 4 atau 7 untuk melewati jalur WWW menuju ke
cache squid yang transparan . Karena router hanya dapat mengubah IP address dari
sebuah paket, kotak squid Linux harus disusun untuk mengatur kembali tujuan port dari
paket tersebut. Saklar L4 dan L7 menghentikan keluar masuknya jalur dan meluluskan
permintaan HTTP, seperti jalur port 80, bagi squid proxy server yang mana saklarnya
disusun untuk mengenali ssklar tersebut mengirim jalur non-HTTP ke tujuan yang lain.
Gambar dibawah menunjukkan sebuah saklar yang melewati jalur HTTP ke squid proxy
server dan jalur non-HTTP ke internet.


Bagaima nakah cara kerja saklar ?
Saklar L4 dan L7 mendapatkan nama mereka dari tingkat model Open System
Interconnection (OSI) Reference di tempat mereka beroperasi. Kemampuan saklar
tersebut ditentukan oleh lapisan dalam model OSI si tempat mereka beroperasi.


Saklar L4
Beroperasi di lapisan 4 dalam model OSI- layar transport. Saklar L4 mendasari keputusan
switching mereka atas informasi dalam TCP header, dan TCP merupakan sebuah
protokol yang ada di lapisan 4 dalam model OSI. Saklar tersebut menentukan ke arah
mana untuk melewati jalur berdasarkan pada nomer port.


Saklar L7
Sekarang ini saklar-saklar yang canggih sudah tersedia. Saklar yang baru tersebut
beroperasi di lapisan 7 pada model OSI-lapisan applikasi. Karena saklar tersebut
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
beroperasi di lapisan 7, saklar tersebut dapat memahami URLs dan dapat memahami
lebih banyak tentang jalur daripada saklar L4. Saklar L7 melengkapi bagian yang penting
yang sama yang mana saklar L4 menyediakan sebagian tambahan yang positif bagian
penting yang lebih canggih.


Perbandingan saklar L4 dan L7
Saklar L7 memiliki bagian penting seperti yang dimiliki saklar L4, sebagai tambahan
positif, bagian penting yang lebih canggih .


Kesamaan bagian:
•??Beberapa saklar L4 dan L7 dapat bekerja lebih daripada data gigabyte.
•??Untuk HTTP transparent caching, jalur operasi mereka berdasarkan pada IP
address server web yang diminta.
•??Untuk HTTP transparent caching, mereka bisa disusun untuk mengirim jalur
secara langsung ke internet jika Web cache gagal.


Bagaimana saklar L7 berbeda :
•??Saklar L7 dapat membagi jalur klien HTTP menjadi bagian-bagian berdasarkan
pada URL yang diminta .
•??Untuk permintaan HTTP, saklar L7 dapat melihat permintaan dan menentukan
apakah obyek mampu sembunyi. Dengan saklar L7, permintaan untuk obyek noncacheable,
misal: URLs dengan cookies dan CGI, akan menghindari cache.Obyek
non-cacheable diperoleh secara langsung dari web server.


Perbandingan hasil kerja saklar L4 dan L7:
Hasil kerja saklar L4 dan L7 sama. Walaupun demikian, karena saklar L7 melihat dengan
lebih dekat di TCP/paket IP untuk port 80 atau port 119, respon waktunya lebih lambat
daripada saklar L4.


Kotak Squid sebagai Gateway
Setup ini digunakan dalam LAN kecil atau WAN dimana jmlah kliennya berkurang.
Disini, Setup disyaratkan untuk menyusun kotak squid sebagai Gateway yang gagal
dalam semua mesin. Metode ini menghendaki susunan yang lebih dalam kotak squid jika
dibandingkan dengan metode yang lain.


Konfigurasi kotak Squid
Cara yang harus dilakukan untuk menerapkan transparent caching:
•??Paket yang diutamakan untuk port 80 pada beberapa komputer di internet harus
diatur kembali dengan router atau saklar L4 (seperti yang sudah dijelaskan
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
sebelumnya) ke komputer dimana squid bekerja. Ini dapat dilakukan dengan
meletakkan kotak squid sebagai Gateway.
•??Dalam kotak squid, paket-paket yang diatur kembalioleh smart switch atau router
ke kotak squid masih perlu diatur ulang ke port dimana squid siap menerima.
Pengaturan ulang paket-paket ini tidak dapat dilakukan oleh Squid., tapi oleh
Linux kernel, menggunakan program IP- chains. Kemudian kernel menerima
paket pada port 80, lihat susunan firewall dan atur paket dengan benar dan tepat,
misal: dengan mengubah tujuan port ke 3128,atau apapun squid port bekerja. Jika
anda memerlukan IP Filter, gunakan option transparent-ipf yang memunkinkan di
dalam squid untuk membantu klien-klien HTTP tertentu (HTTP/1.0 klien,tidak
mengirim Host header). Walaupun demikian browsing normal yang menggunakan
browser popular bahkan akan bekerja tanpa alat itu .


Tentang IP Chains
IP Chains merupakan sebuah program yang sangat kuat yang mengizinkan pemakai
meletakkan IP Filtering yang kompleks dan menghitung aturan.


Tujuan :
Untuk meletakkan firewall dalam Squid/kotak Linux dengan pilihan minimal yang
diperlukan untuk transparent proxy. Inilah metode yang paling mudah.


Princiannya :
Yakinlah bahwa option berikut ini dalam kernel bisa digunakan
CONFIG_PACKET
CONFIG_NETLINK
CONFIG_RTNETLINK
CONFIG_NETLINK_DEV
CONFIG_FIREWALL
CONFIG_FILTER
CONFIG_UNIX
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
CONFIG_INET
CONFIG_IP_MULTICAST
CONFIG_IP_ADVANCED_ROUTER
CONFIG_RTNETLINK
CONFIG_NETLINK
CONFIG_IP_MULTIPLE_TABLES
CONFIG_IP_ROUTE_MULTIPATH
CONFIG_IP_ROUTE_TOS
CONFIG_IP_ROUTE_VERBOSE
CONFIG_IP_ROUTE_LARGE_TABLES
CONFIG_IP_ROUTE_NAT
CONFIG_IP_FIREWALL
CONFIG_IP_FIREWALL_NETLINK
CONFIG_NETLINK_DEV
CONFIG_IP_ROUTE_FWMARK
CONFIG_IP_TRANSPARENT_PROXY
CONFIG_IP_MASQUERADE
CONFIG_IP_MASQUERADE_ICMP
CONFIG_IP_ROUTER
Selain itu anda harus menyusun kembali kernel.
Yakinlah IP forwarding bisa digunakan dalam kernel dengan memakai perintah berikut
ini :
cat /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward


Pengaturan ulang port
Perintah berikut memungkinkan trasparan cacking :
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
ipchains -A input -j REDIRECT 3128 -p tcp -s 0.0.0.0/0 -d 0.0.0.0/0 80
perintah ini maengatur ulang semua perintah , tanpa memikirkan sumber IP address
,dengan tujuan port 80 ke port 3128 yang mana di dalam squid.


IP Masquerading
Hal ini penting ketika metode ke tiga diterapkan , padahal ini tak relevan untuk 2 metode
yang lain. P2 saat squid di dalam transparan mode, jaringan lokal tak akan mampu
mengakses protokol-protokol yang lain pada squid.squid mendukung FTP, gopher dan
HTTPs hanya ketika klient dari masing- masing protokol yang dispesifikan memiliki
pengetahuan tentang cache. Karena itu IP_Masquerading dapat digunakan untuk
memungkinkan mengakses ke protokol lain.
Berikut adalah aturan-aturan untuk masquerading protokol-protokol SMTP, FTP, POP,
SSH, TELNET dan HTTPS. Di sini kotak squid dihubungkan ke internet melalui router
yang menggunakan eth 1 interface.
ipchains-N good-bad
// Aturan yang didefinisikan pengguna baru dinyatakan
ipchains -A forward -s 172.16.1.0/24 -i eth1 -j good-bad
// Aturan baik buruk ditambahkan ke tabel aturan Ipchains. Ini mengirim semua
permintaan yang datang dari sumber 172. 16. 1. 1-254 ke interface melalui sesuatu yang
menghubungkan ke internet.
// Berikut ini adalah set garis- garis yang mendefinisikan aturan baik buruk yang telah
didefinisikan pemakai.
ipchains -A good-bad -p tcp -dport ssh -j MASQ
ipchains -A good-bad -p tcp -dport telnet -j MASQ
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
ipchains -A good-bad -p tcp -dport ftp -j MASQ
ipchains -A good-bad -p tcp -dport smtp -j MASQ
ipchains -A good-bad -p tcp -dport 110 -j MASQ


Tentang tabel IP
Iptables module (untuk kernel 2.4.x series dan diatasnya) yang mana merupakan sebuah
bagian dari Netfilter framework adalah sebuah upgrade yang bagus dari sebuah ipchains
yang lama (untuk kernel 2.2.x).


Kernel setup
Untuk menjalankan bagian dasar dari iptables, option berikut disusun ke dalam kernel:
CONFIG_PACKET
CONFIG_NETFILTER
Dan tentu, interface anda diperlukan untuk disusun secara benar untuk bekerja, misal:
Ethernet, PPP dan SLIP interfaces. Berikut ini cara yang diterapkan ke dalam kernel jika
option yang lebih maju diperlukan :
CONFIG_IP_NF_CONNTRACK
CONFIG_IP_NF_FTP
CONFIC_IP_NF_IPTABLES
CONFIG_IP_NF_MATCH_LIMIT
CONFIG_IP_NF_MATCH_MAC
CONFIG_IP_NF_MATCH_MARK
CONFIG_IP_NF_MATCH_MULTIPORT
CONFIG_IP_NF_MATCH_TOS
CONFIG_IP_NF_MATCH_STATE
CONFIG_IP_NF_MATCH_UNCLEAN
CONFIG_IP_NF_MATCH_OWNER
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
CONFIG_IP_NF_FILTER
CONFIG_IP_NF_TARGET_REJECT
CONFIG_IP_NF_TARGET_MIRROR
CONFIG_IP_NF_NAT
CONFIG_IP_NF_NAT_NEEDED
CONFIG_IP_NF_TARGET_MASQUERADE
CONFIG_IP_NF_TARGET_REDIRECT
CONFIG_IP_NF_NAT_FTP


Pengaturan kembali Port
iptables-t nat -A PREROUTING - p TCP --dport 80 -j REDIRECT -- to-port 3218
Aturan di atas mengatur kembali permintaan port 80, tanpa memikirkan sumber ip
address ke port 3128 (atau port apapun yang mana didalamnya squid menggerakkan
transparent mode).


IP-Masquerading
iptables -t nat -A POSTROUTING -p TCP -s 0/0 --dport 21 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP -d 0/0 --dport 20 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 25 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 110 -j MASQUERADE
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
iptables -t nat -A POSTROUTING -p TCP --dport 22 -j MASQUERADE
iptables -t nat -A POSTROUTING -p TCP --dport 23 -j MASQUERADE
Aturan di atas penting pada saat kita menghubungkan modem atau squid yang ada
diantara 2 jaringan yang berbeda untuk membuat TELNET, FTP, SMTP, POP, HTTPs,
untuk berkomunikasi ke internet.


Squid dalam transparent mode
Untuk mengoperasikan squid dalam transparent mode pakailah petunjuk dalam
squid .conf.
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
httpd_accel_port directive menyatakan port server yang asli sedang mendengarkan
(port 80). Squid tidak perlu tahu bagaimana peermintaan datang ke listening port (3128).
Ini harus dikerjakan oleh sistem operasi atau router. Squid melihat sebuah permintaan
untuk URL dan menghubungkan ke port 80 pada server dimana server mengira masuk ke
URL. Squid tidak punya kontrol untuk mengetahui permint aan tipe apa yang
mendatanginya. Jika squid mendengarkan port 3128 kemudian mengasumsikan
kedatangan data, ada protokol yang dapat menghandle (HTTP, FTP,dll) . Tipe paket yang
diatur kembali ke squid ditentukan oleh TCP/IP penerapan host (misal: ipchains
forwarding) dan diluar kontrol squid.


Instalasi Squid:
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika
Untuk Squid-2 anda harus mengoperasikan configure script sendiri sebelum running
membuat:
% tar xzf squid-2.0.RELEASE-src.tar.gz
% cd squid-2.0.RELEASE
% ./configure
% make
% make install


Running Squid
Pertama, anda harus membuat directori swap. Lakukan hal tersebut dengan
mengoperasikan squid dengan option –z:
% /usr/local/squid/bin/squid -z
Untuk melengkapi, anda dapat memulai squid dan mengujinya. Mungkin hal terbaik yang
harus dilakukan adalah mengoperasikan squid dari terminal anda dan melihat output
debug. Gunakan perintah ini:
% /usr/local/squid/bin/squid -NCd1
Jika berhasil anda akan melihat:
Ready to serve requests.
Jika anda ingin mengoperasikan squid di background, sebagai proses daemon, hentikan
saja semua option:
% /usr/local/squid/bin/squid
Catatan: Sesuai konfigurasi anda, anda mungkin perlu untuk memulai squid sebagai root.
Praktikum Jaringan Komputer PENS ITS
Iwan Syarif & Ferry Astika


Hardware yang dianjurkan untuk transparent caching.
Processor: Intel P3 550MHz CPU
Hard drive: Untuk performance dan stabilitas tinggi, disket SCSI dianjurkan atau
UDMA 66 Drive sebagai alternatif disket IDE. Tipe disket 9 GB lebih disukai.
Ethernet: Ethernet yang komplit dan bagus.
RAM : Untuk setiap 1 GB cache, 10 MB dari RAM disyaratkan untuk kasus diatas
minimum dari 300 MB diperlukan 512 MB RAM.

Sumber klik disini