Senin, 15 Februari 2016

Install MikroTik RouterOS Menggunakan USB Flashdisk


LATAR BELAKANG

Untuk para pengguna MikroTik, mungkin pernah mengalami saat mereka merasa bahwa penggunaan RouterBoard tidaklah memadai jika dilihat dari resource-nya. Mungkin dari kecepatan CPU-nya yang tidak memadai, memory yang terbatas, serta storage kecil yang susah untuk dijadikan proxy internal sebagai caching . Dari keterbatasan itu, banyak sekali pengguna MikroTik beralih ke perangkat yang lebih besar (seperti komputer) untuk mendapatkan resource yang lebih tinggi.

Seperti yang diketahui, selain menyediakan operating system untuk RouterBoard, MikroTik juga menyediakan sistem operasi yang dikhususkan untuk processor x86 (Intel 32bit). Hal inilah yang membuat MikroTik dapat dijalankan pada komputer, seperti halnya menjalankan sistem operasi di komputer pada umumnya.

PERMASALAHAN
Sayang sekali walaupun dapat dijalankan pada komputer, sejauh yang saya tau MikroTik hanya dapat diinstall melalui PXE (Preboot Execution Environment) dan instalasi melalui CD/DVD. Masalah baru pun muncul. Bagaimana jika komputer tersebut tidak memiliki keduanya?

Memang kasus yang seperti itu jarang sekali terjadi. Rata-rata komputer saat ini sudah mendukung PXE walaupun tidak mempunyai CD/DVD-ROM. Tapi, ada kalanya suatu hari nanti para pengguna MikroTik akan dihadapkan masalah yang seperti itu. Salah satu solusinya adalah menggunakan usb flash disk. Bagaimana caranya?

Mungkin cara ini sudah pernah digunakan, atau bahkan sudah usang dan tenggelam diantara metode-metode lainnya. Hanya saja, sejujurnya cara ini memang ide yang muncul dari pikiran saya saat saya mendowload image file yang berformat ova (open virtualization format). Nah dari situ saya kepikiran, bagaimana jika arsitektur virtual tersebut saya realisasikan ke dalam komputer secara fisik?

SOLUSI
Akhirnya saya menemukan cara bagaimana membuat sistem yang terinstall secara virtual dapat digunakan pada komputer asli. Dengan menggunakan Virtualbox+CloneZilla saya dapat mem-backup seluruh sistem pada komputer virtual dan me-restore-nya ke komputer asli melalui fiturnya yaitu V2P (Virtual to Phisical). Lebih lanjut mengenai CloneZilla dapat dibaca DISINI

LANGKAH PENYELESAIAN
A. Clone Image pada komputer source
1. Instal Virtualbox terlebih dahulu. Kemudian buat dan install MikroTik dalam Virtualbox . Anda dapat menginstall  file .iso ataupun import melalui file .ova (import melalu .ova lebih gampang). Pastikan untuk mencentang Enable PAE/NX pada konfigurasi System → Processor.




2. Aktifkan dan atur adapter jaringan pada VirtualBox MikroTik menjadi host-only Adapter. Adapter ini nantinya akan digunakan sebagai media untuk mengirimkan image file melalui samba (Pada umumnya alamat IP pada komputer host untuk host-only Adapter adalah 192.168.56.1)




3. Selanjutnya, tambahkan disk CloneZilla pada konfigurasi Storage VirtualBox MikroTik kemudian tekan OK.


4. Konfirgurasikan Samba agar komputer host dapat diakses melalui komputer guest sehingga komputer host dapat menerima file.
. 5. Nyalakan Virtualbox dan biarkan dia melakukan boot pada CloneZilla.

6. Pilih CloneZilla Live (opsi paling atas)



7. Biar nggak bingung, pake bahasa Inggris aja :D



8. Untuk pengaturan Keymap lebih baik pilih default-nya (Don't touch keymap)



9. Pilih Start CloneZilla untuk menjalankan CloneZilla dan memulai proses clonning.



10. Pada jendela selanjutnya akan ditampilkan 2 pilihan. Device – image (device to image) yang berfungsi untuk clonning dari hardisk ke image file atau device – device (device to device) yang berfungsi untuk clonning dari hardisk ke hardisk. Disarankan untuk memilih device – image karena tidak clonning tidak perlu memasukkan hardisk ke dalam komputer source.



11. Diantar pilihan yang disediakan, pilih yang menggunakan samba_server agar nantinya tidak perlu repot-repot untuk me-mount perangkat lain ke dalam Virtualbox.



12. Pilih static untuk jaringannya dan isikan parameter-parameter yang diperlukan. Jangan lupa, jika dimintai FQDN server, isikan IP dari komputer host.



13. Pilih beginner



14. Pada halaman selanjutnya, pilih savedisk untuk clonning secara menyeluruh semua hardisk (Sorii, nggak kena skrisut. Males mau ngulangin lagi *nggak niat)

15. Beri nama folder yang nantinya akan digunakan sebagi menyimpan image file.



16. Selanjutnya, pilih hardisk yang akan di-clonning. (ah, kelewatan lagi buat skrinsut)

17. Pilih fsck-src-part untuk memverifikasi setiap file sebelum disimpan.



18. Pilih Yes, checked save image agar file yang telah disimpan diverifikasi kembali.



19. Pilih Not to encrypt the image untuk tidak menenkrip image file.



20. Tunggu hingga proses selesai. Pastikan untuk memilih yes untuk setiap konfirmasi yang diberikan. Selanjutnya tekan Enter.

21. Anda bisa memilih beberapa action apapun. Yang jelas, anda tidak boleh menutup Virtualbox secara langsung tanpa harus men-shutdown VirtualBox.

22. Hardisk berhasil di-clonning.

B. Restore Image pada Komputer Target
Lakukan langkah yang sama seperti diatas. Saat sampai pada langkah nomor 14, pilih restoredisk selanjutnya ikuti langkah-langkah berdasarkan panduan yang diberikan.

Untuk saat ini, saya tidak bisa memberikan penjelasan lebih detil. Setidaknya, secara konsep anda sudah mengerti apa yang saya maksudkan. Jika belum, anda bisa memberikan dikomentar.

Artikel ini akan saya update untuk waktu selanjutnya. Terima kasih banyak sudah berkunjung.

UPDATE
Untuk sementara, saya sertakan videonya. Saya akan update kembali ketika di RL udah nganggur.

Membuat Aplikasi Enkripsi Vigenere Berbasis Java


Beberapa waktu yang lalu, saya mendapatkan tugas dari kuliah Keamanan Jaringan. Yah, bisa dibilang kalau mata kuliah ini adalah mata kuliah wajib. Jadi, mau nggak mau harus diambil. Dalam mata kuliah ini dijelaskan bahwa setiap data yang lalu lalang di dalam jaringan tidak selalu aman. Oleh karena itu, dibutuhkan tindakkan pengamanan. Langkah pengamanan ini meliputi pengunaan ptotokol jaringan aman atau pengenkripsian data.


Apa itu enkripsi?
Ada banyak sekali algoritma pengenkripsian data. Namun, secara garis besar dapat digolongkan menjadi 2 bagian, yaitu enkripsi simetris dan asimetris. Letak perbedaan dari keduannya adalah pada kuncinya (key).


Pada enkripsi simetris, kunci yang digunakan untuk mendekrip sama dengan kunci untuk mengenkrip. Sehingga, apabila pihak luar mengetahui algoritma sekaligus kuncinya maka pesan dapat diketahui. Enkripsi ini sering disebut enkripsi klasik. Berbeda pada enkripsi asimetris. Enkripsi asimetris melibatkan dua kunci untuk saling mengenkripsi dan mendekripsi. Kunci yang pertama digunakan untuk mengenkripsi, disebut public key. Public key ini akan digunakan oleh pengirim pesan untuk mengenkripsi pesan. Walaupun orang lain mendapatkan public key ini, orang tersebut tidak bisa menerjemahkan chippertext-nya. Dipihak penerima, terdapat sebuah kunci yang disebut private key. Private key ini berfungsi untuk mendekrip pesan yang dikirimkan oleh pihak lainnya. Private key ini bersifat rentan, sehingga pihak penerima tidak boleh membiarkan pihak lain mengetahuinya.


Terdapat banyak algoritma dari enkripsi simetris. Salah satunya adalah algoritma Vigenere. Algoritma ini merupakan algoritma yang telah lama dipakai. Vigenere ditemukan oleh Giovan Battista Bellaso pada abad 19.


Vigenere Chiper
Itu tadi adalah sepintas mengenai enkripsi dan Vigenere Chiper. Selanjutnya adalah paparan mengenai bagaimana cara membuat enkripsi dan dekripsi Vigenere Chiper menggunakan bahasa pemrograman Java.


Berikut langkah-langkah yang harus dikerjakan:
1. Menentukan jenis karakter (Apakah ASCII ataukah beberapa karakter yang telah ditentukan)
2. Mernentukkan jumlah dari karakter total
3. Menuliskan daftar fungsi-fungsi yang kemungkinan dipergunakan.
4. Menuliskan Kode pokok
5. Menuliskan Kode tambahan (Interface dan I/O)


Pembahasan
Langkah 1 (Membuat Class Vigenere)
Jika menggunakan karakter yang terbatas, karakter tersebut harus didefinisikan dahulu dalam sebuah kamus yang berbentuk String. Selanjutnya, dapat di loop sepanjang length. Pembatasan karakter ini, akan mengakibatkan kegagalan dekripsi jika user memasukkan karakter tidak ada dalam kamus. Walaupun begitu, tidak ada salahnya jika jenis Vigenere ini dibuat.


Langkah 2 (Menentukan Jumlah Karakter)
Untuk aplikasi yang menggunakan kamus, dapat digunakan sytax length dalam menentukkan jumlah huruf. Sedangkan untuk ASCII, jumlah karakter total adalah 256.


Langkah 3 (Menuliskan Daftar Fungsi)
Fungsi-fungsi yang kemungkinan digunakan adalah:
1. Looping untuk mengulang huruf dalam kalimat yang akan dienkripsi (looping kalimat)
2. Fungsi untuk mengecek karakter spasi didalam looping
3. Looping untuk mengulang kunci yang ada didalam looping kalimat
4. Fungsi untuk mengkonversi dari alfabet menjadi integer agar dapat dihitung
5. Fungsi menghitung
6. Fungsi untuk mengkonversi dari integer menjadi alfabet
7. Fungsi main


Langkah 4 (Menuliskan Kode)
Nah, berdasarkan daftar fungsi diatas kita bisa maka sytax dari kode diatas adalah sebagai berikut:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pengamanajaringan;


/**
*
* @author blackhiden.blogspot.com
*/

public class Vigenere {
  private String Input; //Input teks
  private String Output; //Output teks
  private String Key; //Key dari enkripsi Vigenere
  private final int PanjangKamus = 51; //jumlah dari kamus
  //kamus yang dipergunakan A-Za-z
  private final String Kamus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     
  public Vigenere(){
  }

   public String getInput() {
       return Input;
   }

   public String getOutput() {
       return Output;
   }

   public String getKey() {
       return Key;
   }

   public void setInput(String Input) {
       this.Input = Input;
   }

   public void setOutput(String Output) {
       this.Output = Output;
   }

   public void setKey(String Key) {
       this.Key = Key;
   }
   
   
  
  
  
  //merubah char
  private int chartoInt(char inKey){
      int k = 0;
      for (int i = 0; i < Kamus.length(); i++) {
          if (inKey == Kamus.charAt(i)) {
              k = i;
              break;
          }
      }
      return k;
  }
  //Enkripsi
  public String VigenereEn(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') { //cek spasi agar struktur huruf tidak berubah
              Output += " ";  
          } else {
              if (k < Key.length()) {
              h = hitungVi(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungVi(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  public String VigenereDe(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') {
              Output += " ";
          } else {
              if (k < Key.length()) {
              h = hitungViDe(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungViDe(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  private int hitungVi(int p, int k){
      int o = (p + k) ;
      if (o > PanjangKamus) {
         o %= PanjangKamus;
          System.out.println(o);
      }
      return o;
  }
  
  private int hitungViDe(int p, int k){
      int o = (p - k);
      if (o < 0) {
          o += PanjangKamus;
      }
      return o;
  }
  
   
}


Langkah 5 (Tampilan dan I/O)
Untuk terakhir, anda bisa membuat interface untuk I/.O.


Semoga anda paham dan mengerti.

Selamat ber-coding ria.