CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN...
Transcript of CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN...
-
i
CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL
DAN SQUID PROXY
Laporan Tugas Akhir
Diajukan Untuk Memenuhi
Persyaratan Guna Meraih Gelar Sarjana Strata 1 Teknik Informatika Universitas Muhammadiyah Malang
BEKTI PUTRO WIBOWO 07560133
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
Juli 2014
-
ii
Lembar Persutujuan
CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL
DAN SQUID PROXY
Diajukan Untuk Memenuhi Salah Satu Syarat Memeperoleh Gelar Sarjana (S1)
Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh
Bekti Putro Wibowo
07560133
Diperiksan dan disetujui oleh
Dosen Pembimbing I Dosen Pembimbing II
(Zamah Sari, MT) (Yuda Munarko, S.Kom, M.Sc )
-
iii
Lembar Pengesahan
CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL
DAN SQUID PROXY
Diajukan Untuk Memenuhi Salah Satu Syarat Memeperoleh Gelar Sarjana (S1)
Teknik Informatika Universitas Muhammadiyah Malang
Disusun Oleh
Bekti Putro Wibowo
07560133
Disetujui oleh:
Penguji I Penguji II
Syaifuddin, S.Kom Maskur, S.Kom
Mengetahui,
Ketua Jurusan Teknik Informatika
Yuda Munarko, S.Kom, M.Sc
NIP : 108.0611.0443
-
iv
LEMBAR PERNYATAAN
Yang bertanda tangan dibawah ini :
Nama : Bekti Putro Wibowo
Tempat/ Tgl Lahir : Madiun / 11 November 1983
NIM : 07560133
FAK./JUR. : Teknik Informatika
Dengan ini saya menyatakan bahwa Tugas Akhir kami dengan judul “CGI
TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN SQUID
PROXY” beserta seluruh isinya adalah karya saya sendiri dan bukan merupakan
karya tulis orang lainm baik sebagian maupun seluruhnya, kecuali dalam bentuk
kutipan yang telah disebutkan sumbernya.
Demikian surat pernyataan ini saya buat dengan sebenar-benarnya. Apabila
kemudian ditemukan adanya pelanggaran terhadap etika keilmuan dalam karya
saya ini, atau ada klaim dari pihak lain terhadap keaslian karya saya ini maka saya
siap menanggung segala bentuk resiko/sanksi yang berlaku.
Malang, 11 Juli 2014
Bekti Putro Wibowo
Mengetahui
Dosen Pembimbing I Dosen Pembimbing II
(Zamah Sari, MT) (Yuda Munarko, S.Kom, M.Sc )
-
v
Kata Pengantar
Puji syukur alhamdulillah penulis panjatkan kehadirat Allah SWT atas
berkat, rahmat, taufik dan hidayah-Nya, penyusunan skripsi yang berjudul “CGI
TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN SQUID PROXY”
dapat diselesaikan dengan baik.
Penulis menyadari bahwa dalam proses penulisan skripsi ini banyak
mengalami kendala, namun berkat bantuan, bimbingan, kerjasama dari berbagai
pihak dan berkah dari Allah SWT sehingga kendala-kendala yang dihadapi
tersebut dapat diatasi. Untuk itu penulis menyampaikan ucapan terima kasih dan
penghargaan kepada Bapak Zamah Sari, MT selaku pembimbing I dan Bapak
Yuda Munarko, S.Kom, M.Sc selaku pembimbing II yang telah dengan sabar,
tekun, tulus dan ikhlas meluangkan waktu, tenaga dan pikiran memberikan
bimbingan, motivasi, arahan, dan saran-saran yang sangat berharga kepada
penulis selama menyusun skripsi.
Selanjutnya ucapan terima kasih penulis sampaikan pula kepada:
1. Bapak Dr. Muhadjir Effendy, MAP selaku Rektor Universitas
Muhammadiyah Malang.
2. Bapak Ir. Erwin Romel, MT Dekan FT Universitas Muhammadiyah
Malang.
3. Bapak dan Ibu Dosen Program Studi Fakultas Teknik Informatika yang
telah memberi bekal ilmu pengetahuan sehingga penulis dapat
menyelesaikan studi dan menyelesaikan penulisan skripsi ini.
http://staff-site.umm.ac.id/staff/home.php?kdn=132061192&nama=Erwin%20Rommel,%20Ir.,%20MT.&c=view
-
vi
4. Rekan-rekan Mahasiswa Program Studi PGSD yang telah banyak
memberikan masukan kepada penulis baik selama dalam mengikuti
perkuliahan maupun dalam penulisan skripsi ini.
5. Ibunda Suci Kunto Rini dan Tarpi‟i yang sangat banyak memberikan
bantuan moril, material, arahan, dan selalu mendoakan keberhasilan dan
keselamatan selama menempuh pendidikan.
6. Semua pihak yang tidak dapat penulis sebut satu persatu yang telah
membantu dalam penyelesaian penulisan skripsi ini.
Akhirnya, dengan segala kerendahan hati penulis menyadari masih banyak
terdapat kekurangan-kekurangan, sehingga penulis mengharapkan adanya saran
dan kritikyang bersifat membangun demi kesempurnaan skripsi ini.
Malang, 11 Juli 2014
Penulis,
Bekti Putro Wibowo
-
vii
Daftar Isi
Halaman Judul ......................................................................................................... i
Lembar Persetujuan ................................................................................................ ii
Lembar Pernyataan Keaslian ................................................................................. iii
Abstrak .................................................................................................................. iv
Abstract ................................................................................................................... v
Kata Pengantar ...................................................................................................... vi
Daftar Isi .............................................................................................................. viii
Daftar Gambar ...................................................................................................... xii
Daftar Tabel ........................................................................................................ xiv
BAB I PENDAHULUAN ...................................................................................... 1
1.1. Latar Belakang ................................................................................................. 1
1.2. Rumusan Masalah ............................................................................................ 2
1.3. Tujuan .............................................................................................................. 2
1.4. Batasan Masalah .............................................................................................. 2
BAB II LANDASAN TEORI ............................................................................... 3
2.1. Proxy Server ..................................................................................................... 3
2.2. Tunneling ......................................................................................................... 3
2.2.1. Tunnel Server ................................................................................................ 3
2.2.2. Tunnel Client ................................................................................................. 4
2.3. CGI – Pemrograman Server ............................................................................. 4
2.3.1. PHP ............................................................................................................... 4
2.3.2. Struktur PHP ................................................................................................. 4
2.4. HTTP (Hypertext Transfer Protokol) ............................................................... 5
2.5. CRC (Cyclic Rududancy Check) ..................................................................... 5
2.6. Cookies ............................................................................................................. 5
2.7. Binary Floor Control Protocol ......................................................................... 5
BAB III ANALISA DAN PERANCANGAN SISTEM ...................................... 7
3.1. Perancangan Sistem CGI Tunnel ..................................................................... 7
3.2. Solusi CGI Tunnel ............................................................................................ 7
-
viii
3.2.1. Solusi Untuk Pembatasan Akses Berkas berdasarkan Bagian dari Request
Url, berdasarkan Domain Name dan IP address ..................................................... 8
3.2.2. Solusi Untuk Pembatasan Akses Berkas berdasarkan Header Dokumen. .... 8
3.2.3. Solusi Untuk Pembatasan Akses Berkas berdasarkan Ukuran Dokumen. .... 8
3.2.4. Solusi Untuk Pengiriman Data Antara Client – CGI Tunnel – dan pihak ke
tiga ........................................................................................................................... 8
3.2.5. Solusi Lainnya ............................................................................................... 9
3.3. Skema Umum CGI Tunnel ............................................................................... 9
3.3.1. Tabel difinisi Global ..................................................................................... 9
3.3.2. Template dan Penanganan Tampilan User Interface .................................... 9
3.3.3. Browser Page User Interface ....................................................................... 10
3.3.4. Modul-Modul CGI Tunnel .......................................................................... 10
3.3.5. Halaman Browser ........................................................................................ 10
3.3.6. Junction ....................................................................................................... 11
3.4. Modul Dalam CGI Tunnel ............................................................................. 11
3.4.1. Modul Http Request Handler. ..................................................................... 12
3.4.2. Penanganan Dokumen Bertipe Text/Html .................................................. 12
3.4.3. Penanganan Dokumen Binary atau non Text/html file. .............................. 15
3.4.4. Format Request Header dalam modul HTTP downloader untuk mendukung
Resume. ................................................................................................................. 16
3.5. Manisfestasi Response Header dalam CGI Tunnel. ....................................... 16
3.5.1. Membentuk Status Response Header dalam CGI Tunnel. .......................... 16
3.6. Cahce Control ................................................................................................ 19
3.7. Mime Type (Multi Purpose Internet Mail Extension) ................................... 20
3.7.1. Penggunaan ekstensi sebagai MIME-type .................................................. 20
3.8. Connection Close & Persistant Connection ................................................... 21
3.9. Modul FTP Handler ....................................................................................... 22
3.9.1. Dokumentasi FTP Downloader ................................................................... 25
3.10. Shell Command. ........................................................................................... 33
3.11. Modul File Browser pada CGI Tunnel Server. ............................................ 34
3.12. Kelompok Modul Manajement CGI Tunnel. ................................................ 37
3.12.1. Mount Point. .............................................................................................. 37
-
ix
3.12.2. Kelompok Modul Transproter ................................................................... 38
3.12.3. FTP-HTTP to FTP Transporter ................................................................. 39
3.12.4. Client to CGI Tunnel Server ..................................................................... 40
3.12.5. Client to FTP Server melalui CGI Tunnel Server. .................................... 41
3.12.6. CGI Tunnel server to FTP Server ............................................................. 42
3.13. Kelompok Modul Cache & Mirroring. ........................................................ 45
3.13.1. HTTP & FTP Cache .................................................................................. 45
3.13.2. HTTP & FTP Cache & Split .................................................................... 45
3.14. Remote File Joiner. ...................................................................................... 46
3.15. Lebih dalam pada mekanisme pendukung pada CGI Tunnel ..................... 46
3.16. Enkripsi URL ............................................................................................... 46
3.17. Resumable Support. ..................................................................................... 47
3.18. Mekanisme Forwarding POST data. ............................................................ 49
3.19. Metode Forwarding request, Replay dan metode pangambilan data pada
modul-modul CGI Tunnel secara umum. .............................................................. 50
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM 52
4.1. Prosedur Pengujian. ........................................................................................ 52
4.2. Implementasi CGI Tunnel. ............................................................................. 52
4.2.1. Spsifikasi perangkat jaringan yang digunakan dalam pengujian. ............... 52
4.3. Perangkat Lunak yang digunakan dalam pengujian ....................................... 53
4.3.1. Perangkat lunak pada server ........................................................................ 53
4.3.2. Perangkat lunak pada client ........................................................................ 53
4.3.3. Pengujian Modul ......................................................................................... 54
4.4. Pengujian Kelompok Modul HTTP request Header. ..................................... 54
4.4.1. Pengujian Modul pemroses file bertipe text/html. ...................................... 54
4.5. Pengujian Kelompok Modul FTP request Handler. ....................................... 55
4.5.1. Pengujian Modul FTP Browser. .................................................................. 55
4.6. Pengujian Kelompok Modul Relay Point Explorer ....................................... 56
4.6.1. Pengujian modul file browser ..................................................................... 56
4.7. Pengujian Kelompok Modul CGI Tunnel Cacher .......................................... 56
4.7.1. HTTP Cacher .............................................................................................. 57
4.8. Pengujian Kelompok Modul Transporter ....................................................... 58
-
x
4.8.1. Pengujian Modul Client to FTP Transporter ............................................... 58
BAB V PENUTUP ............................................................................................... 60
5.1. Kesimpulan ................................................................................................... 60
5.2. Kritik dan Saran ............................................................................................. 60
DAFTAR PUSTAKA ........................................................................................... 61
lAMPIRAN
-
xi
Daftar Gambar
Gambar 3.1. Skema global mekanisme kerja CGI Tunnel melalui web browser ............ 10
Gambar 3.2. flowchart skema proses – akses melalui mekanisme junction ......... 11
Gambar 3.3 Flowchart rancangan modul text/html http handler .......................... 13
Gambar 3.4. contoh source code penggunaan str_replace. ................................... 14
Gambar 3.5. source code pengambilan embeded object pada halaman html ........ 15
Gambar 3.6. source code fungsi dan super global variable untuk membaca request
header http_range. ................................................................................................. 16
Gambar 3.7. Source code untuk membentuk response header .............................. 17
Gambar 3.8. Format response header „Content-Length‟ ....................................... 17
Gambar 3.9. Format request header Range ........................................................... 18
Gambar 3.10. source code fetch dokumen dengan menggunakan fsockopen
dengan resquest header. ........................................................................................ 19
Gambar 3.10. variabel $response untuk memisahkan header dan isi dokumen..... 21
Gambar 3.11. souce code fetch dokumen dengan menggunakan fsockopen dengan
request header . ...................................................................................................... 22
Gambar 3.12. Skema flowchart rancangan modul utama FTP Handler. .............. 23
Gambar 3.13. source code contoh penggunaan ftp_rawlist(). ............................... 24
Gambar 3.14. output dari variabel dump hasil eksekusi fungsi ftp_rawlist() ....... 24
Gambar 3.15. source code baris perintah parsing output ftp_rawlist() dengan
fungsi ereg. ............................................................................................................ 24
Gambar 3.16. source code penempatan hasil parsing dalam setiap elemen array 25
Gambar 3.17. Flowchart perencanaan cetak biru modul FTP Downloader. ......... 26
Gambar 3.18. source code FTP downloader dengan penyimpanan buffer dengan
menggunakan fungsi ftp get dan fasilitas non blocking. ....................................... 29
Gambar 3.19. source code pengembangan lebih lanjut FTP downloader dengan
penyimpanan buffer dengan menggunakan fungsi ftp get. ................................... 33
Gambar 3.20. Source code manifestasi fopen untuk membuka dokumen dalam
sebuah FTP server ................................................................................................. 33
Gambar 3.21. perintah dalam Shell-Explorer. ...................................................... 34
-
xii
Gambar 3.22. source code penelusuran terhada semua item dalam sebuah direktori
................................................................................................................................ 35
Gambar 3.23.hasil eksekusi fungsi readdir(). ........................................................ 35
Gambar 3.24. source code pembanding algoritma natural sort dengan metode
biasa ....................................................................................................................... 36
Gambar 3.25. output eksekusi source code gambar ............................................. 36
Gambar 3.26. perbandingan output algoritma natural sorting case insensitive. .... 36
Gambar 3.27. output eksekusi source code gambar .............................................. 37
Gambar 3.28. konfigurasi modul Mount Point. .................................................... 38
Gambar 3.29. flowchart uploading dari sebuah FTP dan HTTP server menuju FTP
server. .................................................................................................................... 39
Gambar 3.30. skema umum CGI TUNNEL SERVER ......................................... 40
Gambar 3.31. flowchart rancangan dari modul pembaca post data ...................... 41
Gambar 3.32. Flowchart rancangan perencanaan fungsi upload pada modul CGI
Tunnel to remote FTP server.................................................................................. 43
Gambar 3.33. Source code fungsi pemeriksa jenis item pada remote ftp server. . 45
Gambar 3.34. rule scramble default dari class encrypt. ........................................ 47
Gambar 3.35. source code penggunaan fungsi fseek(). ........................................ 48
Gambar 3.36. source code pembuatan response header untuk resuming support. 48
Gambar 3.37. flowchart perencanaan prosedur pemisahan header dan badan
dokumen dari hasil eksekusi fsockopen(). ............................................................ 49
Gambar 4.1. index direktori ftp pada server arachnotron.ddns.net ....................... 55
Gambar 4.2. index direktori ftp pada server cgitunnel.com .................................. 56
Gambar 4.3. Halaman interface modul Cacher. .................................................... 57
Gambar 4.4. Hasil CRC dari file asli hjsplit.zip ................................................... 57
Gambar 4.5. Hasil CRC dari cache file hjsplit.zip ................................................. 58
Gambar 4.6. Halaman Interface modul Client to FTP Transporter ....................... 59
Gambar 4.7. Hasil CRC dari file asli. ................................................................... 59
Gambar 4.8. Hasil CRC dari file pada ftp host tujuan. ......................................... 59
-
xiii
Daftar Tabel
Tabel 3.1 File System and Stream Configuration Option ..................................... 50
Tabel 4.1. ujicoba modul text/html handler. ......................................................... 54
-
xiv
Daftar Pustaka
[1] Hamilton D. Jacqueline , “CGI Programming 101” Houston,
1999
[2] Joyce Park, Clark Morgan, “PHP5 and MySQL Bible” Addison-
Wesley, Boston, 2004
[3] Larry L. Peterson and Bruce S. Davie, “Computer Networks, A
System Approach, Fifth Edition” USA, 2012.
[4] Ole J. Jacobsen “The Internet Protocol Journal, Volume 15,
Number 3 ”
www.cisco.com/ipj September 2012.
[5] Stevens, W. Richard : TCP/IP Illustrated, Volume 1: The
Protocols, Addison-Wesley, Boston, 1994
[6] Wikipedia, Tunneling Protocol.
http://en.wikipedia.org/wiki/Tunneling_Protocol , didownload
pada tanggal 03 November 2012.