Senin, 15 April 2013

Proxy etc, My Homework, Just please part 2



Jaringan komunikasi adalah mata kuliah yang mengharuskan saya belajar mengenai jaringan tentunya dan bagaimana cara berkomunikasi, entah karena alasan itu ataupun alasan lain maka saya harus memberikan laporan resmi melalui sebuah blog. Jadi blog ini murni saya buat karena tugas tersebut. Baiklah, selamat menikmati bagi teman-teman yang berniat dan asisten yang menilai,.. :D
Berbicara tentang apakah laporan kali ini? Kasus pertama yang akan saya kupas adalah ROUTING.
Routing sederhana dibuat dengan cara membuat script bash nano misal nano nyala.sh dan jalankan dengan perintah sh nyala.sh. Jadi ketikkan:

!#/bin/bash
uml_switch -unix switchA > /dev/null < /dev/null &

xterm -T hostA -e linux ubd0=hostA,uml umid=hostA eth0=daemon,,,switchA &
xterm -T hostB -e linux ubd0=hostB,uml umid=hostB eth0=daemon,,,switchA &

xterm -T routerA -e linux ubd0=routerA,uml umid=routerA eth0=tuntap,,,151.76.24 eth1=daemon,,,switchA &

Kemudian Setting IP masing masing host dan router dengan perintah: 


             nano /etc/network/interfaces

 Lalu isikan seperti berikut :

#hostA

auto lo
auto eth0

iface eth0 inet static
address 10.151.77.51
netmask 255.255.255.248
gateway 10.151.77.49



#hostB

auto lo
auto eth0

iface eth0 inet static
address 10.151.77.50
netmask 255.255.255.248
gateway 10.151.77.49



#routerA

auto lo
iface lo inet loopback

auto eth0

iface eth0 inet static
address 10.151.76.26
netmask 255.255.255.252
gateway 10.151.76.25

auto eth1
iface eth1 inet static
address 10.151.77.49
netmask 255.255.255.248


Tuntap    10.151.76.24/30
DMZ    10.151.77.48/29


            IP yg boleh digunakan ada 8 karena jumlah netmask 29, tapi karena IP awal dan akhir tidak boleh dipakai, maka IP yang boleh dipakai adalah 10.151.77.49, 10.151.77.50, 10.151.77.51, 10.151.77.52, 10.151.77.53 dan 10.151.77.54. Netmask yg dipakai karena berasal dari IP yg boleh dipakai yaitu 32-29=3 berarti 2^3=8 dan 8-1=7 maka 255-7=248 begitu seterusnya. eth0 berhubungan langsung dengan tuntap setelah selesai melakukan setting IP dll-nya lakukan restart pada masing-masing host+router dengan perintah : service networking restart

Kemudian buat script iptables.sh di router untuk menyimpan perintah iptables agar host dapat bertindak seperti router dapat melakukan ping ke address luar

# DI router, agar klien bisa akses jaringan luar

# Set up IP FORWARDing and Masquerading

    iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
    iptables --append FORWARD --in-interface eth1 -j ACCEPT


# Enables packet forwarding by kernel / mengaktifkan forward paket


    echo 1 > /proc/sys/net/ipv4/ip_forward


Setelah itu lakukan langkah-langkah berikut secara berurutan :
1.    lakukan perintah sh iptables.sh
2.    Install apacheMySQL
pertama kali lakukan perintah apt-get install update

apt-get install apache2

3.    Install mysql-server

apt-get install mysql-server

password mysql-server = klpc6

4.    Install mysql-client

apt-get install mysql-client

5.    Install phpmyadmin

apt-get install phpmyadmin

6.    Install Lynx
7.    Install Links2

Apabila ketika setting tiba-tiba muncul pemberitahuan FATAL->Fail to Fork artinya memori host yang bertindak menjadi server tidak mencukupi, jadi untuk menambah memori dapat dilakukan dengan menambahkan perintah mem=100M dibelakang umid=<nama_host>.

Lalu untuk merestart mysql lakukan perintah :

/etc/init.d/my sql restart

Jika muncul tanda atau pemberitahuan failed, lakukan perintah :

cd /etc/mysql/
ls
nano my.cnf


kemudian cari bind-address dan ganti IP yang ada dg IP host yang jadi server (tempat kita install).



Lalu bagaimana caranya jika ingin membuat 2 web server? Caranya adalah lakukan perintah berikut :

nano /etc/apache2/sites-enabled/000-default


Kemudian edit isinya hingga menjadi seperti berikut :

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /home/admin/
        <Directory />
                Options +Indexes FollowSymLinks Includes +ExecCGI
                AllowOverride All
                Allow from all
        </Directory>
        <Directory /home/admin/>
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
          Options Indexes FollowSymLinks Includes ExecCGI
                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>


Listen 8080
<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>


Lalu jalankan perintah berikut ini di terminal :

htpasswd -c /usr/lib/cgi-bin/
setting password .htaccess


Dalam kasus tertentu akan terdapat kemungkinan error saat proses ini dijalankan. Untuk mengetahui penyebab error tersebut kita dapat mengetikkan perintah berikut ini :
 tail /var/log/apache2/error.log

Setiap terjadi perubahan dalam konfigurasi lakukan restart apache dengan perintah :

service apache2 restart

Kemudian lakukan perintah :

a2enmod userdir

kemudian edit script : nano /etc/apache2/mods-enabled/userdir.conf
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>


lakukan edit script : nano /etc/apache2/mods-available/php5.conf
hingga menjadi seperti ini dengan memberikan comment dengan "#"

<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>


lakukan restart pache dengan perintah : service apache2 restart
dan buat folder public_html di $user(root) dengan perintah :

 mkdir /home/$USER/public_html

akses melalui host/client dengan perintah :

 lynx 10.151.77.51/c6

Lalu bagaimana cara configurasi webserver agar dapat menggunakan SSL pada Apache HTTP Server anda dengan studi kasus :  self-signed-certificate..? Pertama lakukan perintah :
 a2enmod ssl

buat folder dengan perintah :

mkdir /etc/apache2/ssl

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

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



lakukan restart pada apache :


service apache2 restart

untuk meng-enable ssl lakukan perintah :

 a2ensites default-ssl

edit script : nano /etc/apache2/sites-enabled/default-ssl


dengan menganti certificate file pakai :
/etc/apache2/ssl/apache.pem 
/etc/apache2/ssl/apache.key


lakukan cek dengan host(client) melalui perintah : lynx https://10.151.77.51/c6