Rabu, 09 November 2016

Mikrotik GNS3


Langkah1: siapkan .iso daripada mikrotik yang hendak diinstall
Misalkan "mikrotik518.iso", letakkan di C:\Program Files\GNS3

Langkah2: ikuti langkah sbb

cd C:\Program Files\GNS3
qemu.exe create mikrotik.img –f qcow2 256M
qemu.exe mikrotik.img -boot d -cdrom "mikrotik518.iso"
........ikuti perintahnya hingga selesai install dan boot ulang...lalu close manual



Langkah3: testing runing
qemu.exe mikrotik.img -boot c


NB namanya harus mikrotik.iso selain dari itu gagal loading ntah knapa yaa...?

=================================
Buka GNS3

Pilih File -Preferences ikuti gambar


Catatan:
Identifier Name=bebas ...disini misalkan MIKROTIK
Binary Image = Adalah lokasi dimana kita membuat mikrotik.img
Number Interface = bebas....disini misalkan 6 eternet

SAVE - APPLY - OK
=========================================
LALU PILIH QEMU GUEST->Klik kanan ->Atur Configure nya



Setelah OK klik Kanan ->Change Symbol
Lalu klik kanan->Start


Sukses....n terimakasih...
NB:
-Gagal Loading mikrotik biasanya dikarenakan gagal proses instalasi mikrotik.img nya...coba menggunakan file iso yang lain atau dipebesar nilai ram virtualnya........

Link Download .iso
https://drive.google.com/open?id=0B2Q7QnXjrTsxRllROUhKY21PZXM

Link Download .img
https://drive.google.com/open?id=0B2Q7QnXjrTsxMXZ6dXdzM1JYcFk





Selasa, 08 November 2016

Mikrotik Hotspot Api-PHP 1

Mikrotik PHP API

Target : Membuat login hotspot mikrotik +database mahasiswa. 
Jadi setiap orang yang ingin menggunakan jaringan hotspot harus terdaftar dulu sebagai mhs. 
Kesulitan yang jelas adalah saya dan rekan-rekan harus rela untuk repot-repot membuat user hotspot satu persatu melalui mekanisme pendaftaran. Jadi mahasiswa yang ingin menggunakan hotspot harus mendaftar dulu kemudian baru dibuatkan usernya berdasarkan NIM.

Jadi cukup membuat link pendaftaran di login hotspot lalu membuat script php sederhana yang berfungsi sebagai tempat pendaftaran, pada proses pendaftaran script php yang saya buat akan melakukan pengecekkan NIM dari mahasiswa apakah sesuai dengan NIM yang ada di bagian akademik, jika sesuai maka script akan menggunakan API untuk membuat user hotspot.

Di login hotspot mikrotik yang sudah saya desain saya tambahkan link pendaftaran sebagai berikut:
<script type="text/javascript">
function PopupCenter(pageURL, title,w,h) {
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
var targetWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
</script>
<a href="javascript:void[0]"><blink>DAFTAR LOGIN HOTSPOT</blink></a>
Tentu sebelumnya domain reghotspot.stikom-db.net tersebut saya bypass/allow di bagian Walled Garden hotspot mikrotik dengan tujuan domain tersebut bisa diakses client tanpa harus login terlebih dahulu.

Untuk index.php sebagai berikut :

<?php
include "config.php";
include "api.php";
$alert = htmlspecialchars($_GET['alert']);
?>
<link rel="stylesheet" type="text/css" href="css/main.css" />
<script type="text/javascript" src="js/jquery-1.5.2.js"></script>
 <script type="text/javascript">
$(document).ready(function() {
setInterval (function () {
    $("#pesan_error:eq(0)").fadeOut ("slow").next ("#pesan_error");
}, 3000);
$("#fullname").focus();
  $("#form1").validate({
    messages: {
      email: {
        required: "E-mail harus diisi",
        email: "Masukkan E-mail yang valid"
      }
    },
    errorPlacement: function(error, element) {
      error.appendTo(element.parent("td"));
    }
  });
})
</script>
<?php
  if($alert != ""){
   echo "<div id=pesan_error>".ucfirst($alert)."</div>";
  }
?>
<div id="menu">
  <b><font size="3">PENDAFTARAN LOGIN HOTSPOT STIKOM DINAMIKA BANGSA JAMBI</font></b>
  <BR /><BR />
      <form action="proses.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="570" border="0">
    <tr >
<td width="80" >Nama Lengkap</td>
<td width="260"><input type="text" name="fullname" size="43" value="" id="fullname"/>
</td>
</tr>
    <tr>
      <td height="33">NIM</td>
      <td >
        <input type="text" name="nim" id="myInput" size="43" value="" /></td>
    </tr>
<tr >
  <td>Password</td>
<td>
<input type="password" name="password" style="width:250px;" value="" />
</td>
</tr>
<tr >
  <td>Konfirmasi</td>
<td>
<input type="password" name="cpassword" style="width:250px;" value="" />
</td>
    </tr>
 <tr >
<td>Email</td>
<td><input type="text" name="email" size="43" value="" />
</td>
</tr>
    <tr>
      <td height="34"><input type="submit" id="submit" name="Submit" value="Daftar" class="button" /></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
</div>

Terdapat 2 file yang saya includekan pada script diatas, file config.php berisi koneksi database biasa, file api.php berisi class API  PHP yang bisa didapat disini http://wiki.mikrotik.com/wiki/API_PHP_class

Lalu file proses.php sebagai berikut :

<?php
include "config.php";
require('api.php');
$fullname  = htmlspecialchars($_POST['fullname']);
$nim  = $_POST['nim'];
$passwd  = htmlspecialchars($_POST['password']);
$cpasswd  = htmlspecialchars($_POST['cpassword']);
$email   = htmlspecialchars($_POST['email']);
if($fullname == "" || $nim == "" || $passwd == "" || $cpasswd == "" || $email == ""){
header("location:./index.php?alert=Silahkan diisi dengan benar");
exit;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
header("location:./index.php?alert=E-mail tidak valid");
exit;
}
if($passwd != $cpasswd){
header("location:./index.php?alert=Password tidak benar");
exit;
}
?>
<script type="text/javascript">
function closeWin(){
window.close();
}
</script>
<?php
//proses pengecekkan nim yang di input mahasiswa apakah sesuai //dengan nim yang ada di database akademik
$cek_real_nim = mysql_query("select *from mahasiswa where nim = '$nim'") or die (mysql_error());
if(mysql_num_rows($cek_real_nim) == 0){
header("location:./index.php?alert=NIM tidak terdaftar");
exit; }
//cek email terdaftar
$cek_email = mysql_query("select *from tuser where email = '$email'") or die (mysql_error());
if(mysql_num_rows($cek_email) != 0){
header("location:./index.php?alert=Email sudah terdaftar");
exit;
}
//cek nim di tabel user, tabel ini berguna untuk melihat daftar //user dimana nanti user di tabel ini bisa diupdate dan di delete //tanpa mengganggu database mahasiswa di akademik
$passwd = MD5($passwd);
$cek_nim = mysql_query("select *from tuser where nim = '$nim'") or die (mysql_error());
if(mysql_num_rows($cek_nim) == 0){
$query = mysql_query("insert into tuser values (0,'$nim','$passwd','$fullname','$email')") or die (mysql_error());
//membuat objek api
$API = new routeros_api();
//jika ingin melihat output dari API di set true
$API->debug = false;
//koneksi ke mikrotik, user disini bukan user hotspot, tapi user login ke mikrotik
if ($API->connect('192.168.5.1', 'UserUntukLoginMikrotik', 'passwordUntukLogin')) {   // Change this as necessery
    $user = array(1 => array('name' => "$nim", 'password' => "$passwd"),
  );
foreach($user as $tmp)
{
$username="=name=";
$username.=$tmp['name'];
$pass="=password=";
$pass.=$tmp['password'];
$server="=server=";
$server.='all';
$profile="=profile=";
$profile.='mahasiswa';
    $API->write('/ip/hotspot/user/add',false);
    $API->write($username, false);
    $API->write($pass, false);
    $API->write($server, false);
$API->write($profile);
$ARRAY = $API->read();
}
echo "<center>";
echo "Anda sudah terdaftar di Hotspot STIKOM Dinamika Bangsa Jambi : <br /> Username : $nim <br /> Password : $passwd <br />";
echo "<input type=button name=tutup id=tutup onclick='closeWin()' value=Tutup />";
echo "</center>";
    $API->disconnect();
}
}else{
header("location:./index.php?alert=Nim Anda sudah terdaftar");
exit; }
?>
Lalu aktifkan API di mikrotik yang terdapat di bagian
IP -> Services, Aktifkan API.

Selanjutnya tinggal di setting hotspot seperti biasa, pada script API diatas berarti ada user profile untuk mahasiswa.
Dan sekarang tinggal nunggu router baru, agar user  hotspot bisa lebih banyak, RB yang saya gunakan level 4, jadi masih terbatas usernya, Mikrotik RoS memang Ok.
Tulisannya sampai disini dulu, ntar disambung lagi....


Ref:
http://a3m-nix.blogspot.co.id/2012/06/tambah-user-hotspot-mikrotik-dengan-php.html
https://github.com/BenMenking/routeros-api
http://wiki.mikrotik.com/wiki/Manual:API