Thursday, August 30, 2012

Modul 11 WEB SERVER


Modul 11
WEB SERVER


TUJUAN PEMBELAJARAN
1.      Mahasiswa memahami prinsip kerja web server.
2.      Mahasiswa memahami kegunaan/manfaat web server.
3.      Mahasiswa mampu melakukan installasi dan konfigurasi/setting web server.


Dasar Teori

Saat ini web merupakan salah satu layanan informasi yang banyak diakses oleh pengguna internet di dunia. Sebagai salah satu layanan informasi maka perlu dibangun web yang mampu menangani permintaan (request) dari banyak pengguna dengan baik (reliable) tanpa meninggalkan aspek keamanannya. Masalah keamanan merupakan salah satu aspek yang penting dalam pembangunan web karena kelalaian dalam menangani keamanan web server dapat berakibat fatal.
Apache merupakan salah satu distribusi web server yang populer dengan dukungan feature yang sangat banyak. Perhitungan statistik yang ada saat ini menunjukkan bahwa Apache menjadi web server yang paling banyak digunakan dalam dunia internet, yaitu mencapai nilai 60 % dari seluruh web server yang ada.

Keberhasilan Apache mencapai kepopuleran saat ini selain dikarenakan memiliki banyak feature yang sering tidak dijumpai pada web server yang lain, juga dikarenakan Apache merupakan aplikasi gratis yang berjalan dalam berbagai sistem operasi.
Ada beberapa aspek yang perlu diterapkan dalam mengamankan web server, antara lain:
1.      Layanan web server dengan low previllages
2.      Pengaturan akses terhadap web server
3.      Meminimalkan layanan publik pada mesin yang menjalankan web server
4.      Menyediakan filesystem khusus untuk layanan web server

Secara garis besar, sistem yang ada pada web sistem bisa digambar sebagai berikut ;

Web server bertugas memberikan layanan ke client. Web server berguna memberikan layanan kepada client.
Web application merupakan program tambahan yang ada pada server web yang membuat tampilan web bisa dinamis. Beberapa aplikasi yang dipakai seperti perl, asp, jsp dan php. Selain itu web application juga berfungsi sebagai penghubung dan pengambil data ke database sesuai permintaan client.
Pada web application dikenal istilah server side scripting dan client side scripting. Server side scripting adalah kode yang ditempat di server dijalankan oleh server, contoh dari server side misal adalah php. Sedangkan client side scripting adalah kode program yang ditempatkan di sisi client yang dijalankan oleh browser di client. Contohnya adalah javascript, applet, jscript dan vbscripts. Pada client side ini browser harus bisa menterjemahkan  bahasa pemprograman script tadi untuk bisa mengeksekusinya

Tugas Pendahuluan
1.      Apa fungsi/kegunaan dari Web server ?
2.      Apa program RPM yang dibutuhkan untuk menginstall dan mengkonfigurasi Web server ?
3.      Apa arti Virtual Host
4.      Fitur apa saja yang ditawarkan Web Server
5.      Sebutkan beberapa paket Web Server


Percobaan

1.            Pastikan package develoment tools spt gcc sudah terinstall pada sistem anda
2.            Konfigurasi apache yang akan kita install
§  Menggunakan suEXEC untuk menjalankan web application
§  Menggunakan php untuk web application
3.            Login sebagai root dan masukkan password root (setiap komputer bisa berbeda-beda)
4.            Persiapan
§  Untuk keamanan sistem, instal program web server pada user tersendiri misal user apache
§  Untuk itu buatlah user apache sebagai user biasa yang sementara untuk installasi mempunyai hak bisa menulis di terminal, siapkan juga direktori untuk installasi webserver misal di /opt/apache
§  [root@localhost conf]# /usr/sbin/useradd -s /bin/true -d /opt/apache apache
5.            Siapkan source apache, bisa download.
6.            Lakukan langkah installasi (dalam practice kali ini memakai tar.gz)
§  Extract source httpd
§  [apache@localhost src]$ tar xzf httpd-2.0.48.tar.gz
§  masuk ke deirektori httpd hasil extract, mulai melaksanakan installasi
§  [apache@localhost src]$ cd httpd-2.0.48
§  [apache@localhost httpd-2.0.48]$ ./configure -prefix=/opt/apache -enable-suexec -with-suexec-caller=apache -enable-info
§  [apache@localhost httpd-2.0.48]$ make
§  [root@localhost httpd-2.0.48]# make install
§  Konfigurasi file httpd.conf spt pada contoh :
§  berikan tempat file berada kepada user apache
§  [root@localhost httpd-2.0.48]# chown -R apache.apache /opt/apache/htdocs

7.            Siapkan source PHP, install php menggunakan apache,
§  [root@localhost src]# tar xjf php-4.3.4.tar.bz2
§  [root@localhost php-4.3.4]# ./configure -prefix=/opt/php -enable-discard-path -enable-ftp
§  [root@localhost php-4.3.4]# make
§  [root@localhost php-4.3.4]# make install
§  Copy php.ini
§  [root@localhost php-4.3.4]# cp php.ini-recommended /opt/php/lib/php.ini

8.            buat file php di /opt/apache/htdocs
9.            [root@localhost zone]# vi /opt/apache/htdocs/phpinfo.php
10.        dengan isi sbb :
#!/opt/php/bin/php
<? phpinfo() ?>

11.        start browser untuk memastikan php sudah jalan http://10.252.20.225/phpinfo.php

12.        Jika beres akan keluar spt diatas, jika tidak kembali lakukan installasi kemungkinan suexec yang belum beres.
I

I.             Laporan Resmi
 

Modul 4 SSH DAN SFTP

Modul 4
SSH DAN SFTP



TUJUAN PEMBELAJARAN
1.            Mahasiswa dapat memahami penggunaan service secure shell, secure copy dan secure ftp pada sistem operasi unix/linux.
2.            Mahasiswa mampu melakukan instalasi dan konfigurasi  ssh untuk meningkatkan keamanan data.
3.            Mahasiswa memahami kelebihan penggunaan secure shell dibanding service telnet, ftp dan perintah remote lainnya.

Dasar Teori

Secure Shell, Secure Copy & Secure FTP

Secure Shell (ssh) adalah suatu protokol yang memfasilitasi sistem komunikasi yang aman diantara dua sistem yang menggunakan arsitektur client/server, serta memungkinkan seorang user untuk login ke server secara remote. Berbeda dengan telnet dan ftp yang menggunakan plain text, SSH meng-enkripsi data selama proses komunikasi sehingga menyulitkan penyusup/intruder yang mencoba mendapatkan password yang tidak dienkripsi. Fungsi utama aplikasi ini adalah untuk mengakses mesin secara remote. Bentuk akses remote yang bisa diperoleh adalah akses pada mode teks maupun mode grafis/X apabila konfigurasinya mengijinkan.
SSH dirancang untuk menggantikan service-service di sistem unix/linux yang menggunakan sistem plain-text seperti telnet, ftp, rlogin, rsh, rcp, dll). Untuk menggantikan fungsi ftp dapat digunakan sftp (secure ftp), sedangkan untuk menggantikan rcp (remote copy) dapat digunakan scp (secure copy).
Dengan SSH, semua percakapan antara server dan klien di-enkripsi. Artinya, apabila percakapan tersebut disadap, penyadap tidak mungkin memahami isinya. Bayangkan seandainya Anda sedang melakukan maintenance server dari jauh, tentunya dengan account yang punya hak khusus, tanpa setahu Anda, account dan password tersebut disadap orang lain, kemudian server Anda dirusak setelahnya.
Implementasi SSH yang banyak dipakai saat ini adalah OpenSSH, aplikasi ini telah dimasukkan kedalam berbagai macam distribusi linux.  Redhat Linux versi 9 sudah menyediakan program tersebut dalam format RPM.

Fitur-fitur SSH

Protokol SSH menyediakan layanan sbb.:
·         Pada saat awal terjadinya koneksi, client melakukan pengecekan apakah host yang dihubungi sudah terdaftar pada client atau tidak.
·         Client mengirimkan proses autentifikasi ke server menggunakan teknik enkrisp 128 bit.
·         Semua data yang dikirimkan dan diterima menggunakan teknik enkripsi 128 bit sehingga sangat sulit dibaca tanpa mengetahui kode enkripsinya.
·         Client dapat memforward aplikasi Xwindows / X11 ke server, layanan ini dibuat .

Tugas Pendahuluan
  1. Apa kelebihan secure shell dibanding perintah telnet, ftp dan perintah remote lainnya.
  2. Sistem enkripsi apa yang digunakan oleh program ssh pada Redhat Linux 9 dan debian.
  3. Jelaskan bagaimana program ssh bekerja pada sistem jaringan client/server.

Percobaan

  1. Login ke sistem Linux sebagai root
  2. Cek apakah konfigurasi alamat IP untuk host.
    1. Jalankan perintah ifconfig,  tulis konfigurasi IP host anda.
Interface          : __________________.
IP Address      : __________________.
Subnet mask    : __________________.
    1. Jalankan perintah netstat –r, tuliskan default gateway host anda.
Default Gateway :
  1. Untuk menjalankan service ssh pada server diperlukan paket program yang bernama  openssh-server-xxx.rpm, sedangkan pada PC client diperlukan program openssh-clients-xxx.rpm.
Cek apakah program kedua program tersebut sudah ter-install atau belum. Jika sudah, langsung kerjakan langkah nomer 8.
    1. Jalankan perintah rpm –qa | grep openssh, tulis hasilnya.
    2. Ada berapa banyak program openssh yang terinstall di PC anda ?
    3. Apakah sudah ada program openssh-server ?
      Jalankan perintah rpm –qa | grep openssh-server , tulis hasilnya.
  1. Jika program openssh-server dan openssl-client belum ada, installasi dari source yanga ada

# rpm –ivh openssh-server*.rpm
# rpm –ivh openssh-clients*.rpm

  1. Catatlah di direktori mana saja program openssh-server di-install.

# rpm –ql openssh-server

    1. Dimana binary/executeble file program shh berada ?
    2. Dimana file konfigurasi ssh berada ?
    3. Bacalah manual dari program ssh server.

# man sshd

    1. Bacalah semua informasi yang ada di file konfigurasi ssh server.

# more /etc/ssh/sshd_config
# man sshd_config


  1. Catatlah di direktori mana saja program openssh-clients di-install.

# rpm –ql openssh-clients

    1. Catatlah semua binary/executable file yang ter-install.
    2. Dimana file konfigurasi ssh client berada ?
    3. Baca dan pahamilah manual dari program-program ssh client berikut ini.

# man ssh
# man scp
# man sftp
# man slogin

Jelaskan apa fungsi atau kegunaan dari masing-masing service ssh, scp, sftp dan slogin
    1. Bacalah semua informasi yang ada di file konfigurasi ssh client.

# more /etc/ssh/ssh_config
# man ssh_config

  1. Mengaktifkan service ssh server.
Untuk menjalankan service ssh service gunakan perintah  :
# /etc/rc.d/init.d/sshd start

      Untuk mematikan services gunakan perintah :
# /etc/rc.d/init.d/sshd stop

      Untuk menjalankan ulang services gunakan perintah :
# /etc/rc.d/init.d/sshd restart

  1.  Memeriksa proses sshd
Setelah program sshd (ssh daemon) dijalankan, periksalah apakah sshd sudah aktif di memory.

# ps –aux | grep sshd

Catatlah, berapa nomer proses sshd di PC anda.

# netstat –a | grep ssh
Protokol apa yang digunakan oleh program ssh ?


  1. Catatlah berapa nomer port yang digunakan oleh service ssh
                 
# cat /etc/services | grep ssh
      Berapa nomer port yang digunakan oleh service ssh ?

  1.  Menghapus rule firewall
Redhat Linux versi 8 atau yang lebih baru, akan mengaktifkan firewall secara default sehingga semua akses dari luar akan ditolak. Untuk kepentingan percobaan ini, ada baiknya untuk sementar semua rule firewall dihapus. Gunakan perintah :
# iptables -F

  1.  Uji coba dari localhost
Untuk menguji coba apakah ssh server sudah berfungsi dengan baik gunakan perintah :
 
# ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 82:0a:7f:f3:f3:5c:cf:87:db:a0:4d:b6:ce:20:26:1c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
root@localhost's password: *******
Last login: Wed May  5 08:46:13 2004
#
Jika anda ssh ke localhost dan terdapat pesan seperti di atas, maka ssh server sudah dapat berfungsi dengan baik.
Misalkan sshd sedang dalam keadaan tidak aktif, maka jika ada permintaan service ssh akan ditolak oleh server.
# /etc/rc.d/init.d/sshd stop       -- mematikan service
Stopping sshd:  OK  ]
# ssh localhost
ssh: connect to host localhost port 22: Connection refused             -- koneksi ssh ditolak
#
# /etc/rc.d/init.d/sshd start     


  1. Percobaan kelompok 
Percobaan-percobaan yang ada di bawah ini dilakukan secara berpasangan (2orang). Sebelum memulai percobaan, buatlah user baru sbb. :
# useradd userkiri
# passwd userkiri
# useradd userkanan
# passwd userkanan
Keterangan : userkiri digunakan untuk user yang duduk di sebelah kiri, dan userkanan untuk user yang duduk di sebelah kanan. Jangan lupa beritahu pasangan anda password yang sudah anda tentukan.
Setelah itu editlah file /etc/hosts sbb. :
# cp /etc/hosts /etc/hosts.asli    -- backup file
# vi /etc/hosts                    -- edit file
----- tambahkan di baris paling akhir 
 
127.0.0.1       localhost.localdomain   localhost
ip_pc_anda      nama_pc_anda
ip_pc_sebelah   nama_pc_sebelah


Contoh :  Misalkan ip anda 10.252.105.111 dan anda duduk dikiri, maka anda dapat mengisi file /etc/hosts sbb. :
# vi /etc/hosts                    -- edit file
----- tambahkan di baris paling akhir 
127.0.0.1       localhost.localdomain   localhost
10.252.105.111  pckiri
10.252.105.112  pckanan
Setelah itu lakukan pengecekan konektifitas.
# ping 10.252.105.111   ---- cek konektivitas
# ping pckiri
# ping 10.252.105.112   ---- cek konektivitas
# ping pckanan

  1. Mencoba ssh server

Jika anda duduk di kiri, ketiklah perintah berikut ini. Jika anda duduk sebelah kanan, sesuaikan dengan perintah sejenis.

# hostname                   -- catat nama hostnya
# ssh pckanan –l userkiri
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 82:0a:7f:f3:f3:5c:cf:87:db:a0:4d:b6:ce:20:26:1c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
userkiri@pckanan's password: *******
Last login: Wed May  5 08:46:13 2004
$ whoami
$ finger           -- ada berapa orang yang login ?  
$ hostname         -- skr anda ada dimana ?
$ pwd              -- dimana home direktory anda ?
$ exit 
# hostaname        -- kembali ke pc asal  
 

Setiap anda melakukan ssh ke remote PC, dimanakah home direktori anda ?
Apakah anda dapat berpindah atau masuk ke direktori /etc, /var, /bin, /usr, /home ?
Direktori apa saja yang tidak dapat anda masuki ?

  1. Mencoba service sftp
Perintah-perintah  berikut ini akan berhubungan dengan service sftp. Jika anda duduk di kiri, ketiklah perintah berikut ini. Jika anda duduk sebelah kanan, sesuaikan dengan perintah sejenis.


# hostname                 -- catat nama hostnya
# su –l userkiri           -- mengganti user
$ pwd                      -- home dir. userkiri
$ whoami 
# sftp pckanan 
  userkiri@pckanan's password: *******
  Last login: Wed May  5 08:46:13 2004
sftp> whoami
sftp> finger           -- ada berapa orang yang login ?  
sftp> hostname         -- skr anda ada dimana ?
sftp> pwd              -- dimana home direktory anda ?
sftp> exit 
$ hostname         -- kembali ke pc asal  
 

  1. Mencoba upload dan download file
Pertama buatlah beberapa file di PC anda, lalu upload ke PC sebelah menggunakan perintah sftp.

$ cd
$ hostname >namapcku
$ whoami > loginku
$ echo $HOME > homedirku
$ mkdir dataku
$ cp /etc/g* /home/dataku
$ ls –l
# sftp pckanan 
  userkiri@pckanan's password: *******
sftp> ?          -- baca & pelajari helpnya
sftp> mput *     -- upload file
sftp> lpwd       -- local dir. 
sftp> lls        -- local ls
sftp> lcd dataku  -- cd dataku di local pc
sftp> lpwd        -- local pwd
sftp> mkdir datakuremote  -- buar dir baru di remote pc
sftp> cd datakuremote
sftp> mput *    --upload semua file di dataku (local pc)
                --ke datakuremote (remote pc)
sftp> ls         -- ls di remote pc
sftp> pwd        -- pwd di remote pc
sftp> lls        -- ls di local pc
sftp> lpwd       -- pwd local pc
sftp> cd /etc
sftp> ls
sftp> lmkdir hasildownload
sftp> lcd hasildownload
sftp> mget passwd*  -- download file
sftp> mget group*
sftp> mget host*
sftp> ls
sftp> lls
sftp> bye
$ hostname         -- kembali ke pc asal  


Laporan Resmi