CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ......

14
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

Transcript of CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ......

Page 1: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 2: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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 )

Page 3: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 4: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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 )

Page 5: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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.

Page 6: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 7: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 8: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 9: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 10: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 11: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 12: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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

Page 13: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

xiii

Daftar Tabel

Tabel 3.1 File System and Stream Configuration Option ..................................... 50

Tabel 4.1. ujicoba modul text/html handler. ......................................................... 54

Page 14: CGI TUNNEL SEBAGAI SARANA PENEMBUS FIREWALL DAN … · Demikian surat pernyataan ini saya buat ... Gambar 3.4. contoh source code penggunaan str ... Gambar 3.5. source code pengambilan

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.