Tuesday, August 19, 2008

QoS NG 1.5.1 didn't work on IPCOP 1.4.21 ???

Beberapa hari yang lalu, temenku yang segede gajah kebetulan melakukan sedikit kutak-katik ama router IPCOP ku. Yach ....sebenarnya aku juga yang suruh sich. Yakni ku suruh untuk buat settingan QoS di IPCOP router ku. Kebetulan aja aku harus ke dokter, dan dia nganggur di depan komputer. Jadilah dia yang musti membuat setting QoS yang seabrek itu.... :)
Tapi setelah semua setting lengkap, kok QoS nya tidak mau jalan. Request dari tiap komputer tetap saja amburadul. Sampai kutulis artikel ini pun, temenku itu tetap saja bingung....
Rupanya permasalahannya ialah karena aku yang tidak teliti. IPCOP 1.4.21 rupanya telah ada pembaharuan kernel, yaitu ke versi 2.4.36. Sedangkan layer7 yang merupakan base dari QoS NG yang kuinstall ialah untk kernel versi 2.4.34. Makanya semua jadi berantakan dech....
Untuk itu, aku harus menginstall layer7 dengan versi kernel yang sesuai. Berikut ini link nya.
Sedangkan untuk QoS NG nya, aku harus melakukan sedikit modifikasi pada file install, yaitu agar saat mendeteksi versi kernel, dapat disesuaikan dengan versi kernel yang baru. Modifikasi dilakukan pada baris:
if [ -e /lib/modules/2.4.34/kernel/net/ipv4/netfilter/ipt_layer7.o.gz]
dimana baris versi kernel 2.4.34 diganti dengan 2.4.36. Lalu tinggal melakukan proses instalasi seperti biasa. Mudah kan......

Thursday, August 7, 2008

Squid for FTP Traffic (continue...)

Today aku mencoba sebuah ide. Begini konsepnya, aku akan men-drop semua packet yang lewat port 21. Dengan demikian, harapanku, traffic ini akan otomatis tidak lagi memiliki direct access, tetapi akan dibelokkan lewat proxy.
Maka aku mengutak-atik sedikit baris di /etc/rc.d/rc.firewall.local, yaitu file yang memang disediakan oleh IPCop apabila kita hendak melakukan custom rules (dengan harapan agar tidak perlu mengutak-atik, atau bahkan merusak tatanan default firewall dari IPCop).
Untuk men-drop semua packet yang lewat port 21, aku menambahkan baris berikut ini:
/sbin/iptables -A CUSTOMFORWARD -i eth0 –o eth1 -p tcp -m mport --dports 21 -j DROP
dimana eth0 ialah interface yang menghadap ke arah LAN, dan eth1 ialah interface yang mengarah ke internet. Kemudian custom rule ini aku jalankan dengan melakukan reload dari file tersebut, yaitu dengan perintah /etc/rc.d/rc.firewall.local reload
Setting koneksi browser kurubah dengan mode manual, dan kumasukkan ip beserta port dari proxy server. Dan langsung kucoba untuk melakukan koneksi ke ftp server dari salah satu game online via browser. Hasilnya memuaskan, traffic ftp dapat dicapture dengan baik oleh squid.
Berikutnya, kucoba untuk melakukan koneksi ftp via software FTP Client, yaitu aku menggunakan FileZilla. Hasilnya menyedihkan, koneksi FTP sama sekali gagal....!!!!
Berikutnya langsung kucoba untuk menjalankan proses patching dari game online yang memiliki ftp server ini. Bah....hasilnya sungguh-sungguh mengecewakan. Proses patching sama sekali gagal terkoneksi, alias koneksi ftp yang hendak dilakukan gagal total.
Kesimpulannya, metode ini memang memaksa koneksi ftp untuk lewat squid, tetapi hanya jika koneksi tersebut dilakukan via browser. Jika koneksi dilakukan via native FTP Client, maka koneksi ftp akan sama sekali gagal dilakukan.

Tuesday, August 5, 2008

Squid for FTP Traffic

Setelah beberapa hari tak tersentuh, project untuk membuat cache dari file-file patch game online berlanjut hari ini. Salah satu kendala saat ini, ialah beberapa layanan sistem patching ini menggunakan protocol FTP. Hal ini terdeteksi dari router, yaitu bahwa saat proses patching berjalan, connection establish pada port 21, yaitu port untuk FTP.
Nah, karena proses ini patching ini berjalan secara in background, maka aku perlu melakukan snifing untuk mengetahui ke arah mana proses ini berjalan, dan file-file apa saja yang diambil. Untuk proses snifing, aku memakai program classic, yaitu ethereal.
Setelah data-data terkumpul via snifing, yaitu ip address dari FTP server yang dituju, lengkap dengan jenis-jenis file yang di download untuk proses patch ini, maka aku mulai kembali untuk menata scripting dari update-accelerator.
Tetapi, ternyata setelah data-data tersebut aku implementasikan ke script update-accelerator, ternyata, tetap saja file-file patch ini gagal di cache. Waduh......apa yang salah yach...???
Lalu kucoba untuk mengintip log file dari squid. Karena bagaimanapun, proses cache ini kan berbasis atas deteksi dari traffic yang lewat dan dimonitor oleh system proxy, yang dalam hal ini ialah berbasis squid versi 2.6.STABLE17.
Setelah membaca ratusan baris dari log file yang ada, ternyata tak ada satupun traffic FTP yang berhasil dipantau oleh squid. Timbul pertanyaan....mengapa???
Setelah googling sejenak, kutemukan jawabannya pada miniHowTo dari Squid, yaitu ialah karena aku menggunakan sistem transparent proxy. Ternyata sistem transparent proxy memang tidak mampu meng-capture traffic FTP.
Segera saja kumatikan sistem transparent proxy yang ada pada router, dan kemudian aku melakukan setting manual pada web browserku untuk konfigurasi proxy. Langsung kucoba untuk membuka web browser dan mendownload sembarang file dari sembarang FTP server. Saat kuintip di log dari squid, dan olala.....ternyata traffic FTP sudah nongol di log file. Duh lega rasanya.
Langsung kucoba ulang dengan melakukan download salah satu file patch milik online game via web browser, dimana yang telah kucoba kumasukkan di script update-accelerator. Ternyata file ini dapat di cache pula dengan baik. File ini dapat muncul dengan sempurna di daftar file-file hasil cache dari update-accelerator pula.
Tapi saat kucoba untuk melakukan patching dari game online tersebut......wele-wele.....ternyata tetap saja tidak ada file yang berhasil di cache. Saat kucoba untuk mengintip lagi file log dari squid, ternyata juga tak terdeteksi traffic FTP apapun di log file ini. Duh...apa lagi yang salah ya???
Tampaknya, kesimpulan sementara, ialah squid hanya mampu mendeteksi traffic FTP yang dilakukan via web browser, bukan traffic via direct FTP. Nah sepertinya proses patching dari game online ini menggunakan proses direct FTP, bukan proses FTP di atas HTTP. Sehingga dengan demikian prosesnya tidak ada yang terdeteksi oleh squid. Entah benar atau salah kesimpulanku ini????