Ads

Ads Here

Minggu, 12 Juli 2009

Analisa dan Implementasi Sistem Keamanan Jaringan Komputer dengan Iptables sebagai Firewall Menggunakan Metode Port Knocking


abstraks:
Firewall administrators are challenged to balance flexibility and security when designing a comprehensive rule set. A firewall should provide protection against malfeasants, while allowing trusted users to connect. Unfortunately, it is not always possible to filter out the bad guys, because filtering on the basis of IP addresses and ports does not distinguish connecting users. Bad guys can and do come from trusted IP addresses. Open ports remain a necessary vulnerability: they allow connections to applications but also may turn into open doors for attack. This research presents a new security system, termed port knocking, in which trusted users manipulate firewall rules by transmitting information across closed ports.

Keywords : Port, Port Knocking, Firewall.


1.Firewall dan Port Knocking

1.1Format Ketukan

Format ketukan yang digunakan dalam perancangan sistem adalah format port tunggal dengan pemetaan tetap, dan hanya menggunakan tiga port ketukan sebagai tujuan pengiriman paket data untuk melakukan ketukan.

Untuk mempermudah penentuan port ketukan, maka dibuat aturan pemilihan port ketukan sesuai dengan nomor port tujuan, digit terakhir pada nomor port ketukan merujuk pada nomor port tujuan. Sebagai contoh, seorang user ingin mengakses port 22, dengan range port ketukan yang telah ditentukan yaitu antara port 2000 sampai dengan 4000, maka pemilihan port

Nomor port ketukan

Port tujuan

2000+a,3000+b,4000+cabc

Nomor port 2000+a,3000+b,4000+c merupakan nomor port tujuan pengiriman paket data yang berfungsi sebagai port ketukan. Nomor port ketukan menunjukkan port tujuan abc yang akan dibuka atau ditutup.

1.2Proses Ketukan Port


Proses pengetukan port dilakukan dengan cara mengirimkan paket data dari alamat sumber menuju alamat tujuan. Header pada paket data tersebut akan diperiksa terutama header control list SYN yang digunakan untuk mensikronisasi sequence number. Apabila nomor port ketukan yang digunakan sebagai sequence ketukan sesuai dengan nomor port tujuan yang telah ditentukan sebagi nomor port ketukan, maka port yang dituju akan terbuka/tertutup sesuai dengan format ketukan yang digunakan.

2.Implementasi Port Knocking pada Sistem Keamanan Jaringan Komputer

4.1 Instalasi Program

Sebelum program port knocking dijalankan, pertama kali dilakukan instalasi program pada komputer server yang berfungsi untuk mendengarkan ketukan port dan pada komputer klien yang berfungsi untuk melakukan ketukan port terhadap komputer server.

Pada komputer server, instalasi dilakukan terhadap dua buah file, yaitu serverketuk.c dan list.c. Instalasi file pada komputer server juga membutuhkan sebuah library yang bernama lcap yang berfungsi untuk menangkap paket yang dikirimkan oleh komputer klien pada saat melakukan ketukan port.Perintah yang dilakukan pada instalasi ini ditunjukkan seperti pada

Hasil dari perintah yang ditunjukkan pada Gambar 4.1 adalah terciptanya sebuah file eksekusi yang bernama serverketuk. File serverketuk inilah yang nantinya akan dijalankan dan berfungsi untuk mendengarkan ketukan yang dilakukan oleh komputer klien.

Sedangkan pada komputer klien, instalasi dilakukan terhadap dua buah file, yaitu ketukserver.c dan list.c. Instalasi file pada komputer klien tidak membutuhkan library khusus seperti pada saat melakukan instalasi file pada komputer server, karena program yang dijalankan pada komputer klien hanya berfungsi melakukan ketukan dengan cara mengirimkan paket ke port ketukan komputer server. Perintah yang dilakukan pada instalasi ini ditunjukkan seperti pada Gambar 4.3

Hasil dari perintah yang ditunjukkan pada Gambar 4.3 adalah terciptanya sebuah file eksekusi yang bernama ketukserver. File ketukserver ini berfungsi untuk melakukan ketukan port terhadap komputer server.

4.2 Konfigurasi Program


Setelah dilakukan kompilasi terhadap sourcecode server dan klien, maka perlu dilakukan konfigurasi agar komputer klien dapat melakukan ketukan dan pada komputer server dapat mendengarkan ketukan, maka dilakukan konfigurasi terlebih dahulu pada komputer server. Untuk melakukan konfigurasi, dibuat dua buah file yaitu file logketuk.log yang berfungsi untuk menyimpan log file yang berupa aktivitas yang terjadi pada server port knocking. File logketuk.log dibuat dan diletakkan pada direktori /var/log yang merupakan direktori pada sistem operasi Linux yang berfungsi untuk menyimpan log sistem operasi. Perintah untuk membuat file logketuk.log ditunjukkan seperti pada

File yang kedua yang perlu dibuat adalah configketuk.conf yang berfungsi untuk menentukan port ketukan dan menentukan perintah iptables yang berfungsi sebagai firewall dan digunakan untuk membuka atau menutup port tujuan. File configketuk.conf dibuat dan diletakkan pada direktori /etc yang merupakan direktori pada sistem operasi Linux yang berfungsi untuk menampung file-file konfigurasi sistem. perintah untuk membuat file configketuk.conf ditunjukkan seperti pada Gambar 4.6

Setelah tercipta file configketuk.conf, maka langkah selanjutnya adalah mengisi file configketuk.conf tersebut dengan beberapa baris text konfigurasi. Isi dari file konfigketuk.conf ditunjukkan seperti pada Gambar 4.7

Terdapat tiga bagian utama pada file configketuk.conf, yaitu:

Bagian pertama adalah bagian options yang merupakan bagian yang berfungsi untuk menunjukkan letak file log yang berfungsi untuk mencatat semua aktivitas ketukan.

Bagian kedua adalah bagian bukaPort yang merupakan bagian yang digunakan sebagai konfigurasi untuk membuka port tujuan. Pada bagian bukaPort terdapat tiga buah baris perintah, yaitu:

Sequence : berfungsi untuk menentukan port ketukan yang digunakan untuk membuka port tujuan.

Command : berfungsi untuk menentukan perintah iptables yang dijalankan, yaitu perintah untuk membuka port tujuan jika terjadi ketukan pada port ketukan.

Tcpflags : menunjukkan header paket yang dikirimkan sebagai ketukan port.


Bagian ketiga adalah bagian tutup port yang digunakan sebagai konfigurasi untuk menutup kembali port tujuan. Pada bagian tutupPort terdapat tiga buah konfigurasi, yaitu:

Sequence : berfungsi untuk menentukan port ketukan yang digunakan untuk menutup port tujuan.

Command : berfungsi untuk menentukan perintah iptables yang dijalankan, yaitu perintah untuk menutup port tujuan jika terjadi ketukan pada port ketukan.

Tcpflags : menunjukkan header paket yang dikirimkan sebagai ketukan port.

Untuk menentukan port ketukan, maka ditambahkan baris perintah pada file konfigketuk.conf, seperti ditunjukkan pada Gambar 4.8

Pada bagian bukaSSH ditentukan tiga nomor port ketukan, yaitu port 2000, port 3002, dan port 4002. Jika terjadi ketukan terhadap ketiga port tersebut secara berurutan, maka server akan membuka port tujuan sesuai dengan perintah iptables yang ditentukan.

Pada bagian tutupSSH ditentukan tiga nomor port ketukan, yaitu port 3002, port 4002, dan port 2000. Jika terjadi ketukan terhadap ketiga port tersebut secara berurutan, maka server akan menutup port tujuan sesuai dengan perintah iptables yang ditentukan.

Untuk menentukan perintah iptables yang akan dijalankan jika terjadi ketukan port, maka ditambahkan baris perintah pada file konfigketuk.conf, seperti ditunjukkan pada Gambar 4.9

Pada bagian bukaSSH, perintah iptables yang dijalankan ketika terjadi ketukan pada port 2000, port 3002, dan port 4002, adalah perintah yang bertujuan untuk mengubah aturan iptables,yaitu dengan membuka akses terhadap alamat IP komputer klien agar dapat mengakses port 22 pada komputer server.


Pada bagian tutupSSH, perintah iptables yang dijalankan ketika terjadi ketukan pada port 3002, port 4002, dan port 2000, adalah perintah yang bertujuan untuk mengubah aturan iptables, yaitu dengan menutup kembali akses terhadap alamat IP komputer klien sehingga tidak lagi dapat mengakses port 22 pada komputer server.

4.3 Penerapan Program Pada Sistem Keamanan Jaringan Komputer

Setelah dilakukan konfigurasi pada file configketuk.conf, maka dilakukan implementasi pada sistem jaringan komputer. Implementasi dilakukan pada dua buah komputer yang saling terhubung pada jaringan komputer.

Pada Gambar 4.10, komputer A memiliki alamat IP 192.168.1.202 dan berfungsi sebagai server port knocking yang bertugas untuk menyediakan layanan port knocking, sedangkan komputer B memiliki alamat IP 192.168.1.101 dan berfungsi sebagai klien yang bertugas untuk melakukan ketukan ke komputer server.

Langkah pertama dalam implementasi program adalah menutup semua port yang ada pada komputer A dengan menggunakan perintah iptables yang bertujuan agar semua paket yang menuju komputer A akan langsung dibuang (DROP) sehingga komputer A tidak dapat diakses dari komputer lain. Perintah yang digunakan untuk menutup semua port yang ada pada komputer A ditunjukkan seperti pada Gambar 4.11

Hasil dari Gambar 4.11 adalah tertutupnya semua port pada komputer A yang berarti bahwa tidak ada jalan masuk yang terbuka pada komputer A yang bisa diakses oleh komputer lain. Hal ini dibuktikan dengan melakukan scanning port menggunakan Nmap pada komputer A.

Langkah kedua adalah melakukan konfigurasi pada file configketuk.conf. Konfigurasi yang dilakukan pada file configketuk.conf antara lain adalah:

Menentukan format port ketukan untuk membuka port 22 (port SSH).

Menentukan aturan iptables yang berfungsi untuk membuka port 22 (port SSH) dan mengijinkan alamat IP sumber yang melakukan ketukan port untuk mengakses port 22 (port SSH) jika terjadi ketukan pada port 2000,3002,4002.


Menentukan aturan iptables yang berfungsi untuk menutup kembali port 22 (port SSH) dan tidak mengijinkan kepada alamat IP manapun juga untuk mengakses port 22 (port SSH) jika terjadi ketukan pada port 3002,4002,2000.

Langkah ketiga adalah menjalankan file serverketuk pada komputer A. Perintah yang digunakan adalah:

Langkah keempat adalah menjalankan program ketukserver pada komputer B yang berfungsi untuk melakukan pengetukan port oleh komputer B ke komputer A pada port 2000,3002,4002 dengan tujuan agar komputer A membuka port 22 dan memberikan ijin agar komputer B dapat mengakses port 22 pada komputer A. Perintah yang digunakan adalah:

Setelah komputer B melakukan ketukan port 2000, 3002, 4002 pada komputer A, maka pada komputer A akan melakukan monitoring port apakah port yang diketuk sesuai dengan format port ketukan bukaSSH

Jika ketukan yang dilakukan oleh komputer B sesuai dengan format ketukan bukaSSH, maka program serverketuk pada komputer A akan menjalankan perintah iptables untuk membuka port 22 (port SSH) pada komputer A dan hanya akan memberikan akses kepada komputer B untuk menggunakan port 22 (port SSH) tersebut.

Setelah komputer B selesai mengakses port 22 (port SSH) pada komputer A, maka langkah kelima yang dilakukan adalah komputer B melakukan ketukan port kembali dengan format ketukan yang digunakan untuk menutup kembali port 22 (port SSH) pada komputer A, ketukan yang dilakukan adalah ketukan terhadap port 3002, 4002, 2000. Perintah yang digunakan adalah

Ketika komputer B melakukan ketukan port 3002, 4002, 2000 pada komputer A, maka program serverketuk akan melakukan monitoring port apakah port yang diketuk sesuai dengan format port ketukan tutupSSH. Jika ketukan tersebut benar, maka program serverketuk akan menjalankan perintah iptables untuk menutup kembali port 22 (port SSH) pada komputer A, sehingga tidak ada satupun komputer termasuk juga komputer B yang dapat mengakses kembali port 22 pada komputer A.

3.Penutup

Kesimpulan


1.Metode port knocking sangat berguna diterapkan pada sistem keamanan jaringan komputer.

2.Metode port knocking sangat berguna bagi administrator jaringan atau server yang harus mengurusi jaringan atau server secara terus menerus dari mana saja.

3.Metode port knocking adalah metode yang aman untuk membuat komunikasi komputer yang aman pada jaringan komputer.

4.Dengan metode port knocking, komunikasi antar komputer dapat dilakukan meskipun melalui port yang tertutup.

5.Metode port knocking dapat berfungsi dengan baik asalkan komputer tersebut memiliki firewall, iptables, dan koneksi dengan jaringan.

6.Metode port knocking cukup baik diimplementasikan pada jaringan yang lalu lintasnya tidak terlalu padat.

7.Dengan metode port knocking orang lain yang tidak berhak tidak mampu mengetahui apakah ada port yang terbuka dan memberikan layanan.

4.Daftar Pustaka

[1] Krzywinski, Martin, Port Knocking, Linux Journal, 2003.


[2] Dwianto, Dedi, 2007 Membuka Akses Firewall Melalui Network, echozine volume 5 issue 7,www.echo.or.id. Diakses tanggal 16 Oktober 2007.

Jeanquier, Sebastian, An Analysis of Port Knocking and Single Packet Authorization, Information Security Group : Royal Holloway College,University of London, 2006.

Puji Hartono, Komunikasi Data Ala TCP/IP, 2007.

Port Knocking : A Stealthy System for Network Authentication Across Closed Ports, www.portknocking.org, 2003.

Hayri, 2004, Port Knocking : Metode Pengamanan Ala Brankas, www.pcmedia.co.id. Diakses tanggal 16 Oktober 2007.

Tidak ada komentar:

Posting Komentar