cgi tunnel sebagai sarana penembus firewall dan...

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

Upload: others

Post on 22-Oct-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

  • 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.