Sabtu, 13 April 2013

Proxy Server


Cara Install Squid Proxy :


  1. Pertama-tama install terlebih dahulu squid melalui terminal atau melalui command prompt dengan cara :
    apt-get install squid
  2. Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara :
    nano /etc/squid/squid.conf
  3. Tetapi sebelum di edit terlebih dahulu backup dulu file aslinya agar kalau rusak bisa dikembalikan ke default :
    nano /etc/squid/squid.conf /etc/squid/squid.conf.bak
  4. Baru kemudian kita mulai bermain-main dengan konfigurasi script Squid :
    nano /etc/squid/squid.conf
Cara setting konfigurasi Squid Proxy :


Biasanya untuk mengatur kecepatan internet kita lakukan Filtering:

  1. Filtering : Ini merupakan bagian terpenting dari Squid, dengan ini kita bisa mngatur rule-rule, dari mulai siapa saja yang bisa mengakses internet sampai website apa yang diizinkan untuk di akses.Access List : Siapa saja yang dapat mengakses Internet
  • contoh perintah : acl c1 src 170.0.0.101
  • acl : merupakan perintah access list
  • user : nama user yang memiliki IP atau group
  • src : merupakan source ip yang digunakan, bisa menggunakan range jika ingin membuat group

         2. Filtering Waktu : Memberikan izin akses berdasarkan waktu dan hari
  • perintah : acl waktu-akses time MTWHFA 08:00-16:00
  • acl : perintah access list
  • waktu-akses : caption untuk perintah acl
  • time : perintah squid utk mendefinisikan waktu
  • MTWHFA : merupakan perintah squid untuk mendefinisikan waktu
  • M : Monday, T : Tuesday, etc…..
  • 08:00-16:00 : Merupakan waktu yang diperbolehkan untuk memberikan akses internet ke penggunaFiltering Website : Memfilter website apa saja yang tidak boleh diakses oleh pengguna.
  • misal kita melarang untuk mendownload file .pdf .mp3 dan .doc
  • acl file url_regex -i \.pdf$ \.doc$ \.mp3$
     3.Untuk membatasi kecepatan kita menggunakan delay pool
contoh:
delay_pool 1
delay_class 1 2 
                  delay_access 1 allow c1
                  delay_parameters 2500/2500 2500/2500

script di atas membatasi kecepatan user c1 menjadi max 2,5 KBps

4.Untuk membuat user lain dapat menggunakan proxy maka proxy harus di export terlebih dahulu dengan cara:
export http_proxy=ip_proxy:port_proxy

Web Server : SSL


Disini kita mendapat kasus bagaimana configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus :  self-signed-certificate.

1. Masuk ke komputer host Anda. Disini, saya memakai komputer host bernama Didik yang berlaku sebagai web server

2. Matikan apache -> service apache2 stop

3. a2enmod ssl

4. Generate CSR : openssl req -new > new.ssl.csr
Generating a 1024 bit RSA private key ................++++++ ........................++++++ writing new private key to 'privkey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:Enter Code Here State or Province Name (full name) [Some-State]:Enter State Here Locality Name (eg, city) []:Enter City Here Organization Name (eg, company) [Internet Widgits Pty Ltd]:Enter Company Name Organizational Unit Name (eg, section) []:Org Unit (if you have one) Common Name (eg, YOUR name) []:First and Last NameEmail Address []:Work Email Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:Leave Blank An optional company name []:Optional

5. Generate Certificate
openssl rsa -in privkey.pem -out new.cert.key
 openssl x509 -in new.ssl.csr -out new.cert.new.ssr.csr -req -signkey new.cert.key -days (berapa jumlah hari)
 cp new.cert.cert /etc/ssl/certs/server.crt
 cp new.cert.key /etc/ssl/private/server.key

6. Konfigurasi apache
nano /etc/apache2/sites-available/mydomain.net
kalau di komputer saya, nano /etc/apache2/sites-available/default
Kemudian isi code berikut di baris terbawah :
SSLEngine on
SSLOptions +StrictRequire
SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

Web Server : UML


Disini kita akan lebih belajar banyak tentang UML. UML (Unified Modeling Language) adalah sebuah bahasa untuk menetukan, visualisasi, kontruksi, dan mendokumentasikan artifact (bagian dari informasi yang digunakan atau dihasilkan dalam suatu proses pembuatan perangkat lunak. Artifact dapat berupa model, deskripsi atau perangkat lunak) dari system perangkat lunak, seperti pada pemodelan bisnis dan system non perangkat lunak lainnya.
Nah sebelum itu, kita harus mengenal dulu nih apa yang disebut dengan topologi jaringan.Topologi jaringan adalah hal yang menjelaskan hubungan geometris antara unsur-unsur dasar penyusun jaringan, yaitu node, link, dan station. Berikut contoh topologi jaringan.



Keterangan:
eth0 : eth0 yang diatas adalah tuntap.
eth1: daemon ke topologi

Buka terminal di Ubuntu Anda, lalu ketik :
ssh -X –l c11 10.151.36.205
Setelah itu Anda akan dimintai password. Isi password tersebut.
Lalu buatlah file script. Caranya:
nano run.sh
Kemudian isi di dalamnya
uml_switch -unix switche22 > /dev/null < /dev/null &
xterm -T router -e linux ubd0=router,uml umid=router eth0=tuntap,,,10.151.70.89 eth1=daemon,,,switche22 mem=50M &
xterm -T host1 -e linux ubd0=host1,uml umid=host1  eth0=daemon,,,switche22 mem=50M &
xterm -T host2 -e linux ubd0=host2,uml umid=host2 eth0=daemon,,,switche22 mem=50M &
xterm -T host3 -e linux ubd0=host3,uml umid=host3 eth0=daemon,,,switche22 mem=50M &

Penjelasan:
systax awal: uml_switch -unix switche22 > /dev/null < /dev/null &
xterm -T router -e linux ubd0=router,uml umid=router eth0=tuntap,,,10.151.70.89$ : uml umid : router berarti kita menamai komputer virtual kita dengan nama router. tuntap 10.151.70.89 adalah tuntap saya. Sedangkan mem=50M adalah pengalokasian memori RAM kita sebesar 50Mb. dan adalah membuatnya sebagai daemon.

. Karena disini tadi saya memberi nama fil dengan nama run.sh, maka saya cukup ketikbash run.sh
Nah, file tersebut digunakan untuk menjalankan UML. Masalahnya bagaimana cara mematikannya? Caranya adalah membuat script untuk mematikannya. Berikut scriptnya:
nano stop.sh
lalu isi code di dalamnya:
uml_mconsole router halt &
uml_mconsole host1 halt &
uml_mconsole host2 halt &
uml_mconsole host3 halt &
Penjelasan:
uml_mconsole [nama uml kita] halt &[& artinya daemon]
Lalu run file yang telah Anda buat tadi. Caranya, bash [nama_file_anda]
Maka akan muncul komputer virtual Anda. Proses ini kadang berlangsung sangat lama, tergantung banyaknya user yang aktif di jaringan tersebut.

Sekarang konfigurasi 4 host tersebut.
- komputer router bertindak sebagai router
- komputer host1 bertindak sebagai web server
- komputer host2 bertindak sebagai proxy server
- komputer host3 bertindak sebagai client
Sekarang, kita masuk ke komputer virtual router. Pertama kali, login dan masukan password Anda.
1. Install update. Caranya: apt-get update
2. Edit file rc.local. Caranya: nano /etc/rc.local
Tambahkan di baris sebelum exit 0 dengan:
    iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    iptables -t nat -A POSTROUTING -o eth0 -j  MASQUERADE
3. Edit  nano /etc/sysctl.conf
uncoment #net.ipv4.ip_forward=1. Hilangkan tanda #
4. setting interface: nano /etc/network/interfaces. Berikut code-nya:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 10.151.70.90 (tuntap Anda +2)
        netmask 255.255.255.0 (default)
        gateway 10.151.70.89 (tuntap Anda+1)
auto eth1
iface eth1 inet static
        address 172.16.0.3 (digit terakhir terserah Anda)
        netmask 255.255.255.0 (default)
4. reboot
5. coba cek dengan cara ping its.ac.id (karena menggunakan jaringan ITS)
Sekarang, kita masuk ke komputer virtual host1 . Disini dia bertindak sebagai webservernya. Hampir mirip dengan yang pertama, tapi disini kita perlu installphpmyadmin, apache2 dan lynx. Step-stepnya:
1. Update dulu komputer Anda: apt-get update
2. apt-get install phpmyadmin
3. apt-get install apache2
4. apt-get install lynx
5. reboot
6. ping its.ac.id
Sekarang, kita masuk ke komputer virtual host2. Hampir mirip dengan yang pertama, tapi disini kita perlu install phpmyadmin, apache2 dan lynx. Step-stepnya:
1. Update dulu komputer Anda: apt-get update
2. apt-get install squid3
3. reboot
4. ping its.ac.id
Sekarang, kita masuk ke komputer virtual host3. Hampir mirip dengan yang pertama, tapi disini kita perlu install lynx. Step-stepnya:
1. Update dulu komputer Anda: apt-get update
2. apt-get install lynx  (lynx itu bertindak sebagai browser Anda)
3. reboot
4. ping its.ac.id

Kamis, 14 Maret 2013

Sesi Lab 2: Socket Progamming


Membuat Socket Client Server
a)      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 SONY
 */
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);
            }
        }
    }
}

b)     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 SONY
 */
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);
            }
        }
       




Sesi Lab 1: Tutorial FileZilla


Nah, setelah script – script untuk website sudah jadi, saatnya untuk mengupload ke server hosting. Secara umum ada 2 metode untuk melakukan upload file ke server hosting kita yaitu upload menggunakan cpanel dan FTP Client. Kalau saya sendiri penggunaan metode tersebut tergantung dari jumlah file yang akan diupload ke server hosting.
Jika jumlah filenya sedikit katakanlah kurang dari 10, maka saya biasanya menggunakan Cpanel untuk melakukan upload. namun demikian jika jumlah file yang akan saya upload banyak, maka saya lebih menyukai metode FTP Client.
Dalam tulisan sebelumnya kita sudah pernah mempelajari cara upload menggunakan File manager cpanel, nah dalam tutorial kali ini kita coba mempelajari cara upload file ke server hosting dengan bantuan software ftp (File transfer Protocol). Ftp ini bisa diunduh secara gratis. Contoh dari ftp adalah filezilla atau Leech FTP. FileZilla adalah aplikasi FTP Client yang Cross Platform, selain cepat dan ringan FileZilla juga mudah digunakan.
Berikut ini saya akan mencontohkan bagaimana mengupload menggunakan ftp filezilla .
  • Pastikan software Filezilla telah terinstal di komputer anda. Jika belum anda dapat mendownload software filezilla gratis di http://filezilla.sourceforge.net. Setelah mendownload, silakan instal program tersebut.
  • Buka program filezilla, lalu masuk ke site manager , klik “File”, lalu pilih “Site Manager”
  • Klik “New Site” pada jendela Site Manager, lalu di Tab General, anda isikan :
    • Host : Alamat web anda, misal prothelon.com
    • Logontype : Normal
    • User : Username FTP anda (Username FTP sama dengan Username cPanel)
    • Password : Password FTP anda (Pass FTP sama dengan Pass cPanel)
    • Nah, setelah script – script untuk website sudah jadi, saatnya untuk mengupload ke server hosting. Secara umum ada 2 metode untuk melakukan upload file ke server hosting kita yaitu upload menggunakan cpanel dan FTP Client. Kalau saya sendiri penggunaan metode tersebut tergantung dari jumlah file yang akan diupload ke server hosting.
    • Jika jumlah filenya sedikit katakanlah kurang dari 10, maka saya biasanya menggunakan Cpanel untuk melakukan upload. namun demikian jika jumlah file yang akan saya upload banyak, maka saya lebih menyukai metode FTP Client.
      Dalam tulisan sebelumnya kita sudah pernah mempelajari cara upload menggunakan File manager cpanel, nah dalam tutorial kali ini kita coba mempelajari cara upload file ke server hosting dengan bantuan software ftp (File transfer Protocol). Ftp ini bisa diunduh secara gratis. Contoh dari ftp adalah filezilla atau Leech FTP. FileZilla adalah aplikasi FTP Client yang Cross Platform, selain cepat dan ringan FileZilla juga mudah digunakan.
      Berikut ini saya akan mencontohkan bagaimana mengupload menggunakan ftp filezilla .
      • Pastikan software Filezilla telah terinstal di komputer anda. Jika belum anda dapat mendownload software filezilla gratis di http://filezilla.sourceforge.net. Setelah mendownload, silakan instal program tersebut.
      • Buka program filezilla, lalu masuk ke site manager , klik “File”, lalu pilih “Site Manager”
      • Klik “New Site” pada jendela Site Manager, lalu di Tab General, anda isikan :
        • Host : Alamat web anda, misal prothelon.com
        • Logontype : Normal
        • User : Username FTP anda (Username FTP sama dengan Username cPanel)
        • Password : Password FTP anda (Pass FTP sama dengan Pass cPanel

Sesi Lab 1: Tutorial Wireshark


1.    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.
d

   Kegunaan WireShark :
a.       Untuk trobleshooting masalah-masalah jaringan
b.      Untuk memeriksa keamanan jaringan
c.       Untuk mendebug implementasi protokol jaringan
d.      Untuk mempelajari protokol jaringan secara detail
e.       Untuk sniffing

Cara kerja Wireshark :
  Kita coba Share File, untuk melihat cara kerja WireShark. Misalnya kita share folder yang bernama < qwerty46 > ke laptop berm-IP < 192.168.1.21 > . Setelah di terima, cek pada WireShark. Wireshark akan membaca folder < qwerty46 >.  Seperti gambar di bawah ini, yang di lingkari
                      ~ 290 Create Request File: adhy\Desktop\qwerty46






Twitter Delicious Facebook Digg Stumbleupon Favorites More