perancangan dan implementasi sistem keamanan jaringan … · 2018. 7. 5. · mengakses sebuah...
TRANSCRIPT
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) Ruben Adi Wijaya, 2) Irwan Sembiring
Fakultas Teknologi Informasi
Universitas Kristen Satya Wacana
Jl. DIPonegoro 52-60, Salatiga 50771, Indonesia
Email: 1) [email protected], 2) [email protected]
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 Salatiga
1
1. 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
virtualhost di dalam webserver untuk menciptakan port bayangan yang
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
webservernya.
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 dari
penelitian 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].
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
3
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].
4
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
website serta untuk system informasi terdistribusi, dan kolaboratif.
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.
5
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].
3. Metode Perancangan Sistem
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
webserver dan client serta perancangan penyerangan untuk menanggulangi
kelemahan port 80; Tahap ketiga : implementasi sistem, yaitu membuat
simulasi serangan dan pencegahan serangan sesuai perancangan proses pada
6
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
tcpflags=syn yang berfungsi menunjukkan header paket yang dikirimkan
sebagai ketukan port. Pada bagian CloseHTTP yang membedakan adalah
7
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.
8
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.
9
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.
4. Hasil dan Pembahasan
Hasil implementasi sistem berdasarkan perancangan yang telah dilakukan,
dijelaskan dengan topologi seperti ditunjukkan pada Gambar 5.
10
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.
Gambar 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.
Gambar 7 Monitoring Dari Port Knocking daemon di Webserver Untuk Membuka Port 99
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
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:4099
11
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.
Gambar 9 Perintah Untuk Menutup Kembali Port 99 Yang Terbuka
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:2099
12
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
databasenya 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: running command: /sbin/iptables -D INPUT -s 192.168.5.10 -p tcp --dport 99 -j ACCEPT
13
Gambar 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
databasenya dengan cara scanning seperti pada Gambar 12.
14
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.
15
2. Sistem Keamanan menggunakan Metode Port Knocking pada
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
databasenya 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.
16
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
17
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
port tersebut dan peretas tidak bisa masuk ataupun melacak port 99
serta databasenya, seperti yang ditunjukkan pada Gambar 17.
Hanya admin yang dapat mengetahui format ketukan port dan
webserver akan mengabaikan ketukan yang salah.
6. Simpulan
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
18
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.
6. Daftar Pustaka
[1]. Dwianto, Dedi., 2007, Membuka Akses Firewall Melalui Network,
Echozine, 5(7), http://www.echo.or.id. (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,
http://faculty.petra.ac.id/dwikris/docs/desgrafisweb/www/4-
apaitu_www.html, (Diakses tanggal 12 Oktober 2014).
Anastasia, Melan, M., 2013, Trik Menguasai PHP + JQuery Berbasis
Linux & Windows, Yogyakarta: Lokomedia.