Tuesday, February 27, 2018

MikroTik - Menggunakan Fitur Send Email (+List Konfigurasi SMTP)

  No comments
1:00 AM

Assalamu'alaikum Wr. Wb.
Halo! kali ini saya akan menuliskan mengenai penggunaan fitur pengiriman email yang ada di Mikrotik yang mungkin beberapa dari kita belum pernah menggunakannya.

Untuk mengirim Email kita perlu Server SMTP (Simple Mail Transfer Protocol), simpelnya SMTP ini adalah service yang akan mengantarkan Email ke penerima yang kita inginkan (seperti Pos). Teman-teman bisa membangun sendiri Server SMTP-nya atau bisa menggunakan layanan SMTP yang sudah ada dan gratis seperti Gmail dan Outlook.

Berikut adalah konfigurasi untuk beberapa SMTP yang sudah saya coba dan bisa digunakan di Mikrotik:
Outlook.com
Server: smtp-mail.outlook.com
Port: 587
Start TLS: Ya
User/Pass: Alamat Email Outlook Kalian dan Passwordnya
Gmail.com
Server: smtp.gmail.com
Port: 587
Start TLS: Ya
User/Pass: Alamat Email Gmail Kalian dan Passwordnya
Untuk versi RouterOS yang cukup baru (mungkin v6.x+ *mohon dikoreksi) teman-teman bisa langsung memasukkan Server SMTP nya dengan nama domain seperti diatas, namun jika belum mendukung maka teman-teman hanya bisa memasukkan IP Server SMTP nya. Bagaimana cara mengetahui IP nya? bisa dengan kalian ping nama domain tersebut :)

*Catatan:
Jika menggunakan SMTP dari Outlook, teman-teman bisa langsung menggunakannya untuk mengirim Email.

Tapi jika menggunakan SMTP dari Gmail, teman-teman harus 'menurunkan' sedikit keamanan akun-nya agar bisa dipakai untuk autentikasi SMTP melalui Mikrotik.

Dari yang saya baca di Laman Dukungan. Google hanya mengizinkan perangkat yang sudah memenuhi standar keamanan mereka yang dapat masuk menggunakan akun pengguna, dan sampai tulisan ini dibuat (RouterOS v6.41.2) belum bisa menggunakan SMTP Gmail secara langsung tanpa mengubah pengaturan keamanan akun. Memang belum ada perbaikan untuk ini atau memang standar keamanan Google yang terlalu tinggi.
Email yang saya terima jika memaksa masuk
Sehingga solusi sementara adalah menurunkan keamanannya. Caranya hanya dengan mengaktifkan opsi "Izinkan aplikasi yang kurang aman" di pengaturan keamanan akun.

Konfigurasi SMTP
1. Melalui Winbox
Untuk "From" meski bisa dikosongi, disarankan teman-teman untuk mengisinya dengan alamat email yang sama dengan yang teman-teman gunakan untuk autentikasi guna meminimalisir Email masuk spam pada sisi penerima.

2. Melalui CLI
/tool e-mail set address=<alamat server smtp> port=<port smtp> start-tls=yes user <alamat email> password=<password akun> from=<alamat email>

Mulai Mengirim Email!
Untuk mulai mengirim email teman-teman bisa melalui beberapa cara:
1. Melalui GUI Winbox

2. Melalui CLI
/tool e-mail send start-tls=yes <arguments>
Arguments:
to=<satu penerima>
cc=<banyak penerima, dipisahkan koma>
subject=<judul email>
body=<isi email>
file=<path ke file yang ada di storage Mikrotik>

Pastikan tidak ada error apapun di Log setelah mengirim Email.
Dan yap, begitulah caranya! jika email berhasil terkirim, maka teman-teman bisa mengkombinasikan dengan tool lain dan memanfaatkannya untuk hal-hal seperti pengiriman file backup otomatis, pengiriman laporan otomatis, dan sebagainya :)

Referensi:
Mikrotik Wiki - Email

Sekian yang dapat saya tulis, Semoga bermanfaat.
Maaf apabila ada kesalahan dan mohon untuk koreksinya.
Wassalamu'alaikum Wr. Wb.

Read More

Saturday, February 24, 2018

MikroTik - Memisahkan Dua Jalur WAN untuk Dua LAN + WAN Failover

  6 comments
11:57 AM


Assalamu'alaikum Wr. Wb.
Halo! sebelumnya maaf kalau judulnya terasa aneh, karena saya menuliskannya berdasarkan apa yang saya pahami, hehe.

Seperti judul, saya mempunyai kasus seperti ini:
1. Terdapat 2 WAN (WAN1, WAN2) dan 2 LAN (LAN1, LAN2).
2. Anggap LAN1 adalah untuk Umum dan LAN2 adalah untuk VIP yang Internetnya harus selalu aktif.
3. WAN1 adalah jalur Shared dimana LAN1 dan LAN2 dapat menggunakannya. Namun WAN2 dikhususkan (Dedicated) hanya untuk LAN2.
4 Jalur WAN Utama untuk LAN1 (Umum) adalah menggunakan WAN1 (Shared), dan tidak ada Failover.
5.Jalur WAN Utama untuk LAN2 (VIP) adalah menggunakan WAN2 (Dedicated). Karena Internet untuk LAN2 (VIP) harus tetap aktif maka WAN1 (Shared) digunakan sebagai Jalur Backup jika WAN2 mengalami putus koneksi.
6. Apabila Jalur WAN2 sudah dapat digunakan kembali, maka LAN2 otomatis pindah menggunakan jalur WAN Dedicatednya.


Setelah berpusing-pusing ria dengan Routing Mark + Netwatch + Scripting yang hasilnya kurang memuaskan karena poin nomer 6 belum bisa diselesaikan. Akhirnya saya dapat menyelesaikan semuanya tanpa scripting sama sekali dengan cara berikut:

- Check Gateway (Untuk mengetahui apakah ada akses internet atau tidak)
- Routing Policy + Routing Mark (Untuk memisah jalur WAN)

Untuk Langkahnya:
1. Konfigurasi Dasar
Konfigurasi semua jalur WAN dan LAN seperti biasanya, sampai kedua jalur WAN dapat terkoneksi ke Internet. Untuk catatan karena kita akan mengubah sesuatu di Tabel Routing, pastikan teman-teman membuat Default Route-nya secara static/manual. Karena jika Dynamic maka kita tidak bisa mengubah konfigurasinya.

2. Penyelesaian Poin 2-3
Kita akan membuat aturan Routing Policy yang akan menandai jalur dari LAN2, yang nantinya akan digunakan untuk memisahkan Jalur WAN. Disini kita akan membuat Routing Policy melalui IP -> Route -> Rules.
Isikan Source Address dengan Network dari LAN2, dan Berikan nama untuk Routing Policy-nya (bebas)

Setelah setting dasar pada Langkah 1, kurang lebih isi tabel routing akan seperti ini:
Salah satu default route tidak dalam status aktif, ini normal karena keduanya punya nilai prioritas (Distance) yang sama.

3. Penyelesaian Poin 5-6
Kita akan membuat Check Gateway yang berfungsi untuk mengetahui apakah ada koneksi internet atau tidak.

Cara membuatnya sama seperti kita membuat Default Route, hanya saja Destination Address kita ganti menjadi IP Host yang akan djadikan patokan (dalam hal ini saya akan menggunakan IP dari DNS Google).

Lalu hidupkan Check Gateway dan pilih opsi ping, ini akan mengaktifkan ping otomatis tiap 10 detik ke host yang bersangkutan. Buatlah Check Gateway ini sesuai dengan banyaknya jalur WAN yang teman-teman ingin monitor.

Setelah itu kita buka Default Route dan Check Gateway dari Jalur WAN2, hidupkan Routing Mark dan pilih nama Routing Policy yang sebelumnya kita buat. Ini akan membuat Jalur WAN2 dikhususkan hanya untuk LAN2, dan membuat kedua Default Route bisa aktif bersamaan.

Selesai!
Ringkasannya adalah sebagai berikut:
- Kita mengkonfigurasi semuanya seperti biasa
- Lalu membuat Routing Policy untuk menandai jalur LAN2
- Kemudian kita buat Check Gateway untuk melakukan pengecekan otomatis ketersediaan akses Internet tiap WAN.
- Dan akhirnya memberikan Routing Policy ke route WAN2, yang hasilnya akan memisah jalur WAN2 khusus untuk LAN2 saja.
- Dengan dibuatnya Check Gateway, Jika koneksi internet WAN2 putus/tidak tersedia, maka otomatis Default Route WAN2 akan dimatikan / menjadi tidak aktif. Dan karna WAN1 juga mempunyai Default Route dan tidak terdapat Routing Policy di route nya maka LAN2 bisa langsung menggunakannya untuk jalur cadangan.
- Apabila jalur WAN2 sudah pulih dan terdapat akses internet, segera setelah Check Gateway mengirimkan ping dan berhasil maka otomatis Default Route dari WAN2 akan kembali aktif dan traffic LAN2 kembali diarahkan ke WAN2.

WAN2 Tidak ada Koneksi


WAN2 Kembali ada Koneksi

Referensi:
Mikrotik.id - Pengenalan Fungsi Routing Dasar
- Mikrotik Wiki - Advanced Routing Failover without Scripting

Sekian yang dapat saya tulis, Semoga bermanfaat.
Maaf apabila ada kesalahan dan mohon untuk dikoreksi.
Wassalamu'alaikum Wr. Wb.

Read More

Thursday, January 18, 2018

Git - Include Hanya Folder/File Tertentu, Exclude Sisanya

  No comments
5:04 PM

Source Image: git-scm
Assalamu'alaikum Wr. Wb.
Baru-baru ini saya menggunakan Git untuk melakukan tracking dan manajemen source code aplikasi yang iseng saya tulis. Dengan menggunakan Version Control seperti Git sangat membantu saya dalam melakukan perubahan pada kode, karena tidak perlu membuat incremental backup secara manual.

Tepatnya hari ini, saya mendapatkan kendala karena belum berhasil mengatur file .gitignore untuk meng-include hanya sebuah folder + seisinya dan sisanya tidak diikutsertakan untuk ditrack. Setelah membaca dokumentasi resminya dan membaca blog milik orang lain akhirnya tercerahkan juga. Memang cukup mudah, tapi cukup membingungkan juga hehe.

Inilah .gitignore yang saya gunakan sebelumnya:

- Coba 1 (Tidak work)
*
!a/b/

- Coba 2 (Tidak work)
*
!a/b/*.[html|css|js|md|png]

- Coba 3 (Work tapi tidak praktis)
**.*
!**/**.html
!**/**.css

!**/**.js
!**/**.md
!**/**.png

Kupas Masalah dan Sedikit Faktanya:
1. File ".gitignore" digunakan untuk memberitahu Git agar tidak mengikutsertakan (exclude) file/folder dalam trackingnya, sesuai dengan daftar yang ada di dalam file ".gitignore"
"The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked."
2. Meski begitu, ada opsi negasi untuk mengikutsertakan kembali file/folder yang kita exclude, yaitu dengan menambahkan karakter "!" pada awal baris.
"An optional prefix "!" which negates the pattern; any matching file excluded by a previous pattern will become included again." 
3. ".gitignore" mendukung pola untuk mencari file, Tapi bukan pola RegEx.
Ini adalah alasan kenapa contoh "Coba 2" tidak bekerja. Karena pola yang digunakan untuk mencari kecocokan file adalah pola Regular Expression.
"..Git treats the pattern as a shell glob suitable for consumption by fnmatch(3).."
4. Leading Slash yang menurut saya cukup unik
Jika kita melihat template .gitignore yang ada di GitHub. Teman-teman sadar kalau cara penulisannya tidak semuanya sama, dalam hal ini kita membicarakan karakter slash diawal. Ada yang menggunakan slash diawal dan ada juga yang tidak.

Akan tetapi dalam kasus saya, slash awal ini punya efek yang membuat saya bingung pada awalnya (karena semua pattern yang saya coba tidak bekerja). Dan dalam contoh "Coba 1" diatas, pattern yang saya gunakan mirip dengan contoh yang bekerja yang saya gunakan sekarang, hanya berbeda slash diawal.

Oke, dengan sedikit kupasan dan fakta diatas kita akan mencoba menyelesaikan masalah pada topik artikel ini.
Untuk meng-include kembali folder beserta isinya, yang perlu teman-teman lakukan adalah menuliskan path dari folder nya satu-persatu berdasarkan level foldernya (jika subfolder).

Contoh, saya akan meng-exclude semua file kecuali folder satu dan isinya.

├── README.md
└── satu
    ├── dua
    └── tiga
        └── halo.txt

Ekspektasi kita adalah folder satutiga dan file "halo.txt" dibaca oleh Git dan statusnya menjadi Untracked. namun lainnya akan diabaikan.

Konten .gitignore:
/*
!/satu/

Sebelum memakai .gitignore:
Perhatikan tanda "U" dan warna hijau pada Sidebar.



Sesudah memakai .gitignore:
Perhatikan tanda "U" dan warna hijau pada Sidebar.

Teman-teman mungkin bertanya kenapa folder dua tidak menjadi warna hijau/Untracked? jawabannya adalah karena Git hanya melakukan tracking pada file. Folder dapat ikut ditrack jika ada file didalamnya, nah dalam contoh ini folder dua kondisinya kosong sehingga diabaikan oleh Git.

Referensi:
- Git Documentation - gitignore
- ConSol Labs - Using .gitignore the Right Way

Mungkin cukup sekian yang dapat saya tulis, Mohon maaf jika ada kesalahan dan mohon untuk dikoreksi. Wassalamu'alaikum Wr. Wb.

Read More

Wednesday, June 28, 2017

Berkomunikasi dengan MikroTik RouterOS dari PHP melalui API

  7 comments
12:17 AM

Assalamu'alaikum Wr. Wb.
Sudah lama saya tidak posting, kali ini saya akan menuliskan mengenai caranya berkomunikasi dengan perangkat MikroTik dengan Bahasa Pemrograman PHP melalui API RouterOS.

a. Pengertian
API (Application Program(ming) Interface) adalah sebuah protokol dan set metode untuk berkomunikasi antar aplikasi. API dapat digunakan untuk berkomunikasi antar aplikasi, dan antar platform. Maka dari itu tidak perduli Platform apa yang digunakan masing-masing aplikasi, aplikasi tersebut tetap akan dapat saling berkomunikasi melalui API.

b. Alat dan Bahan
- Text Editor
- Apache2 + PHP5 / 7
- RouterOS v3+ (bisa perangkat RB atau CHR)
- RouterOS API PHP

c. Langkah Pengerjaan
1. Silahkan persiapkan alat bahan diatas. Untuk RouterOS API PHP karena saya memakai yang versi ZIP maka saya akan menyarankan teman-teman juga mendownload yang ZIP, jika teman-teman dapat menyesuaikan ke versi yang lain maka saya persilahkan.

2. Ekstrak Zip
Skip part ini apabila teman-teman mendownload yang bukan ZIP.
Setelah didownload, silahkan buka file ZIP tersebut lalu menuju PEAR2_Net_RouterOS -> src. Didalam folder ini ada folder bernama PEAR2, silahkan ekstrak folder tersebut ke Webroot teman-teman.
3. Buka Teks Editor dan Buat File baru
Selanjutnya kita buat file PHP yang akan kita gunakan untuk mengeksekusi perintah API, silahkan nantinya teman-teman simpan file ini didalam Folder yang sama dengan folder PEAR2 tadi.

Nah isi dasar dari file ini adalah sebagai berikut:
<?php
    use PEAR2\Net\RouterOS;
    require_once 'PEAR2/Autoload.php';
    // Isi Perintah API mulai dari sini
?>
4. Cek Service dan Firewall
Pastikan API MikroTik berada dalam keadaan Enabled (IP -> Services) dan tidak terhalang Firewall, baik dari sisi Client ataupun MikroTiknya.
5. Check Sound 1!
Setelah Step 4 tidak ada masalah maka saatnya kita coba untuk berkomunikasi dengan RouterOSnya. Kita akan coba dengan membuat konektivitas melalui API
// Mulai Koneksi
try {
   $client = new RouterOS\Client('IP MIKROTIK', 'USERNAME', 'PASSWORD');
   echo "Koneksi OK";
} catch (Exception $e) {
  die ($e);
}
Tambahkan Script diatas kedalam file teman-teman dan sesuaikan IP, Username, dan Passwordnya.
Jika sudah silahkan Simpan lalu coba buka Filenya melalui Web Browser.
6. Script Lanjutan Step 5
Beberapa script yang sudah saya coba dan pakai:
- Ambil List IP (Shell: /ip address print)
// Ambil List IP
$getIPs = $client->sendSync(new RouterOS\Request('/ip address print'));
foreach ($getIPs as $getIP){
    if($getIP->getType() === RouterOS\Response::TYPE_DATA) {
      echo 'IP: ', $getIP->getProperty('address'),
      ' Interface: ', $getIP->getProperty('interface'),
      "\n";
    }
}
- Buat Interface VLAN
// Buat VLAN
$addRequest = new RouterOS\Request('/interface vlan add');
$addRequest->setArgument('name', 'coba');
$addRequest->setArgument('vlan-id', '1000');
$addRequest->setArgument('interface', 'ether1');
if ($client->sendSync($addRequest)->getType() !== RouterOS\Response::TYPE_FINAL) {
  die ("Error");
} echo "OK";
7. Check Sound 2!
Jika di Step 5 kita menggunakan RouterOS\Client maka di Step ini kita akan menggunakan RouterOS\Util. Untuk fungsi hampir sama.
// Koneksi 2
$utils = new RouterOS\Util(new RouterOS\Client('IP MIKROTIK', 'USERNAME', 'PASSWORD'));
8. Script Lanjutan Step 7
- Create Item (VLAN)
// Create
$utils->setMenu('/interface vlan');
$utils->add(
    array(
        'name' => 'api',
        'vlan-id' => '1011',
        'interface' => 'ether1'
      )
  );
- Update Item (VLAN)
// Update
$utils->setMenu('/interface vlan');
$utils->set(
    0,
    array (
        'name' => 'api-new'
      )
  );
- Delete Item (VLAN)
// Delete
$utils->setMenu('/interface vlan');
$utils->remove(0); // 0 = ID Item
d. Referensi
- Mikrotik Wiki - API PHP
- pear2/Net RouterOS - Wiki

e. Kesimpulan
Dengan contoh script diatas apakah teman-teman sudah mendapat gambaran bagaimana mengembangkan penggunaannya? Pada dasarnya kita hanya menyesuaikan format penulisan dan pemanggilannya saja dan selebihnya tidak terlalu berbeda dengan kita mengkonfigurasi melalui CLI. Untuk teman-teman yang ingin mempelajari lebih lanjut dapat mengunjuki Wiki nya disini.

Cukup sekian yang dapat saya tuliskan, semoga bermanfaat bagi teman-teman semuanya!
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

Read More

Tuesday, May 9, 2017

Konfigurasi Sederhana Routing OSPF MikroTik dengan pfSense

  No comments
5:59 PM

Assalamu'alaikum Wr. Wb.
Pada artikel ini saya akan menuliskan mengenai bagaimana mengkonfigurasi Routing Dinamis (Dynamic Routing) antara Router MikroTik Routerboard dengan Router pfSense.

a. Pengertian
Routing Dinamis singkatnya, merupakan sebuah kemampuan Router dimana Router tersebut dapat menyesuaikan Tabel Routing nya secara otomatis dengan cara berhubungan dengan Router lain melalui protokol routing yang digunakan (dalam artikel ini OSPF)

b. Latar Belakang
Latar belakang dari diterapkannya Routing Dinamis disini adalah karena Jaringan yang saya administrasi sudah berkembang cukup besar dan akan terlalu banyak konfigurasi apabila menggunakan Routing Statis, juga tentu saja cukup repot dan memusingkan.

Dan latar belakang penggunaan Protokol OSPF sebagai protokol Routing Dinamis disini dikarenakan pertimbangan Skala Jaringan yang nantinya akan saya bangun. Dikarenakan penggunaan Protokol RIP mempunyai kekurangan yaitu memiliki batas 15 Hop, sedangkan OSPF tidak terbatas.

c. Maksud dan Tujuan
Tujuannya adalah agar memudahkan Administrator Jaringan mengkoneksikan seluruh Segmen Jaringan dan dapat membuatnya saling berkomunikasi.

d. Waktu Pengerjaan
Waktu yang diperlukan untuk melakukan konfigurasi ini kurang lebih 10-15 Menit

e. Alat dan Bahan
- PC
- 1x Router MikroTik
- 1x Router pfSense

f. Topologi

Ini merupakan sebagian kecil dari topologi yang sebenarnya,

g. Langkah Pengerjaan
1. Login ke MikroTik
Disini saya akan mengkonfigurasi Mikrotiknya terlebih dahulu, silahkan teman-teman login ke Router masing-masing dengan Winbox.

2. MikroTik OSPF: Menambahkan Network
Selanjutnya silahkan buka menu Routing -> OSPF. Disini kita tidak akan menyentuh apapun selain di Tab Network. Pada tab ini silahkan masukkan Subnet Jaringan yang terkoneksi ke Router MikroTik teman-teman. Disini saya mempunyai beberapa Subnet yang mengarah ke Server dan Jaringan Lab.

Untuk menambahkan, silahkan teman-teman klik tombol [+]. Kita hanya akan mengubah Network nya saja, untuk Area karena topologi kita masih sangat sederhana dan di pengaplikasian realnya masih di satu gedung maka kita tidak akan membuat Area baru melainkan menggunakan Area defaultnya yaitu Backbone. Untuk diketahui dalam OSPF, Area Backbone atau (0.0.0.0) adalah area default yang harus ada dan biasanya sudah ada secara otomatis.
Konfigurasi OSPF Routing pada MikroTik hanya sampai disini.  Selanjutnya kita akan mulai mengkonfigurasi Router pfSense untuk Routing Dinamis OSPF.

3. pfSense OSPF: Perbarui Sistem
Sebelum kita melangkah, silahkan teman-teman pastikan pfSense nya sudah up-to-date dengan melakukan Update. Saya sarankan lakukan Update melalui Console untuk meminimalisir interupsi yang mungkin terjadi.
4. pfSense OSPF: Instalasi Paket Quagga OSPF
Sesudah sistem dalam keadaan Up-to-date, selanjutnya teman-teman dapat melakukan Instalasi Paket Quagga OSPF. Quagga OSPF merupakan paket tambahan yang biasanya ada di Distro Linux ataupun BSD untuk membuat konfigurasi Routing Dinamis seperti OSPF, RIP, dan BGP.

Untuk menginstallnya kita dapat menggunakan Web Configurator dan cukup menuju menu System -> Package Manager -> Available Packages. Kemudian cari dengan kata kunci "ospf" lalu Install Quagga_OSPF. Tunggu beberapa saat sampai Instalasi selesai, akan ada pesan untuk menambahkan beberapa konfigurasi ke /etc/rc.local saat instalasi selesai, kita abaikan saja pesan ini.

5. pfSense OSPF: Konfigurasi Quagga OSPF - Interface OSPF
Selanjutnya kita mulai mengkonfigurasi Quagga OSPFnya. Menu untuk mengkonfigurasi Quagga OSPF terdapat di menu Services -> Quagga OSPFd.

Pertama kita akan mengkonfigurasi Interface yang akan diikutkan dalam Routing OSPF ini. Disini saya akan memasukkan Interface WAN yang terkoneksi ke MikroTik, Interface LAN yang terkoneksi ke Switch Lab, dan Interface OPT1 yang terkoneksi ke Server-server Lab.

Untuk menambahkan Interface silahkan menuju Tab Interface Settings dari Menu Quagga OSPFd lalu klik Add. Interface yang saya tambahkan dan apa yang saya ubah ketika menambahkannya:
-- WAN
Network Type = Broadcast
Area = 0.0.0.0
-- LAN
Network Type = Not Specified (Default)
Area = 0.0.0.0
Interface is Passive = Yes (checklist)
-- OPT1
Network Type = Not Specified (Default)
Area = 0.0.0.0
Interface is Passive = Yes (Checklist)
Jika teman-teman bertanya kenapa saya memberikan Checklist pada opsi Interface is Passive di kedua Interface Lokal adalah karena tidak ada Router lagi yang terhubung dengan Interface-interface Lokal tersebut, sehingga akan lebih baik jika kita mengkonfigurasi Interface tersebut menjadi Stub Network alias Jaringan yang berada di paling ujung dimana tidak ada Router lagi yang terkoneksi setelahnya.
6. pfSense OSPF: Konfigurasi Quagga OSPF
Jika sudah selanjutnya kita kembali ke Tab Global Settings. Disini saya hanya akan mengubah:
- Master Password = (Masukkan Password untuk Administrasi CLI Quagga)
- Logging = Yes
- Log Adjency Changes = Yes
- Router ID = (Identitas Router, Dapat diisi dengan IP WAN yang didapat)
- Area =  (Masukkan Area yang ingin pfSense masuki)

Simpan konfigurasinya apabila sudah disesuaikan. Kemudian lakukan Restart Service Quagga OSPFd dan Quagga Zebra melalui Menu Status -> Services dan pastikan kedua service tersebut sudah berjalan.
7. Cek Hasil
Tahap akhir kita lakukan cek untuk mengetahui hasilnya apakah Router MikroTik dan pfSense sudah saling berhubungan melalui Protokol Routing OSPF ataukah belum.

- Cek Hasil melalui MikroTik
Apabila konfigurasi sudah benar dan kedua router sudah saling berkomunikasi maka jika kita membuka menu Routing -> OSPF -> Neighbors maka akan muncul Router ID dari pfSense dan Statusnya adalah Full serta Nilai State Change nya sudah pasti lebih dari 1. Selain itu jika kita mengecek Menu IP -> Route maka akan muncul List baru di Tabel Routing dengan Flag DAo (Dynamic, Active, OSPF)
- Cek Hasil melalui pfSense
Kita bisa mengecek apakah Router MikroTik sudah berkomunikasi dengan pfSense melalui Menu Services -> Quagga OSPFd -> Status. Pada bagian Quagga OSPF Neighbor dan Quagga OSPF Database akan muncul Router ID dari MikroTik. Juga jika kita mengecek Tabel Routingnya kita akan menemukan Route baru yang dihasilkan dari OSPF ini, kita dapat mengeceknya melalui Menu Diagnostics -> Routes.

8. Troubleshoot Masalah Yang Ditemui
Ketika saya mengkonfigurasi ini untuk pertama kalinya, Link-State dari pfSense saya tidak dapat masuk ke MikroTik dan juga sebaliknya, beberapa kali mengulangi juga tetap sama. Masalah mulai sedikit terpecahkan ketika saya mencoba mengganti posisi topologi pfSense dengan Ubuntu Server yang juga menggunakan Quagga untuk Paket Routing OSPF nya. Hasilnya adalah Link-State dari Ubuntu saya dan Interface Lokalnya dapat masuk ke MikroTik dan Sebaliknya.

Usut punya usut, masalah ini disebabkan karena secara default pfSense melakukan tindakan Drop pada semua Paket yang masuk ke Interface WAN. Dan masalahpun terpecahkan dengan menambah Rule baru di Menu Firewall -> Rules yang isinya adalah untuk melakukan Pass Packet pada semua tipe protokol alias menerima semua paket yang masuk ke Interface WAN. Meski sedikit berbahaya karena menerima semua paket namun untuk sementara akhirnya masalah terpecahkan dan sekarang MikroTik dan pfSense saya sudah dapat berkomunikasi dan Routing OSPFnya pun berjalan.

h. Referensi
- Mikrotik Wiki - OSPF Case Studies

i. Kesimpulan
Dengan menggunakan Routing Dinamis kita tidak akan terlalu repot dalam mengkoneksikan segmen-segmen dalam Jaringan yang besar karena kita tidak menambahkan Static Route satu persatu pada setiap perangkat Jaringan yang tentu saja sangat memusingkan dan tidak efisien.

Cukup sekian yang dapat saya tulis, semoga bermanfaat bagi teman-teman semuanya!
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

Read More

Monday, April 24, 2017

Langkah Cepat Pemaketan Aplikasi Untuk Distro Berbasis Debian

  No comments
1:13 AM

Illustration | Source Image: Gudang Linux
Assalamu'alaikum Wr. Wb.
Di artikel ini saya akan menuliskan mengenai cara mudah dalam melakukan pengemasan atau pemaketan aplikasi teman-teman menjadi file matang berekstensi .deb yang siap untuk diinstall.

a. Pengertian
Pemaketan adalah suatu cara yang digunakan untuk mengemas satu atau sekumpulan file aplikasi dan konfigurasi menjadi satu kesatuan file yang nantinya akan memudahkan pengguna lain yang ingin menggunakan aplikasi tersebut dalam proses instalasinya.

b. Latar Belakang
Ide belajar pemaketan saya datang dari bagaimana saya memberikan solusi untuk Teman-teman serta Guru di sekolah saya yang menggunakan OS GNU/Linux dan ingin menjalankan Aplikasi berbasis Windows dengan Emulator Wine di Linux.
Masalahnya adalah terlalu repot dalam menjalankan aplikasinya karena tidak langung klik Aplikasinya di Start Menu atau Quick Launch seperti di Windows. Padahal sebenarnya masalah ini dapat diselesaikan cukup dengan membuat Shortcutnya. Namun karena bagi mereka ini cukup sulit dilakukan, maka saya akhirnya membuatkan paket aplikasi tersebut beserta Shortcutnya sehingga sesudah diinstall akan langsung muncul di Start Menu.

c. Maksud dan Tujuan
Tujuan dari artikel ini adalah untuk sebagai referensi bagi teman-teman yang ingin melakukan hal yang sama yang nantinya akan bermanfaat dan memudahkan orang lain.

d. Waktu Pengerjaan
Waktu yang diperlukan untuk melakukan pemaketan ini tergantung dari besar aplikasi yang ingin dipaketkan, namun umumnya untuk file kecil tidak sampai 5 menit totalnya.

e. Alat dan Bahan
- PC dengan OS berbasis Debian
- Aplikasi yang ingin dipaketkan
- Teks Editor

f. Langkah Pengerjaan
1. Ketahui Penamaan Paket
Sebelum kita memulai pembuatannya, alangkah baiknya kita mempelajari sejenak mengenai format standar dalam pemaketan aplikasi khususnya yang berbasis Debian ini. Umumnya penamaan paket menggunakan format sebagai berikut:
<namapaket>_<versi_major>.<versi_minor>-<package revision>
Maka jika kita mengikuti standar, maka penamaan paket kita akan menjadi, contohnya:
namapaketku_1.0-1
Dimana namapaketku adalah Nama Paket, 1 adalah Versi Major, 0 Versi Minor, dan 1 adalah Kode Revisi Paket atau Version Controller nya.

2. Buat Direktori
Selanjutnya yang akan kita lakukan adalah mempersiapkan Direktori untuk Aplikasi kita nantinya. Perlu diketahui struktur direktori yang teman-teman buat disini akan digunakan ketika paket yang teman-teman buat akan diinstall, sehingga letak aplikasi teman-teman akan mengikuti struktur direktori yang dibuat pada saat pemaketan.

Contohnya disini saya ingin memaketkan Aplikasi Winbox Versi 3.11 beserta Shortcut dan Iconnya. Saya ingin Aplikasi dan Icon berada di Direktori /opt/winbox dan Shortcutnya berada di /usr/share/applications. Maka saya akan membuat struktur direktorinya sebagai berikut:
~$ mkdir winbox_3.11-0
~$ cd winbox_3.11-0
winbox_3.11-0$ mkdir -p usr/share/applications
winbox_3.11-0$ mkdir -p opt/winbox
Kemudian saya masukkan file Aplikasi Winbox dan Icon nya ke folder winbox_3.11-0/opt/winbox dan Shortcutnya saya masukkan ke winbox_3.11-0/usr/share/applications.
3. Buat Metadata Paket
Kemudian kita buat File Metadata mengenai Paket kita agar dapat dikenali oleh Package Manager. Untuk membuatnya kita perlu menambahkan sebuah direktori baru bernama DEBIAN dan file bernama control yang diletakkan didalam folder DEBIAN.
winbox_3.11-0$ mkdir DEBIAN
winbox_3.11-0$ nano DEBIAN/control
Isi dari file control umumnya adalah seperti ini:
Package: winbox-unoru
Version: 3.11-0
Section: utils
Priority: optional
Architecture: all
Depends: wine
Installed-Size: 1609
Maintainer: Fajar Ru <kzofajar@gmail.com>
Homepage: https://hizzely.github.io/
Description: This is an Unofficial Winbox Packages!
 This package contains MikroTik Winbox version 3.11
 and pre-configured Winbox Shortcut that could be
 used on most Linux Distributions.
Sedikit penjelasan mengenai hal-hal diatas:
Package = Isikan Nama paket disini, bisa diisikan huruf, angka, tapi tidak boleh terdapat spasi.
Version = Isikan Versi Paket disini
Section = Dapat diisi jika ingin memasukkan Aplikasinya kedalam Grup berdasarkans Section.
Priority = Prioritas paket dalam sistem, karena ini hanya Utility maka saya berikan Optional.
Depends = Masukkan nama paket yang harus ada jika ingin menginstall aplikasinya.
Description = Masukkan deskripsi paketnya disini. Perhatikan Spasi pada baris kedua dan ketiga. Spasi tersebut harus ada dan bukan tanpa sebab!

Selengkapnya mengenai field-field yang ada dapat teman-teman cek dari Manpage Ubuntu.
4. Cek Permission
Satu langkah sebelum pemaketan, sebelumnya pastikan direktori DEBIAN dan file control didalamnya tidak dalam keadaan chmod 777 karena akan memunculkan error apabila dimulai pemaketannya. Berikan chmod paling tidak 755.
winbox_3.10-0$ chmod 755 DEBIAN -R
5. Build Paket
Setelah semuanya siap, saatnya kita lakukan pemaketannya. Jalankan perintah berikut diluar folder yang ingin kita paketkan. Ubah yang saya cetak biru menjadi nama folder yang teman-teman buat diawal.

~$ dpkg-deb --build winbox_3.10-0

Pemaketan akan berjalan, lama proses tergantung dari besar aplikasi yang teman-teman paketkan.
Jika sudah selesai maka akan muncul file baru berekstensi .deb yang siap untuk diinstall! :)
g. Referensi
- Ubuntu Forum - How to make a "basic" .deb
- Ubuntu Manpage - Debian master control file format

h. Kesimpulan
Kita telah mempelajari salah satu cara pemaketan yang dapat digunakan untuk membuat Paket Aplikasi Debian, namun untuk memasukkan Aplikasi yang kita paketkan ke Repository Resmi haruslah menggunakan cara lain yang memang sesuai standarnya.

Cukup sekian yang dapat saya tulis, semoga bermanfaat bagi teman-teman semuanya!
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

Read More

Wednesday, April 19, 2017

Konfigurasi MikroTik untuk Komunikasi Layer 2 Antar Perangkat dengan VLAN

  No comments
3:45 PM

Assalamu'alaikum Wr. Wb.
Hampir dua minggu sudah saya kembali ke sekolah, setelah tugas-tugas non-produktif saya kerjakan akhirnya saya bisa ngelab kembali hehe.

Di artikel ini saya akan menuliskan mengenai Konfigurasi Dua Perangkat MikroTik untuk Berkomunikasi melalui Layer 2 Dengan VLAN.

a. Pengertian
VLAN atau Virtual LAN adalah suatu cara yang dapat digunakan untuk membangun lebih dari satu jaringan LAN didalam sebuah Interface Fisik. Contoh pengaplikasiannya adalah pada sebuah Backbone yang kuat yang didalamnya terdapat beberapa Jaringan LAN (VLAN) yang nantinya akan dipisah kembali berdasarkan VLAN ID masing-masing.

b. Latar Belakang
Karena saya mencari solusi agar penggunaan Kabel LAN untuk koneksi antar Lab dapat seefisien mungkin dan dapat berfungsi semaksimal mungkin.

c. Maksud dan Tujuan
Tujuan dari konfigurasi ini adalah selain membuat efisien kabel juga akan membuat komunikasi antar Host menjadi lebih mudah karena pada dasarnya kita seperti terkoneksi ke Satu Jaringan yang sama meski faktanya kita terkoneksi melalui Router atau Switch yang berbeda.

d. Waktu Pengerjaan
Waktu yang digunakan untuk melakukan pengejaan ini kurang lebih 5-10 Menit.

e. Alat dan bahan
- PC
- Emulator Wine (apabila diperlukan)
- Aplikasi Winbox
- 2 buah Perangkat MikroTik
- 2 buah Kabel UTP RJ45

f. Topologi
g. Langkah Pengerjaan
Untuk sekedar informasi, sebelum memulai pengerjaan kedua Router sudah saya Reset Konfigurasinya dengan opsi No Default Configuration. Sehingga Kedua Router benar-benar bersih.

1. Login ke Mikrotik Pertama melalui Winbox (RB951Ui-2nD)
Pertama silahkan teman-teman Login ke Mikrotik yang akan pertama kali di konfigurasi.

2. Buat VLAN pada Interface Fisik.
Selanjutnya kita buat Interface VLAN yang diletakkan kedalam sebuah Interface Fisik Mikrotik, dimana interface fisik ini nantinya akan berfungsi sebagai Trunk Port untuk mengkoneksikan kedua MikroTik. Sesuai Topologi, saya akan membuat Interface VLAN didalam Port 5 di Mikrotik yang pertama dan di Mikrotik kedua saya membuatnya di Port 1.

Saya akan membuat Dua Buah VLAN dengan masing-masing VLAN ID adalah 10 dan 20. Cara membuatnya cukup mudah yakni kita buka Menu Interface dari menu utama kemudian menuju Tab VLAN lalu kita klik Tombol [+] untuk menambahkan. Hal yang kita sesuaikan adalah:
Name = Berikan nama VLAN disini
VLAN ID = Sesuaikan VLAN ID. Pastikan VLAN ID tidak ada yang sama
Interface = Pilih Interface dimana VLAN ini akan aktif
Sampai poin ini kita sudah membuat sebuah Trunk Port dengan Dua VLAN didalamnya pada kedua perangkat Mikrotik, namun agar kita bisa berkomunikasi dengan menggunakan VLAN-VLAN tersebut kita memerlukan Access Port.

3. Buat Interface Bridge untuk Bridging VLAN dan Interface Fisik
Agar kita dapat berkomunikasi menggunakan VLAN-VLAN tersebut kita akan membuat Interface Bridge yang akan menjembatani Interface VLAN dan Interface Fisik yang ingin dijadikan Access Port untuk VLAN yang ditentukan. Lakukan hal ini dikedua perangkat dengan peletakan Port dan konfigurasinya menyesuaikan.

Untuk membuat Interface Bridge kita cukup menuju menu Bridge dari Menu Utama kemudian kita klik Tombol [+] untuk menambahkan Interface. Kemudian kita cukup menyesuaikan Nama Bridge nya kemudian klik OK untuk membuat. Jika kalian membuat Interface VLAN lebih dari satu maka banyaknya Interface Bridge yang harus dibuat juga menyesuaikan jumlah VLAN yang ada.

Masih di menu Bridge, untuk menambahkan Interface VLAN dan Interface Fisik kedalam Bridge yang telah dibuat, kita menuju Tab Ports. Klik Tombol [+] untuk menambahkan, hal-hal yang diperhatikan adalah Bagian Interface dan Bridge. Satu Set Bridge akan berisi sebuah Interface VLAN dan Interface-interface fisik yang akan dijadikan Access Port untuk VLAN tersebut. Lakukan hal yang sama pada Interface Bridge yang lain.

Jika sesuai dengan Topologi maka saya akan memasukkan Interface WLAN fisik kedalam Bridge VLAN 10 dengan  kondisi konfigurasi VLAN di Wirelessnya dalam keadaan No Tag.

4. Tes Konfigurasi
Sampai disini seharusnya kedua perangkat Mikrotik sudah dapat terkoneksi melalui Layer 2, teman-teman dapat mencobanya dengan membuka menu IP -> Neighbors atau membuka Winbox baru. Jika sudah terkoneksi maka kedua Mikrotik akan tampil dalam Menu atau Tab Neighbors.

Teman-teman juga bisa melakukan Tes Ping antar Perangkat Client yang sudah disetting IPnya secara Static di masing-masing perangkat. Dan jangan lupa pastikan kedua Client berada pada VLAN ID yang sama, karena pada dasarnya VLAN adalah LAN maka jika berbeda VLAN ID maka akan dianggap berbeda Segmen/Network, dan secara default kita tidak akan bisa berkomunikasi dengan perangkat yang berada di VLAN yang berbeda. Namun kita bisa membuatnya berkomunikasi dengan membuatkan Routing.

h. Referensi
- MikroTik Wiki - Vlans on Mikrotik environment

i. Kesimpulan
Dengan menggunakan VLAN, kita akan dapat membuat topologi jaringan yang praktis dan efisien. Baik dari segi alat bahan dan konfigurasinya. Dan hal yang saya sukai dari komunikasi Layer 2 ini adalah meski kita mempunyai Segmen IP atau Subnet yang berbeda asalkan kita berada di VLAN ID yang sama maka kita akan tetap dapat berkomunikasi.

Cukup sekian yang dapat saya tulis, semoga bermanfaat bagi teman-teman semuanya!
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

Read More