Facebook Twitter
Comments

Java Web Server

Ngangur gini enaknya lanjutin blogging lagi deh
Kemarin kan kita sudah mencoba Web Server pada host UML yang kita buat, sekarang kita buat Web Server dari Java. But How??? These are some tricky ways to do that. Any body gonna have time for that, hehe...
1.       Pertama kita buat class baru pada project kita dengan nama JavaWebServer dan add this code chuy
package javawebserver;

public class JavaWebServer {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        // Kita instansiasi Web Server kita
        WebServer ws = new WebServer();
        ws.start();
    }
}

2.       Lanjut, kita buat class java baru lagi dengan nama WebServer
package javawebserver;

import java.awt.Desktop;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class WebServer {
    private FileInputStream web;

  /**
   * WebServer constructor.
   */
    protected void start() {
    ServerSocket s;

    System.out.println("Webserver starting up on port 8080");
    System.out.println("(press ctrl-c to exit)");
  
    //inisialisasi server dengan port 8080, kita pakai try catch utk menghandling apabila
    // kegagalan dalam membuka port tidak menuju undefined state.
    try {
      s = new ServerSocket(8080);
    } catch (Exception e) {
      System.out.println("Error: " + e);
      return;
    }

    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();
      
        // Membaca file dari input file dengandirektori ternentu, kita bisa ganti direktori
        //  tersebut dengan format apabila listing direktori menggunakan slash dobel.
        File file = new File("D:\\smt 4\\Pweb\\Pemrograman Web C & D\\contoh\\1.html");
  FileInputStream fis;

        fis = new FileInputStream(file);

   //isi dari permintaan pengguna
       
        out.println("HTTP/1.0 200 OK");
        out.println("Content-Type: text/html");
        out.println("Server: Bot");
        out.println("");
      //  out.println("<H1>Halo ITS!!!</H2>");
       
      
  

   int content;
   while ((content = fis.read()) != -1) {
    // Konversi ke karakter sebagai tag html dan dibaca oleh browser dalam bentuk
    //  tampilan html.
    out.print((char) content);
   }      
        out.flush();
        remote.close();
      } catch (Exception e) {
        System.out.println("Error: " + e);
      }
    }
  }
}

3.       Code udah jadi tuh. Sekarang kita run deh dan akses melalui browser dengan ketikkan URL ini pada alamat browser kita
localhost:8080
maka akan tampil website server dari file html yang dirujuk pada D:\smt 4\Pweb\Pemrograman Web C & D\contoh\1.html.

Not so difficult is it? You can do that.


Continue reading ...
Comments

Proxy & Konfigurasi Squid Proxy

Hey guys, kemarin kita udah bahas Web Server kan, nah kita lanjut lagi nih, sekarang tentan ibu-ibu arisan, hehe, bukan itu, tapi tentang Proxy Server dan konfigurasi Squid Proxy, aseek, tambah hot lagi, butuh secangkir kopi nih buat nulis, lanjut gan...

Proxy Server ialah sebuah komputer server yang bertindak sebagai komputer lainnya untuk menerima/ melakukan request terhadap konten dari sebuah jaringan internet atau intranet. 

Fungsi dari Proxy Server
1.       Bertindak sebagai gateway terhadap dunia Internet untuk setiap komputer klien.
2.       Untuk mengamankan jaringan pribadi yang terhubung langsung ke  jaringan publik. 
3.       De el el (silahkan cari sendiri, hehe #feelikeaboss)…

Jenis-jenis proxy
1.       Forward Proxy : menerima permintaan dari sebuah jaringan internal dan meneruskannya ke internet.

2.       Open Proxy: proxy server yang bisa diakses semua pengguna internet. Anonymous open proxy mengizinkan pengguna untuk menyembunyikan IP saat menggunakan layanan internet.

3.       Reverse Proxy: menerima permintaan dari internet dan meneruskannya ke server yang ada di jaringan internal. Yang membuat permintaan terhubung ke proxy dan respon yang dikembalikan layaknya datang langsung dari sebuah proxy server.

...

EOF of Proxy, Now go to squid proxy guys, check this out..

...
Squid Proxy adalah aplikasi komputer yang berfungsi untuk mempercepat koneksi internet serta menghemat penggunaan Bandwidth. Aplikasi ini sangat cocok untuk digunakan oleh para pengguna yang menggunakan koneksi dari kartu prabayar (modem) yang menggunakan paket kuota (bandwidth limited).

Fungsi Squid Proxy!!
Sebagian besar pengguna internet mungkin tidak menyadari bahwa setiap kali mengakses situs sebenarnya yang mereka lakukan adalah mendownload semua data berupa tulisan, link, teks, gambar dan file lain dalam halaman tersebut. Nah, data-data tersebut akan disimpan ke dalam komputer dalam bentuk cache sehingga pada saat berkunjung kembali ke situs tersebut, semua data yang terdapat dalam halaman tersebut tidak akan di download seluruhnya melainkan hanya beberapa update-an terbarunya saja dan sebagiannya lagi diambil dari cache yang tersimpan dalam komputer.

Cara install Squid Proxy
Pertama-tama install terlebih dahulu squid melalui terminal atau melalui command prompt dengan cara :
# apt-get install squid
Setelah selesai maka Squid langsung dapat di konfigurasikan dengan cara :
# nano /etc/squid/squid.conf
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
Baru kemudian kita mulai bermain-main dengan konfigurasi script Squid :
# nano /etc/squid/squid.conf

Cara Setting Configurasi Squid Proxy
Biasanya untuk mengatur kecepatan internet kita lakukan Filtering:
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

nih contoh screenshot'nya bray


EOF beneran, hehehehe, next is Java Web Server, coming soon..
Continue reading ...
Comments

Web Server: SSL self-signed-certificate

Nah, lanjut lagi nih, mumpung lagi God Mode

Sekrarang topic bahasannya sesuai kemauan ane, hehe, yakni melakukan konfigurasi Web Server agar dapat menggunakan SSL pada Apache HTTP Server kita…
Kata kuncinya studi kasus kali ini:  self-signed-certificate

Bingung kan, yaudah, hehe, let’s do with this

Singkat cerita Apache yang menjalankan https (port 443), memerlukan sertifikat keamanan untuk memastikan bahwa site yang diakses adalah aman. Untuk membuat SSl certificate yang self signed gunakan langkah berikut ini:

1.       Pada terminal, lakukan perintah berikut untuk menghidupkan SSL:
a2enmod ssl

2.       Buat folder sal pada apache dengan perintah
mkdir /etc/apache2/sal

3.       Dapatkan certificate dengan perintah dibawah ini :
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key

4.       isi setingan seperti dibawah ini :
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New Jersey
Locality Name (eg, city) []:Absecon
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SoftwareDev, LLC
Organizational Unit Name (eg, section) []:Web Services
Common Name (eg, YOUR name) []:archimedes.mydomain.com
Email Address []:support@mydomain.com


5.       lakukan restart pada apache : service apache2 restart

6.       untuk meng-enable ssl lakukan perintah : a2ensites default-ssl

7.       edit script : nano /etc/apache2/sites-enabled/default-ssl dengan menganti certificate file pakai :
/etc/apache2/ssl/apache.pem 
/etc/apache2/ssl/apache.key

8.       Sebagai contoh kita lakukan cek dengan host(client) melalui perintah : lynx https://170.0.0.101/admin


screenshot By c8


Cukup HOT kan, udah kan ter-certified Web Server kita, lanjut lagi setelah ini kita konfigurasi yang lebih hot, :D

SEMANGAT!
Continue reading ...
Comments

Web Server: mod_userdir

Nah kemarin kan sudah jadi tuh web servernya, lanjut lagi nihh cerita kita..

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 yakni berupa homepage mereka.

Gimana caranya kah??? Poin pentingnya yakni kita perlu lakukan konfigurasi Web server agar memiliki fasilitas user dapat memiliki web pagenya sendiri (mod_userdir). Nah gimana itu mod_userdir? Bingung lagi kan, hehehe, so let’s check this out with step by step

Pada terminal, lakukan perintah berikut agar web server yg di konfigurasi multi fungsi:
a2enmod userdir

Kita membutuhkan user (siapa saja) yang kita buat dapat memiliki web page sendiri (misal nama web page-nya public.html). Kita perlu edit script userdir.conf yang ada pada apache dengan menambahkan direktori yang mengakses folder user yang akan langsung diarahkan ke web page-nya dengan perintah:
nano /etc/apache2/mods-enabled/userdir.conf
Kita ubah hingga menjadi seperti dibawah ini:
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                                AllowOverride All
                                Options MultiViews Indexes SymLinksIfOwnerMatch
                                <Limit GET POST OPTIONS>
                                        Order allow,deny
                                        Allow from all
                                </Limit>
                                <LimitExcept GET POST OPTIONS>
                                        Order deny,allow
                                        Deny from all
                                </LimitExcept>
        </Directory>

Setelah selesai edit userdir.conf-nya, kita edit script php5.conf-nya untuk meng-enable php bila kita akses file php, di direktori user:
nano /etc/apache2/mods-available/php5.conf

Ubah menjadi seperti dibawah dengan memberikan comment dengan "#" di line berikut yang telah diisi tanda
<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
                SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
                SetHandler application/x-httpd-php-source
    </FilesMatch>
    # To re-enable php in user directories comment the following lines
    # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    #<IfModule mod_userdir.c>
    #    <Directory /home/*/public_html>
    #        php_admin_value engine Off
    #    </Directory>
    #</IfModule>
</IfModule>

Nah, konfigurasi sudah jadi, selanjutnya kita cek kebenarannya ke TKP, pertama lakukan restart pache dengan perintah:
service apache2 restart

Konfigurasi user kan sudah dibuat, nah selnajutnya tambahkan user-nya di home kita, buat folder public_html di $user(root) dengan perintah:
mkdir /home/$USER/<folder user>(misal nama user-nya public_html)

Masuk ke folder dan tambahkan file html didalam dan kita edit dengan tag tag html as you want dengan perintah
nano index_html (nama html-nya index.html)

akses melalui host/client dengan perintah : lynx 170.0.0.101(IP server)/c8(folder user baru yang dibuat)

screenshot by me

Apa negara latin di Amerika Selatan? BeRhAZil, hehe, agak alay dikit, lanjut yang ke book berikutnya ya, tetap semangat!

Continue reading ...
Comments

Web Server : Konfigurasi Web Site port :80 dan :8080

Lanjut lagi nih, mau Inge-game DotA tapi masih mabuk kepayang  sama blogging, #HOAX, hehehe

Jadi sekarang kita buat host kita sebagai server dimana dapat menangani 2 buah website yang ditangani oleh web server ini yaitu ip_anda:80, ip_anda:8080.

Cara membuat 2 web server dengan cara lakukan perintah :
nano /etc/apache2/sites-enabled/000-default
lakukan konfigurasi script menjadi seperti berikut :
<VirtualHost *:80 >
        ServerAdmin webmaster@localhost

        DocumentRoot /home/admin
        <Directory />
                Options FollowSymLinks
                AllowOverride All
                Allow from all
        </Directory>
        <Directory /home/admin/example>
        DirectoryIndex example.html
        </Directory>
        <Directory /home/admin/>
                Options Indexes FollowSymLinks MultiViews
                ErrorDocument 403 /example/example.html
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:8080>
        ServerAdmin webserver@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig
                Require valid-user
                AuthType basic
                AuthName "Basic Auth"
                AuthUserFile /usr/lib/cgi-bin/.htusers
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig
                Require valid-user
                AuthType basic
                AuthName "Basic Auth"
                AuthUserFile /usr/lib/cgi-bin/.htusers
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Jadi kita mengkonfigurasi pada website dengan port :80  dengan subdirektori /admin yang mana sebenarnya file-filenya terletak di /home/admin, berbeda dengan file-file lain yang terletak di /var/www. Konfigurasi direktori sudah terlihat langsung di script.

Ketika mengakses port :8080 user harus menginputkan username dan password (menggunakan .htaccess). Kita perlu menambahkan code Auth... untuk proses authentification saat membuka port 8080 tersebut.

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. Disini pada file .htaccess kita konfigurasi dengan perintah
nano .htaccess
dan menambhakan code
Options -Indexes


Jalankan di terminal :
htpasswd -c /usr/lib/cgi-bin/
setting password .htaccess

Kalau ada error ditengah jalan dan ingin tahu karena apa, pakai perintah :
tail /var/log/apache2/error.log

setiap melakukan perubahan dalam konfigurasi semua yang terdapat dalam apache, lakukan restart apache dengan perintah :
service apache2 restart


Saat mengakses port 80: misal dengan perintah dengan tidak menampilkan driektoriyang ada, listing direktori telah di-disable
lynx 170.0.0.101:80




Saat akses port 8080
lynx https:/170.0.0.101


Sudah lumayan banyak kan, itu baru web site pada web server masih ada yang HOT lainnya, dijamin ini HOT beneran, pantengin terus yaa..
Continue reading ...
Comments

Web Server > Lanjutan UML

Nah, tadi kan UML udah, tapi belum selesai itu, kita belum routing, #seriusduludah capek ni dating ma komputer
Web server merupakan software yang memberikan layanan data yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman - halaman web yang umumnya berbentuk dokumen HTML









1.       Kita konfigurasi topologinya agar router dan klien saling terkoneksi
Pada router kita konfigurasi di interface-nya dengan perintah
nano /etc/network/interfaces
dan kita tambahkan kode seperti berikut:
auto eth0
iface eth0 inet static
        address 10.151.76.34 (tuntap kita+2)
        netmask 255.255.255.252 (default)
        gateway 10.151.76.33 (tuntap kita+1)

auto eth1
iface eth1 inet static
        address 170.0.0.1 (IP digit terakhir terserah kita)
        netmask 255.255.255.0 (default)

2.       Pada tiap host juga kita konfigurasi interface-nya dnegan perintah
nano /etc/network/interfaces
dan kita tambahkan kode seperti berikut (contoh salah satu host):
auto lo eth0
iface lo inet loopback
iface eth0 inet static
        address 170.0.0.101 (IP host ini, host yang lain gunakan IP dengan kode terkahirnya yg berbeda)
        netmask 255.255.255.0
        gateway 170.0.0.1

3.       Setelah semua terkonfigurasi, lakukan beberapa perintah berikut untuk forwarding dan routing koneksi ke host
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

4.       Untuk melakukan tes koneksi lakukan ping (misal dengan perintah ping its.ac.id maka akan muncul dokumentasi apakah koneksi kita berjalan apa tidak, bila berjalan maka setting kita berhasil, kalau tidak ulang cek tabling IP yang dilakukan di router dan host apakah sudah benar apa belum).Kita juga bisa melakukan install (seperti apache, mySQL, dan phpMyAdmin dengan perintah apt-get install <sesuai aplikasinya>) namun sebelumnya dianjurkan untuk update dahulu dengan perintah apt-get update)

5.       Berhasil sudah

6.       Sudah berhasil, hehe

Itu tapi kan masih sederhana ya, untuh yang lebih HOT lagi (tentang Web Server-nya, bukan yang hot-hot yang lain), lihat artikel selanjutnya, bruakakakaka..

SALAM SUPER DARI BAPAK DIA
Continue reading ...
Comments

UML (a.k.a User Mode Linux)


Sabtu ini mari nikmati dating kali ini di depan computer dengan blogging, #surambener, J
Sesuai judul, kali ini kita akan membahas tentang Praktikum Modul 2 Jarkom saya dengan sub materi UML (yaiyalah masa kita mau bahas ion air yang gambang di laut Baliku tercinta..)

Sebelum melangkah jauh, UML itu apa ya? Dari abang wikipedia (a.k.a abang wiki) bilang UML itu adalah
-          Unified Modeling Language, salah satu pemodelan rekayasa perangkat lunak.
-          Universitas Muhammadiyah Lampung, salah satu Perguruan Tinggi Muhammadiyah.
-          User-mode Linux, sebuah port arsitektur dari Linux Kernel
TADAAA... Dan yang dibahas itu yang ketiga yaitu User Mode Linux (UML)

User Mode Linux (UML)  adalah virtual engine untuk menjalankan proses pada environment Linux yang aman. UML secara umum bisa disebut sebagai kernel dalam kernel. Kernel dalam UML benar-benar mirip dengan kernel yang menjalankan sebuah sistem operasi linux. Bisa diubah kodenya, di-compile, di-start/restart, dan di-shutdown.

Kegunaan dari UML adalah:
1.       Virtual hosting
2.       Kernel development dan debugging
3.       Mencoba jaringan komputer secara virtual
4.       De Le Le (dll)…

Nah, sekarang bagaimana cara bikinnya, check this out:
1.   Berangkat dari terminal Linux , kita login terlebih dahulu ke user praktikum yang telah desidiakan oleh asisten
2.   Buat script dengan ektensi *.sh sebelumnya (terminal Linux ya, jangan terminal Bratang atau Bungurasih, dijamin ga nemu caranya). Perintahnya
Perintahnya yaitu:
nano <script_nama>.sh
3.    Bikin switch ( dengan perintah ini tanpa enter)
uml_switch -unix <switch_name> > /dev/null < /dev/null &
Bikin host (tanpa enter)
xterm -T <host_name> -e linux ubd0=<host_name>,jarkom_fs umid=<host_name> <eth_berapa??>=daemon,,,<host_switch> &
Bikin router (tanpa enter)
xterm -T (router_name) -e linux ubd0=<router_name>,<uml_filesystem> umid=(router_name) <eth??>=daemon,,,<router_switch> (bisa lebih dari satu sambungan) &
Catatan :
Jarkom_fs itu adalah vritual host-nya
Eth melambangkan network interface card-nya
kita bisa menginisialisasikan jumlah memori yang akan digunakan router dan host dengan menambahkan kode sebelum tanda “&”  mem=<misal 100MB dengan tulisan 100M>
4.    Simpan, dan jalankan script kita dengan perintah
sh <script_nama>.sh
Maka script UML kita akan dijalankan, muncul sejmlah window router dan host yang kita buat.
5.    UML kita berhasil
6.    Yaudah, udah berhasil UML kita, hehe..

Itulah tentang User Mode Linux yang dapat saya bahas kali ini, habis ini kita bahas tentang Web Server dan Web Proxy, #malammingguDia
Continue reading ...