ada banyak rasa saat coding. ada keringat dan air mata dalam mencoding. keringat saat kau berusaha menyelami makna dalam setiap ilmu coding. dan air mata disaat tiada orang yang dapat membantumu, ketika program dalam keaadaan bugging. apapun rasa dalam mencoding. cobalah untuk mengerjakan sendiri. sampai kau bisa. dan benar-benar bisa.

Friday, 12 April 2013

Membentuk Topologi Jaringan Virtual dan routing sederhana yang terdiri atas client, router, dan DMZ

Halo sobat Coding, pada pembelajaran selanjutnya kita akan belajar mengenai bagaimana membentuk topologi jaringan, seperti topologi dibawah ini :)
biar saya jelaskan terlebih dahulu ya :
jadi, nanti kita akan membuat sebuah topologi jaringan yang terdiri dari dua host atau PC, satu swicth dan satu buah router. router ini nanti akan terhubung pada cloud atau tuntap.
Membuat topologi ini kita dapat menggunakan UML (User Mode Linux), yaitu sebuah virtual engine untuk menjalankan proses pada enviroment dalam kernel. UML secara umum biasa disebut sebagai kernel dalam kernel. kernel dalam UML benar-benar mirip dengan kernel yang menjalankan sebuah sistem operasi linux. bisa diubah kodenya, dicompile, distart atau direstart, dan dishutdown. kerennd kan :D lucuu lagi. coba dech

 nah, kegunaan UML sendiri adalah : 1) sebagai virtual hosting 2) kernel development dan debugging 3) dan untuk mencoba jaringan komputer secara virtual
Pada gambar diatas menunjukkan bahwa terdapat 2 host atau PC yang dihubungkan oleh eth0 ke switch. kemudian switch dihubungkan eth1 ke router. dan router dihubungkan eth0 ke tuntap. PC 1 memiliki IP address 172.16.0.1 dan PC 2 memiliki IP address 172.16.0.2 dengan masing-masing memiliki netmask dan gateway yang sama.

Okey, langsung saja kita mencoba membuat topologi virtual ini (melalui LINUX)
1) Pertama kita buka terminal lalu mengetikkan seperti dibawah ini untuk mengakses server yang telah disediakan. ssh -X c11@10.151.36.203. c11 adalah kelompok 11 dan diikuti @IP address server kelas






















2) setelah itu buka sebuah file script untuk menjalankan ketiga (PC,switch, router) itu nanti dengan cara membuat [nama_file].sh. misal nano start.sh
3) kemudian membuat host, switch dan router seperti syntax dibawah ini:
Switch
uml_switch -unix (nama_switch) > /dev/null < /dev/null &
Host
xterm -T (nama_host) -e linux ubd0=(nama_host),uml umid=(nama_host_ ethBRP=daemon,,,(namaHOstSwicth) &
Router
xterm -T )nama_router_ -e linux ubd0=(nama router), uml umid=(nama router) ethBRP=daemon,,,(namarouterswitch) &








4) baik setelah kita membuat script untuk start, kita juga membuat sebuah script untuk penyetopan komputer. dimana script ini dibutuhkan untuk memudahkan mematikan masing-masing PC virtual tanpa harus mematikannya satu satu. berikut caranya, misal kita veri nama stop.sh. ketik pada terminal nano stop.sh
#!/bin/bash
uml_mconsole router halt
uml_mconsole dmz halt
uml_mconsole client halt
lalu edit permission pada scrip stop.sh kita dengan chmod +x starh.sh && chmod +x stop.sh

Setting IP pada masing-masing komputer
1) Komputer Server
pertama sobat harus login terlebih dahulu
login: root
password: a
nah untuk menyetting IP pada komputer ini, kita buat sebuah scrip lagi. cara membuatnya dengan metikkan nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 172.16.0.3
    netmask 255.255.255.0
    gateway 172.16.0.1
setelah penyetingan tersebut kita restart agar sistem merefresh dan menyimpan perubahan data : service networking restart

2) Komputer Client
disini kebetulan kita pada tabel topologi diatas kita diperintahkan untuk mmebuat satu server dan dua buah komputer client. langkahnya sama, pertama kita login terlebih dahulu
login: root
password: a
buat penyetingan IP Addressnya pada script nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 172.16.0.2
    netmask 255.255.255.0
    gateway 172.16.0.1
lalu restart kembali dengan service networking restart

3) Router
  langkahnya sama, pertama kita login terlebih dahulu
login: root
password: a
buat penyetingan IP Addressnya pada script nano /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.151.74.30
    netmask 255.255.255.252
    gateway 10.151.74.29

auto eth1
iface eth1 inet static
    address 172.16.0.1
    netmask 255.255.255.0
restart kembali dengan service networking restart

lakukan konfigurasi untuk meneruskan koneksi internet pada router ke jaringan lokal
nano /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
nano /etc/rc.local
# tambahkan sintaks berikut
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -j ACCEPT
iptables --t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE
nano /etc/resolv.conf
nameserver 202.46.129.2
search ajk.if.its.ac.id
nameserver 10.151.36.3
restart kembali dengan bnano networking restart

kemudian lakukan tes koneksi balik ke server AJK maupun jaringan likal, jika berhasil maka baris-baris yang berisikan informasi tentang bytes-bytes yang berhasil diproses

ROUTER
$ ping its.ac.id
$ ping ajk.if.its.ac.id
$ ping 172.16.0.3
$ ping 172.16.0.2

PC SERVER
$ ping its.ac.id
$ ping ajk.if.its.ac.id
$ ping 172.16.0.1
$ ping 172.16.0.2

PC CLIENT
$ ping its.ac.id
$ ping ajk.if.its.ac.id
$ ping 172.16.0.1
$ ping 172.16.0.3

Selesai :)

Thursday, 14 March 2013

Pemrograman Socket : Client -Server dengan java

Haloo sobat pembaca? masih cinta code ? hihi baiklah.. kali ini kita akan belajar bahasa baru yaitu Java. Oke, mungkin bagi sebagian besar Anda para programmer mungkin sudah mengenalnya lebih dulu. Namun, disini saya akan menshare apa yang telah saya dapatkan pada sesi praktikum Jaringan Komputer

Pada pembahasan ini, kita akan membuat sebuah program chatting. dimana chatting ini terjadi antara client dan server. Server akan memberikan pilihan menu pada client yaitu angka 1 dan 2. angka 1 menunjukkan pilihan percakapan chatting yang akan terjadi terus. dan pilihan 2 untuk menu mengakhiri percakapan. Program ini dapat dijalankan pada NetBeans

Berikut adalah code yang saya kerjakan pada sesi lab :3
a. Server

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

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Ika Ayu Rahmania
 */
public class Server {

    /**
     * @param args the command line arguments
     */ 
    
    
    public static void main(String[] args) throws IOException {
       
        
        int port=1234;
        ServerSocket server = new ServerSocket(port);
        
        
        while(true){
            try {
                System.out.println("Tunggu pesan .....");
                Socket socket = server.accept();
                
                //System.out.println("Mulai :\n1. Lanjut\n2. Mutung dech \n");
                //System.out.println("1. Lanjut");
                //System.out.println("2. Mutung");     
                
                ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
                String sesuatu = (String) ois.readObject();
                
                
                ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                
                
                if(sesuatu.equals("1"))
                {
                   oos.writeObject("Halo lagi apa nich\nMulai :\n1. Lanjut\n2. Mutung dech \n");
                   System.out.println("si Clien mengirimkan : ");
                   System.out.println(sesuatu);
                }
                else
                {
                    System.out.println(sesuatu);
                    System.out.println("si Clien mengirimkan : ");
                    oos.writeObject("Memutuskan hubungan kita :3 ");
                   
                    //break;
                }
                
//                ois.close();
//                oos.close();
//                socket.close();
                
                //System.out.println("Tunggu pesan dari client... ");
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
            }
        }


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

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author Ika Ayu Rahmania
 */
public class Client {

    /**
     * @param args the command line arguments1111
     */
    public static void main(String[] args) throws IOException, IOException, ClassNotFoundException {
        System.out.println("1. Lanjut\n2. Mutung dech \n");
        while(true)
        {
            try {
                // TODO code application logic here
            InetAddress host = InetAddress.getLocalHost();
            Socket socket = new Socket(host.getHostName(), 1234);



                ObjectOutputStream ngirim = new ObjectOutputStream(socket.getOutputStream());
                Scanner sc = new Scanner(System.in);
                String sesuatu =  sc.next();

                ngirim.writeObject(sesuatu);

                ObjectInputStream nerima = new ObjectInputStream(socket.getInputStream());
                String message = (String)nerima.readObject();

                System.out.println(message);
                nerima.close();
                ngirim.close();
                socket.close();
                if(message.equals("Memutuskan hubungan kita :3"))
                {
                    break;
                }



            }
             catch (ClassNotFoundException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnknownHostException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}


dan berikut merupakan hasil screenshot apabila program tersebut dijalankan
 Hasil run diatas menunjukkan bahwa Client memilih angka 1 dan memutuskan untuk terus melakukan percakapan chatting
dan diatas adalah hasil ketika client memilih angka 2, yaitu memutuskan percakapan

tentang Wireshark dan tutorialnya


Wireshark adalah satu dari tool Network Analyzer yang digunakan untuk melihat dan menganalisa paket jaringan, pengembangan protokol jaringan serta edukasi bagi yang ingin memperdalam ilmu nya dalam jaringan komputer. Aplikasi ini juga dapat menangkap paket-paket data/informasi yang ada dalam jaringan yang kita ingin lihat. Semua jenis paket informasi dalam berbagai format protokol pun akan dengan mudah ditangkap dan dianalisa. Karenanya tak jarang tool ini juga dapat dipakai untuk sniffing (memperoleh informasi penting seperti password email atau account lain) dengan menangkap paket-paket yang berseliweran di dalam jaringan dan menganalisanya. Wireshark dapat membaca data secara langsung dari Ethernet, Token-Ring, FDDI, serial (PPP dan SLIP), 802.11 wireless LAN, dan koneksi ATM.


WireShark memiliki beberapa kegunaan, seperti :

  1. Untuk trobleshooting masalah-masalah jaringan
  2. untuk memeriksa keamanan jaringan
  3. untuk mendebug implementasi protokol jaringan
  4. untuk mempelajari protokol jaringan secara detail
  5. untuk sniffing  
Cara Wireshark bekerja
1. paket sniffer
Packet sniffer menangkap pesan/data/informasi yang sedang dikirim atau diterima oleh computer. Paket sniffer juga akan menyimpan atau menampilkan isi protocol yang berbeda  pada bagian Capture Message. Packet sniffer bersifat pasif. Packet sniffer mengamati pesan yang sedang dikirim dan diterima oleh aplikasi dan protocol yang berjalan di computer,tapi dia sendiri tidak mengirimkan paket apapun.
2. paket capture
Packet Capture library menerima salinan dari setiap frame link-layer yang dikirim atau diterima oleh computer. Pesan ditukar oleh layer protocol yang lebih tinggi seperti HTTP,FTP,TCP,UDP,DNS,atau IP yang semuanya itu kemudian dienkapsulasi pada frame link-layer yang ditransmisikan oleh media fisik,misalnya kabel eternet.
3. paket analyzer
Packet analyzer harus mengerti struktur semua pesan yang ditukar oleh protocol. Contohnya misal kita ingin menampilkan berbagai macam fields pada pesan yang ditukarkan oleh protocol HTTP.

Berikut adalah cara menjalankan Wireshark :)
1. Buka terminal, ketikkan sudo wireshark
  maka akan muncul Wireshark seperti gambar diatas
2. Kemudian pada wireshark, pada menu Interface list, pilih wlan0 untuk menjalankan
3. nah berikut adalah tampilan wireshark

 4. berikut adalah cara untuk mencari IP kita melalui terminal. kemudian, kita ketikkan IP kita pada Filter Wireshark seperti ip.src == 192.168.0.103 untuk mengetahui aktivitas terjadinya paket-paket data pada komputer kita. caranya buka terminal dan ketikkan ifconfig


 5. setelah itu, anda dapat menggunakan wireshark sesuai dengan kebutuhan. dibawah ini akan saya beri contoh hasil praktikum kami yaitu  untuk mengetahui transfer paket-paket data melalui Wireshark saat membuka situs RBTC

Mengetahui Transfer paket-paket data melalui Wireshark
Berikut adalah contoh apabila kita sedang mengakes website RBTC. Pada sesi lab kemarin kita telah belajar bila mengakses its.ac.id , rbtc.if.its.ac.id  serta mengakses integra.
Kali ini kami mendokumentasikan salah satunya yaitu ketika mengakses RBTC



















gambar diatas adalah cuplikan ketikan kita membuka situs rbtc.if.its.ac.id. Oke, saya akan menjelaskan beberapa bagian dari Wireshark diatas :
a. Bagian yang berwarna hijau adalah daftar paket-paket yang berhasil ditangkap.
b. Kotak yang terdapat dibawah daftar paket adalah detail dari paket yang terpilih.
c. Bagian selanjutnya yang terletak di bawah detail paket adalah detail paket dalam format heksadesimal

d. Pada bagian daftar paket terdapat kolom-kolom sebagai berikut
    - Time : menampilkan waktu saat paket tersebut tertangkap
    - Source : menampilkan IP sumber dari paket data tersebut
    - Destination : menampilkan IP tujuan dari paket data tersebut
    - Protocol : menampilkan protocol apa yang dipakai oleh paket data
    - Info : menampilkan informasi mendetail tentang paket data tersebut

Mendeteksi server dan IP Adress suatu web

Halo, coding.. sudah lama saya tidak menulis cerita-cerita haru untukmu
Oke. Kali ini kita belajar agak serius. Saya akan membahas tentang materi yang saya dapatkan pada praktikum jaringan komputer. yaitu mendeteksi server dan IP adress pada suatu web. Web yang akan kita akses adalah web kampus tercinta, its.ac.id.
:)

pertama pada terminal kita ketikkan host -t MX its.ac.id maka akan tampil server-server dari web its.ac.id seperti gambar dibawah ini 












Kemudian setelah kita mengetahui servernya, kita akan mencari IP address salah satu dari server tersebut. Misalnya vmail.its.ac.id. Maka ketikkan pada terminal traceroute vmail.its.ac.id . Karena pada saat sesi lab, laptop belum terinstal paket traceroute, maka ada baiknya kita menginstal paket tersebut terlebih dahulu. Dengan mengikuti petunjuk terminal yang ada. Kemudian setelah instalasi berhasil, lakukan perintah tadi di atas, yaitu traceroute vmail.its.ac.id
















Lalu akan muncul hasil traceroutr to vmail.its.ac.id (202.46.129.11). ini merupakan IP Address dari alamat vmail.its.ac.id. Kemudian dibawahnya juga akan tampil list beberapa yang mengandung sejumlah IP. Maksudnya, disini kita telah melewati beberapa router, urut dari nomer 1 sampai no 6. Kita telah melewati IP 192.168.1.1  kemudian menuju 10.151.62.1  begitu seterusnya sampai tepat menuju sasaran request kita yaitu IP dari mail vmail.its.ac.id yaitu 202.46.129.11 sehingga informasi dari IP yang kita dapatkan adalah sama dengan list terakhir IP yang kita dapatkan















dan dapat kita simpulkan dari 6 poin poin yang muncul pada terminal kita diatas adalah jalannya komputer kita, (melalui IP adresskita) menuju IP adress tujuan kita (yaitu web its.ac.id). jadi, pertama kita melewati router 10.151.62.1 kemudian dan seterusnya sampai bertemu pada server its di IP 202.46.129.11