Institutional Repository | Satya Wacana Christian University: Perancangan dan Implementasi Sistem Keamanan Jaringan dengan Metode Port Knocking untuk Mencegah Http Attack Vulnerability
Perancangan dan Implementasi Sistem Keamanan Jaringan
dengan Metode Port Knocking untuk Mencegah Http Attack
Vulnerability
Artikel Ilmiah
Peneliti :
Ruben Adi Wijaya (672010275)
Irwan Sembiring, S.T., M.Kom.
Program Studi Teknik Informatika
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Salatiga
Oktober 2014
Perancangan dan Implementasi Sistem Keamanan Jaringan
dengan Metode Port Knocking untuk Mencegah Http Attack
Vulnerability
1) 2)
Ruben Adi Wijaya, Irwan Sembiring
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. DIPonegoro 52-60, Salatiga 50771, Indonesia
1) 2)
Email: ruben.wijaya@yahoo.com, irwan@staff.uksw.edu
Abstract
With the development of today's world, a website is already popular in cyberspace. It
makes the website become the target of hackers that may be detrimental to the
exploitation of the website itself. To secure the website and database from hackers then
be made system to protect communication between client and server is called Port
Knocking. Port Knocking is a method of network security to open a closed port or to open
firewall acces and allow the knocker through designated port by sending certain packets
to the destination port. In this study, to protect communication between client with server
and database webserver on port 80 (http), there is a shadow port that is useful to move
database residing on the webserver that hackers can not find the location of the database
from the webserver on port 80 (http). So the client who wants to open a database of
webserver must do a combination of knock in the shadow ports contained within port 80
(http) to open the database safely unnoticed by hackers. This method can reduce the
vulnerabilities that becomes the target of hackers.Keywords : Website, Hacker, Port Knocking, Network Security, Port, Http
Abstrak
Dengan berkembangnya dunia saat ini, sebuah website sudah populer di dunia maya. Hal itu membuat website menjadi sasaran peretas untuk melakukan tindakan pengeksploitasian yang dapat merugikan website itu sendiri. Untuk mengamankan website dan databasenya dari peretas dibuatlah sistem untuk melindungi komunikasi antara client dengan server yang dinamakan Port Knocking. Port Knocking merupakan metode keamanan jaringan untuk membuka sebuah port yang tertutup atau membuka akses firewall dan mengizinkan knocker masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke port tujuan. Dalam penelitian ini untuk melindungi komunikasi antara client dengan server dan database webserver pada port 80 (http), terdapat port bayangan yang berguna untuk memindahkan database yang berada di webserver agar peretas tidak bisa menemukan lokasi database dari webserver yang berada di port 80 (http). Karena itu client yang ingin membuka database dari webserver harus melakukan kombinasi ketukan pada port bayangan yang terdapat di dalam port 80 (http) untuk dapat membuka database secara aman tanpa diketahui oleh peretas. Metode ini dapat mengurangi kelemahan pada webserver yang menjadi incaran peretas.Kata Kunci : Website, Peretas, Port Knocking, Keamanan Jaringan, Port, Http 1)
Mahasiswa Program Studi Teknik Informatika, Fakultas Teknologi Informasi, Universitas
Kristen Satya Wacana Salatiga 2) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana Salatiga1. Pendahuluan
Pada saat ini dunia maya sudah berkembang pesat disegala bidang khususnya di bidang website. Dengan berbagai macam website saat ini, informasi apapun yang diperlukan untuk pengembangan bisnis maupun pendidikan sangat mudah didapatkan. Namun ada kelemahan yang membuat sebuah website menjadi incaran para peretas yaitu keamanannya dalam menjaga database pada webserver sehingga saat seorang client ingin mengolah databasenya dari jarak jauh kadang seorang peretas dapat meretas jaringannya dan hal itu dapat membuat kerugian pada client itu sendiri. Komunikasi antara client dengan server haruslah aman dari orang-orang yang ingin mengeksploitasi tanpa izin.
Http (port 80) merupakan port yang sering diakses oleh banyak user untuk mengakses sebuah alamat dan port ini juga yang sering menjadi incaran setiap peretas untuk mengeksploitasi sebuah webserver. Membiarkan port terbuka merupakan masalah yang serius untuk keamanan jaringan itu sendiri. Hal ini membuat port 80 kurang aman dalam menjaga data-data yang penting yang terdapat di dalam databasenya dari para peretas yang tidak bertanggung jawab.
Port Knocking merupakan merupakan metode keamanan jaringan untuk
membuka sebuah port yang tertutup atau membuka akses firewall dan mengijinkan knocker masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke port tujuan[1]. Metode ini digabungkan dengan di dalam webserver untuk menciptakan port bayangan yang
virtualhost
tertutup dan di dalamnya juga terdapat database sehingga hanya bisa diakses oleh client dengan kombinasi ketukan. Metode ini menjadi solusi dari komunikasi antara client dengan server di port 80 yang menjadi aman.
Berdasarkan latar belakang masalah tersebut, maka dilakukan penelitian untuk merancang suatu keamanan jaringan untuk melindungi kelemahan
(vulnerability) webserver dari peretas (Http Attack). Metode yang akan
digunakan adalah Port Knocking yang berguna untuk mengamankan komunikasi antara client dengan server dalam mengelola databasenya melalui
port bayangan yang tertutup di port 80. Penelitian ini menghasilkan keamanan
komunikasi antara client dengan server dalam mengelola database di dalam webserver nya.
2. Kajian pustaka
Penelitian tentang Port Knocking sudah banyak diteliti oleh orang yang mahir di bidang keamanan jaringan, salah satunya tentang “Analisa dan
Implementasi Sistem Keamanan Jaringan dengan Iptables sebagai Firewall
Menggunakan Metode Port Knocking ”. Berdasarkan pembahasan daripenelitian yang dilakukan sebelumnya menyebutkan, bahwa Port Knocking dapat menyediakan keamanan khusus untuk komunikasi antara client dengan
server melalui kombinasi ketukan yang dilakukan ke port yang tertutup[2].
Berdasarkan penelitian terdahulu tentang
“Pengujian dan Analisa Keamanan Website Terhadap Serangan SQL Injection”, bahwa penelitian
serangan SQL Injection yang dilakukan peretas pada website membuat celah keamanan jaringan di database webserver terbuka, sehingga dibutuhkan langkah untuk menanggulangi celah kelemahan yang terdapat di sebuah webserver melalui port [3].
Berdasarkan pada penelitian yang terkait dengan Port Knocking dan kelemahan (vulnerability) webserver, maka dilakukan pengembangan penelitian yang membahas Perancangan dan Implementasi Sistem Keamanan jaringan dengan Metode Port Knocking untuk mencegah Http Attack
Vulnerability. Penelitian ini menghasilkan keamanan dalam berkomunikasi
antara client dengan server untuk mengelola database yang berada di dalam
webserver . Penelitian ini menggunakan sistem operasi Ubuntu dan
penyerangan menggunakan tools dari BackTrack.Keamanan jaringan adalah proses untuk mencegah dan mengidentifikasi penggunaan yang tidak sah dari jaringan komputer. Langkah-langkah pencegahan membantu menghentikan pengguna yang tidak sah yang disebut penyusup untuk mengakses setiap bagian dari sistem jaringan komputer. Tujuan keamanan jaringan komputer adalah untuk mengantisipasi resiko jaringan komputer berupa bentuk ancaman fisik maupun logik baik langsung ataupun tidak langsung mengganggu aktivitas yang sedang berlangsung dalam jaringan komputer [4]. Saat keamanan suatu jaringan selalu mengalami peningkatan, maka ancaman serangan ke port 80 pun semakin banyak seperti,
Back Door merupakan suatu serangan yang dengan sengaja membuka suatu
“pintu belakang” bagi pengunjung tertentu, tanpa disadari oleh orang yang meng-instal software, sehingga mereka dengan mudah masuk kedalam sistem jaringan. Port Scanning merupakan usaha pelacakan port yang terbuka pada suatu sistem jaringan sehingga dapat dimanfaatkan oleh hacker untuk melakukan serangan. XSS merupakan semacam cross site scripting, serangan melalui port 80 yang memanfaatkan kelemahan aplikasi pada situs web sehingga isi-nya bisa diubah (deface). Serangan - serangan ini dapat memungkinkan data yang berada di port 80 terancam dieksploitasi.
Port Knocking merupakan salah satu cara berkomunikasi pada jaringan komputer, cara yang umum digunakan adalah melalui port yang tertutup.
Dalam sebuah jurnal tentang metode Port Knocking menjelaskan bahwa metode ini merupakan metode keamanan jaringan untuk membuka sebuah
port yang tertutup atau membuka akses firewall dan mengijinkan knocker
masuk melalui port yang dituju melalui pengiriman paket-paket tertentu ke
port tujuan. Cara yang digunakan adalah dengan melakukan telnet ke port
yang tertutup pada server dengan tujuan untuk membuka port yang dituju[1].Format ketukan yang digunakan dalam Port Knocking menggunakan tiga
port ketukan sebagai tujuan pengiriman paket data untuk melakukan ketukan,
sehingga dibuat aturan untuk mempermudah proses ketukan yaitu ketukan sesuai dengan nomor port tujuan, digit terakhir pada nomor port ketukan merujuk pada nomor port tujuan. Sebagai contoh user ingin mengakses port 80 dengan range port ketukan yang telah ditentukan yaitu antara port 2000 sampai 4000, maka didapat nomor port ketukan 2000+a, 3000+b, 4000+c (abc merupakan port tujuan). Port ketukan tersebut merupakan port tujuan pengiriman paket data yang berfungsi sebagai port ketukan. Nomor tersebut menunjukkan port tujuan yang akan dibuka atau ditutup, sehingga ketukan yang dilakukan oleh user jika ingin membuka port 80 adalah seperti 2000, 3008, 4000 sedangkan untuk menutup port 80 maka ketukan yang dilakukan user adalah 3008, 4000, 2000. Proses pengetukan port dilakukan dengan cara mengirimkan paket data alamat sumber menuju alamat tujuan. Header pada paket data tersebut akan diperiksa terutama header control SYN yang digunakan untuk mensikronisasi sequence number. Apabila nomor port yang digunakan sebagai sequence ketukan sesuai dengan nomor tujuan yang telah di tentukan sebagai nomor port ketukan, maka port yang dituju akan membuka atau menutup sesuai dengan format ketukan yang digunakan[5].
Gambar 1 merupakan gambaran umum sistem Port Knocking yang meliputi empat tahap proses kerjanya yaitu : 1) Tahap pertama : saat akan melakukan Port Knocking, semua port ditutup dan karena semua port ditutup maka metode ini tidak bisa melindungi semua jenis layanan. Hal ini disebabkan karena koneksi yang dibangun menuju layanan yang dilindungi membutuhkan semacam password untuk mengaksesnya. Pada bagian A, client mencoba melakukan ketukan port terhadap server dan tidak terjadi suatu koneksi karena server tidak merespon sedangkan bagian B, client tidak bisa koneksi ke port manapun yang akan dituju karena ketukan belum benar; 2) Tahap kedua : seorang client sedang melakukan urutan ketukan dengan mengirimkan paket SYN (1,2,3,4). Urutan ketukan ini hanya diketahui oleh orang-orang tertentu yang dIPercaya. Selanjutnya dengan menggunakan ketukan ini, maka alamat IP seseorang yang oleh firewall sebelumnya dianggap sebagai user yang tidak dapat dipercaya akan berubah status menjadi user yang dapat dipercaya sehingga user akan diijinkan untuk mengakses atau melakukan koneksi terhadap layanan yang disediakan; 3) Tahap ketiga : setelah melakukan ketukan rahasia dengan tujuan membuka suatu port tertentu, maka pada bagian A server melakukan proses otentifikasi yaitu proses di mana PK daemon (Port Knocking daemon) menyetujui ketukan dari client sehingga membuka firewall sebagai jalur akses ke server. Fase mengetuk ini juga dapat diartikan sebagai ketukan pada pintu yang tidak terlihat karena client tidak dapat mengetahui port-port mana yang sedang dimonitor dan dicatat, dan demikian juga dengan orang lain ; 4) Tahap keempat : merupakan di mana proses sebuah port terbuka dan dapat melakukan koneksi dengan client, sedangkan alamat IP yang mencoba ingin masuk akan tetap di blok sehingga tidak dapat mengakses port tersebut. Setelah ketukan berhasil dari client yang sudah di otentifikasi oleh daemon
Port Knocking di server dan client dapat terhubung ke port tujuan, maka
client dapat masuk untuk mengolah aplikasi di dalam server tersebut. Dan bila
sudah selesai melakukan koneksi, client dapat melakukan ketukan lagi pada
port tujuan untuk memberi perintah pada firewall untuk menutup port yang
sebelumnya dibuka [6].Tahap 1 Tahap 2 Tahap 3 Tahap 4
Gambar 1 Gambaran Umum Sistem Port Knocking, Sumber: Port Knocking.org
Hypertext Transfer Protocol (HTTP) merupakan sebuah protocol jaringan lapisan aplikasi yang sering digunakan untuk mengawali menuju sebuah serta untuk system informasi terdistribusi, dan kolaboratif.
website
Penggunaanya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dokumen hypertexts, yang kemudian membentuk
World Wide Web pada tahun 1990 oleh Fisikiawan Inggris yaitu Tim Berners-
Lee. Sampai saat ini protocol HTTP mempunyai dua versi yang berbeda, yaitu HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang menggunakan koneksi yang sama untuk melakukan transaksi sehingga HTTP/1.1 bisa lebih cepat karena memang tidak perlu membuang waktu untuk membuat koneksi secara berulang-ulang[7].
BackTrack dibuat oleh Mati Aharoni yang merupakan konsultan security
dari Israel. Jadi merupakan kolaborasi komunitas. BackTrack sendiri merupakan merger dari whax yang merupakan salah satu distro Linux yang digunakan untuk tes keamanan yang asal dari whax sendiri dari Knoppix.
Ketika Knoppix mencapi versi 3.0 maka dinamakan dengan whax. Whax dapat digunakan untuk melakukan tes security dari berbagai jaringan di mana saja. Max Mosser merupakan auditor security collection yang mengkhususkan dirinya untuk melakukan penetrasi keamanan di Linux. Gabungan dari auditor dan Whax ini sendiri menghasilkan 300 tool yang digunakan untuk testing security jaringan. Auditor security collection juga terdapat pada knoppix. Namun sejak rilis ke-4 hingga rilis yang terbaru ini, BackTrack sudah tidak lagi menggunakan basis Knoppix. BackTrack kini menggunakan basis Ubuntu.
BackTrack telah memasuki versi 5 R3 dengan kernel 3.2.6.[4].
Berdasarkan pada tujuan yang ingin dicapai, penelitian ini dirancang dengan pendekatan “Penelitian dan Pengembangan”, artinya suatu program penelitian ditindaklanjuti dengan program pengembangan untuk perbaikan atau penyempurnaan. Metode yang digunakan yaitu model waterfall disebut juga dengan classic life cycle dengan terbagi dalam empat tahapan, yaitu: (1) Analisis kebutuhan sistem, (2) Perancangan sistem dan perangkat, (3) Implementasi sistem, dan (4) Pengujian sistem dan analisis hasil pengujian. Adapun tahapan yang dilakukan ditunjukkan pada Gambar 2.
Gambar 2 Tahapan Penelitian Tahap pertama : analisis kebutuhan dilakukan untuk mengumpulkan data
dengan cara mengumpulkan artikel yang berkaitan dengan keamanan jaringan,
Port Knocking, penetrasi atau serangan dan cara membangun web sederhana
serta penelitian terdahulu tentang Port Knocking; Tahap kedua : perancangan sistem dan perangkat meliputi perancangan proses Port Knocking di dan client serta perancangan penyerangan untuk menanggulangi
webserver
kelemahan port 80; Tahap ketiga : implementasi sistem, yaitu membuat simulasi serangan dan pencegahan serangan sesuai perancangan proses pada tahap kedua, yaitu misalnya bagaimana aplikasi atau program berjalan saat
Port Knocking dijalankan pada komunikasi client dan webserver; Tahap
keempat : pengujian sistem dan analisis hasil pengujian, yaitu dilakukan
pengujian dengan cara membandingkan sistem tanpa metode Port Knocking dengan yang menggunakan metode Port Knocking untuk mengetahui seberapa aman database dilindungi dari peretas menggunakan tools dari BackTrack.
Pada tahap perancangan sistem terdapat dua pengguna sistem untuk dapat menjalankan sistem ini, pertama adalah client dan kedua adalah admin. Client dapat melakukan aktivitas sebagai berikut : 1) Client mengelola sistem Port
Knocking di komputernya untuk dapat melakukan ketukan ke webserver di
admin; 2) Client melakukan ketukan yang sesuai dengan kombinasi yang
sudah diatur di webserver; 3) Client dapat membuka dan mengelola database di webserver saat ketukan berhasil. Admin dapat melakukan aktivitas berikut : 1) Admin mengelola sistem Port Knocking di komputernya untuk mengkonfigurasi ketukan saat client mengetuk; 2) Admin membangun dan mengelola webserver serta databasenya; 3) Admin membangun sebuah web untuk dapat diuji oleh peretas; 4) Admin mengelola port bayangan serta menempatkan folder database phpmyadmin kedalam direktori port 99 (port bayangan); 5) Admin dapat memonitoring client yang sedang melakukan ketukan.
Hardware dan software yang digunakan dalam membangun sistem ini
memiliki spesifikasi : 1) CPU Intel Core i3-2350M., 2.3Ghz, memory RAM
4GB; 2) Wi-fi speedy; 3) Software Port Knocking, Apache2; 4) Database yang digunakan phpmyadmin, mysql; 5) Web browser yang digunakan Mozilla
Firefox; 6) Bahasa pemrograman dalam membuat web adalah php5 dan html.
Dalam perancangan sistem keamanan ini, dibutuhkan sistem operasi
Ubuntu 12.04 serta untuk penetrasi ke webserver menggunakan tools dari
BackTrack.Untuk dapat mewujudkan sistem yang dibuat, maka pada perancangan selanjutnya adalah menginstall sistem Port Knocking ini di kedua komputer, karena pada penelitian terdahulu sistem ini dibuat secara manual sehingga pada perancangan ini yang dibutuhkan adalah menginstall. Untuk mengatur konfigurasi ketukan serta alamat port yang dituju dan setting port yang akan digunakan yaitu 2099, 3099, 4099, maka port yang dibuat di webserver menggunakan port 99. Pada konfigurasi OpenHTTP, bagian sequence berfungsi untuk menentukan port ketukan yang digunakan untuk membuka
port tujuan. Ketukan ini menggunakan aturan Jeaniquer yang mudah untuk
dihafalkan karena dengan kombinasi tiga ketukan dan disetiap akhir ketukan tertuju port tujuan yang akan diakses sebagai komunikasi antara webserver dengan client. Seq-timout=30 merupakan waktu di mana proses ketukan berlangsung sehingga bila waktu yang ditentukan habis maka, sistem akan menutup kembali jalur komunikasinya. Setelah itu pada bagian command merupakan di mana perintah Iptables untuk membuka port yang dituju dengan menyertakan alamat IP dan pada akhir perintah pada sistem ini bertuliskan yang berfungsi menunjukkan header paket yang dikirimkan
tcpflags=syn
sebagai ketukan port. Pada bagian CloseHTTP yang membedakan adalah ketukanya yang dibalik, fungsinya agar dapat menutup kembali port yang tadi dibuka, yang membedakan adalah perintah
- –D pada perintah Iptables yang mempunyai arti menghapus satu baris aturan yang sudah dibuat, sehingga dapat menutup port yang terbuka tadi.
Ketukan yang digunakan dalam program ini menggunakan dynamically
Assigned Port yang berkisar 1024 sampai 65536 sehingga dapat digunakan
sesuai kebutuhan. Untuk mengaktifkan program Port Knocking, komputer
server harus merubah setingan di dalam program Port Knocking dan set nama
interfacenya sesuai koneksi internet dan restart program Port Knockingnya.
Untuk komputer client proses install sama persis dengan komputer server.
Dalam program Port Knocking format ketukan yang digunakan dalam perancangan sistem adalah format port tunggal dengan pemetaan tetap, dan menggunakan tiga port ketukan sebagai tujuan koneksi data untuk melakukan ketukan. Dalam konfigurasi yang telah dibuat, dipilih tiga nomor port yang termasuk dalam kategori dynamically assigned port dan port yang dipilih merupakan port yang jarang digunakan di jaringan internet. Nomor yang digunakan untuk membuka port 99 adalah 2099, 3099, 4099. Untuk menutup kembali port yang terbuka adalah 4099, 3099, 2099. Kombinasi ketukan ini dapat dibuat rumit atau mudah tergantung client yang bisa mengingatnya. Aturan kombinasi ketukan ini merupakan aturan yang sudah dikenal lama oleh Sebastian Jeanquier yaitu menggunakan tiga buah port di mana masing- masing digit terakhir port menunjuk ke nomor port tujuan [5].
Gambar 3 adalah alur dari proses cara kerja pada penelitian ini. Sistem
Port Knocking pada komputer server dan komputer client harus diaktifkan.
Sebelum memulai proses knocking, client harus mengetahui alamat IP pada komputer server melalui terminal sehingga menemukan alamat IP server tersebut. Untuk memulai proses knocking, maka client harus mengetuk dengan kombinasi port tertentu untuk membuka port 99. Akan tetapi sebelum client terhubung ke port yang dituju, Port Knocking Daemon akan mencatat format ketukan, alamat IP dan alamat port di log data. Setelah disimpan maka program Port Knocking pada komputer server akan mengklarifikasi alamat IP dan port tujuan serta format ketukan. Jika alamat IP, port, dan format ketukan benar maka program Port Knocking pada komputer server akan membuka
port yang dituju. Apabila tidak cocok ketukanya , maka tidak ada port yang
terbuka dan tidak ada respon. Jika port sudah diklarifikasi di Port Knocking
daemon , maka program Port Knocking di komputer server akan menjalankan
perintah Iptables agar client bisa masuk ke port yang dituju. Setelah port terbuka, client bisa mengakses database. Bila akan menutup kembali port yang terbuka, maka komputer client akan melakukan ketukan kembali. Bila ketukan benar, maka Port Knocking daemon di webserver akan menutup port 99 kembali. Dan apabila ketukan salah atau tidak sesuai dengan aturan yang berada di server Port Knocking daemon, maka port akan tetap terbuka dan aman serta client tetap bisa melakukan komunikasi.
Gambar 3 Alur Proses Utama Pada Sistem
Pada perancangan selanjutnya yang dilakukan adalah menginstall
webserver pada Ubuntu 12.04 pada komputer server dengan menggunakan
Apache dan bahan-bahanya untuk membuat suatu simulasi penyerangan
terhadap kelemahan webserver (http attack vulnerability). Setelah itu untuk membuat contoh tampilan beberapa web utama yang berada di port 80 agar dalam satu webserver mempunyai banyak domain sehingga waktu client mebuka database yang disembunyikan, maka hanya database dari salah satu web yang terbuka. Perancangan web ini menggunakan bahasa html dan
php [9]. Gambar 4 merupakan tampilan beberapa web yang berada di port 80
dan dalam satu webserver yang sama untuk pengujian penetrasi yang sudah terinstall dan terkonfigurasi sistem Port Knocking.
Gambar 4 Tampilan Beberapa Contoh Web di Port 80
Pada perancangan selanjutnya agar sistem berjalan lancar, maka diperlukan untuk membuat virtualhost pada port 99 yang tertutup di dalam
webserver apache yang terinstall agar dapat dipakai untuk menempatkan
folder phpmyadmin yang hanya terbuka bila diketuk oleh client.Hasil implementasi sistem berdasarkan perancangan yang telah dilakukan, dijelaskan dengan topologi seperti ditunjukkan pada Gambar 5.
Gambar 5 Topologi Sistem Port Knocking Pada Webserver
Gambar 5 merupakan topologi sistem yang dibuat dengan menganalogikan bahwa saat client melakukan ketukan, peretas berusaha melakukan scanning terhadap database tetapi yang dihasilkan, peretas tidak menemukan tempat di mana database berada. Dalam implementasi sistem ini komputer client harus mengetahui alamat IP komputer webserver terlebih dahulu (karena pada perancangan ini menggunakan jaringan localhost) dan pada port 80 dibiarkan terbuka agar peretas masuk melalui port tersebut. Komputer client memulai kombinasi pengetukan untuk berkomunikasi dengan server dan masuk ke
database melalui port 99 yang tertutup dengan maksud membuka port 99
yang ditunjukkan pada Gambar 5. root@ubuntu:~# knock -v 192.168.5.10 2099 3099 4099 hitting tcp 192.168.5.10:2099 hitting tcp 192.168.5.10:3099 hitting tcp 192.168.5.10:4099Gambar 6 Perintah Port Knocking Untuk Membuka Port 99 Dari Client
Setelah melakukan ketukan, server akan melakukan monitoring port untuk mengetahui apakah ketukan berhasil atau tidak dengan mengetikkan perintah pada komputer server yang ditunjukkan pada Gambar 7.
root@SERVER:~# tail /var/log/knockd.log [2014-10-29 23:44] 192.168.5.10: openHTTP: Stage 1 [2014-10-29 23:44] 192.168.5.10: openHTTP: Stage 2 [2014-10-29 23:44] 192.168.5.10: openHTTP: Stage 3 [2014-10-29 23:44] 192.168.5.10: openHTTP: OPEN SESAME [2014-10-29 23:44] openHTTP: running command: /sbin/iptables -I INPUT -s 192.168.5.10 -p tcp --dport 99 -j ACCEPT
Gambar 7 Monitoring Dari Port Knocking daemon di Webserver Untuk Membuka Port 99
Jika ketukan yang dilakukan komputer client benar, maka Port Knocking
daemon akan menjalankan perintah Iptables untuk membuka port 99 (port
bayangan yang berada di dalam port 80) sehingga orang lain tidak bisa mengakses port bayangan ini selain client. Setelah berhasil akan muncul tampilan login masuk ke database phpmyadmin dari virtualhost yang dibuat di dalam webserver dengan mengetikkan 192.168.5.10:99 di browser client yang ditunjukkan pada Gambar 8, hal ini bertujuan untuk membedakan akses client . ke server internal serta database dari webserver
Gambar 8 Login Phpmyadmin Saat Setelah Ketukan Dari Client
Gambar 8 merupakan tampilan antarmuka saat client selesai melakukan ketukan pada webserver dan client bisa mengolah databasenya secara aman. Setelah client selesai dalam mengakses port 99 (port bayangan yang berada di
port 80) di komputer server, maka langkah selanjutnya adalah client
melakukan ketukan port kembali dengan format ketukan yang digunakan untuk menutup kembali port 99 pada komputer webserver,Perintah yang digunakan dapat dilihat pada Gambar 9.
root@ubuntu:~# knock -v 192.168.5.10 4099
3099 2099 hitting tcp 192.168.5.10:4099 hitting tcp 192.168.5.10:3099 hitting tcp 192.168.5.10:2099Gambar 9 Perintah Untuk Menutup Kembali Port 99 Yang Terbuka
Gambar 10 Proses Dari Ketukan Untuk Menutup Port 99
Ketika client melakukan ketukan, maka program Port Knocking daemon akan melakukan monitoring kembali apakah port yang diketuk sesuai dengan format ketukan CloseHTTP. Jika ketukan benar, maka Port Knocking daemon akan menjalankan perintah Iptables untuk menutup port 99 yang ada di dalam
port 80, sehingga tidak ada satu komputer serta client yang bisa mengakses
kembali port 99. Untuk mengetahui proses monitoring, komputer server melakukan perintah yang sama untuk menampilkan hasil monitoring sehingga akan tertampil pada Gambar 10.
5. Hasil Pengujian
Hasil pengujian dilakukan dengan membandingkan dua buah sistem yang berbeda yaitu :
1. Sistem Keamanan dengan Firewall pada Webserver tanpa metode Port Knocking
Sistem keamanan yang dibangun untuk melindungi webserver dengan
database nya yang hanya menggunakan firewall tanpa menggunakan metode
Port Knocking dan diserang dengan tools dari BackTrack. Adapun topologi
dan hasil pada Gambar 11 dan Gambar 12 dari proses menggunakan tools
websploit untuk menemukan nama login untuk masuk ke database pada
webserver . root@SERVER:~# tail /var/log/knockd.log [2014-10-29 23:44] 192.168.5.10: CloseHTTP: Stage 1 [2014-10-29 23:44] 192.168.5.10: CloseHTTP: Stage 2 [2014-10-29 23:44] 192.168.5.10: CloseHTTP: Stage 3 [2014-10-29 23:44] 192.168.5.10: CloseHTTP: CLOSE SESAME [2014-10-29 23:44] CloseHTTP: runningcommand: /sbin/iptables -D INPUT -s
192.168.5.10 -p tcp --dport 99 -j ACCEPTGambar 11 Topologi Dimana Peretas Melakukan Aksinya Saat Sistem Keamanan Jaringan yang Dibangun hanya Menggunakan Firewall
Gambar 11 menunjukkan bahwa sistem memakai firewall sebagai keamanan jaringan pada webserver beserta databasenya yang ddapat dijelaskan sebagai berikut :
Ketika admin sedang melakukan koneksi dengan webserver, maka peretas dengan mudah dapat melakukan serangan saat admin membuka akses databasenya melalui login phphmyadmin di port 80 yang selalu terbuka sehingga dengan menggunakan tools
websploit di BackTrack, peretas dapat mengetahui nama login
database nya dengan cara scanning seperti pada Gambar 12.
Gambar 12 Hasil Serangan dengan Websploit Sebelum Memakai Metode Port
Knocking
Gambar 13 Hasil Serangan Peretas yang Meretas Login Page Name dari Server sehingga
Peretas dapat masuk ke Phpmyadmin
Kemudian peretas dengan leluasa dapat masuk ke login page name
phpmyadmin , melakukan scanning password serta melakukan
tindakan pencurian, mengolah data, serta memanipulasi web yang dipublish tersebut dan admin dipastikan sulit untuk mengantisipasi hal tersebut.
Webserver
Sistem yang dibangun dengan menggunakan metode Port Knocking lebih aman karena disertakan juga virtualhost sebagai port bayangan agar admin bisa mengakses database phphmyadmin tanpa melalui port 80 sehingga peretas tidak akan mengetahui bahwa databasenya berada di port 99 yang dalam keadaan port tertutup ataupun filtered. Adapun topologi serta proses peretas melakukan scanning menggunakan tools websploit pada Gambar 14 dan Gambar 15.
Gambar 14 Topologi Sistem Keamanan Jaringan Menggunakan Metode Port Knocking
Untuk Melindungi Webserver dan Database
Pada Gambar 14 menunjukkan sistem keamanan jaringan dengan menggunakan metode Port Knocking untuk melindungi webserver serta
database nya yang akan dijelaskan sebagai berikut :
Ketika komputer admin ingin mengakses database pada port 99 pada webserver, maka yang dilakukan webserver adalah menutup
port
99 dan menonkatifkan service phpmyadmin serta memindahkan foldernya di dalam folder web di port 99 agar tidak bisa diketahui oleh peretas yang sedang melakukan scanning port ataupun scanning nama login database.
Gambar 15 Hasil Proses Serangan yang Dilakukan Peretas Setelah Webserver
Menggunakan Metode Port Knocking
Gambar 16 Hasil Saat Metode Port Knocking Diterapkan di port 80, dimana
Phpmyadmin tidak Ditemukan Walau di Scan Namun Bisa Terbuka oleh Client
Gambar 17 Hasil Saat Metode Port Knocking Dapat Melindungi Database Phpmyadmin
Kemudian admin akan melakukan ketukan pada port 99 yang berada didalam webserver sehingga admin dengan leluasa akan bisa mengakses database tanpa terdeteksi oleh peretas yang sedang melakukan scanning dengan tools websploit pada BackTrack dengan masuk ke webrowser dan mengetikkan alamat IP server dan menambahkan :99 dibelakang alamat IP server yang ditunjukkan pada Gambar 16.
Admin kembali melakukan pengetukan ke port 99 untuk menutup tersebut dan peretas tidak bisa masuk ataupun melacak port 99
port serta databasenya, seperti yang ditunjukkan pada Gambar 17.
Hanya admin yang dapat mengetahui format ketukan port dan webserver akan mengabaikan ketukan yang salah.
Berdasarkan penelitian dan pengujian yang telah dibuat, untuk mengamankan serangan dari peretas ke kelemahan webserver (http attack vulnerability) dengan menggunakan metode Port Knocking, maka dihasilkan kesimpulan: 1) Metode
Port Knocking bisa sangat berguna bagi para administrator untuk dapat
berkomunikasi dengan webserver dari mana saja; 2) Dengan metode Port
Knocking, komunikasi antara client dengan server menjadi aman dari peretas yang
ingin meretas melalui port 80 karena data serta databasenya sudah dialihkan ke
port 99 yang hanya bisa diakses oleh client melalui kombinasi ketukan dan hanya
client yang tahu kombinasinya; 3) Kelemahan-kelemahan yang ada di webserver
seperti kerentanan terhadap hacker sementara cukup bisa teratasi dengan metode
Port Knocking ; 4) Jika dibandingkan dengan komunikasi hanya lewat SSH,
perancangan lebih aman dikarenakan perancangan ini komunikasinya melalui port 80 (HTTP) dan mengakses port tersembunyi di dalam port 80 tersebut. Saran untuk pengembang sistem ini adalah : 1) Perancangan yang telah dibuat ini masih sangat sederhana, sehingga perlu dikembangkan lagi dengan cara penambahan sistem one time password atau ketukan yang terus diganti saat client melakukan komunikasi sehingga dapat mempersulit peretas untuk dapat meretas kombinasi ketukan; 2) Bisa dikembangkan lagi pada service port yang lain sehingga tidak hanya di webserver saja tapi metode ini dapat melindungi komunikasi pada
service apapun; 3) Dalam hal ketukan dapat ditambahkan dengan pemilihan port
yang rumit karena dalam perancangan ini hanya dibuat secara permanen untuk memudahkan dalam mengingat; 4) Metode ini bisa dikembangkan dan diuji tidak hanya di sistem operasi Ubuntu namun bisa coba diuji di berbagai sistem operasi.
Dwianto, Dedi., 2007, Membuka Akses Firewall Melalui Network,
Echozine, 5(7), (Diakses tanggal 17 September 2014).
[2].
Danu, Sujiwo, 2009, Analisa dan Implementasi Sistem Keamanan Jaringan dengan IPtables sebagai Firewall Menggunakan Metode Port Knocking,
Jurnal Informatika , 5(2):1-15.
[3].
Dahlan, Moh., 2014, Pengujian dan Analisa Keamanan Website Terhadap Serangan SQL Injection, 8(4):1-17. [4].
Andi, 2012, Network Hacking dengan Linux BackTrack, Semarang: Wahana Komputer. [5].
Jeanquier, Sebastian, 2006, An Analysis of Port Knocking and Single Packet Authorization, Information Security Group : Royal Holloway College, University of London.
[6].
Krzywinski, M., 2003, Port Knocking: Network Authentication Across Closed,Linux Journal, 12:12-17, http://www.linuxjournal.com/article/6811
(Diakses tanggal 20 September 2014.) [7].
[8].
Fakultas Ilmu Komputer Universitas Petra, VirtualBook , iakses tanggal 12 Oktober 2014). Anastasia, Melan, M., 2013, Trik Menguasai PHP + JQuery Berbasis Linux & Windows, Yogyakarta: Lokomedia.