Keamanan sistem informasi

38
UJIAN AKHIR SEMESTER (UAS) / FINAL PROJECT VirtualHost + SSL MODUL oleh: WINDI ROHMA HENY 1145305427 JURUSAN SISTEM INFORMASI FAKULTAS SAINS DAN TEKNOLOGI

Transcript of Keamanan sistem informasi

Page 1: Keamanan sistem informasi

UJIAN AKHIR SEMESTER (UAS) / FINAL PROJECTVirtualHost + SSL

MODUL

oleh:

WINDI ROHMA HENY1145305427

JURUSAN SISTEM INFORMASIFAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SULTAN SYARIF KASIM RIAUPEKANBARU

2017

Page 2: Keamanan sistem informasi

Menjalankan CMD sebagaiAdministrator

Cara 3 (Menjalankan CMD melalui Windows + R)1. Klik tombol windows yang ada pada keyboard + R lalu ketikan CMD.

Setelah kita berhasil menjalankan CMD, maka kita lakukan pengujian dengan menjalankan perintah SET US, perintah SET US disini gunanya hanya untuk menampilkan Environment Variable yang dimulai dengan huruf US. CMD yang telah dijalankan sebagai administrator akan memiliki judul Administrator: seperti terlihat pada gambar berikut:

Page 3: Keamanan sistem informasi

BERKAS HOSTHost file digunakan oleh sistem operasi untuk meng-override settingan DNS yang

diberikan oleh DNS Server. Pada Microsoft Windows, host file terdapat pada.

%WINDIR%\System32\Drivers\etc\hosts

Misalnya

C:\Windows\System32\drivers\etc\hosts

Disini kita perlu hak akses sebagai administrator untuk dapat mengedit file hosts untuk menambahkan alamat IP kita.

Sebagai contoh dalam modul ini penulis akan menambahkan alamat IP 127.0.0.0 dengan DNS rahmad.riansyah.com pada file hosts.

Adapun langkah - langkah pengerjaanya adalah sebagai berikut.1. Buka CMD, Lalu ketikan perintah notepad \Windows\System32\drivers\

etc\hosts lalu klik enter.

2.Setelah anda menekan enter maka secara otomatis CMD akan membuka file hosts. lalu yang perlu kita lakukan adalah menambahkan 127.0.0.1 windi.com pada baris bagian bawah.

Page 4: Keamanan sistem informasi

3.Setelah selesai menambahkan 127.0.0.1 rahmad.riansyah.com pada baris bagian bawah maka pilih file » save.

4.Setelah anda selesai menyimpan konfigurasi yang telah anda lakukan langkah selanjutnya adalah kita melakukan pengujian apakah berkash hosts tersebut telah berhasil ditambahkan atau belum, adapaun cara yang kita gunakan adalah dengan perintah ping rahmad.riansyah.com pada CMD.

Page 5: Keamanan sistem informasi

Setting VirtualHost dengan Apache (XAMPP)Salah satu HTTP Daemon yang paling banyak digunakan adalah apache.

http://httpd.apache.org/ Apache mendukung VirtualHost, dokumentasi resmi dari Apache 2.4 untuk VirtualHost ada di sini:

http://httpd.apache.org/docs/2.4/vhosts/ http://httpd.apache.org/docs/2.4/mod/core.html#virtualhost danhttp://httpd.apache.org/docs/2.4/vhosts/name-based.html

Setelah berhasil membuat berkas hosts, maka yang selanjutnya akan kita lakukan adalah mensetting virtualhost. adapun langkah - langkah dalam penyetingan VirtualHost pada apache adalah sebagai berikut :

1. Tambahkan settingan pada berkas httpd.conf, biasanya berkas ini berada pada C:\

xampp\apache\conf\httpd.conf (jika Anda menginstal xampp di drive C)

Page 6: Keamanan sistem informasi

2.Lalu tambahkan baris berikut di akhir:NameVirtualHost *:80<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "C:/xampp/htdocs" ServerName localhost ServerAlias localhost.localdomain ErrorLog "logs/localhost.error.log" CustomLog "logs/localhost.access.log" combined</VirtualHost>Include "conf/sites-enabled/*.conf"

Page 7: Keamanan sistem informasi

Maksud perintah di atas adalah meng-enable Name Based Virtual Host di port 80 untuk semua IP Address kita (*). ServerAdmin di sini adalah email admin yang nanti keluar kalau ada error pada VirtualHost kita.

Perintah yang penting di sini adalah ServerName dan ServerAlias: localhost disini artinya untuk VirtualHost ini jika orang mengakses localhost atau localhost.localdomain maka apache akan memberikan DocumentRoot "C:/xampp/htdocs"

2. Selanjutnya buatlah sebuah folder sites-enabled pada direktori conf dengan perintahmkdir C:\xampp\apache\conf\sites-enabled

Page 8: Keamanan sistem informasi

3.Kemudian buat sebuah berkas di dalam folder sites-enabled tersebut notepad C:\xampp\apache\conf\sites-enabled\windi.rohma.conf

4.Kemudian akan muncul pesan peringatan dari notepad bahwa dia tidak bisa menemukan windi.rohma dan akan membuat file baru dengan nama windi.rohma .

Page 9: Keamanan sistem informasi

Setelah file rahmad.riansyah berhasil di buat maka tambahkan baris berikut.<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "C:/xampp/vhosts/windi.rohma/public_html" ServerName windi.rohma ServerAlias www.windi.rohma ErrorLog "C:/xampp/vhosts/windi.rohma/logs/error.log" CustomLog "C:/xampp/vhosts/windi.rohma/logs/access.log" combined

</VirtualHost><Directory "C:/xampp/vhosts/rahmad.riansyah/public_html"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory>

Page 10: Keamanan sistem informasi

5. Kemudaian kita buat direktori vhosts untuk meletakan logs dan tempat penyimpanan website yang akan kita buat (public_html)

1. mkdir C:\xampp\vhosts2. mkdir C:\xampp\vhosts\windi.rohma3. mkdir C:\xampp\vhosts\windi.rohma\logs4. mkdir C:\xampp\vhosts\windi.rohma\public_html

6. Jangan lupa untuk menambahkan rahmad.riansyah ke berkas host Anda, notepad C:\Windows\System32\drivers\etc\hosts

Page 11: Keamanan sistem informasi

Kemudian Tambahkan 127.0.0.1 windi.com dan 127.0.0.1 windi.rohma

Page 12: Keamanan sistem informasi

7.Sekarang, restart Apache Anda dengan menekan tombol Stop, tunggu sebentar, lalu start. Kalau belum dijalankan, cukup di start saja.

Sekarang, seharusnya Apache Anda sudah memiliki setidaknya dua buah Document Root:● yang pertama di "C:/xampp/htdocs" untuk http://localhost;

Page 13: Keamanan sistem informasi

● yang kedua di "C:/xampp/vhosts/windi.rohma/public_html" jika ada yang mengakses http:// windi.rohma

Setelah proses restart selesai, seharusnya kita sudah bisa menjalankan http://windi.rohma namun tampilanya masih akan seperti ini.

Page 14: Keamanan sistem informasi

Mengganti Sertifikat SSL XAMPPSSL memastikan data transaksi yang terjadi secara online di enkripsi/acak sehingga tidak

dapat dibaca oleh pihak lain. Kegunaan utamanya adalah untuk menjaga keamanan dan kerahasiaan data ketika melakukan transaksi.

Alasan utama mengapa menggunakan SSL adalah untuk menjaga informasi sensitif selama dalam proses pengiriman melalui Internet dengan cara dienkripsi, sehingga hanya penerima pesan yang dapat memahami dari hasil enkripsi tersebut. Hal ini sangat penting, karena informasi yang kita kirimkan di Internet membutuhkan proses perjalanan dari komputer ke komputer sampai mencapai server tujuan. Komputer lain yang ada diantara Anda dan server dapat melihat nomor Kartu Kredit Anda, username dan passwords, dan informasi sensitive lainnya bila hal ini tidak dienkripsi dengan Sertifikat SSL. Ketika sertifikat SSL digunakan, informasi menjadi tidak dapat terbaca oleh siapapun kecuali ke server yang memang dituju saat mengirim informasi tersebut. Hal ini melindungi informasi tersebut dari hackers dan pencuri identitas.

Otentikasi (Authentication)Selain juga enkripsi, sertifikat SSL juga menyediakan otentikasi. Ini artinya Anda dapat lebih pasti dalam mengirimkan informasi ke server yang benar-benar valid dan bukan malah ke kriminal server . Mengapa ini begitu sangat penting ? Sifat dasar dari internet artinya bahwa pelanggan Anda akan lebih sering dalam mengirimkan informasi yang melewati beberapa jumlah komputer. Setiap dari komputer ini bisa berpura-pura menjadi website Anda dan mengelabui pengguna Anda untuk mengirimkan informasi mereka ke komputer tersebut. Hal ini hanya dapat dihindari dengan menggunakan Public Key Infrastructure (PKI), dan mendapatkan sertifikat SSL dari penyedia SSL terpercaya.

Dalam modul kali ini penulis berperan sebagai CA (Certificate Authority) yang akan menandatangani sertifikat sendiri serta merubah sertifikat SSL yang dimiliki oleh XAMPP.

langkah - langkah yang akan kita lakukan akan terbagi menjadi beberapa tahapan :1. Perisapan2. Membuat Sertifikat CA3. Membuat Sertifikatt Untuk Localhost

Page 15: Keamanan sistem informasi

4. Menandatangani Sertifikat Request5. Meletakan CRT dan Key Ke Apache6. Menginstall sertifikat CA

Persiapan

1. Buka CMD, lalu ketikan perintah cd \ (enter)

2.Lalu buat folder baru dengan nama sslcert, untuk membuat direktori menggunakan CMD ketikan Perintah mkdir. mkdir sslcert (enter)

3. Kemudian masuk kedalam folder sslcert dengan perintah cd \sslcert (enter)

Page 16: Keamanan sistem informasi

4.Setelah berada pada folder sslcert, langkah selanjutnya adalah membuat 2 folder baru, yaitu folder certs dan private. ketikan perintah mkdir certs private (enter)

Folder certs nantinya untuk menampung semua sertifikat yang dihasilkan dan folder private untuk menyimpan semua private-key kita.

5.Sekarang buat sebuah berkas bernama serial, dan isi dengan 100001. Berkas serial ini nantinya digunakan untuk otomatis memberi nomor serial untuk setiap sertifikat yang dihasilkan.

ketikan perintah : echo 100001 >serial (enter)selanjutnya ketikan : copy con serial (enter)100001 maka akan muncul pesan <Yes/No/All> :ketik All (enter)lalu tekan ctrl + z (enter)

Page 17: Keamanan sistem informasi

6.Kemudian Buat sebuah berkas baru, namanya certindex.txt untuk menampung daftar sertifikat yang telah kita tandatangani.ketikan perintah notepad certindex.txt (enter)

Apabila muncul pesan peringatan seperti pada gambar dibawah ini maka klik Yes, peringatan tersebut muncul karna file certindex belum ada, dan notepad akan membuat file tersebut.

Page 18: Keamanan sistem informasi

7.Sekarang buat konfigurasi OpenSSL kita, dengan perintah notepad openssl.cnf (enter)

Apabila muncul pesan peringatan seperti pada gambar sebelumnya maka klik saja Yes.lalu copy-paste baris baris berikut :## OpenSSL configuration file.## Establish working directory.

dir = .[ ca ]default_ca = CA_default

[ CA_default ]

Page 19: Keamanan sistem informasi

serial = $dir/serialdatabase = $dir/certindex.txtnew_certs_dir = $dir/certscertificate = $dir/cacert.pemprivate_key = $dir/private/cakey.pemdefault_days = 3650#default_md = md5default_md = sha1preserve = noemail_in_dn = nonameopt = default_cacertopt = default_capolicy = policy_match

[ policy_match ]countryName = matchstateOrProvinceName = matchorganizationName = matchorganizationalUnitName = optionalcommonName = suppliedemailAddress = optional

[ req ]default_bits = 2048 # Size of keysdefault_keyfile = key.pem # name of generated keys#default_md = md5 # message digest algorithmdefault_md = sha1 # message digest algorithmstring_mask = nombstr # permitted charactersdistinguished_name = req_distinguished_namereq_extensions = v3_req

[ req_distinguished_name ]

# Variable name Prompt string#------------------------- ----------------------------------0.organizationName = Organization Name (company)organizationalUnitName = Organizational Unit Name (department, division)emailAddress = Email AddressemailAddress_max = 40localityName = Locality Name (city, district)stateOrProvinceName = State or Province Name (full name)countryName = Country Name (2 letter code)countryName_min = 2countryName_max = 2

Page 20: Keamanan sistem informasi

commonName = Common Name (hostname.com, IP, or your name)commonName_max = 64

# Default values for the above, for consistency and less typing.# Variable name Value#------------------------ ------------------------------0.organizationName_default = Universitas Islam Negeri Sultan Syarif KasimlocalityName_default = PekanbarustateOrProvinceName_default = RiaucountryName_default = ID

[ v3_ca ]basicConstraints = CA:TRUEsubjectKeyIdentifier = hashauthorityKeyIdentifier = keyid:always,issuer:always

[ v3_req ]basicConstraints = CA:FALSEsubjectKeyIdentifier = hash

Page 21: Keamanan sistem informasi

Membuat Sertifikat CA

Sebagai kepala unit IT di organisasi Anda, Anda harus bisa menandatangani sertifikat seluruh server. Untuk itu, Anda harus memiliki dahulu sebuah sertifikat (KEY, privateKEY) yang digunakan untuk menandangani seluruh sertifikat request (CSR) dari seluruh unit yang lain.

Sekarang, kita buat sertifikat PKI untuk CA kita, yang nantinya akan digunakan oleh perusahaan / sekolah / universitas Anda untuk menandatangani seluruh sertifikat di kantor / lab / kampus.

adapun langkah - langkah untuk membuat sertifikat PKI untuk CA adalah sebagai berikut :

1. ketikan perintah berikut :C:\xampp\apache\bin\openssl.exe req -new -x509 -extensions v3_ca -keyout private\CAkey.pem -out CAcert.pem -days 3650 -config ./openssl.cnf

(enter)

2.kemudian masukan password yang akan kita gunakan untuk sertifikat CA kita :

Page 22: Keamanan sistem informasi

Setelah berhasil memasukan password, maka kita akan diminta untuk memasukan informasi yang di butuhkan pada sertifikat.

You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Organization Name (company) [Universitas Islam Negeri Sultan Syarif Kasim]:Organizational Unit Name (department, division) []:SIF2014Email Address []:[email protected] Name (city, district) [Pekanbaru]:State or Province Name (full name) [Riau]:Country Name (2 letter code) [ID]:Common Name (hostname.com, IP, or your name) []:windi.com

Dengan perintah di atas, kita sekarang sudah memiliki sebuah kunci private untuk menandatangani sertifikat. Kunci private tersebut disimpan di folder private, dengan nama CAkey.pem.

Adapun berkas CAcert.pem adalah sertifikat public kita yang nanti akan digunakan oleh client untuk menginstal sertifikat kita.

Membuat sertifikat untuk Localhost

Page 23: Keamanan sistem informasi

Selanjutnya, kita akan membuat sertifikat untuk localhost, untuk menggantikan sertifikat yang dibuat oleh XAMPP, dan sertifikat ini akan kita tandatangani sendiri dengan CAkey (private key) kita.

Perintah dibawah ini digunakan untuk membuat sebuah sertifikat REQuest, privateKEY. Semuanya dalam format *.pem. Nantinya, localhost-req.pem ini akan dikirimkan ke CA agar nanti ditandatangani (dan kalau ROOT CA, Anda harus bayar), nantinya CA akan menghasilkan .CRT, yang CRT ini berikut dengan localhost-key.pem (private key) akan diinstall ke Apache.

1. ketikan perintah berikut ini C:\xampp\apache\bin\openssl req -new -nodes -out localhost-req.pem -keyout private/localhost-key.pem -config

./openssl.cnf (enter)

Kemudian masukan informasi yang dibutuhkan oleh sertifikat.

Page 24: Keamanan sistem informasi

Organization Name (company) [Universitas Islam Negeri Sultan Syarif Kasim]:Organizational Unit Name (department, division) []:IT DepartmentEmail Address []:[email protected] Name (city, district) [Pekanbaru]:State or Province Name (full name) [Riau]:Country Name (2 letter code) [ID]:Common Name (hostname.com, IP, or your name) []:localhost

Menandatangani Sertifikat Request

Sebagai CA, Anda harus menandatangani seluruh request (yang valid) dari organisasi Anda. Kali ini, kita menandatangani sertifikat request dari server localhost, dimana si localhost ini telah memberikan berkas localhost-req.pem kepada kita.

Sekarang, jika ingin membuat snake-oil certificate, kita sendiri yang menjadi CA dan menandatangani sertifikat request tadi.

Biasanya perintah ssl tidak mau jalan apabila kita belum mengsetting path nya.

Page 25: Keamanan sistem informasi

Adapaun perintah untuk mengsetting path agar memasukkan direktori C:\xampp\apache\bin adalah :set path=C:\xampp\apache\bin;%PATH% (enter)

Setelah selesai menyeting path untul ssl maka selanjutnya yang akan kita lakukan adalah menandatangani sertifikat request dari localhost-req.pem tadi, gunakan perintah:openssl ca -out localhost.crt.pem -config ./openssl.cnf -infiles localhost-req.pem (enter)

Page 26: Keamanan sistem informasi

Using configuration from ./openssl.cnfLoading 'screen' into random state - done

Enter pass phrase for ./private/cakey.pem:[masukkan password privatekey CA Anda]Check that the request matches the signatureSignature okThe Subject's Distinguished Name is as followsorganizationName :PRINTABLE:'Universitas Islam Negeri Sultan Syarif Kasim'organizationalUnitName :PRINTABLE:'IT Department'localityName :PRINTABLE:'Pekanbaru'stateOrProvinceName :PRINTABLE:'Riau'countryName :PRINTABLE:'ID'commonName :PRINTABLE:'localhost'Certificate is to be certified until Jan 1 08:56:03 2027 GMT (3650 days)Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]yWrite out database with 1 new entriesData Base Updated

Setelah melewati tahap ini, Anda akan memiliki sebuah CRT, localhost.crt.pem yang dapat Anda letakkan ke server localhost Anda. Jangan lupa bahwa Apache juga membutuhkan private KEY untuk localhost ini.

Meletakkan CRT dan KEY ke Apache

Setelah Anda sukses membuat CRT dan KEY, sekarang Anda harus meletakkanya ke XAMPP. Jika XAMPP di install di drive C:, maka coba navigasi ke folder C:\xampp\apache\conf

Page 27: Keamanan sistem informasi

Letakkan CRT ke folder ssl.crt

Page 28: Keamanan sistem informasi

Dan KEY ke ssl.key

Page 29: Keamanan sistem informasi

Setelah itu, jangan lupa diganti konfigurasi Apache agar menggunakan sertifikat baru yang Anda buat. Konfigurasi yang harus diganti biasanya terletak di folder extra, cari berkas httpd-ssl.conf

Kemudian ganti dengan sertifikat yang baru :

Page 30: Keamanan sistem informasi

Restart XAMPP, sekarang Anda telah menggunakan sertifikat yang baru.

Menginstall Sertifikat CA.

Setelah berhasil Anda buat, sertifikat public key CA yang Anda buat tadi (CAcert.pem) harus Anda install dahulu ke SELURUH komputer yang nantinya akan menggunakan sertifikat yang kita tanda tangani. Menginstallnya cukup sekali saja. Internet Explorer dan Google Chrome

Page 31: Keamanan sistem informasi

menggunakan mekanisme yang sama, sedangkan Mozilla Firefox menggunakan database root CA sendiri, jadi harus di install juga (lagi) di Firefox.Adapun langkah - langkah untuk menginstall sertifikat CA adalah sebagai berikut :

1. Buka Web Browser anda. (disini penulis menggunakan Mozila Firefox), kemudian pilih Tools » Option » Advance » Encryption » View Certificates

2. lalu installkan sertifikat yang telah kita buat kedalam web browser dengan cara mengimportkan sertifikat yang telah kita buat.

Page 32: Keamanan sistem informasi

3. Disini penulis akan mengimportkan sertifikat dari windi.rohma.com

4. untuk melihat detail dari sertifikat yang telah kita install maka kita tinggal menekan view.

Page 33: Keamanan sistem informasi

Sekalipun telah di install, koneksi https kita tetap akan tersilang di Google Chrome, tetapi tidak apa-apa, dan sedikit lebih baik daripada yang keluar adalah pesan Error koneksi tidak privat, walaupun kita tahu koneksi itu privat.