PORT KNOCKING
Untuk mendapatkan suatu system yang seratus persen aman dari gangguan dari
luar ialah dengan memutuskan hubungan dengan system eksternal. Tapi dengan
menutup system tersebut dari system luar, maka system tersebut tidak akan ada lagi
gunanya sebab system tersebut tidak dapat lagi diakses dan dipergunakan bahkan
oleh yang berhak dan membutuhkan.
Sebuah system yang baik harus memiliki keseimbangan antara keamanan dan
fleksibilitas dari system tersebut. Salah satu cara mencapai system komputer seperti
demikian ialah dengan menggunakan firewall. Dengan menggunakan firewall, maka
kita dapat mendefinisikan user yang dapat dipercaya dan yang tidak dapat dipercaya
dengan menggunakan alamat IP sebagai kriteria filter.
Kelemahan dari firewall ialah bahwa firewall tidak mampu membedakan user
yang dapat dipercaya. Firewall hanya mampu membedakan alamat IP yang
diasumsikan digunakan oleh orang yang tidak dapat dipercaya.
Untuk mendapatkan keamanan yang diperlukan dan kemampuan untuk
mengizinkan user yang bisa dipercaya untuk mengakses server maka diperlukan
suatu metoda yang memenuhi kedua kriteria tersebut. Salah satu metoda baru yang
dianggap memiliki kemampuan untuk memenuhi kedua kriteria tersebut adalah port
knocking.
Port knocking adalah suatu metoda dimana komputer remote (client)
berkomunikasi dengan sebuah server melalui port yang tertutup. Komunikasi ini
sendiri berlangsung secara satu arah, yaitu dari client menuju server. Server tidak
memberikan respons apapun terhadap client.
Perlengkapan yang Dibutuhkan
Implementasi dari port knocking membutuhkan beberapa perlengkapan
tambahan, yaitu:
· Firewall yang mampu mencatat setiap koneksi ke dalam port tertutup,
memonitor logfile secara real time, dan mampu merubah aturannya secara
dinamis
Firewall berfungsi salah satunya untuk melindungi home network
· IPChains atau IPTables akan sangat membantu
· Program utama yang menjalankan algoritma port knocking
Cara Kerja Port Knocking
Untuk mengaplikasikan metoda port knocking ini, pertama-tama semua port
yang ada ditutup terlebih dahulu. Meskipun port ditutup, layanan yang disediakan
tetap berjalan. Hal ini akan menyebabkan tidak ada orang dari luar yang mampu
mengakses layanan tersebut.
Seluruh port ditutup sehingga tidak ada yang dapat mengakses
Setelah semua port ditutup, maka beberapa port dicatat segala aktivitas yang
terjadi pada port tersebut, termasuk percobaan yang dilakukan untuk mengakses
port-port tersebut.
Oleh karena ditutupnya seluruh port ini, metoda port knocking ini tidak cocok
untuk melindungi semua jenis layanan. Hal ini disebabkan karena koneksi yang
dibangun menuju layanan yang dilindungi membutuhkan semacam ‘password´untuk
mengaksesnya. Sementara itu, koneksi menuju layanan-layanan publik dapat datang
dari mana saja sehingga metoda ini kurang cocok untuk melindungi layanan bersifat
publik.
Apabila ada suatu saat ada seorang user yang ingin mengakses layanan tertentu,
misalnya SSH, user tersebut akan mengawali koneksi dengan melakukan percobaan
koneksi ke port-port tertentu yang dimonitor dengan urutan tertentu juga. Urutan
‘ketukan’ ini hanya diketahui oleh orang-orang tertentu yang dipercaya (menjadi
semacam password untuk menggunakan layanan tertentu). 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 diizinkan untuk mengakses atau melakukan
koneksi terhadap layanan yang disediakan.
Seorang user melakukan ketukan rahasia
Fase mengetuk ini dapat dianalogikan sebagai ketukan pada pintu yang tidak
terlihat. Fase ini disebut demikian karena user tidak dapat mengetahui port-port
mana yang sedang dimonitor dan dicatat, dan demikian juga dengan orang lain
(terutama yang tidak dipercaya).
Setelah firewall mendeteksi adanya ketukan dengan urutan ketukan yang benar
pada port yang benar pula, maka aturan (rule) dari firewall akan diubah sehingga
alamat IP yang sesuai dengan yang ada pada log dari firewall akan diizinkan untuk
melakukan koneksi dengan port tertentu. Seperti terlihat pada gambar 2.4.
Seorang user diizinkan melakukan koneksi
(Diambil dari http://www.portknocking.org/)
Meskipun sebuah port telah dibuka untuk melakukan koneksi dengan user
tertentu, alamat IP yang lain tetap diblok sehingga tidak dapat mengakses port
tersebut seperti terlihat pada gambar di atas. Setelah user selesai dalam melakukan
koneksi dan menyelesaikan sesinya, maka user tersebut melakukan lagi ketukan
pada port yang dimonitor untuk memberi tanda pada firewall untuk menutup port
yang sebelumnya dibuka.
Format Ketukan
Format ketukan yang digunakan dalam metoda port knocking ini bergantung
pada seberapa banyak informasi yang ingin disampaikan melalui ketukan kepada
server. Berikut ini adalah beberapa contoh ketukan yang dapat diaplikasikan
berdasarkan keperluan tertentu:
· Port tunggal dengan pemetaan tetap ( f ixed )
Apabila koneksi yang diperlukan (layanan yang disediakan) hanya
bersumber pada satu port saja (misalkan port 22 untuk SSH), maka format
ketukan yang diperlukan hanya melibatkan tiga port saja. Sebagai contoh, port
100, 101, dan 102 dimonitor. Ketukan yang dapat dipakai dan fungsinya adalah
sebagai berikut:
Port yang diketuk Aksi yang dilakukan
100,102,101 Membuka port 22 untuk alamat IP yang
bersangkutan
101,102,100 Menutup port 22 untuk alamat IP yang
bersangkutan
101,100,102 Menutup port 22 dan mengabaikan
ketukan berikutnya dari alamat IP yang
bersangkutan.
Ketukan untuk port tunggal dengan pemetaan tetap
Dari tabel di atas dapat dilihat contoh ketukan yang dipakai untuk membuka
dan menutup port 22. Sedangkan port ketiga dapat digunakan apabila seorang
user melakukan port knocking dari komputer yang bukan miliknya sendiri dan
tidak dipercaya. Ketukan ketiga ini berfungsi untuk penduplikasian port
knocking oleh administrator dari host tersebut. Hal ini dengan asumsi bahwa
ketukan tidak di-‘tangkap’ oleh orang lain dan diduplikasikan sebelum sesi
berakhir. Hanya saja, kelemahan dari ketukan ketiga ini ialah bahwa orang masih
mampu mengetuk dengan menggunakan alamat IP yang lain sehingga ketukan
ketiga tersebut akan menjadi tidak berguna.
Kelemahan dari ketukan ini ialah port yang digunakan sangat sedikit,
sehingga apabila ada orang yang telah mengetahui port yang dimonitor maka
akan mudah bagi orang tersebut untuk mencoba ketukan yang tepat.
· Multiple port dengan pemetaan dinamis
Apabila sebuah server menyediakan beberapa jenis layanan, maka ketukan
seperti pada point pertama sudah tidak dapat lagi digunakan. Salah satu bentuk
ketukan yang dapat diaplikasikan adalah sebagai berikut:
Header Payload Checksum Footer
format ketukan dapat ditulis menjadi:
510,503,507 50a, 50b, 50c, 50d 50{(a+b+c+d) mod 10} 510,501,509
Tabel 3
Bagian payload merupakan bagian yang menyatakan port mana yang diminta
untuk dibuka, yaitu port abcd. Bagian checksum akan memastikan port yang
diminta benar dan tidak ada kesalahan dalam pengetukan. Sebagai contoh,
seorang user ingin mengakses port 150, maka ketukan yang dilakukan adalah
sebagai berikut:
510,503,507 500,501,505,500 506 510,501,509
Ketika ketukan ini dideteksi untuk alamat IP tertentu maka port 150 akan
dibuka. Apabila port 150 sudah dibuka untuk alamat IP tersebut, maka dengan
adanya ketukan ini akan menutup port tersebut untuk alamat IP tersebut.
Beberapa informasi dapat ditambahkan pada ketukan, seperti panjang sesi yang
diperkirakan, alamat IP yang diinginkan untuk memiliki akses, dan sebagainya.
Salah satu cara untuk mempersulit peniruan ketukan ini, dapat digunakan
beberapa range port secara bersamaan, sebagai contoh port 401-405,506-510.
Dengan range port ini dapat diselipkan beberapa port (yang tidak dimonitor)
pada ketukan sehingga orang yang berusaha meniru ketukan akan tertipu.
Sebagai contoh, pada kasus di atas ialah:
510,403,407 400,501,401,505,405,500,400 406,506 510,401,409
Dapat dilihat pada contoh di atas bahwa jumlah ketukan menjadi bertambah
namun informasi yang disampaikan tetap sama. Hal tersebut terjadi karena portport
diluar range yang telah ditentukan tidak dimonitor dan tidak dianggap
sebagai suatu ketukan. Meskipun demikian ada sedikit perubahan pada aturan
pengetukan, dimana digit 1 sampai 5 menggunakan port 400-405, sedang digit 6
sampai 10 menggunakan port 506 sampai 510. Tentu saja user yang dapat
dipercaya harus mengetahui port mana saja yang dimonitor.
· Pemetaan dengan menggunakan enkrips i
Untuk menambah keamanan dari port knocking maka dapat digunakan
enkripsi pada bagian informasinya. Dengan enkripsi, maka ketukan yang
dilakukan akan semakin sulit untuk ditebak.
Misalkan akan dikirim 10 nomor (k1, k2, ..., k10) dengan menggunakan port
knocking. Asumsikan server menyediakan port 400-655 untuk dimonitor.
Pertama, nomor tersebut akan dienkripsikan dengan menggunakan algoritma
tertentu (misalkan RSA atau Blowfish), lalu dilakukan byte encoding. Kemudian
hasilnya dipetakan untuk menghasilkan ketukan yang sebenarnya. Server lalu
membalik langkah yang telah dilakukan oleh user.
hanyalah beberapa ide yang
tertuang, mengenai aplikasinya sendiri dalam jaringan akan sangat tergantung dari
desain administrator masing-masing jaringan dan kebutuhan dari jaringan tersebut.
Keunggulan dan Kelemahan Port Knocking
Setiap sistem keamanan yang didesain oleh manusia tidak ada yang sempurna.
Setiap sistem pasti memiliki kelebihan dan kelemahan masing-masing, demikian
juga dengan port knocking. Berikut ini akan dibahas beberapa mengenai keunggulan
dan kelemahannya.
Keunggulan Port Knocking
Ada beberapa hal yang membuat port knocking lebih unggul daripada sistem
keamanan yang biasa, yaitu:
· Port knocking merupakan metoda yang terselubung untuk melakukan otentifikasi
dan perpindahan informasi menuju sebuah sistem yang terhubung dengan
jaringan, namun tidak memiliki port yang terbuka. Akan sulit bagi siapapun
untuk mengetahui apakah port dimonitor atau tidak. Selain itu, percobaan yang
dilakukan untuk menebak urutan ketukan yang dilakukan secara ‘kasar’ akan
terdeteksi dan alamat IP yang melakukannya dapat diblok.
· Informasi mengalir dalam bentuk percobaan koneksi dan bukannya paket data.
Tanpa mengetahui keberadaan sistem ini dan metoda yang digunakan, maka
akan sulit mendeteksi penggunaan otentifikasi dengan memonitor traffic.
· Karena otentifikasi dibangun ke dalam urutan ketukan, aplikasi yang ada tidak
lagi perlu dirubah.
Kelemahan Port Knocking
Ada beberapa hal yang menjadi kelemahan dalam pengaplikasian metoda port
knocking ini:
· Untuk menggunakan metoda ini diperlukan program tersendiri untuk melakukan
ketukan.
· Dalam penggunaan metoda ini dibutuhkan sejumlah port yang perlu dialokasikan
secara khusus untuk digunakan oleh sistem sehingga port tersebut tidak dapat
digunakan untuk keperluan lain
· Metoda ini memodifikasi rule dari firewall secara otomatis. Hal tersebut
memerlukan penanganan yang hati-hati. Bila terjadi kegagalan dimana sistem
tidak mampu mengenali atau mendengar ketukan yang telah dilakukan, maka
tidak ada yang mampu melakukan koneksi dari luar.
No comments:
Post a Comment