Senin, 17 Juni 2013

Lapres Modul 4 Kelompok B12


Keterangan:
  • menggunakan metode vlsm dalam menetukan subnetting. dengan menggunakan bantuan http://www.vlsm-calc.net/ dalam penghitungannya.
  • prinsip dari vlsm adalah IP dari host harus dikenalkan terlebih dahulu pada router atasnya sebelum terhubung dengan host lain yang beda router.

Lapres Modul 3 Kelompok B12 (Part 4)

Settinglah konfigurasi IP secara DHCP di mana server DHCP ada di dalam Elmo dengan ketentuan: host tom, jerry, spike, dan doraemon mendapatkan IP secara DHCP sesuai dengan IP yang sudah ditentukan di topologi dan untuk host snoppy dan woodstock harus mendapatkan IP random!

 ini dilakukan di host elmo
  1. menginstal dhcp3-server dengan cara mengetik "apt-get dhcp3-server"
  2. ketik "nano /etc/default/isc-dhcp-server" dan rubah settingannya menjadi seperti berikut

    INTERFACES="" set menjadi INTERFACES="eth0"
     
  3. ketik "nano /etc/dhcp/dhcpd.conf" dan ketik tulisan berikut

    ddns-update-style interim;
    ignore client-updates;
    default-lease-time 600;
    max-lease-time 7200;

    option subnet-mask 255.255.255.0;
    option broadcast-address 172.16.0.255;
    option routers 172.16.0.1;
    option domain-name "klpb12.jarkom.com";
    option domain-name-servers 172.16.0.4, 172.16.0.13, 172.16.0.2;

    #configuration
    subnet 172.16.0.0 netmask 255.255.255.0{
            range 172.16.0.20 172.16.0.70;
    }

            host tom{
                    hardware ethernet 46:aa:97:9c:a0:3c;
                    fixed-address 172.16.0.10;
            }
            host jerry{
                    hardware ethernet 96:f4:b8:b4:79:b1;
                    fixed-address 172.16.0.11;
            }
            host spike{
                    hardware ethernet f6:b8:41:d6:53:11;
                    fixed-address 172.16.0.12;
            }
            host doraemon{
                    hardware ethernet f6:2c:92:3f:d2:a4;
                    fixed-address 172.16.0.5;
            }
  4. lalu restart dhcpnya dengan mengetik "service isc-dhcp-server restart"
  5. rubah tulisan "static" di interfaces masing - masing host dengan tulisan "dhcp"

    auto eth1
    iface eth1 inet dhcp
  6. host tom, jerry, spike dan doraemon mendapat fixed address tetapi setiap direboot mac addressnya selalu berubah. oleh karenanya, perlu settingan tambahan pada network interfaces di host tersebut

    hwaddress ether 46:aa:97:9c:a0:3c
  7. lalu restart networkingnya. maka akan muncul tulisan DHCP Discover, Offer, Request, dan ACK.

Lapres Modul 3 Kelompok B12 (Part 2)

Berikut code untuk uml berdasarkan topologi modul 3 sebelumnya

uml_Switch -unix switch1 > /dev/null </dev/null &
uml_Switch -unix switch2 > /dev/null </dev/null &

xterm -T Patrick -e linux ubd0=Patrick,uml umid=Patrick eth0=tuntap,,,10.151.74.49 eth1=daemon,,,switch1 eth2=daemon,,,switch2 mem=50M &

xterm -T Stitch -e linux ubd0=Stitch,uml umid=Stitch eth0=daemon,,,switch1 mem=50M &
xterm -T Snoopy -e linux ubd0=Snoopy,uml umid=Snoopy eth0=daemon,,,switch1 mem=50M &
xterm -T Woodstock -e linux ubd0=Woodstock,uml umid=Woodstock eth0=daemon,,,switch1 mem=50M &
xterm -T Doraemon -e linux ubd0=Doraemon,uml umid=Doraemon eth0=daemon,,,switch1 mem=50M &

xterm -T Tom -e linux ubd0=Tom,uml umid=Tom eth0=daemon,,,switch2 mem=50M &
xterm -T Spike -e linux ubd0=Spike,uml umid=Spike eth0=daemon,,,switch2 mem=50M &
xterm -T Jerry -e linux ubd0=Jerry,uml umid=Jerry eth0=daemon,,,switch2 mem=50M &
xterm -T Elmo -e linux ubd0=Elmo,uml umid=Elmo eth0=daemon,,,switch2 mem=50M &

Langkah selanjut?

Lakukan proses routing di masing - masing host,  dan router seperti yang pernah dilakukan di modul 1 dan modul 2 kemarin. Perbedaannya ada di router Patrick yakni ada bridgenya. Bridge berguna untuk mempersatukan 2 subnet menjadi 1 subnet.

Bagaimana membuat bridge di router?

  1. instal bridge-utils dengan cara mengetik "apt-get bridge-utils" di router.
  2. ketik "nano /etc/network/interfaces" lalu ketik tulisan berikut

    auto lo
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address 10.151.74.50
    netmask 255.255.255.0
    gateway 10.151.74.49
    broadcast 10.151.74.51

    auto eth1 eth2
    iface eth1 inet manual
    iface eth2 inet manual
    auto br0
    iface br0 inet static

    bridge_port eth1 eth2
    address 172.16.0.1
    netmask 255.255.255.0
  3. lalu reboot networknya.

Web Server - Java

JavaWebServer.java

package javawebserver;
public class JavaWebServer {

    public static void main(String[] args) {
        // TODO code application logic here
        WebServer ws = new WebServer();
        ws.start();
    }
}

WebServer.java

package javawebserver;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;


public class WebServer {

    protected void start() {
    ServerSocket s;

    System.out.println("webserver berada di 6060");
    System.out.println("(tekan ctrl+c)");
    
    //inisialisasi server
    try {
      s = new ServerSocket(6060); // portnya diganti tidak masalah
    } catch (Exception e) {
      System.out.println("Error: " + e);
      return;
    }

    System.out.println("menunggu sambungan");
    for (;;) {
      try {
          
        //menerima koneksi
        Socket remote = s.accept();
        
        //mengirim pesan
        System.out.println("menghubungkan, mengirim data.");
        BufferedReader in = new BufferedReader(new InputStreamReader(
            remote.getInputStream()));
        PrintStream out = new PrintStream(remote.getOutputStream());

        //membaca permintaan pengguna di kolom url
        String str = ".";
        while (!str.equals("")){
          str = in.readLine();
          System.out.println(str);
        }
        
        String filepath = "C:\\Users\\Banitama\\Dekstop\\MyWebServerJava\\";
        FileInputStream fin = null;
        boolean fileExists = true;
        if(filepath.endsWith("\\")) filepath+="index.html";
        
        //isi dari permintaan pengguna
        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Server: Bot");
        out.println("");
        
        try{
            fin = new FileInputStream(filepath);
        } catch (FileNotFoundException e){
            fileExists = false;
        }
        
        if(fileExists){
            byte[] buffer=new byte[1024];
            int n;
            while ((n=fin.read(buffer))!=-1)
                out.write(buffer, 0, n);
        }
        else
        {
            out.println("<h1>HTTP/1.0 404 Not Found</h1>\r\n");
        }
        
        
        out.flush();
        remote.close();
      } catch (Exception e) {
        System.out.println("Error: " + e);
      }
    }
  }
}

Lapres Modul 3 Kelompok B12 (Part 1)

Berikut merupakan gambar topologi untuk jarkom modul 3.


Berikut contoh persoalan:
  1. Satu domain besar bernama klpb12.jarkom.com, yang ditangani oleh Stitch (yang tergabung dalam domain ini adalah selain woodstock & snoopy)
  2. Subdomain kartun.klpb12.jarkom.com, beranggotakan woodstock, yang ditangani oleh Stitch. Komputer woodstock akan bernama woodstock.kartun.klpb12.jarkom.com
  3. Subdomain anime.klpb12.jarkom.com, beranggotakan snoopy, yang ditangani oleh elmo. Komputer snoopy akan bernama snoopy.anime.klpb12.jarkom.com
  4. woodstock.kartun.klpb12.jarkom.com akan menjadi slave untuk anime.klpb12.jarkom.com
  5. Kalau melakukan ping ke admin.klpb12.jarkom.com maka akan mengarah ke Doraemon
  6. Kalau melakukan ping ke dns.klpb12.jarkom.com maka akan mengarah ke Stitch
  7. Elmo menjadi dns slave dari Stitch
  8. Buatlah 'load balancing'. Sehingga jika kita ping ke server.klpb12.jarkom.com, maka akan muncul 2 IP server, yaitu IP Stitch dan IP Elmo

Lapres Modul 2 Kelompok B12 (Part 4)

Salah satu server DMZ akan digunakan sebagai proxy server. Sehingga user-user pada jaringan anda untuk mengakses internet akan menggunakan proxy

  1. Jalankan code tadi dengan cara mengetik "./jarkom02.sh"
  2. Setting routing di client baru tersebut(proxy server)
    1. ketik "nano /etc/network/interfaces"
    2. Ketik berikut ini


      auto lo
      iface lo inet loopback

      auto eth0
      iface eth0 inet static
      address 180.12.0.3
      netmask 255.255.255.0
      gateway 180.12.0.5

      lalu simpan
    3. Ketik "service networking restart" untuk merestart networknya.
    4. ketik "nano /etc/resolv.conf"
    5. ketik tulisan beriku ini

      Nameserver 202.46.129.2
      Search ajk.if.its.ac.id
      Nameserver 10.151.36.3

      lalu simpan
    6. lalu restart lagi networknya.
  3. tes koneks dengan mencoba ping ke its.ac.id atau ajk.if.its.ac.id atau ke client lainnya.
  4.  Install squid dengan mengetik "apt-get install squid3"  
  5. ketik "nano /etc/squid3/squid.conf" lalu ketik sesuai dibawah  ini

    #tambahkan konfigurasi berikut
    http_access allow all
  6. Di client, ketik "export http_proxy=180.12.0.3:3128 && wget its.ac.id" lalu muncul tulisan bahwa its.ac.id tersimpan.

IP salah satu host memiliki kecepatan download maksimal 10 kbps dan IP lainnya memiliki kecepatan download maksimal 20 kbps sebelum jam 14.00 dan kedua IP memiliki kecepatan download maksimal sebesar 30 kbps setelah jam 14.00 atau hari libur(sabtu, minggu)

  1.  ketik "nano /etc/squid3/squid.conf" dan ketik sesuai yang ada di bawah ini

    #dekalarasi acl
    acl host1 src 180.12.0.1
    acl host2 src 180.12.0.2
    acl kerja time MTWHF
    acl libur time AS
    acl jam time 00:00-13.59

    #pengaturan untuk nomor 2
    delay_pools 3

    delay_class 1 1
    delay_access 1 allow host1
    delay_access 1 allow kerja
    delay_access 1 allow jam
    delay_access 1 1250/1250

    delay_class 2 1
    delay_access 2 allow host2
    delay_access 2 allow kerja
    delay_access 2 allow jam
    delay_parameters 2 2500/2500

    delay_class 3 1
    delay_access 3 allow host1
    delay_access 3 allow host2
    delay_access 3 allow libur
    delay_access 3 deny jam all
    delay_parameters 3 3750/3750

    -------------
    penjelasan:
    • acl berfungsi seperti variabel
    • kelas 1 : IP host 1 memiliki kecepatan download maksimal 10 kbps saat jam kerja
    • kelas 2 : IP host 2 memiliki kecepatan download maksimal 20 kbps pada saat jam kerja / sebelum jam 14.00
    • kelas 3 : Kedua IP memiliki kecepatn download maksimal 30 kbps setelah jam 14.00 atau hari libur(sabtu, minggu)
  2.  untuk mengetes, coba ketik "wget its.ac.id/pengumuman/renstra.pdf" di clien. maka file renstra.pdf akan tersimpan di clien


Buatlah setting tambahan agar IP dari host 1 tidak dapat melakukan download file : pdf,mp3 dan doc

  1. ketik "nano /etc/squid3/squid.conf" dan ketik berikut ini

    acl download url_regex -i \.mp3$ \.doc$ \.pdf$
    http_access deny download host1

    ------
    lalu restart proxynya dengan "service squid3 restart"
  2. untuk mengetesnya, ketik "wget its.ac.id/pengumuman/renstra.pdf" di client. lalu akan muncul tulisan "Proxy request sent, awaiting response... 403 Forbidden"


Rubahlah agar IP dari host 1 memiliki maksimal kecepatan download sebesar 20 kbps pada saat mendownload file: pdf,mp3, dan doc

  1. ketik "nano /etc/squid3/squid.conf" dan ketik berikut ini

    delay_pools 1
    delay_class 1 1
    delay_access 1 allow host1
    delay_parameters 1 2500/2500
    http_access allow download

    -----
    lalu simpan
  2.  untuk mengetesnya, ketik "wget its.ac.id/pengumuman/renstra.pdf" di client. lalu akan muncul tulisan bahwa file tersebut berhasil didownload dengan kecepatan rata-rata 20 kbps


Batasi hanya ada 2 buah koneksi secara bersamaan pada tiap host

  1. ketik "nano /etc/squid3/squid.conf" dan ketik berikut ini

    acl download url_regex -i \.mp3$ \.doc$ \.pdf$
    acl pair maxconn 2

    http_access deny pair all

Menjelaskan 5 poin mengenai log squid:

Format untuk access.log akan terlihat seperti ini


"%9d.%03d %6d %s %s/%03d %d %s %s %s %s%s/%s %s"
dari format tersebut mengandung berikut ini dan diurut dari kiri ke kanan

  1. Time
    waktu tanggal dikonvert ke dalam bentuk unix timestamp
  2. Duration
    waktu yang dihabiskan / dibutuhkan dalam satuan milisecond
  3. Client Address
    alamat address yang sedang browsing lewat proxy tersebut
  4. Result code
    mengandung transisi yang diminta
  5. Bytes
    Jumlah ukuran data yang dikirim ke client

Lapres Modul 2 Kelompok B12 (Part 3)

Umumnya file yang diakses http://www.something.com adalah file index.html atau index.php di folder htdocs(kalau di apache windows) atau di /var/www/html(untuk apache server linux). Nah, ada kalanya kita sebagai pemilik web server tersebut berkeinginan untuk memberikan fasilitas kepada user berupa homepage mereka. Buatlah configurasi web server agar memiliki fasilitas user dapat memiliki web pagenya sendiri(mod_userdir)

  1. Ketik "a2enmod userdir" untuk mengaktifkan modul userdirnya
  2. Ketik "nano /etc/apache2/mods-enabled/userdir.conf" dan ketik tulisan berikut ini

    <IfModule mod_userdir.c>
    UserDir public_html

    <Directory /home/admin/*/public_html>
    AllowOverride All
    Option MultiViews Indexes SymLinks IfOwnerMatch Includes NoExec
    <Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
    </Limit>

    <LimitExcept GET POST OPTIONS>
    Order deny allow
    Deny from all
    </LimitExcept>
    <Directory>
    </IfModule>

    lalu simpan
  3. Ketik "cd /home/admin && mkdir b12" lalu ketik "cd b12 && mkdir public_html" dan ketik "nano index.html"

    <html>
    <body>sukses
    </body>
    </html>

    lalu simpan
  4. Untuk mengetes settingan ini, ketik "lynx 180.12.0.1:80/klpb12" di client. lalu akan muncul tulisan sukses.


Buatlah configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus: self-signed-certificate

  1. Ketik "a2enmod ssl" untuk mengaktifkan modul ssl pada apache2, lalu ketik "service apache2 restart" utuk merestart apache2 dan ketik "mkdir /etc/apache/ssl".
  2. Ketik "openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt", lalu muncul tampilan lalu isi keterangan yang ada berikut ini:

    Country Name (2 letter code)[AU]: ID
    State or Province Name (full name)[Some-State]: Jawa Timur
    Locality Name(eg. city)[]: Surabaya
    Organization Name(eg. company)[Internet Widgit Pty Ltd]: ITS
    Organizational Unit Name(eg. section)[]: Teknik Informatika
    Common Name(eg. Your name)[]: 180.12.0.1
    Email Address[]: webmaster@localhost
  3. Ketik "nano /etc/apache2/sites-available/default", dan ketik sesuai berikut ini

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    #tambahkan ini untuk menggunakan ssl
    ServerName 180.12.0.1
    SSLEngine on
    SSL CertificateFile /etc/apache2/ssl/apache.crt
    SSL CertificateKeyFile /etc/apache2/ssl/apache.key

    DocumentRoot /home/admin
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    ................................

    lalu simpan
  4. Reload apachenya dengan mengetik "service apache2 reload"
  5. Untuk mengetes koneksinya, lakukan hal ini melalui client
    1. ketik "links https://180.12.0.1:80"
      lalu muncul tulisan "It works!\nThis is the default page for this server 80"
    2. ketik "links http://180.12.0.1:80"
      lalu muncul tulisan yang isinya mengharuskan menggunakan "https" bukan "http"
     

 Lakukan configurasi untuk optimalisasi apache dengan asumsi: guaranteed RAM (RAM yang pasti tersedia untuk apache) sebesar 8 mb

  1. Ketik "free -m" untuk melihat status memory yang dipakai oleh server dalam megabytes.
  2. lihat baris "Mem" dan kolom "used" maka itulah memory yang digunakan.
  3. Mari menghitung
    1. Total Memory : 1 giga
    2. Memory yang digunakan : 49 mb
    3. free memory pool = total ram - memory yang digunakan
      = 1000 - 49
      = 951
    4. Available apache memory = free memory * 0.8
      = 951 * 0.8
      = 760.8
    5. max client yang harusnya digunakan = available apache pool / 8
      = 760/8 = 95
  4.  Ketik "nano /etc/apache2/apache.conf" dan ubah nilai max client menjadi max client yang kita hitung tadi.