47
1
BAB I
PENDAHULUAN
Latar Belakang Masalah
Dalam hal pengelolaan server, biasanya administrator sistem tidak selalu harus berada dalam ruang server. Hal ini karena biasanya ruangan server dirancang agar memiliki suhu yang cukup dingin dan stabil, dimana hal itu tentu kurang baik untuk tubuh. Sehingga biasanya seorang administrator menjalankan tugasnya dari luar ruang server dengan melalui aplikasi remote server. Aplikasi ini diinstal di server dan selalu listen pada port tertentu dan selanjutnya menunggu permintaan koneksi dari aplikasi client. Dengan demikian seorang administrator cukup melakukan proses autentikasi ke aplikasi tersebut dan jika berhasil maka administrator tersebut akan mendapatkan akses untuk mengelola server.
Berbagai metode maupun jumlah serangan pada suatu server semakin hari semakin meningkat. Terbukanya beberapa port yang listen secara tidak langsung akan mengundang para attacker maupun pihak-pihak tertentu yang tidak bertanggung jawab untuk menerobos masuk ke dalam server melalui port tersebut. Hal yang sering dilakukan oleh para attacker adalah mencoba untuk mengeksploitasi berbagai aplikasi yang sedang running melalui port yang terbuka pada sisi server. Untuk mencegah hal-hal yang tidak diinginkan, biasanya administrator akan memasang firewall dan melakukan beberapa konfigurasi yang pada intinya adalah untuk membatasi siapapun yang akan mengakses server. Terbukanya port pada server, terutama port untuk aplikasi remote server, tentu akan menjadi pusat perhatian attacker untuk dieskploitasi. Port knocking hadir sebagai salah satu metode autentikasi yang dapat digunakan untuk mengatasi masalah di atas. Metode ini memiliki kemampuan untuk menentukan siapa yang memang benar-benar berhak mengakses server, dan biasanya diimplementasikan pada layanan-layanan yang sifatnya jarang diakses, seperti mengakses secure shell di remote server.
Oleh karena itu berdasarkan latar belakang masalah tersebut diatas, maka perlu untuk mengangkat judul " Perancangan Firewall Server Dengan Metode Port Knocking Pada Server Berbasis Software Open Source" yang akan di terapkan di SMA Negeri 5 Makassar.
Rumusan Masalah
Berdasarkan latar belakang masalah di atas, maka rumusan masalah dalam penelitian ini adalah sebagai berikut :
Bagaimana merancang sistem autentikasi remote server dengan menggunakan metode port knocking.
Bagaimana membuat aplikasi client yang dapat digunakan oleh administrator untuk mengirimkan port-port tertentu sebagai bentuk usaha untuk melakukan proses autentikasi remote server.
Tujuan Penelitian
Adapun tujuan penelitian ini adalah sebagai berikut :
Merancang autentikasi remote server yang lebih aman yaitu dengan menggunakan metode port knocking.
Merancang dan membuat aplikasi client yang dapat memudahkan pengguna ketika melakukan autentikasi server dengan menggunakan metode port knocking.
Batasan Masalah
Pembahasan mengenai firewall system secara detail merupakan pembahasan yang luas dan memiliki pembagian-pembagian yang sangat kompleks. Namun dalam hal ini penulis membatasi pembahasan firewall system dalam cakupan pengamanan port dalam menggunakan koneksi SSH (secure shell).
Batasan-batasan masalah dalam penelitian ini adalah sebagai berikut :
Sistem yang akan dibangun diimplementasikan pada jaringan lokal yang terdiri dari sebuah client dan sebuah server.
Sistem yang dikembangkan diimplementasikan untuk aplikasi SSH (secure shell) dengan port 22.
Jumlah port yang dikirimkan ke server dengan menggunakan protokol TCP dan berjumlah tetap serta tidak dapat diubah pada saat aplikasi server port knocking sedang berjalan.
Tidak ada fungsi waktu dan fungsi enkripsi pada saat mengirimkan port-port untuk proses autentikasi.
Server port knocking hanya menerima satu pengguna setiap proses autentikasi yang telah berhasil dilakukan.
Manfaat Hasil Penelitian
Hasil Perancangan ini diharapkan mempunyai manfaat masing-masing kepada :
Penyusun
Untuk menerapkan ilmu yang telah didapat selama kuliah di Program Studi Informatika Fakultas Tehnik Universitas Islam Makassar.
Tempat Penelitian
Untuk Meningkatan kualitas firewall pada server data center.
Tenaga Kependidikan
Keamanan data dan lalulintas data dapat ditingkatkan dengan mengedepankan autentifikasi setiap user yang ingin melakukan koneksi pada server dengan menggunakan SSH (secure shell).
BAB II
TINJAUAN PUSTAKA
Landasan Teori
Definisi Sistem
Sistem berasal dari bahasa latin systema atau bahasa Yunani sustema yang berarti suatu kesatuan yang terdiri dari komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi, atau energi. Sistem juga merupakan kesatuan bagian-bagian yang saling berhubungan yang berada dalam suatu wilayah serta memiliki item-item penggerak. Contoh sistem adalah sistem pemerintahan , sistem tata surya, sistem ekskresi pada manusia, sistem komputer, dan lain-lain .
Definisi Aplikasi
Aplikasi adalah suatu sub kelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna. Biasanya dibandingkan dengan perangkat lunak sistem yang mengintegrasikan berbagai kemampuan komputer, tapi tidak secara langsung menerapkan kemampuan tersebut untuk mengerjakan suatu tugas yang menguntungkan pengguna. Contoh utama perangkat lunak aplikasi adalah pengolah kata, lembar kerja, dan pemutar media. Beberapa aplikasi yang digabung bersama menjadi suatu paket kadang disebut sebagai suatu paket atau suite aplikasi (application suite).
Definisi Perancangan
Pada saat hendak membuat sebuah sistem yang akan digunakan pada suatu perusahaan, setiap pengembang aplikasi diharuskan membuat sebuah rancangan dari sistem yang ingin dibuat. Rancangan ini bertujuan untuk memberi gambaran umum dari sistem yang akan berjalan nantinya kepada setiap stakeholder. Berikut ini terdapat pula beberapa teori mengenai pengertian perancangan sistem.
Menurut Satzinger, Jackson, dan Burd (2012:5), perancangan sistem adalah sekumpulan aktivitas yang menggambarkan secara rinci bagaimana sistem akan berjalan. Hal itu bertujuan untuk menghasilkan produk perangkat lunak yang sesuai dengan kebutuhan user.
Definisi Jaringan Komputer
Pengertian Jaringan Komputer adalah sebuah sistem yang terdiri dari beberapa komputer dan perangkat jaringan lainnya yang saling terhubung dan didesain dengan menggunakan protokol komunikasi agar dapat bekerja bersama-sama dalam mencapai tujuan dan manfaat utama.
Secara sederhana, pengertian jaringan komputer didefinisikan sebagai dua atau lebih komputer yang saling terhubung satu sama lain sehingga dapat berkomunikasi/berinteraksi dengan komputer lainnya, mengakses informasi, dapat bertukar data untuk menggunakan sumber daya secara bersama-sama dan juga memberikan maupun menerima layanan yang digunakan pada seluruh jaringan komputer.
Sumber :en.wikipedia.org
Gambar 2.1 Jaringan Komputer
Pengertian Arsitektur Jaringan
Arsitektur Jaringan dapat diartikan sebagai rancangan arus komunikasi media elektronik. Arsitektur jaringan merupakan sebuah himpunan layer (lapisan) dan protokol. Dimana layer bertujuan memberi layanan ke layer yang ada diatasnya.
Gambar 2.2 Arsitektur Jaringan
Pembagian Dasar Arsitektur Jaringan
LAN (Local Area Network)
LAN (Local Area Network) adalah suatu kumpulan computer, dimana terdapat beberapa unit komputer (client) dan satu unit komputer untuk bank data (server). Antara masing-masing client maupun antara client dan server dapat saling bertukar file maupun saling menggunakan printer yang terhubung pada unit-unit komputer yang terhubung pada jaringan LAN.
Sumber :en.wikipedia.org
Gambar 2.3 Jaringan LAN
MAN(Metropolitan Area Network)
Merupakan jaringan sejati (true networks), merupakan versi dari LAN yang berukuran lebih besar dan biasanya memakai teknologi yang sama dengan LAN
Sumber :en.wikipedia.org
Gambar 2.4 Jaringan MAN
WAN (Wide Area Network)
WAN (Wide Area Network) adalah kumpulan dari LAN atau Workgroup yang dihubungkan dengan menggunakan alat komunikasi, umumnya menggunakan modem untuk membentuk hubungan dari/ke kantor pusat dan kantor cabang, maupun antar kantor cabang. Dengan sistem jaringan, pertukaran data antar kantor dapat dilakukan dengan cepat serta dengan biaya yang relatif murah.
Sumber :en.wikipedia.org
Gambar 2.5 Jaringan WAN
Pembagian Topologi Jaringan
Pembagian topologi secara garis besar terbagi tiga namun pada saat ini telah banyak terdapat kombinasi dari topologi. Tiga topologi Umum yaitu:
Topologi Bus
Topologi bus ini merupakan topologi yang banyak digunakan di awal penggunaan jaringan komputer karena topologi yang paling sederhana dibandingkan dengan topologi lainnya. Jika komputer dihubungkan antara satu dengan lainnya dengan membentuk seperti barisan melalui satu single kabel maka sudah bisa disebut menggunakan topologi bus.
Sumber :en.wikipedia.org
Gambar 2.6 Topologi BUS
Topologi Ring
Topologi ring menghubungkan komputer dalam satu bentuk lingkaran kabel. Sinyal yang dikirim akan berkeliling dalam satu arah dan melalui tiap komputer. Tiap komputer dalam topologi ring ini akan berfungsi juga sebagai repeater (penguat sinyal) dan mengirimkan sinyal ke komputer di sebelahnya. Karena tiap sinyal melalui tiap komputer, maka jika satu komputer mengalami masalah dapat berpengaruh ke seluruh jaringan.
Sumber :en.wikipedia.org
Gambar 2.7 Topologi Ring
Topologi Star
Topologi ini paling banyak digunakan dalam jaringan komputer saat ini. Untuk jenis star ini semua komputer dihubungkan ke satu alat yang dinamakan hub. Semua komputer saling berkirim data berupa sinyal elektronik melalui hub ini. Topologi ini awalnya digunakan dalam sistem mainframe. Jaringan star memberikan manajemen sumber daya (resource) secara sentral, namun dibandingkan dengan jenis bus, star ini memerlukan lebih banyak kabel karena tiap komputer dihubungkan ke hub, semakin banyak jumlah komputer yang akan dihubungkan ke jaringan maka semakin banyak pula kabel dan port yang ada di hub.
Sumber :en.wikipedia.org
Gambar 2.8 Topologi Star
Arsitektur Terminalogi Jaringan
CAN (Campus Area Network) : Jaringan yang menghubung bangunan pada suatu komplek.
Intranet : Jaringan yang dimiliki oleh suatu tempat yang dapat diakses oleh pengguna sah atau yang diizinkan.
Internet: Jaringan yang menghubungkan jutaan komputer.
MAN (Metropolitan Area Network): Jaringan yang dirancang untuk sebuah kota.
SAN (Storage Area Network) : Digunakan Untuk menghubung perangkat yang berkaitan seperti RAID penyimpan file server dan sistem tape.
VLAN (Virtual Local Area Network) : Jaringan yang memungkinkan komputer pada jaringan fisik yang terpisah seolah-olah terhubung jaringan yang sama.
Client-Server: Jaringan sistem yang melayani sistem memberi dan menerima.
Peer-to-Peer : Jaringan dimana semua komputer berlaku sama tidak ada client dan server.
Protokol
Menurut Wikipedia Indonesia, Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras. Protokol digunakan untuk menentukan jenis layanan yang akan dilakukan pada internet.
Model Referensi Jaringan
Sumber: Winarno Sugeng (2003)
Gambar 2.9 Model OSI dan TCP/IP Model
2.1.6.1 Model OSI
ISO (International Standard Organization) mengajukan struktur dan fungsi protokol komunikasi data. Model tersebut dikenal sebagai OSI (Open System Interconnected) Reference Model. Terdiri atas 7 layer (lapisan) yang mendefinisikan fungsi. Untuk setiap lapisannya terdiri atas sejumlah protokol yang berbeda, masing-masing menyediakan pelayanan yang sesuai dengan fungsi dari lapisan tersebut.
Sumber: Winarno Sugeng (2003)
Gambar 2.10 Model Osi
Application Layer : interface antara aplikasi yang dihadapi user and resource jaringan yang diakses.
Presentation Layer : rutin standard mempresentasikan data.
Session Layer : hubungan antar aplikasi yang berkomunikasi.
Transport Layer : menjamin penerima mendapatkan data seperti yang dikirimkan.
Network Layer : hubungan lintas jaringan dan mengisolasi layer yang lebih tinggi. Pengalamatan dan pengiriman data.
Data-link Layer : pengiriman data melintasi jaringan fisik.
Protokol TCP/IP
Sumber :en.wikipedia.org
Gambar 2.11 Arsitektur Protokol TCP/IP
Aplication layer : telnet, ftp, dll
Transport Layer
TCP (Transmission Control Protocol) : mengirim data dengan deteksi dan koreksi kesalahan. Selalu memeriksa keterhubungan.
UDP (User Datagram Protocol) : mengirim data tanpa koneksi. Melemparkan data ke network begitu saja.
Network layer atau Internet : Internet Protocol (IP). Pelayanan pengiriman paket elementer. Definisikan datagram (jika alamat tujuan tidak dalam jaringan lokal, diberi gateway :device yang men switch paket antara jaringan fisik yang beda; memutuskan gateway yang digunakan).
Data-link layer : Melakukan fragmentasi atau defragmentasi datagram.
Physical layer : sarana sistem mengirimkan data ke device yang terhubung ke network.
Tiga layer terakhir mendefinisikan cara menggunakan network untuk mentransmisi datagram. Encapsulasi datagram ke dalam frame, Konversi IP address ke alamat jaringan fisik.
Metode Komunikasi Jaringan Komputer
Peer to Peer
Metode komunikasi jaringan komputer ini merupakan jaringan komputer yang terdiri atas kurang dari 10 komputer dengan beberapa alat atau hardware saja yang terhubung. Jenis jaringan komputer peer to peer adalah model jaringan yang menggunakan sumber daya komputer yang lain. Sehingga, pada sistem jaringan komputer ini, setiap komputer dapat menjadi client sekaligus server diwaktu yang sama. Dan dapat menemukan jaringan peer to peer pada windows dengan nama workgroup.
Sumber :en.wikipedia.org
Gambar 2.12 Metode Komunikasi Jaringan Komputer Peer To Peer
Client-Server
Sistem jaringan client server sesuai namanya membuat pengelompokkan atau perbedaan dimana ada komputer yang menjadi client atau pengguna dan terdapat server sebagai pengendali dan pemberi layanan. Dengan jaringan komputer yang menggunakan metode ini, setiap komputer yang menjadi client harus meminta izin atau akses terlebih dahulu kepada administrator yang menjadi server.
Sumber :en.wikipedia.org
Gambar 2.13 Metode Komunikasi Jaringan Komputer Client-Server Umum
Sumber :en.wikipedia.org
Gambar 2.14 Metode Komunikasi Jaringan Komputer Client-Server Dedicated Server
Taksonomi Jaringan
Gambar 2.15 Taksonomi Jaringan
Jenis-Jenis Firewall
Ada empat jenis firewall, atau lebih tepatnya tiga jenis ditambah dengan satu tipe hybrid (campuran). Akan dibahas setiap jenis secara rinci karena itu membutuhkan pembahasan tersendiri yang lebih teknis dan umumnya sudah tersedia dalam dokumentasi-dokumentasi tentang firewall. Keempat jenis tersebut masing-masing adalah:
Packet Filtering: Firewall jenis ini memfilter paket data berdasarkan alamat dan opsi-opsi yang sudah ditentukan terhadap paket tersebut. Paket tersebut bekerja dalam level IP paket data dan membuat keputusan mengenai tindakan selanjutnya (diteruskan atau tidak diteruskan) berdasarkan kondisi dari paket tersebut. Firewall jenis ini terbagi lagi menjadi tiga subtipe:
Static Filtering: Jenis filter yang diiplementasikan pada kebanyakan router, dimana modifikasi terhadap aturan-aturan filter harus dilakukan secara manual.
Dynamic Filtering: Apabila proses-proses tertentu di sisi luar jaringan dapat merubah aturan filter secara dinamis berdasarkan even-even tertentu yang diobservasi oleh router (sebagai contoh, paket FTP dari sisi luar dapat diijinkan apabila seseorang dari sisi dalam me-request sesi FTP).
Stateful Inspection: Dikembangkan berdasarkan teknologi yang sama dengan dynamic filtering dengan tambahan fungsi eksaminasi secara bertingkat berdasarkan muatan data yang terkandung dalam paket IP. Baik dynamic maupun stateful filtering menggunakan tabel status (state table) dinamis yang akan membuat aturan-aturan filter sesuai dengan even yang tengah berlangsung.
Circuit Gateways: Firewall jenis ini beroperasi pada layer (lapisan) transpor pada network, dimana koneksi juga diautorisasi berdasarkan alamat. Sebagaimana halnya Packet Filtering, Circuit Gateway biasanya tidak dapat memonitor trafik data yang mengalir antara satu network dengan network lainnya, tetapi mencegah koneksi langsung antar network.
Application Gateways: Firewall tipe ini juga disebut sebagai firewall berbasis proxy. Ia beroperasi di level aplikasi dan dapat mempelajari informasi pada level data aplikasi (yang dimaksudkan disini adalah isi (content) dari paket data karena proxy pada dasarnya tidak beroperasi pada paket data). Filterisasi dilakukan berdasarkan data aplikasi, seperti perintah-perintah FTP atau URL yang diakses lewat HTTP. Dapat dikatakan bahwa firewall jenis ini "memecah model client-server".
Hybrid Firewalls: Firewall jenis ini menggunakan elemen-elemen dari satu atau lebih tipe firewall. Hybrid firewall sebenarnya bukan sesuatu yang baru..
Jenis Firewall
Personal Firewall
Firewall yang didesain untuk melindungi sebuah komputer yang terhubung ke jaringan dari akses yang tidak dikehendaki. Firewall jenis ini akhir-akhir ini berevolusi menjadi sebuah kumpulan program yang bertujuan untuk mengamankan komputer secara total, dengan ditambahkannya beberapa fitur pengaman tambahan semacam perangkat proteksi terhadap virus, anti-spyware, anti-spam, dan lainnya. Bahkan beberapa produk firewall lainnya dilengkapi dengan fungsi pendeteksian gangguan keamanan jaringan (Intrusion Detection System). Contoh dari firewall jenis ini adalah Microsoft Windows Firewall, Symantec Norton Personal Firewall, Kerio Personal Firewall.
Network Firewall
Firewall yang didesain untuk melindungi jaringan secara keseluruhan dari berbagai serangan. Umumnya dijumpai dalam dua bentuk, yakni sebuah perangkat terdedikasi atau sebagai sebuah perangkat lunak yang diinstalasikan dalam sebuah server. Contoh dari firewall ini adalah Microsoft Internet Security and Acceleration Server (ISA Server), Cisco PIX, Cisco ASA, IPTables dalam sistem operasi GNU/Linux, dalam keluarga sistem operasi Unix BSD, serta SunScreen dari Sun Microsystems, Inc.
Fungsi Firewall
Mengontrol dan mengawasi paket data yang mengalir di jaringan, firewall harus dapat mengatur, memfilter dan mengontrol lalu lintas data yang diizin untuk mengakses jaringan privat yang dilindungi firewall.
Firewall harus dapat melakukan pemeriksaan terhadap paket data yang akan melawati jaringan privat.
Melakukan autentifikasi terhadap akses.
Firewall mampu memeriksa lebih dari sekedar header dari paket data, kemampuan ini menuntut firewall untuk mampu mendeteksi protokol aplikasi tertentu yang spesifikasi.
Mencatat setiap transaksi kejadian yang terjadi di firewall. Hal ini memungkinkan membantu sebagai pendeteksian dini akan kemungkinan penjebolan jaringan.
Cara Kerja Firewall
Firewall pada dasarnya merupakan penghalang antara komputer (jaringan) dan internet (luar dunia). Firewall adalah sebuah program perangkat lunak atau perangkat keras yang menyaring informasi (paket) yang datang melalui internet ke komputer pribadi atau jaringan computer. Firewall dapat memutuskan untuk mengizinkan atau memblokir lalu lintas jaringan antara perangkat berdasarkan aturan yang pra-dikonfigurasi atau ditentukan oleh administrator firewall. Kebanyakan personal firewall seperti firewall windows beroperasi pada seperangkat aturan pra-konfigurasi yang paling cocok dalam keadaan normal sehingga pengguna tidak perlu khawatir banyak tentang konfigurasi firewall.
Sumber :en.wikipedia.org
Gambar 2.16 Firewall
Firewall menggunakan satu atau lebih metode untuk mengatur lalu lintas masuk dan keluar data dalam sebuah jaringan:
Packet Filtering: Pada metode ini paket (potongan kecil data) dianalisa dan dibandingkan dengan filter. Filter paket memiliki seperangkat aturan yang datang dengan tindakan menerima dan menolak yang pra-dikonfigurasi atau dapat dikonfigurasi secara manual oleh administrator firewall. Jika paket berhasil membuatnya melalui filter ini maka itu diperbolehkan untuk mencapai tujuan, kalau tidak akan dibuang.
Stateful Inspeksi: Ini adalah metode baru yang tidak menganalisa isi dari paket. Sebaliknya membandingkan aspek kunci tertentu setiap paket database sumber terpercaya. Kedua paket yang masuk dan keluar dibandingkan terhadap database ini dan jika perbandingan menghasilkan pertandingan yang wajar, maka paket yang diizinkan untuk melakukan perjalanan lebih lanjut. Jika tidak, mereka akan dibuang.
Arsitektur Dasar Firewall
Arsitektur dengan dual homed host kadang kadang dikenal juga sebagai dual homed gateway (DHG). Sistem DHG menggunakan sebuah komputer dengan (paling sedikit) dua network interface. Interface pertama dihubungkan dengan jaringan internal dan yang lainnya dengan internet. Dual homed host nya sendiri berfungsi sebagai bastion host (front terdepan, bagian terpenting dalam firewall).
Screened host gateway (SHG). Pada topologi SHG, fungsi firewall dilakukan oleh sebuah screening router dan bastion host. Router ini dikonfigurasi sedemikian sehingga akan menolak semua trafik kecuali yang ditujukan ke bastion host, sedangkan pada trafik internal tidak dilakukan pembatasan. Dengan cara ini setiap client service pada jaringan internal dapat menggunakan fasilitas komunikasi standard dengan internet tanpa harus melalui proxy.
Screened subnet gateway (SSG). Firewall dengan arsitektur screened subnet menggunakan dua screening router dan jaringan tengah (primeter network) antara kedua router tersebut, dimana ditempatkan bastion host. Kelebihan susunan ini akan terlihat pada waktu optimasi penempatan server.
Sejarah Firewall
Network firewall yang pertama muncul pada akhir era 1980-an, berupa perangkat router yang dipakai untuk memisahkan suatu network menjadi jaringan lokal (LAN) yang lebih kecil. Dalam kondisi ini, penggunaan firewall hanya dimaksudkan untuk mengurangi masalah peluberan (spill over) data dari LAN ke seluruh jaringan. Hal ini mencegah masalah-masalah semacam error pada manajemen jaringan, atau aplikasi yang terlalu banyak menggunakan sumber daya meluber ke seluruh jaringan. Firewall untuk keperluan sekuriti (security firewall) pertama kali digunakan pada awal dekade 1990-an, berupa router IP dengan aturan filter tertentu.
Firewall generasi selanjutnya lebih fleksibel, yaitu berupa sebuah firewall yang dibangun pada apa yang disebut bastion hosts. Firewall komersial yang pertama dari tipe ini, yang menggunakan filter dan gateway aplikasi (proxies), kemungkinan adalah produk dari Digital Equipment Corp. (DEC) yang dibangun berdasarkan firewall korporat DEC. Brian Reid dan tim engineering di laboratorium sistem jaringan DEC di Pallo Alto adalah pencipta firewall DEC. Firewall komersial pertama dikonfigurasi untuk, dan dikirimkan kepada pelanggan pertamanya, sebuah perusahaan kimia besar yang berbasis di pantai timur AS pada 13 Juni 1991. Dalam beberapa bulan kemudian, Marcus Ranum dari Digital Corp menciptakan security proxies dan menulis ulang sebagian besar kode program firewall. Produk firewall tersebut kemudian diproduksi massal dengan nama dagang DEC SEAL (singkatan dari Security External Access Link). DEC SEAL tersusun atas sebuah sistem eksternal yang disebut gatekeeper sebagai satu-satunya sistem yang dapat berhubungan dengan internet, sebuah filtering gateway yang disebut gate, dan sebuah mailhub internal seperti gambar di bawah ini:
Sumber:en.wikipedia.org
Gambar 2.17 DEC SEAL, Firewall komersial yang pertama.
Dalam rentang waktu yang sama, Chesswick dan Bellovin di Bell labs bereksperimen dengan firewall yang berbasis sirkuit relay. Sebagai hasilnya, Raptor Eagle muncul sekitar 6 bulan setelah DEC SEAL diluncurkan, diikuti kemudian oleh produk ANS InterLock.
Pada 1 Oktober 1993, Trusted Information System (TIS) Firewall Toolkit (FWTK) diluncurkan dalam bentuk kode sumber (source code) ke komunitas internet. Ini menyediakan basis dari produk firewall komersial dari TIS yang kemudian dinamai Gauntlet. Dalam fase ini, FWTK masih digunakan untuk keperluan eksperimen, dan untuk kalangan industri dan pemerintahan sebagai basis dari sekuriti jaringan internet mereka. Pada 1994, Check Point menyusul dengan produknya, Firewall-1 yang memperkenalkan kemudahan penggunaan (user friendliness) di dunia sekuriti internet. Generasi firewall sebelum Firewall-1 memerlukan editing file berformat ASCII dengan ASCII editor. Check Point memperkenalkan ikon, warna, kendali mouse, konfigurasi berbasis X-11, dan antarmuka manajemen (management interface) sehingga sangat memudahkan proses instalasi dan administrasi firewall.
Definisi Port Knocking
Secara harafiah, arti dari port knocking adalah melakukan pengetukan terhadap port-port komunikasi yang ada dalam sistem komunikasi data. Fungsi dan cara kerja sistem ini tidak jauh berbeda dengan arti harafiahnya. Port Knocking merupakan sebuah metode untuk membangun kemunikasi dari mana saja, dengan perangkat komputer yang tidak membuka port komunikasi apapun secara bebas. Dengan kata lain, perangkat komputer ini tidak memiliki port komunikasi yang terbuka bebas untuk dimasuki, tetapi perangkat ini masih tetap dapat di akses dari luar. Ini dapat terjadi jika menggunakan metode port knocking. Koneksi dapat terjadi dengan menggunakan metode pengetukan port-port komunikasi yang ada. Pengetukan port-port ini di lakukan dengan kombinasi tertentu secara berurutan dalam satu rentan waktu tertentu.
Sumber :en.wikipedia.org
Gambar 2.18 Port knocking Blok koneksi
Sumber :en.wikipedia.org
Gambar 2.19 Port knocking izinkan Koneksi
Security Port Knocking
Port Knocking adalah metode yang dilakukan untuk membuka akses ke port tertentu yang telah diblock oleh Firewall pada perangkat jaringan dengan cara mengirimkan paket atau koneksi tertentu. Koneksi bisa berupa protocol TCP, UDP maupun ICMP. Jika koneksi yang dikirimkan oleh host tersebut sudah sesuai dengan rule knocking yang diterapkan, maka secara dinamis firewall akan memberikan akses ke port yang sudah diblock.
Dengan cara ini, perangkat jaringan seperti router akan lebih aman, sebab admin jaringan bisa melakukan blocking terhadap port-port yang rentan terhadap serangan seperti Winbox (tcp 8291), SSH (tcp 22), Telnet (tcp 23) atau webfig (tcp 80). Jika dilakukan port scanning port-port tersebut terlihat tertutup. Dari sisi admin jaringan tetap bisa melakukan konfigurasi dan monitoring akan tetapi dengan langkah-langkah khusus (knocking) agar bisa diijinkan oleh firewall untuk akses port Winbox, SSH,dsb.
Manfaat Port Knocking
Jika dilihat sesaat, Port Knocking memang tidak terlalu banyak gunanya dan tidak terlalu istimewa. Hanya melakukan buka tutup port komunikasi saja, tentu tidaklah terlalu banyak gunanya bagi pengguna jaringan lokal. Namun bagi para pekerja telekomuter, para pengguna komputer yang sering bekerja di luar kantor atau para administrator jaringan dan server yang harus mengurusi server- server mereka 24 jam dari mana saja, port knocking merupakan metode yang luar biasa sebagai sebuah jalan penghubung ke perangkat-perangkat komputer mereka. Port knocking cocok untuk mereka yang masih ingin memperkuat sistem keamanan komputer dan perangkat jaringannya, sementara tetap pula ingin memiliki koneksi pribadi ke dalamnya secara kontinyu dan dapat dilakukan dari mana saja. Komunikasi pribadi maksudnya koneksi yang tidak terbuka untuk umum seperti SMTP atau HTTP. Biasanya komunikasi pribadi ini lebih bersifat administratif dan menggunakan servis-servis seperti telnet, SSH, FTP, TFTP, dan banyak lagi. Komunikasi pribadi ini akan sangat berbahaya jika dapat juga dilakukan oleh orang lain yang tidak berhak. Dengan menggunakan port knocking, servis-servis tersebut akan tetap tertutup untuk diakses oleh publik, namun masih dapat secara fleksibel di buka oleh siapa saja yang memiliki ombinasi ketukan port-nya
Cara Kerja Port Knocking
Port knocking bekerja seperti halnya brankas dengan kunci kombinasi angka putar. Pada brankas tersebut, diharuskan memutar kunci kombinasi beberapa kali hingga tepat seperti yang ditentukan. Dalam lapisan-lapisan kunci tersebut terdapat sebuah lubang kunci. Jika sebuah putaran tepat, maka sebuah lubang terbuka. Jika seluruh putaran dilakukan dengan kombinasi yang benar, maka seluruh lubang terbuka dan menciptakan sebuah jalur khusus yang bebas tidak ada hambatan sama sekali. Jalur lubang kunci tadi tidak lagi menjadi penghalang pintu brankas untuk dibuka, sehingga pintu dapat terbuka dengan mudah.
Port knocking juga menggunakan sistem yang hampir sama, yaitu menggunakan kombinasi lapisan-lapisan kunci untuk dapat mengamankan sebuah port komunikasi. Perbedaannya ada pada lapisan kunci yang digunakannya. Kunci dari sistem port knocking adalah port- port komunikasi itu sendiri. Cara membuka kuncinya adalah dengan mengakses dengan sengaja beberapa port komunikasi yang memang tertutup. Ketika beberapa port komunikasi tadi diakses dengan kombinasi tertentu, maka akan terbuka sebuah port komunikasi baru yang bebas di masuki.
Sebagai contoh, untuk membuka port 22 yang merupakan port komunikasi untuk aplikasi remote login SSH, diharuskan "mengetuk" port 450, 360, 270, 180. Ketika kombinasinya benar dalam suatu waktu tertentu, maka akan terbuka port 22 yang diinginkan. Sistem seperti ini dapat tercipta dengan bantuan sebuah program firewall. Program firewall biasanya memiliki fasilitas untuk melakukan logging terhadap setiap proses komunikasi yang keluar-masuk melaluinya. Dari membaca log inilah, sistem port knocking dapat mengetahui kombinasi ketukan. Ketika sistem port knocking membaca sebuah kombinasi yang tepat pada log, maka sebuah proses otomatis menjalankan aplikasi yang akan membuka port komunikasi yang ditentukan. Setelah terbuka, maka jadilah sebuah pintu masuk kedalam perangkat.
Perbedaan VPN Dengan Port Knocking
VPN merupakan singkatan dari Virtual Private Network, yaitu sebuah koneksi private melalui jaringan publik (internet),yaitu:
Virtual network, yang berarti jaringan yang terjadi hanya bersifat virtual. Tidak ada koneksi jaringan secara riil antara 2 titik yang akan berhubungan
Private, jaringan yang terbentuk atau bersifat private dimana tidak semua orang bisa mengaksesnya. Data yang dikirimkan terenkripsi sehingga tetap rahasia meskipun melalui jaringan publik.
VPN memang teknologi yang selama ini digunakan untuk membangun koneksi yang bersifat private dari mana saja diseluruh dunia. Salah satu media yang digunakannya adalah Internet. Melalui VPN, tetap dapat terkoneksi dengan server-server di kantor pusat meskipun tengah berada di luar kota maupun luar negeri, asalkan ada koneksi internet.
Dengan VPN ini seolah-olah membuat jaringan didalam jaringan atau biasa disebut tunnel (terowongan). Tunneling adalah suatu cara membuat jalur privat dengan menggunakan infrastruktur pihak ketiga. VPN menggunakan salah satu dari tiga teknologi tunneling yang ada yaitu: PPTP, L2TP dan standar terbaru, Internet Protocol Security (biasa disingkat menjadi IPSec). VPN merupakan perpaduan antara teknologi tunneling dan enkripsi.
Sedangkan membuat sistem port knocking jauh lebih mudah daripada membuat VPN. Fungsi dan keunggulannya banyak memiliki persamaan, meskipun cara kerja dan metode yang digunakannya sangat jauh berbeda. Untuk menghubungkan ke jaringan lokal, port knocking dapat digunakan untuk membuka servis-servis tertentu yang dapat digunakan untuk melakukan remote login misalnya dengan menggunakan servis SSH untuk dapat masuk ke dalam sebuah server yang juga terkoneksi ke dalam jaringan lokal.
Unsur Perancangan
Server Dan Remote Server
Secara defenisi, remote server adalah server yang diakses sebagai bagian dari proses client tanpa membuka koneksi terpisah, berbeda ataupun langsung SQL Server mengatur komunikasi antar server menggunakan RPC. SQL Server yang client terkoneksi oleh client yang bersangkutan membuka koneksi lain ke remote server dan mengajukan permintaan stored procedure ke remote server. Setiap hasil yang dikirim melewati server local, yang mana nantinya juga akan melewatkan hasilnya ke aplikasi client yang memulainya.
Anda memanggil remote procedure sama dengan memanggil local procedure, perbedaannya hanyalah anda harus menambahkan nama procedure dengan nama server. Remote server lebih terbatas dalam hal fungsional dan sedikit lebih memakan waktu untuk membangunnya daripada lingked server.
Di bawah ini ada beberapa langkah untuk membangun remote server.
Tentukan local ataupun remote server di kedua server.
Konfigurasi setiap server untuk akses remote.
Pada remote server, tentukan metode untuk pemetaan login dan user ke login dan user milik server.
Tentukan pilihan remote untuk pengecekan password.
Kernel
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman.
Sumber :en.wikipedia.org
Gambar 2.20 Kernel
Linux / GNU Linux
Linux adalah nama yang diberikan kepada sistem operasi komputer bertipe unix. Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber linux dapat di modifikasi, di gunakan dan didistribusikan kembali secara bebas oleh siapa saja.
Nama "Linux" berasal dari nama perbuatannya, yang di perkenalkan tahun 1991 oleh Linus Torvalds, Sistemnya, peralatan system dan pustakanya, umumnya berasal dari system operasi GNU, yang di umumkan tahun 1993 oleh Richard Stallman, konstribusi GNU adalah dasar dari munculnya nama alternative GNU/Linux.
Sumber :en.wikipedia.org
Gambar 2.21 Logo Linux
IP Tables
Menurut Syarif (2007-2008), IPTables merupakan sebuah fasilitas tambahan yang tersedia pada setiap perangkat komputer yang diinstal dengan sistem operasi Linux dan resmi diluncurkan untuk massal pada LINUX 2.4 kernel pada January 2001 harus mengaktifkannya terlebih dahulu fitur ini pada saat melakukan kompilasi kernel untuk dapat menggunakannya. IPTables merupakan fasilitas tambahan yang memiliki tugas untuk menjaga keamanan perangkat komputer dalam jaringan. Atau dengan kata lain, IPTables merupakan sebuah firewall atau program IP filter build-in yang disediakan oleh Kernel Linux untuk tetap menjaga agar perangkat aman dalam berkomunikasi.
IP Tables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap lalu lintas (traffic) data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan IPtables inilah kita akan mengatur semua lalu lintas dalam komputer , baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer.
TCP / IP
TCP/IP (Transmission Control Protocol /Internet Protocol) jika diterjemahkan adalah Protokol kendali Transmisi / Protokol Internet, adalah gabungan dari protokol TCP (Transmission Control Protocol) dan IP (Internet Protocol) sebagai sekelompok protokol yang mengatur komunikasi data dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan internet yang akan memastikan pengiriman data sampai ke alamat yang dituju. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini, karena protokol ini mampu bekerja dan diimplementasikan pada lintas perangkat lunak (software) di berbagai sistem operasi Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack.
SSH (Secure Shell)
Secure Shell (SSH) adalah protokol jaringan yang memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan. Terutama banyak digunakan pada sistem berbasis Linux dan Unix untuk mengakses akun shell, SSH dirancang sebagai pengganti telnet dan shell remote, yang mengirim informasi, terutama kata sandi, dalam bentuk teks sederhana yang membuatnya mudah untuk dicegat. Enkripsi yang digunakan oleh SSH menyediakan kerahasiaan dan integritas data melalui jaringan yang tidak aman seperti internet.
SSH menggunakan kriptografi kunci publik untuk mengotentikasi komputer remote dan biarkan komputer remote untuk mengotentikasi pengguna, jika perlu. SSH biasanya digunakan untuk login ke mesin remote dan mengeksekusi berbagai perintah, tetapi juga mendukung tunneling, forwarding TCP port dan X11 connections; itu dapat mentransfer file menggunakan terkait SFTP atau SCP protocols. SSH menggunakan client-server model. Yang standar TCP port 22 telah ditetapkan untuk menghubungi server SSH. SSH adalah sebuah protokol yang dapat digunakan untuk berbagai aplikasi. Beberapa aplikasi di bawah ini mungkin membutuhkan fitur-fitur yang hanya tersedia atau yang kompatibel dengan klien atau server SSH yang spesifik. Sebagai contoh, menggunakan protokol SSH untuk mengimplementasikan VPN adalah dimungkinkan, tapi sekarang hanya dapat dengan implementasi server dan klien Open SSH.
Dalam semua versi SSH, penting untuk memverifikasi kunci publik sebelum menerimanya secara valid. Menerima sebuah kunci publik attacker sebagai kunci publik yang valid memiliki efek membuka password yang ditransmisikan dan memungkinkan serangan man in-the-middle.
Ada tiga jenis port forwarding dengan SSH:
Port forwarding local: koneksi dari klien SSH akan di teruskan melalui server SSH ke server tujuan.
Port forwarding remote: Koneksi dari server SSH akan di teruskan ke server SSH.
Port forwarding dinamis: Koneksi dari berbagai program akan di teruskan melalui klien SSH, melalui server SSH akhirnya ke server beberapa tujuan.
Port forwarding local adalah jenis yang paling umum. Sebagai contoh, port forwarding local memungkinkan untuk melewati firewall perusahaan yang menghalangi Wikipedia.
Pada local port forwarding, komputer yang bertindak sebagai SSH client akan menjadi titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai SSH server menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer SSH client akan diforward ke tujuan dari komputer SSH server.
Port forwarding remote kurang umum. Sebagai contoh, port forwarding jauh memungkinkan untuk terhubung dari server SSH ke komputer di intranet perusahaan .
Pada remote port forwarding, komputer yang bertindak sebagai SSH server akan menjadi titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai SSH client menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer SSH server akan diforward ke tujuan dari komputer SSH client.
Jadi yang perlu diingat dalam perbedaan antara local dan remote port forwarding adalah posisi titik masuk koneksi yang akan diforward. Bila titik masuknya ada di komputer yang berperan sebagai SSH client, maka itu adalah local port forwarding, namun bila titik masuknya di komputer SSH server, maka itu adalah remote port forwarding.
Untuk menggunakan port forwarding, perlu memastikan port forwarding diaktifkan di server. Dan juga perlu memberitahu klien sumber dan tujuan nomor port untuk digunakan. Jika menggunakan forwarding local atau remote, perlu memberitahukan klien dengan server tujuan . Jika menggunakan port forwarding dinamis, perlu mengkonfigurasi program untuk menggunakan server SOCKS proxy. Sekali lagi, bagaimana untuk melakukan hal ini tergantung pada klien SSH yang digunakan, sehingga mungkin perlu berkonsultasi.
Pengujian Keamanan Port Knocking
Pengujian dengan Nmap
Nmap (Network Mapper) adalah sebuah program open source yang berguna untuk mengesksplorasi jaringan. Nmap didesain untuk dapat melakukan scan jaringan yang besar, juga dapat digunakan untuk melakukan scan host tunggal. Nmap menggunakan paket IP untuk menentukan host- host yang aktif dalam suatu jaringan, Nmap dibuat oleh Gordon Lyon, atau lebih dikenal dengan nama Fyodor Vaskovich. Aplikasi ini digunakan untuk meng-audit jaringan yang ada. Pada awalnya, Nmap hanya bisa berjalan di sistem operasi Linux, namun dalam perkembangannya sekarang ini, hampir semua sistem operasi bisa menjalankan Nmap.
Penggunaan
Berdasarkan rilis yang dikeluarkan oleh nmap.org, penggunaan Nmap sesuai dengan apa yang dibutuhkan. Bila menggunakan Nmap untuk melihat port yang terbuka, maka perintahnya akan berbeda dengan perintah bila ingin menggunakan Nmap untuk melihat host yang aktif.
Kemampuan Nmap
Mengumpulkan informasi setiap host atau komputer yang hidup pada jaringan local.
Mengumpulkan informasi setiap IPaddress pada jaringan local.
Mengumpulkan informasi setiap sistem operasi pada host maupun seluruh host pada target jaringan.
Menemukan setiap port yang terbuka dari host target.
Menemukan adanya infeksi dari virus maupun malware.
Mengumpulkan informasi mengenai layanan-layanan (service) pada host target dan server pada jaringan target.
Pengujian dengan Zenmap
Zenmap adalah persi GUI dari Nmap. Kegunaannya sama dengan nmap versi console tetapi zenmap lebih mudah digunakan karena tidak perlu menghafal options yang ada di Nmap.
BAB III
METODELOGI PENELITIAN
Waktu dan Lokasi Penelitian
Penelitian ini berlangsung selama 1 bulan terhitung sejak bulan Juli tahun 2015 sampai bulan Agustus tahun 2015. Penelitian dilakukan di Laboratorium Teknologi Informasi dan Komunikasi Sekolah Menengah Atas Negeri 5 Makassar. Peneliti memilih lokasi tersebut dikarenakan tersedianya sarana prasarana yang mendukung untuk diterapkannya hasil penelitian ini. Dimana pengolahan data secara digital, terintegrasi dan dapat diakses secara real-time memiliki peranan yang sangat penting sehingga kebutuhan terhadap sistem keamanan yang baik terbilang tinggi.
Alat dan Bahan Penelitian
Alat yang di gunakan dalam penelitian ini adalah:
Hardware
Hardware yang di gunakan adalah komputer atau laptop dengan spesifikasi sebagai berikut :
Processor Server : Intel® Core i3
Processor Client : Intel® Core i3
Memory Server : RAM 4 GB
Memory Client : RAM 2 GB
System type : 64-bit Operating System
Harddisk : 320 GB
Software
Sistem Operasi Server : Linux Ubuntu Server 14.10
Sistem Operasi User : Kali Linux 1.1
Aplikasi : KnockD, UFW dan PuTTY
Metode Penelitian
Pada kegiatan penelitian ini, menggunakan beberapa metode yang di jadikan sebagai cara pengumpulan data yang dibutuhkan, yaitu:
Metode Eksperimen
Metode eksperimen adalah metode penelitian dengan memberikan perlakuan tertentu pada sampel penelitian. Menurut Solso & MacLin (2002), penelitian eksperimen adalah suatu penelitian yang di dalamnya ditemukan minimal satu variabel yang dimanipulasi untuk mempelajari hubungan sebab-akibat. Oleh karena itu, penelitian eksperimen erat kaitanya dalam menguji suatu hipotesis atau metode baru yang sedang dikembangkan dalam rangka mencari pengaruh, hubungan, perbedaan maupun perubahan terhadap objek penelitian yang dalam hal ini adalah system keamanan data digital.
Metode Observasi, yaitu mengadakan pengamatan langsung terhadap pemanfaatan teknologi informasi dan komunikasi.
Teknik Dokumenter, yaitu mengumpulkan data yang diperoleh melalui dokumen-dokumen dan buku-buku paket lainnya yang relevan dengan masalah yang akan diteliti.
Metode Pustaka, yaitu penelitian yang dilakukan dengan mengambil beberapa buku rujukan mengenai definisi dan konsep yang berhubungan dengan penelitian.
Rancangan Jadwal Penelitian
Tabel 3.1 Rancangan Jadwal Penelitian
No
Jenis Penilitian
Bulan / Minggu Ke
Juli
Agustus
I
II
III
IV
I
II
III
IV
1
Pengumpulan Data
2
Analisis Sistem
3
Desain Sistem
4
Pembuatan Program
5
Pengujian Sistem
6
Implementasi
Flowchart Penelitian
Gambar 3.1 Flowchart Penelitian Perancangan firewall Server Dengan Metode Port Knocking Pada Server Berbasis Software Open Source
BAB IV
HASIL DAN PEMBAHASAN
Implementasi
Pada tahap ini dilakukan implementasi rancangan sistem yang telah dibuat. Tahapan ini merealisasikan apa yang terdapat pada tahapan sebelumnya menjadi sebuah aplikasi yang sesuai dengan apa yang direncanakan.
Instalasi Aplikasi
Buka terminal lalu masukkan perintah "apt-get install knockd" kemudian tekan enter. Setelah muncul permintaan konfirmasi insalasi aplikasi, tekan "y" untuk melanjutkan instalasi. Hal ini berlaku baik dari sisi client maupun server.
Flowchart Instalasi Aplikasi
Gambar 4.1 Flowchart Instalasi Aplikasi
Konfigurasi
Setelah proses instalasi selesai, selanjutnya adalah menkonfigurasi aplikasi. Langkah pertama yang harus dilakukan adalah mengubah script atau lising program knockd. Dalam hal ini terdapat dua file yang harus di konfigurasi yaitu file "/etc/knockd.conf" dan file "/etc/default/knock" .
Konfigurasi file knockd.conf
File knockd.conf merupakan file konfirgurasi aplikasi yang berhubungan dengan lokasi penempatan logfile, sequence yang akan digunakan dalam pengetukan port masuk dan keluar, juga penentuan aksi yang akan dilakukan server jika menerima ketukan port yang sesuai dengan port sequence port knocking.
Langkah-langkah konfigurasinya sebagai berikut:
Masukkan perintah "nano /etc/knockd.conf" kemudian tekan "enter".
Gambar 4.2 Tampilan File /etc/knockkd.conf
Atur lokasi logfile. Pengaturan ini bertujuan untuk menentukan lokasi logfile yang berisikan histori atau riwayat akses. Informasi yang diberikan berupa ip address, port komunikasi yang digunakan, waktu akses dan port sequence yang digunakan. Dalam hal ini lokasi file ditempatkan pada "var/log/knockd.log".
Gambar 4.3 Penentuan Lokasi Logfile
Tentukan port sequence yang akan digunakan dan sequence time outnya.
Port sequnce adalah penentuan deretan atau urutan port yang akan digunakan oleh sistem dalam mengindentifikasi setiap user yang akan mengekses server dengan menggunakan SSH, setiap port sequnce dipisahkan oleh tanda "," .
Sequence time out adalah penentuan waktu dalam satuan detik dalam menginputkan satu port sequence ke port sequence kedua. Jika penginputan melebihi waktu yang telah ditentukan maka user tersebut dianggap tidak memenuhi kriteria untuk mengakses SSH, dengan kata lain user tersebut akan terbaca sebagai pihak yang tidak memiliki hak autentikasi terhadap server tersebut.
Gambar 4.4 Penentuan Port Sequnce Dan Sequence Time Out
Langkah selanjutnya adalah penentuan command. Tujuan dari command adalah menentukan hal yang akan dilakukan oleh server apabila menerima ketukan dari user lain yang sesuai dengan port sequence yang telah ditentukan. Dalam hal ini kita memasukkan perintah atau command "/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT.
Gambar 4.5 Penentuan Aksi Atau Command Yang Akan Dijalankan Oleh Server
Jika diuraikan, maka perintah "/sbin/iptables" merupakan lokasi aplikasi yang akan diakses oleh server, dan dalam hal ini aplikasi tersebut berda dalam file /sbin dan nama dari aplikasi tersebu adalah iptables. Setelah membuka aplikasi iptables, server akan melanjukan dengan mengeksekusi perintah"-I INPUT", perinah ini merupakan perintah yang bertujuan untuk memberikan informasi kepada server bahwa tipikal perintah yang selanjutnya berjalan adalah proses penginputan. Perinntah "-s %IP%" akan dipahami sebagai "-s" yang berarti source atau sumber masukan dan "%IP%" akan dikenali sebagai IP address dari user. Perintah "-p tcp" merupakan perintah untuk membuka akses tcp atau transmition control protocol. Setelah server membuka akses tcp maka server akan mencari tujuan atau arah tcp tersebut dengan cara mengenalinya dari perintah "--dport 22" atau dengan kata lain port yang menjadi destinasi adalah port 22 (port SSH) dan setelah source terhubung dengan destination atau tujuan maka server diminta untuk menyetujuinya melalui perintah "-j ACCEPT" .
Hal yang sama berlaku pada bagian [close SSH] terkecuali pada port sequence dan tab terintah iptables dimana nilai port sequnce [close SSH] merupakan kebalikan dari port sequnce [open SSH].
Gambar 4.6 Hasil Konfigurasi file "/etc/knockd.conf"
Tekan tombol "ctrl+x" sebagai perintah "exit" dan tekan "y" untuk menyimpan konfigurasi.
Gambar 4.7 Konfirmasi Menyimpan File Konfigurasi
Tekan "enter"
Gambar 4.8 Konfirmasi Nama File Konfigurasi
Flowchart File Knocd.conf
Gambar 4.9 Konfigurasi File Knocd.Conf
Konfigurasi File Knockd.
File knockd merupakan file yang berfungsi sebagai file untuk menkonfigurasi status aplikasi dan pada interface mana tersebut akan bekerja. Cara untuk menkonfigurasinya adalah sebagai berikut:
Ketikkan perintah "nano /etc/default/knockd" lalu tekan "enter".
Gambar 4.10 Perintah Untuk Mengedit File Knockd
Gambar 4.11 Tampilan File Konfigurasi Knockd
Rubah status dari START_KNOCKD=0 menjadi START_KNOCKD=1. Status "1" berarti aktif. Selanjutnya tentukan interfaces yang akan digunakan (untuk kali ini kita memasukkan eth0).
Gambar 4.12 Hasil Konfigurasi File Knockd
Tekan tombol "ctrl+x" sebagai perintah "exit" dan tekan "y" untuk menyimpan konfigurasi.
Gambar 4.13 Konfirmasi Menyimpan File Konfigurasi
Tekan "enter" untuk mengonfirmasi nama file dan memproses penyimpanan file.
Gambar 4.14 Konfirmasi Nama File
Setelah semua file telah dikonfigurasi selanjutnya adalah menjalankan aplikasi. Pada dasarnya aplikasi ini akan berjalan otomatis setelah server dinyalakan, akan tetapi aplikasi ini akan berjalan pada layer backend dari sistem operasi, sehingga untuk melihat proses yang sedang berjalan kita perlu memasukkan perintah "iptables -A INPUT -p tcp --dport 22 -j REJECT" lalu tekan enter dan perintah "knockd -D" kemudian tekan enter dan dilanjutkan melalu ujicoba menggunakan user lain, sedangkan indikator yang jadikan tolak ukur oleh user untuk mengetahui apakah port sequence yang dimasukkan adalah dengan melakukan uji coba koneksi SSH dengan menggunakan aplikasi PuTTY.
Gambar 4.15 Perintah IPTables
Gambar 4.16 Perintah Knockd -D
Gambar 4.17 Pengetukan Port SSH Dengan Port Knocking
Gambar 4.18 Koneksi SSH Menggunakan PuTTY
Gambar 4.19 Aplikasi Port Knocking Yang Sedang Berjalan
Gambar 4.20 Port Sequence Untuk Keluar Dari Knockd Di Sisi User
Flowchart File Knocd
Gambar 4.21 Konfigurasi File Knocd
Pengujian
Pengujian aplikasi dilakukan dengan menggunakan software Nmap atau PuTTY dan Zenmap. Tujuan dari uji coba ini adalah untuk mengetahui kelayakan dan untuk mengetahui sejauh mana peningkatan keamanan pada server yang menggunakan aplikasi tersebut.
Pengujian aplikasi menggunakan Nmap dan PuTTY
Tampilan hasil uji coba menggunakan Nmap pada server tanpa pengaman dengan menggunakan metode port knocking.
Gambar 4.22 Tampilan Hasil Scanning Port Dengan Nmap Pada Server Tanpa Pengaman Port Knocking
Tampilan hasil uji coba menggunakan Nmap pada server yang menerapkan port knocking sebagai metode pengaman server.
Gambar 4.23 Tampilan Hasil Scanning Port Dengan Nmap Pada Server
Dengan Menggunakan Pengaman Port Knocking
Dari hasil diatas, kita dapat melihat perbedaan pada server yang menggunakan metode port knocking sebagai sistem pengamanan port SSH. Perbedaan tersebut terlihat pada indikator port dengan service SSH berstatus filtered sedangkan pada server tanpa pengamanan dengan metode port knocking berstatus open dan dapat diakses dengan mudahnya menggunakan aplikasi Putty sebagai SSH remote server port 22.
Gambar 4.23 Login Remote SSH Pada Server Tanpa Pengamanan
Port Knocking Menggunakan Putty
Gambar 4.24 Tampilan PuTTY Pada Server Tanpa Pengamanan Port Knocking
Gambar 4.25 Pengujian Login Remote SSH Pada Server Dengan Pengamanan Port Knocking Menggunakan PuTTY
Gambar 4.26 Tampilan PuTTY Pada Server Dengan Pengamanan Port Knocking
Flowchart Pengujian dengan Menggunakan Nmap
Gambar 4.27 Flowchart Uji Nmap
4.2.2 Pengujian Aplikasi Menggunakan Zenmap
Berikut ini adalah hasil perbandingan antara dua unit server dengan salah satu server menggunakan metode port knocking sebagai firewall server menggunakan Zenmap sebagai aplikasi penguji sistem. Hasil uji coba server menggunakan aplikasi Zenmap pada server tanpa pengamanan port knocking.
Gambar 4.28 Hasil Scanning Dengan Zenmap, Tab Nmap Output
Gambar 4.29 Hasil Scanning Dengan Zenmap, Tab Ports/Hosts
Gambar 4.30 Hasil Scanning Dengan Zenmap, Tab Host Details
Flowchart Pengujian dengan Menggunakan Zenmap
Gambar 4.31 Flowchart Uji Zenmap
BAB V
KESIMPULAN DAN SARAN
Kesimpulan
Berdasarkan kegiatan penelitian yang telah penulis lakukan, maka ada beberapa kesimpulan yang dapat diambil, diataranya adalah :
Metode port knocking dapat menjadi salah satu alternatif dalam hal penerapan self firewall pada server berbasis sofware open source
Hasil rancangan dapat memenuhi kebutuhan suatu instansi, lembaga atau perusahaan terhadap suatu sistem pengamanan server.
Dalam penggunaan dan instalasi firewall dengan metode port knocking cukup mudah.Proses membuka dan menjalankan aplikasi firewall pada komputer server cukup stabil dan tidak memerlukan resource yang banyak.
Saran
Sistem autentikasi remote server dengan metode Port Knocking ini tentu tidak terlepas dari beberapa kekurangan. Oleh sebab itu, untuk pengembangan selanjutnya yang lebih baik, penulis menyarankan beberapa hal diantaranya adalah :
1. Konfigurasi aplikasi port knocking masih dilakukan secara manual melalui terminal atau console perlu dibuatnya fronend.
2. Aplikasi ini masih menggunakan bahasa Inggris lebih baik menggunakan bahasa
Indonesia
Dari segi instalasi, konfigurasi dan menjalankan aplikasi ini sudah cukup mudah, tetap diperlukan adanya pengetahuan teknis mengenai sistem firewall server.
Diperlukan adanya modifikasi lanjutan agar konfigurasi aplikasi dapat menjadi lebih mudah lagi dan dapat dioperasikan oleh pengguna awam sekalipun.
Meski sistem dan aplikasi yang dirancang sudah sangat bagus, akan tetapi tetap diperlukana adanya pengembangan aplikasi sehingga mampu memberikan keamanan yang lebih baik lagi.
DAFTAR PUSTAKA
Azikin, Ashari. 2011.Debian GNU/Linux.Penerbit Informatika,
Bandung.Saptono, Henry. 2011 Metode Port knocking dengan Iptables untuk Membuka Port SSH. Jakarta: InfoLinux
Forouzan, Behrouz. 2006. TCP/IP Protocol Suite. McGrawHill.
Putra, Ade Eka Maulana. 2012. Implementasi Remote Server dengan Menggunakan Metode Port Knocking Menggunakan Bahasa Python. Tugas Akhir. Institut Teknologi Telkom.
Putra, Firman Cahaya. 2009. Rancangan Bangun Sistem Keamanan Jaringan Komputer Dengan Menggunakan Metode Port Knocking. Skripsi. Universitas Pembangunan Nasional Veteran Jawa Timur.
Rozi, M. Fahru. 2010. Implementasi Remote Server Menggunakan Metode Port
Knocking Dengan Asymetric Encryption. Tugas Akhir