Pages

19 Juni 2013

Jaringan Komputer - IPTABLES

Soal Pendahuluan:

1.      Apakah yang Disebut IPTABLES!
2.       Bagaimana aturan penulisan dalam IPTABLES?
3.      IPTABLES punya berapa table ? Sebut dan Jelaskan!
4.      Pada Tabel ada 3 jenis chain sebutdan jelaskan perbedaannnya!
5.      Sebut dan Jelaskan 3 jenis NAT!
6.      Apa yang membedakan Meangle dengan tabel lainny?
7.      Apa kegunaan PREROUTING dan POSTROUTING?
8.      Pada penulisan IPtables di targat terdapat special property, Apakah yang dimaksud special property tersebut?
9.      Sebutkan perbedaan DROP dan REJECT!
10.  Jelaskan iptables di bawah ini!















Jawaban:

1.      iptables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer kita.

2.      iptables [–t tables] [option] [rule] [target]
Contohnya: iptables –P FORWARD ACCEPT

3.      IPTables memiliki beberapa buah tabel yaitu NAT, MANGLE, dan FILTER. Penjelasannya adalah:
1.         Table Mangle:
tabel yang bertanggung jawab untuk melakukan penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan MARK di header TCP. Biasanya        tabel ini jarang digunakan di lingkungan SOHO.
2.         Table Filter:
tabel yang bertanggung jawab untuk pemfilteran paket.
Tabel ini mempunyai 3 rantai (chain) yaitu:
1.      Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket datang dari IP Publik dan bukan dari IP lokal.
2.      Rantai Input: yaitu rantai yang memfilter paket-paket yang ditujukan ke firewall.
3.      Rantai Output: yaitu rantai yang memfilter paket-paket yang berasal dari firewall.
3.         Tabel NAT:
rantai yang bertanggung jawab untuk melakukan Network Address Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari sebuah paket. Pada tabel ini terdapat 2 rantai, yaitu:
1.      Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT atau DNAT.
2.      Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT atau SNAT.
4.      INPUT
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelola komputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSH ke firewall dan yang lain tidak boleh.
OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak. TARGET ada tiga macam yaitu:
       a.    ACCEPT
              Akses diterima dan diizinkan melewati firewall
       b.    REJECT
              Akses ditolak, koneksi dari komputer klien yang melewati firewall langsung               terputus, biasanya terdapatpesan “Connection Refused”. Target Reject tidak                    menghabiskan bandwidth internet karena akses langsung ditolak, hal ini                           berbeda dengan DROP.
       c.    DROP
Akses diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan – akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet yang sibuk dengan trafik tinggi. Target Drop sebaiknya jangan digunakan.

5.      A. Basic NAT / Pooled NAT / dynamic 1 – 1 NAT
Host private dapat terhubung ke alamat – alamat host global dengan melalui proses routing terlebih dahulu oleh router. Dynamic NAT menterjemahkan tiap host dengan IP yang tidak terdaftar pada salah satu IP yang terdaftar agar terhubung ke internet. IP address yang diasosiasikan pada jaringan ini bersifat dinamis

B. static 1 – 1 NAT
Host private dapat terhubung ke alamat – alamat host global secara dengan jalur / mapping dan IP address yang telah ditentukan (fixed). Jumlah IP address yang terdaftar dan yang tidak pada jaringan ini sama.
                  
C. M – 1 NAT
NAT jenis terbaru dan yang sering digunakan. Banyak host dapat berhubungan pada host lain secara paralel

6.      Mangle merupakan metode bandwidth manajemen, kalau seandainya ingin bandwidth tersebut dibagi sama rata oleh Mikrotik.

seperti bandwidth 256kbps downstream dan 128kbps upstream. Sedangkan client yang akan mengakses sebanyak 10 client, maka otomatis masing-masing client mendapat jatah bandwidth downstream sebanyak 256kbps dibagi 10 dan upstream sebanyak 128kbps dibagi 10. Jadi masing-masing client mendapat 25,6kbps untuk downstream dan 12.8kbps untuk upstream. Andaikata hanya 2 Client yang mengakses maka masing-masing client dapat 128kbps untuk downstream dan 64kbps untuk upstream.

Untuk itu dipakai type PCQ (Per Connection Queue), yang bisa secara otomatis membagi trafik per client.

7.       
a. Rantai Pre-Routing: Merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan destination NAT atau DNAT.
b. Rantai Post-Routing: Merubah paket-paket NAT dimana alamat sumber dari paket-paket tersebut terjadi perubahan. Biasanya dikenal dengan source NAT atau SNAT.

8.      a. ACCEPT
Ketika paket cocok dengan daftar match dan target ini diberlakukan, maka paket tidak    akan melalui baris-baris aturan yang lain dalam chain tersebut atau chain yang lain      yang mereferensi chain tersebut. Akan tetapi paket masih akan memasuki   chain-chain pada tabel yang lain seperti biasa.

            b. DROP
Target ini men-drop paket dan menolak untuk memproses lebih jauh. Dalam beberapa kasus mungkin hal ini kurang baik, karena akan meninggalkan dead socket antara client dan server. Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim informasi tambahan dalam bentuk apapun kepada client atau server.

            c. RETURN
Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target RETURN. Jika chain merupakan subchain dari chain yang lain, maka paket akan kembali ke superset chain di atasnya dan masuk ke baris aturan berikutnya. Apabila chain adalah chain utama misalnya INPUT, maka paket akan dikembalikan kepada kebijakan default dari chain tersebut.

            d. MIRROR
Apabila kompuuter A menjalankan target seperti contoh di atas, kemudian komputer B melakukan koneksi http ke komputer A, maka yang akan muncul pada browser adalah website komputer B itu sendiri. Karena fungsi utama target ini adalah membalik source address dan destination address. Target ini bekerja pada chain INPUT, FORWARD dan PREROUTING atau chain buatan yang dipanggil melalui chain tersebut.

9.      PERBEDAAN REJECT dan DROP
PERBEDAAN REJECT dan DROP
ASPEK
REJECT
DROP
Akses
Ditolak
Diterima
Koneksi
Langsung terputus
Tidak diketahui, dibatasi
atau tidak
Keberadaan Error Message
Ada. Biasanya muncul error message "Connection Refused"
Tidak ada Error Message
Perilaku terhadap bandwidth
Tidak menghabiskan bandwidth, karena akses langsung ditolak
Menghabiskan bandwidth. Sangat berbahaya dan tidak disarankan apabila menggunakan target Drop pada traffic yang tinggi.


10.  meneruskan paket yang berasal dari semuanya yang masuk dari eth0 menuju ke  ip 192.168.1.158 keluar lewat eth1 menggunakan protocol TCP yang berasal dari port 1024-65535 dan keluar melalui port 2 port: 80 dan dan 443











Soal Shift

a.     Semua subnet tidak dapat mengakses TCP port 21, 443, 66 pada DMZ kecuali KEBUN_BIBIT sedangkan port TCP yang diizinkan untuk mengakses DMZ adalah port 80, 8080, 22.
b.     Mengijinkan semua akses UDP ke DMZ.
c.     Subnet DMZ tidak dapat di PING dari luar selain subnet AJK dan jaringan internal.
d.     Koneksi kepada DMZ melalui ssh dibatasi sebanyak 5 koneksi.
e.     Buatlah sebuah perintah iptables untuk mengatasi synflood
f.      Buatlah sebuah perintah iptables untuk mengatasi force ssh attack.
g.     Buatlah perintah iptables untuk memblok paket scanning. Contoh: xmas, file scan.
h.     Subnet taman_bungkul hanya bisa diakses oleh subnet kebun_bibit, subnet plasa_surabaya hanya bisa diakses ketika jam kerja (08.00 – 16.00), subnet sutos tidak bisa melakukan koneksi ke YM dan Facebook serta tidak bisa melakukan streaming video pada hari dan jam kerja (senin-jumat 07.00-17.00).
i.      Selain DMZ gunakan NAT untuk mengakses jaringan luar (tidak boleh menggunakan masquerade).
j.      Catat semua log yang di-drop oleh firewall.





















Jawaban:
1.      iptables -A INPUT -p tcp -i eth0 -s ! 192.168.0.1/23 -d 10.151.71.24/29 -m multiport  --dport 21,443,66 -j REJECT
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d 10.151.71.24/29 -m multiport --dport 80,8080,22 -j ACCEPT

2.      iptables -A INPUT -p udp -i eth0 -d 10.151.71.24/29 -s 0.0.0.0/0 ACCEPT

3.      iptables -A INPUT -p icmp -i eth0 -s !192.168.0.0/16  -d 10.151.77.64/29-j REJECT

iptables -A INPUT -p icmp -i eth0 -s !10.151.76.0/24 -d 10.151.77.64/29 -j REJECT


4.      iptables -A INPUT -p tcp -i eth1 -d 10.151.71.24/29 --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT

5.      iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j REJECT

6.      iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT –rsource

iptables -I INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --name DEFAULT --rsource -j REJECT


7.      iptables -A INPUT -p tcp ! --syn -m state --state NEW -j REJECT


8.      iptables -A FORWARD -p all -i eth0 -s ! 192.168.0.0 -d 192.168.2.0/27 -j REJECT

iptables -A FORWARD -p all -s 0/0 -d 192.168.4.0/26 -m time --timestart 09:00 --timestop 16:00 -j ACCEPT

iptables -A FORWARD -p all -s 0/0 -s 192.168.4.128/23 -d 173.252.110.27 -m time --timestart 07:00 --timestop 17:00 -j REJECT

iptables -A FORWARD -p all -s 0/0 -s 192.168.4.128/23 -d 68.189.190.124 -m time --timestart 07:00 --timestop 17:00 -j REJECT


9.      iptables -t nat -A POSTROUTING -o eth0 -j SNAT -s 10.151.71.24/29 --to source 10.151.70.13


10.  IPTABLES -A FORWARD -j LOG -log-level-debug
IPTABLES -A FORWARD -j LOG -log-tcp-options
IPTABLES -A INPUT -j LOG -log-level-debug

IPTABLES -A INPUT -j LOG -log-tcp-options

13 Juni 2013

17 Mei 2013

Jaringan Komputer - Konfigurasi Dynamic Host Configuration Protocol (DHCP) Pada Ubuntu

Sesuai judul, pada posting kali ini saya akan membahas cara mengkonfigurasi DHCP pada sistem operasi ubuntu. Sebelumnya, apa sih itu DHCP? Dynamic Host Configuration Protocol atau biasa disingkat dan dikenal dengan DHCP merupakan protokol jaringan yang menangani pemberian alamat IP kepada host - host yang tergabung dalam suatu jaringan sehingga host - host tersebut dapat saling berkomunikasi.

Posting kali ini, konfigurasi DHCP akan menggunakan UML(User Mode Linux) dengan topologi yang dibangun seperti gambar berikut.


16 April 2013

Jaringan Komputer - Laporan Pendahuluan

-->
SOAL PENDAHULUAN MODUL 2



WEB SERVER & WEB CACHE/PROXY SERVER

  1. Apa yang dimaksud dengan web server? Jelaskan fitur-fitur standrad yang dimiliki web server dan beri contoh web server!
  2. Apa yang kamu ketahui tentang proxy server? Jelaskan tentang squid proxy!
  3. Buat diagram cara kerja web server dan proxy!
  4. Tuliskan syntax dasar membuat host, router, server, dan switch pada UML!
  5. Install apache pada linux Anda dan lakukan konfigurasi sehingga bisa berjalan dan bisa membuka PHP info pada browser!
  6. Install dan konfigurasi squid proxy pada linux Anda sehingga tidak dapat digunakan untuk mengunduh file mp3, wmv dan avi dan bandwidth dibatasi hanya 10Kbps!
  7. Apa yang dimaksud dengan forward proxy, reverse proxy, dan open proxy?
  8. Apa yang dimaksud dengan normal proxy, intercept proxy, dan transparent proxy?

15 April 2013

Jaringan Komputer - Web Server (Apache)


1. Buatlah routing sederhana yang terdiri atas client, router dan DMZ

2. Install apache,mySQL, phpmyadmin pada DMZ

3. DMZ akan digunakan sebagai Web Server. Terdapat 2 buah website yang ditangani oleh web server ini yaitu ip_anda:80, ip_anda:8080. Kemudian pada website ip_anda:80 terdapat subdirektori /admin yang mana sebenarnya file-filenya terletak di /home/admin, berbeda dengan file-file lain yang terletak di /var/www.Ketika mengakses ip_anda:8080 user harus menginputkan username dan password (menggunakan .htaccess) Semua website tidak boleh menampilkan list direktori. Jadi jika tidak ada file index (index.html, index.php, default.asp) maka daftar file dan subdirektori yang ada tidak akan tampil. Ketika kita mengakses ip_anda:80/example maka akan diarahkan ke ip_anda:80/example/example.html

4. Umumnya file yang diakses http://www.something.com adalah file index.html atau index.php di folder htdocs (windows) atau di /var/www/html (linux). Nah, ada kalanya kita sebagai pemilik web server tersebut berkeinginan untuk memberikan fasilitas kepada user yakni berupa homepage mereka. Buatlah konfigurasi web server agar memiliki fasilitas homepagenya sendiri (mod_userdir)
5. Buatlah configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus :  self-signed-certificate..
6. Lakukan configurasi untuk mengoptimasi Apache dengan asums: guaranteed RAM (RAM yang pasti tersedia untuk apache) sebesar 8 MB

Jaringan Komputer - Web Proxy (Squid)

Soal Proxy Modul 2

Tambahlah satu host lagi untuk melakukan percobaan dengan subnet yang sama.

  1. Salah satu server DMZ akan digunakan sebagai proxy server. Sehingga user-user pada jaringan anda untuk mengakses internet akan menggunakan proxy.
  2. 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).
  3. Buatlah setting tambahan agar IP dari host 1(client) tidak dapat melakukan download file : pdf, mp3,doc.
  4. Rubahlah agar IP dari host 1(client) memiliki maksimal kecepatan download sebesar 20 kbps file : pdf, mp3,doc.
  5. Batasi hanya ada 2 buah koneksi secara bersamaan pada tiap host.
  6. Bisa menjelaskan 5 poin mengenai log squid


Membuat Web Server Sedehana dengan Java

Pada posting kali ini saya akan membuat sesatu sesuai judul. Ya, web server sederhana. Dikatakan sederhana karena web server hanya sebatas mengirimkan balasan HTML kepada browser saat browser mengunjungi localhost dengan IP yang nantinya kita tentukan.

Berikut code untuk program main-nya:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 *
 * @author ASUS A43B
 */
public class JavaWebServer {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws FileNotFoundException, IOException {
        // TODO code application logic here
        // Instansiasi kelas yang telah kita buat
        WebServer ws = new WebServer();
        ws.start();
    }
}

Berikut code kelas yang akan menjalankan fungsi web server nya:

package javawebserver;
// BufferedReader merupakan class bawaan JDK yg berfungsi untuk memberikan input dan output pada program
import java.io.BufferedReader;
// FileReader adalah class bawaan JDK yg berfungsi untuk membaca suatu file sebagai input
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
// class ServerSocket dan Socket udah dijelaskan pada post sebelumnya tentang program client-server sederhana
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * @author ASUS A43B
 */
public class WebServer {
  /**
   * WebServer constructor.
   */
    protected void start() throws IOException {
    // Deklarasi class ServerSocket
    ServerSocket s;

    // Seperti yang kita tau, port digunakan untuk menghubungkan antar proses yg berbeda
    // Tentukan sendiri port mu, bebas
    String port = "5111";
    System.out.println("Webserver starting up on port " + port);
    System.out.println("(press ctrl-c to exit)");

    //inisialisasi server
    try {
      // Instansiasi class ServerSocket dengan parameter berupa port yang telah kamu tentukan di atas
      s = new ServerSocket(Integer.parseInt(port));
    } catch (Exception e) {
      System.out.println("Error: " + e);
      return;
    }    // Instansiasi class BufferedReader dengan menggunakan file sebagai inputan
    BufferedReader fScan = new BufferedReader(new FileReader("C:\\Users\\Agung\\Documents\\fileku.html"));
    // 9 line di bawah merupakan algoritma pembacaan string yang ada pada file
    // Karena nanti file akan dibaca di browser, maka file saya buat sebagai file HTML
    String allString = "";
    String text = "";
    text = fScan.readLine();
    while(text != null)
    {
        allString += text;
        text = fScan.readLine();
    }
    fScan.close();

    System.out.println("Waiting for connection");
    for (;;) {
      try {
        // Menerima koneksi
        Socket remote = s.accept();

        // Mengirim pesan
        System.out.println("Connection, sending data.");

        BufferedReader in = new BufferedReader(new InputStreamReader(
            remote.getInputStream()));
        PrintWriter out = new PrintWriter(remote.getOutputStream());

        // Membaca permintaan pengguna di kolom url
        String str = ".";
        while (!str.equals(""))
          str = in.readLine();

        // Isi dari permintaan pengguna
        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Server: Bot");
        out.println("");  // Sebagai pemisah antara header HTML dengan isi file HTML
        out.println(allString); // mengirimkan isi file HTML yang akan dibaca browser.
        out.flush();
        remote.close();
      } catch (Exception e) {
        System.out.println("Error: " + e);
      }
    }
  }
}

Sekian post dari saya kali ini, semoga bermanfaat.. Jaa Ne!!

11 Maret 2013

Wireshark, Tentang dan Cara Penggunaannya

Wireshark, ada yang pernah dengar? klo biasa mainan (halah..) jaringan pasti tau ini. Ya! Wireshark adalah perangkat lunak yang berfungsi sebagai packet analyzer pada jaringan. Perangkat lunak ini menangkap paket – paket yang melalui jaringan dan menampilkan data / informasi pada paket tersebut sedetil mungkin.
Kegunaan Wireshark antrara lain:

- menangani masalah - masalah pada jaringan
- mengamati masalah keamanan jaringan
- mempelajari protocol jaringan internal
- menganalisa kinerja jaringan
- memantau aktivitas - aktivitas pada jaringan
- melakukan sniffing password account orang
- dan lain-lain

Tutorial Membuat Program Client - Server Sederhana Dengan Java


Sebelum memulai tutorial sesuai judul di atas, sebenernya apa sih socket itu? Sederhananya socket adalah object / class pada end system yang berfungsi melakukan bind terhadap suatu port dari komunikasi dua arah yang terjadi pada suatu jaringan. Port-nya sendiri dapat kita yang tentukan sendiri atau pun menggunakan port yang sudah ada yang tentunya sesuai aturan yang telah ada.

Berarti program socket itu? program socket  itu sendiri adalah program yang dapat menghubungkan antar proses baik dalam satu end system maupun tidak.

Pada program ini server hanya akan me-listen program client dan menjawab client sesuai input dari program client sementara client akan memiliki contoh output dan kasus seperti di bawah: