Pages

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


 Jawaban

1.Routing sederhana dibuat dengan cara membuat script bash nano misal nano nyala.sh dan jalankan dengan perintah sh nyala.sh

!#/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 &

Setting IP masing masing host dan router dengan perintah nano /etc/network/interfaes
   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,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


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

2. - pertama kali lakukan perintah apt-get install update
- Install lynx
- Install apache
    apt-get install apache2
- Install mysql-server
    apt-get install mysql-server
    set username dan password mu bebas
- Install mysql-client
    apt-get install mysql-client
- Install phpmyadmin
    apt-get install phpmyadmin

lakukan reboot tiap kali selesai install aplikasi untuk menghindari error



3.membuat 2 web server dengan cara lakukan perintah :
nano /etc/apache2/sites-enabled/000-default

edit isinya hingga menjadi seperti berikut :


        ServerAdmin webmaster@localhost

        DocumentRoot /home/admin/
       
                Options +Indexes FollowSymLinks Includes +ExecCGI
                AllowOverride All
                Allow from all
       

       
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
       

 

       Alias /example/ /home/admin/example/example.html

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       
                AllowOverride None
          Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
       


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


        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




Listen 8080

        ServerAdmin webserver@localhost

        DocumentRoot /var/www
       
                Options FollowSymLinks
                AllowOverride None
       

       
                Options Indexes FollowSymLinks MultiViews
                AllowOverride AuthConfig
                Require valid-user
                AuthType basic
                AuthName "Basic Auth"
                AuthUserFile /usr/lib/cgi-bin/.htusers
         AllowOverride None
       

       
                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
       


- buat file .htaccess di directory /var/www dengan menjalankan perintah
nano /var/www/.htaccess

- tambahkan kode berikut pada file .htaccess nya
  AuthUserFile /etc/apache2/.htpasswd
  AuthGroupFile /dev/null
  AuthType basic
  require valid-user

- jalankan perintah
htpasswd -c /var/www  htpasswd

- set username dan password mu bebas

- restart apache2 dengan menjalankan perintah
 service apache2 restart

- buat direktori example dengan menjalankan perintah
mkdir /home/admin/example

- buat file html di dalam direktori example tersebut dengan nama example.html


4. - lakukan perintah : a2enmod userdir
- kemudian edit script : nano /etc/apache2/mods-enabled/userdir.conf
- hingga menjadi seperti dibawah ini


        UserDir public_html
        UserDir disabled root
 
       
        AllowOverride All
        Options MultiViews Indexes SymLinksIfOwnerMatch
       
                Order allow,deny
                Allow from all
       

       
                Order deny,allow
                Deny from all
       

       


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


   
    SetHandler application/x-httpd-php
   

   
    SetHandler application/x-httpd-php-source
   

    # To re-enable php in user directories comment the following lines
    # (from to .) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    #
    #   
    #        php_admin_value engine Off
    #   

    #


- lakukan restart pache dengan perintah:

service apache2 restart 

- buat folder public_html di $user(root) dengan perintah : mkdir /home/$USER/public_html   --> lakukan perintah ini lagi jika ingin menambah user

akses melalui host/client dengan perintah : lynx localhost:~$USER



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


6. - dalam terminal, lakukan perintah:
top

-  ketik shift+m

- maka list akan terurut berdasarkan  RES yang terbesar. angka satuan KB jika tidak ada huruf m di belakang tiap angka

- catat RES apache2 yang terbesar

- quit

- stop apache2 dengan perintah
service apache2 stop

- jalankan perintah
free -m --> jika ingin satuan MB atau
free -k --> jika ingin satuan KB

- Catat nilai yang dicatat sama used

- Kalikan sama 0.8 dan catat

- Bagi hasil di atas dengan nilai RES tertinggi

- buka apache2.conf dengan perintah
nano /etc/apache2/apache2.conf

- Set MaxClients yang udah tadi dihitung

- Set KeepAlive ke Off.

- Set Timeout jadi 30

- MaxKeepAliveRequest antara 70-200

- Set MinSpareServers 10-20% MaxClient

- Set MaxSpareServers 10-20% MaxClient

- Set StartServers sama dengan MaxSpareServers dan MinSpareServers

- Set MaxRequestsPerChild antara 500-10000.

- restart apache dengan menjalankan perintah
service apache2 restart

Tidak ada komentar:

Posting Komentar