MENINGKATKAN KEAMANAN PORT SSH DENGAN METODE PORT KNOCKING MENGGUNAKAN SHOREWALL PADA SISTEM OPERASI LINUX
NASKAH PUBLIKASI
diajukan oleh
Edy Haryanto 09.11.3317
kepada SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER AMIKOM YOGYAKARTA YOGYAKARTA 2013
i
INCREASE SSH PORT SECURITY WITH PORT KNOCKING METHOD USING SHOREWALL ON LINUX OPERATING SYSTEM
MENINGKATKAN KEAMANAN PORT SSH DENGAN METODE PORT KNOCKING MENGGUNAKAN SHOREWALL PADA SISTEM OPERASI LINUX
Edy Haryanto Melwin Syafrizal Jurusan Teknik Informatika STMIK AMIKOM YOGYAKARTA
ABSTRACT Remote logins are generally provided by linux system administrator on server computer that they manage is SSH. SSH can simplify their work in administering the system they run wherever they are. SSH service is ussually to be one of attacks target by hackers because these services are generally provided by linux system administrator on their servers. Hackers will do a port scan on the server to determine the port number of the SSH service running and then perform an attack on these port. Although SSH remote login service is the most secure today because not only encrypted sessions but also authentication is required to access this service, but this service can still be attacked with brute-force attack techniques. Brute-force attack is attempted attack that tries to automatically log in using a username and password combination list that already exists. Based on the description above, SSH service need an additional security system so that service is not easily tracked or accessed by others and resistant against a bruteforce attack. The solution can be applied is using the knock on the door (port knocking). The main purpose of port knocking is to prevent an attacker from scanner systems such as SSH to perform port scanning. If an attacker sends a wrong connection sequence, the protected ports will not show up or open. Keyword : Port SSH Security, Port Knocking, Port Scanning, Brute-Force Attack, Linux Operating System.f
ii
1.
Pendahuluan SSH merupakan service remote login yang cukup aman, bukan hanya sesi yang
terenkripsi tapi juga adanya fasilitas otentikasi, sehingga untuk mengakses service ini dibutuhkan login, tapi service ini masih bisa diserang dengan teknik brute-force attack. Brute-force attack adalah suatu upaya serangan yang mencoba melakukan login secara otomatis dengan cara mencoba satu-persatu kemungkinan username dan password menggunakan daftar kombinasi user dan password yang sudah ada. Salah satu kasus penyerangan service SSH terjadi seperti yang dijelaskan pada situs http://www.shellperson.com, bahwa pada tanggal 10 april 2010 servernya telah berhasil dibobol melalui service SSH dengan cara melancarkan serangan brute-force attack. Serangan brute-force attack ini teridentifikasi ketika sang admin melihat log otentikasi. penyerang meninggalkan jejak berupa ribuan percobaan login yang tercatat di file /var/log.auth.log.1 seperti yang dijelaskan pada website tersebut. Hal ini yang melatar belakangi mengapa “Meningkatkan Keamana Port SSH dengan Metode Port knocking Menggunakan Shorewall pada Sistem Operasi Linux” diangkat sebagai judul skripsi karena berdasarkan pengamatan penulis jika penyerang mengirimkan ketukan koneksi yang salah maka port SSH yang dilindungi oleh port knocking tadi tidak akan muncul atau terbuka. 2.
Landasan Teori
2.1
Tinjauan Pustaka Artikel yang ditulis oleh Henry Saptono yang berjudul “Metode Port knocking
dengan Ip Tables untuk Membuka Port SSH” pada majalah InfoLinux edisi 05/2011 membahas tentang implementasi port knocking menggunakan ip tables untuk mengamankan port SSH menggunakan sistem operasi Ubuntu 10.04. Pada implementasi port knocking tersebut juga dilengkapi dengan fitur limit per-ip connection rate untuk membatasi jumlah percobaan koneksi per satuan waktu, yaitu 3 kali percobaan koneksi dalam interval waktu 10 detik. Fitur limit per ip connection rate yang diimplementasikan masih belum sempurna, karena ketika terjadi percobaan koneksi melebihi interval yang telah ditentukan, koneksi tersebut masih tetap diterima. Berdasarkan artikel diatas penelitian ini akan membahas tentang implementasi port knocking menggunakan shorewall dan akan menyempurnakan fitur limit per ip connection rate sehingga percobaan koneksi akan diterima hanya ketika pengguna melakukan percobaan koneksi sebanyak yang sudah ditentukan, tidak kurang dan tidak lebih, dan juga tambahan fitur dimana pengguna yang sudah berhasil melakukan koneksi kemudian mengahiri sesi koneksinya, pengguna tersebut tidak akan bisa melakukan
1
koneksi kembali sebelum melakukan percobaan koneksi pada port yang sudah ditentukan. 2.2
Tinjauan Umum Salah satu service remote login yang umumnya disediakan oleh para
administrator linux untuk mempermudah administrasi sistem pada servernya adalah SSH. Namum service ini sering menjadi sasaran serangan para hacker jahat guna mendapat akses shell pada server. Umunya para hacker akan melakukan scanning port guna mengetahui port yang terbuka dan service yang berjalan pada port tersebut. Setelah mengetahui pada port berapa service SSH berjalan, para hacker akan melancarkan serangan brute-force attack pada port tersebut guna mendapatkan password yang valid. Dengan password tersebut, hacker melakukan login dan mendapatkan akses full terhadap komputer korban dan dapat melakukan hal-hal yang merugikan seperti gambar 3.1 dibawah ini.
Gambar 2.1 Serangan Bute-Force Attack pada Service SSH
2
Setelah melihat kenyataan tersebut maka sangat diperlukannya sistem keamanan tambahan untuk menanggulangi serangan yang terjadi. Oleh karena itu penulis akan membangun serta mengimplementasikan port knocking pada port SSH guna memberikan keamanan ekstra. 2.3
Service SSH SSH yang merupakan singkatan dari Secure Shell adalah protokol jaringan yang
memungkinkan pertukaran data melalui saluran aman antara dua perangkat jaringan yang banyak digunakan pada sistem berbasis linux dan unix. SSH dirancang sebagai pengganti telnet dan remote shell tak aman lainnya, yang mengirim informasi, terutama kata sandi, dalam bentuk teks sederhana yang membuatnya mudah untuk dicegat. SSH menggunakan metode public-key cryptography untuk
mengenkripsi
komunikasi antara dua host, demikian pula untuk otentikasi pemakai. Dengan metode ini, kita akan memerlukan 2 buah kunci berbeda yang digunakan baik untuk melakukan enkripsi dan deskripsi. Dua buah kunci tersebut masing-masing disebut public key (dipublikasikan ke publik/orang lain) dan private key (dirahasiakan/hanya pemiliknya yang tahu). Ada dua pilihan Software SSH server untuk mengimplementasikan protokol SSH pada sistem operasi linux
1
1. SSH Program
SSH
original
bersifat
komersial
atau
berbayar,
biasanya
diimplementasikan pada perusahaan atau organisasi dan tersedia di situs http://www.SSH.com. 2. OpenSSH OpenSSH adalah implementasi open soruce dari SSH yang dikembangkan oleh OpenBSD projek. Situs resminya terdapat di http://www.openSSH.com. OpenSSH adalah server SSH yang paling popular dan sering digunakan di sistem berbasis linux. 2.4
Brute-Force Attack Brute-force attack adalah sebuah teknik serangan terhadap sebuah sistem
keamanan komputer yang menggunakan percobaan terhadap semua kunci yang mungkin untuk memecahkan password, kunci, kode, atau sebuah kombinasi. Dalam proses penebakan password, Brute-force attack dapat diimplementasikan dengan metode sebagai berikut : 1
Smith W, Roderick. 2003. FreeBSD: The Complete Reference. United Kingdom: The Dryden Press.
3
1.
Brute Force Attack Metode ini diimplementasikan dengan cara menentukan range of character set dan mengkomputasikan setiap kemungkinan kombinasi karakter yang ada. Metode ini umumnya menggunakan kombinasi karakter yang terdiri dari huruf saja, huruf angka, huruf angka atau special character atau setiap karakter pada table ASCII.
2.
Brute Force Attack with Dictionary Metode Dictionary Attack atau biasa disebut serangan kamus ini diimplementasikan dengan
mengkomputasi secara
berangsur-angsur
setiap kata tunggal atau modifikasi kata dari sebuah kamus dan dicocokan dengan password pengguna tertentu.
Gambar 2.1 Serangan Bute-Force Attack pada Service SSH
2.5
NMAP Nmap merupakan utilitas berlisensi open source yang berfungsi untuk discovery
jaringan dan audit keamanan. Nmap menggunakan raw IP paket untuk menentukan apakah host tersedia pada jaringan, service apa (nama service dan versi) yang berjalan di host, apa sistem operasi (versi OS) yang host jalankan, jenis firewall yang sedang dijalankan dan banyak karakteristik lainnya. Nmap dirancang untuk memindai jaringan besar secara cepat, tetapi bekerja baik juga untuk host tunggal.
4
Nmap mengirimkan paket SYN kepada target pada proses port scanning untuk menemukan port mana yang terbuka. Jika port korban berbuka, maka nmap akan mendapatkan paket balasan berupa paket SYN dan ACK, bila port tertutup maka nmap akan menerima pake RST seperti gambar 2.2 berikut :
Gambar 2.3 Nmap Port Scanning
2.6
THC-Hydra Hydra adalah sebuah proyek software yang dikembangkan oleh “The Hacker’s
Choice” (THC) yang menggunakan serangan kamus untuk menguji password yang lemah atau sederhana pada suatu remote host yang menjalankan berbagai layanan yang berbeda. Tool ini dirancang sebagai utilitas proof-of-concep untuk menunjukan kemudahan dalam pembobolan password yang lemah. Thc-Hydra berlisensi General Publick Licence versi 3.0 dengan ketentuan tambahan bahwa perangakat lunak ini tidak boleh digunakan untuk tujuan illegal, dan setiap layanan komersial atau program yang menggunakan Hydra harus memberikan kredit kepada THC.
5
2.7
Shorewall Shorewall (Shoreline Firewall) merupakan tool firewall berbasis open source
pada
sistem
operasi
linux.
Shorewall
didirikan
berdasarkan
sistem
Netfilter
(iptables/ipchains) yang dibangun ke dalam kernel linux, sehingga lebih mudah untuk mengelola skema konfigurasi yang lebih kompleks. Dengan mendeskripsikan rule firewall/gateway pada file konfigurasi, shorewall akan menjalankan rule tersebut dengan bantuan iptables, iptables-restore, utilitas ip, konfigurasi netfilter, dan subsistem jaringan linux. Shorewall bukanlah demon karena tidak berjalan secara terus menerus, melainkan sebuah rules konfigurasi pada kernel yang mengizinkan atau tidak mengizinkan sebuah trafik melewati sistem. Shorewall dikonfigurasi melalui file-file konfigurasi plain-tex (text mode) karena tidak memiliki GUI (graphical user interface), walaupun modul Webmin tersedia secara terpisah. Sebuah utilitas monitoring juga dikemas dalam Shorewall yang berfungsi untuk memantau status sistem.
2.8
Port Knocking Port knocking adalah sebuah metode membuka port secara eksternal melalui
firewall dengan cara melakukan usaha koneksi pada suatu port yang tertutup dengan urutan upaya koneksi yang telah ditentukan. Dengan kata lain port knocking adalah sebuah metode untuk membangun sebuah komunikasi
host-to-host dengan perangkat
komputer yang tidak membuka port komunikasi apapun secara bebas. Port knocking diimplementasikan dengan mengkonfigurasi Sebuah program kecil yang disebut daemon guna memonitor log firewall untuk permintaan koneksi dan menentukan apakah klien terdaftar pada alamat IP yang disetujui dan telah melakukan urutan ketukan yang benar. Jika jawabannya adalah ya, firewall akan membuka port yang terkait secara dinamis. Tujuan utama dari port knocking adalah mencegah penyerang dari pemindai sistem seperti SSH dengan melakukan port scanning. Jika penyerang mengirimkan urutan ketukan yang salah, port yang dilindungi tidak akan muncul atau terbuka seperti pada gambar 2.3 dan 2.4 berikut :
6
Gambar 2.4 Port knocking Blok koneksi
Gambar 2.5 Port knocking izinkan Koneksi
3.
Analisis
3.1
Analisis Port Scanning Hacker pada umumnya akan mencari informasi tentang korbannya terlebih
dahulu sebelum melakukan serangan, mencari celah-celah yang mungkin bisa dimasuki
7
dan mencari kelemahan-kelemahan yang mungkin untuk diekploitasi melalui proses scanning. Tool scanning yang sering digunakan salah satunya adalah nmap.
Gambar 3.1 Nmap Port Scanning
3.2
Analisis serangan Brute-Force Attack Langkah selanjutnya setelah mengetahui port SSH yang terbuka adalah
melancarkan serangan brute-force attack. banyak tool yang bisa digunakan, salah satunya adalah hydra.
Gambar 3.2 Hydra Login Cracker
8
Gambar 3.3 Hydra Finish Attacking
3.3
Konfigurasi Topologi Jaringan
1. Forward ip publick Speedy dengan ip 110.136.181.131 menuju ip private server dengan ip 192.168.1.2 2. Konfigurasi ip address static server menjadi 192.168.1.2 dengan mengedit file “/etc/network/interfaces” 3. Ganti default port SSH yang berada pada port 22 menjadi 33 dengan mengedit file “/etc/ssh/sshd-config”. 4.
Konfigurasi port forwarding dari ip publick Speedy menuju ip private server dengan cara login sebagai admin pada modem ADSL Speedy kemudian pilih menu Advance Setup -> NAT kemudian pilih Virtual Sverver kemudian forward layanan-layanan yang diinginkan
3.4
Instalasi dan Konfigurasi Shorewall
1. Instalasi shorewall mengunakan Advance Paket Tool (APT) secara online dengan perintah “sudo apt-get install shorewall” 2. Salin file konfigurasi daras shorewall dari direktori “/usr/share/doc/shorewall/default-config” menuju “/etc/shorewall”
9
3. Definisikan zona jaringan yang digunakan dengan ipv4 dengan mengedit file “/etc/shorewall/zones” 4. Mendefinisikan “eth0” sebagai perangkat jaringan yang digunakan dengan cara mengedit file “/etc/shorewall/interfaces” 5. Definisikan kebijakan default firewall dimana semua koneksi dari luar menuju server ditolak dan koneksi dari server ke luar diizinkan dengan cara mengedit file /etc/shorewall/policy 6. Mendefinisikan nama Actions shorewall dengan nama “portknock” 7. buat file kosong dengan nama file “action.portknock” dimana ekstensi portknock adalah nama yang sesuai dengan nama action yang sudah didefinisikan pada file /etc/shorewall/actions 8. buat file /etc/shorewall/portknock dan isikan dengan skrip port knocking seperti yang sudah dijelaskan pada bab 4. 9. Definisikan port dan rule spesifik untuk implementasi port knocking 10. Setelah semua konfigurasi dilaukan, jalankan shorewall
4.
Hasil Penelitian dan Pembahasan
4.1
Pengujian Port Scanning Pengujian port scanning dilakukan untuk menguji sistem port knocking dari
pemindai sistem menggunakan tool nmap, zenmap, dan knocker. Ketiga tools tersebut tidak dapat menemukan port SSH yang berjalan sehingga dapat disimpulkan metode port knocking ini dapat mencegah penyerang dari pemindai sistem sehingga tidak mudah dilacak.
Gambar 4.1 Nmap pada Sistem Port knocking
10
Gambar 4.2 Zenmap pada Sistem Port knocking
Gambar 4.3 Knocker pada Sistem Port knocking
4.2
Pengujian Brute-Force Attack Pengujian serangan brute-force attack dilakukan pada service SSH yang berjalan
di port 33 menggunakan hydra. Tools ini tidak dapat melakukan serangan terhadap service SSH karena port SSH tersebut dilindungi port knocking.
11
Gambar 4.4 Brute Force Sistem Port knocking
4.3
Pengujian Koneksi Pengujian koneksi dilakukan untuk mengetahui apakah sistem port knocking
berjalan lancar seperti rule yang sudah ditetapkan.
4.3.1
Pengujian Koneksi Langsung Pengujian pertama dilakukan dengan cara langsung melakukan percobaan koneksi SSH ke server. Koneksi ditolak karena dibutuhkan sebuah urutan ketukan rah
4.3.2
Pengujian Koneksi Dengan Ketukan yang Salah Penyempurnaan sistem yang dilakukan pada bahasan ini adalah dimana bila ketukan yang dilakukan client melebihi atau kurang dari jumlah ketukan yang telah ditetapkan, maka client tidak diizinkan melakukan koneksi SSH, misalnya client melakukan ketukan sebanyak 4 kali sedangkan aturan portk knocking hanya mengizinkan ketukan sebanyak 3 kali sehingga koneksi client tidak diizinkan
12
4.3.3
Pegujian Koneksi dengan Aturan Pengujian kedua dilakukan dengan percobaan koneksi SSH menggunakan aturan yang sudah ditentukan, yaitu melakukan percobaan koneksi menuju port 1234 dengan percobaan koneksi sebanyak 3 kali dalam interval waktu 10 detik sehingga Koneksi diizinkan.
4.3.4
Pengujian Koneksi Kembali Implementasi port knocking pada bahasan ini terdapat sebuah fitur dimana bila klien yang sudah berhasil melakukan koneksi SSH ke server dan mengahiri sesi koneksinya, klien tersebut tidak dapat melakukan koneksi SSH kembali sebelum melakukan penghapusan list.
5.
Kesimpulan Berdasarkan hasil penelitian metode port knocking menggunakan shorewall yang
telah dijelaskan dan diuraikan pada bab-bab sebelumnya dalam skripsi ini, dapat disimpulkan bahwa : 1. Service SSH mempunyai tingkat keamanan yang lumayan tinggi, tapi tetap saja service ini masih rentan terhadap serangan brute-force attack dan pemindai sistem sehingga dibutuhkan keamanan tambahan untuk service ini. 2. Port knocking dapat mencegah penyerang dari pemindai sistem seperti service SSH dengan melakukan port scanning, sehingga service SSH tidak mudah dilacak dan diakses orang lain. 3. Metode port knocking menggunakan shorewall ini dapat meningkatkan keaman service SSH dari serangan brute-force attack. 4. Kelebihan penerapan port knocking menggunakan shorewall adalah tidak perlu lagi menggunakan demon yang berjalan secara terus menerus. 5. Metode port knocking untuk meningkatkan keaman port SSH dapat dibangun menggunakan software free atau gratis yaitu shorewall tanpa harus mengeluarkan biaya mahal dalam implementasinya terhadap sistem.
13
DAFTAR PUSTAKA
Anonim.
2007.
SSH
Tutorial
for
Linux.
http://support.suso.com/supki/
SSH_Tutorial_for_Linux. diakses tanggal 20 desember 2012 Anonim.
2008.
Presentation:
Nmap
and
Asynchronous
Programing,
asynchronous.html,
http://blogger.popcnt.org/2008/08/presentation-nmap-and diakses 20 januari 2013 Anonim.
2008.
Add
Port
Knocking
to
SSH
for
Exstra
Security.
http://www.marksanborn.net/linux/add-port-knocking-to-ssh-for-extra-security Hauser,
V.
2012.
Comparation
of
Features
and
Services
Coverage.
http://www.thc.org/thc-hydra/network_password_cracker_comparison.html, diakses tanggal 8 desember 2012. Saptono, Henry. 2011. Metode Port Knocking dengan Shorewall untuk Membuka Port SSH. Jakarta: InfoLinux Saptono, Henry. 2011. Metode Port knocking dengan Iptables untuk Membuka
Port
SSH. Jakarta: InfoLinux. Smith W, Roderick. 2003. FreeBSD: The Complete Reference. United Kingdom: The Dryden Press. Thomas M. Estep. 2009. Port knocking and Other Uses of ‘Recent Match’. http://www.shorewall.net/PortKnocking.html, diakses 2 desember 2012 Thomas M. Estep. 2009. Standalone Firewall. http://www.shorewall.net/ standalone.html, diakses 19 januari 2013
14