Hardening Sistem Operasi Ubuntu Server 14.04

hardening_OS
hardening_OS

Hardening Sistem Operasi Ubuntu Server 14.10

Apa itu hardening?

Hardening adalah  proses mengamankan sebuah sistem dengan mengurangi tingkat kerawanan di dalamnya.

NIST[08] membuat suatu panduan dasar untuk mengamankan sistem operasi antara lain:

  1. Instalasi dan patch sistem operasi;
  2. Hardening dan konfigurasi sistem operasi sesuai dengan persyaratan keamanan yang ditetapkan sistem antara lain:
    • Hapus layanan, aplikasi, dan protokol yang tidak diperlukan ;
    • Konfigurasi users, group, dan permissions
    • Konfiguasi resources control
  3. Instalasi dan konfigurasi kontrol keamanan tambahan, seperti anti-virus, host-based firewalls, intrusion detection systems (IDS)
  4. Ujicoba keamanan dari sistem operasi untuk memastikan bahwa langkah yang diterapkan sudah sesuai dengan persyratan keamanan

Instalasi

Instalasi Ubuntu Server dapat diinstal langsung pada harddisk atau menggunakan Virtual  Box. Dalam kasus ini, saya mencoba menggunakan Oracle Virtual Box dengan sistem operasi host Windows 8.1 versi 64 bit.

Download Virtual Box

https://www.virtualbox.org/wiki/Downloads

Download Iso  Ubuntu Server

http://www.ubuntu.com/download/server

Catatan: Iso Ubuntu Server berbeda dengan iso Ubuntu Desktop yang biasa kita gunakan. Iso Ubuntu Server umumnya tidak memiliki Graphical User Interface (GUI). Ubuntu Server berbeda dengan Ubuntu Desktop karena Ubuntu Server akan menginstall kernel yang dioptimasi untuk Server dan di dalam Ubuntu Server tidak terdapat X Windows.

Setelah anda selesai menginstall Oracle Virtualbox, jalankan maka akan muncul tampilan di dibawah ini:

GUI Oracle VirtualBox 4.4
GUI Oracle VirtualBox 4.4

Klik New, untuk instalasi iso Ubuntu Server 14.04. Load Iso Ubuntu Server yang telah kita download sebelumnya. Isikan nama : Ubuntu_Server, VirtualBox akan mendeteksi OS yang akan kita gunakan.

Langkah1_CreateVirtualMachine
Langkah1_CreateVirtualMachine

 

Langkah2_PilihMemori
Langkah2_PilihMemori

 

 

 

 

 

 

 

 

 

Pemilihan memori terserah anda, namun ingat pemilihan memori default umumnya direkomendasikan oleh VirtualBox. Saya pilih 512 MB, klik “Next”.

Langkah3_PilihHarddrive
Langkah3_PilihHarddrive

 

 

 

 

Pilih Create a virtual harddrive now

Langkah3_PilihHarddrive2
Langkah3_PilihHarddrive2

 

 

 

 

 

 

 

 

Virtual Drive yang anda pilih adalah Virtual Disk Image (VDI).

Langkah3_PilihHarddrive3
Langkah3_PilihHarddrive3
Langkah3_PilihHarddrive4
Langkah3_PilihHarddrive4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Langkah4_TampilanUbuntuServer
Langkah4_TampilanUbuntuServer

 

 

 

 

 

 

 

 

 

Langkah5_TampilanInstalasi
Langkah5_TampilanInstalasi

 

Langkah6_TampilanUbuntuServer
Langkah6_TampilanUbuntuServer

Ikuti langkah instalasi sampai selesai. Jika instalasi benar maka akan keluar tampilan diatas. Masukkan Username dan Password

Langkah7_TampilanUbuntuServerSetelahMasukanPassword
Langkah7_TampilanUbuntuServerSetelahMasukanPassword

 

Jika langkah di atas sudah dilakukan, maka anda dapat melakukan langkah dibawah ini:

Patch 

Patch berguna untuk menambal dan mengupdate aplikasi, system, maupun distribusi system operasi Ubuntu Server 14.10.  Instalasi patch pada Ubuntu Server ada 2 yaitu:

$ sudo apt-get update (Perintah ini untuk mengupdate folder dan file aplikasi yang ada di ubuntu dan file dependecynya)
$ sudo apt-get dist-upgrade (Perintah ini untuk update Distribusi OS dengan major upgrade)

Untuk uninstall patch yang tidak diinginkan, ketik perintah:

$ sudo dpkg-reconfigure unattended-upgrade

Manajemen User

merupakan salah satu langkah mitigasi untuk menghindari user yang tidak terotorisasi masuk ke dalam root privileges. Manajemen User terdiri dari 4 bagian yaitu:

a. Menambahkan dan menghapus User

Menambahkan user -> $ sudo adduser username

Menghapus user -> $ sudo deluser username

Menghapus username tidak otomatis menghapus direktori home folder

b. Profil Keamanan User

Jika server anda terdiri dari banyak user, anda harus memperhatikan  user home directory permissions untuk memastika kerahasiaan data di server. Secara default, user home directories di dalam Ubuntu dibuat dengan world read/execute permissions.

Untuk memastikan permission apa yang digunakan pada user/home/directory, kita dapat menggunakan perintah sebagai berikut:

$ls -ld /home/username

Output di bawah ini menunjukkan direktori home/username memiliki world readable permission:

drwxr-xr-x 2 username username   4096 2007-10-02 20:03 username

c. Kebijakan Password

Secara default, Ubuntu membutuhkan panjang password minimal 6 karakter dan pemeriksaan entropi sederhana. Nilai password ini disimpan di dalam /etc/pam.d/common-password, yang ditunjukan dibawah ini

password       [success=1 default=ignore]     pam_unix.so obscure sha512

Kita dapat melakukan konfigurasi password policy dengan perintah:

$sudo nano /etc/pam.d/environment

Kita dapat menampilkan status terbaru dari sebuah akun user, dengan perintah sebagai berikut:

$sudo chage -l username

Contoh hasilnya sebagai berikut:

  • Last password change                               : Jan 20, 2008
  • Password expires                                       : never
  • Password inactive                                       : never
  • Account expires                                           : never
  • Minimum number of days between password change         : 0
  • Maximum number of days between password change         : 99999
  • Number of days of warning before password expires           : 7

Kita dapat mengubah konfigurasi dengan contoh sebagai berikut :

expiration date (-E) to 01/31/2011, minimum password age (-m) of 5 days, maximum password age (-M) of 90 days, inactivity period (-I) of 5 days after password expiration, and a warning time period (-W) of 14 days before password expiration.

Kita dapat mengetikkan perintah sebagai berikut:

$sudo chage -E 01/31/2011 -m 5 -M 90 -I 30 -W 14 username

Keamanan Konsol

Disable Ctrl-Alt-Del agar tidak bisa reboot menggunakan Ctrl-Alt-del, dengan mengetikkan perintah sebagai berikut:

$sudo gedit /etc/init/control-alt-delete.conf

Di  dalam control-alt-delete.conf kita dapat mengedit sebagai berikut:

Firewall

Konfigurasi firewall secara default pada Ubuntu adalah ufw. Ufw merupakan cara mudah untuk menambahkan dan/atau menghapus rules sederhana pada firewall. Hal ini biasanya digunakan pada host-based firewall.

  • Mengaktifkan firewall: $sudo ufw enable
  • Untuk membuka port 22 (ssh): $sudo ufw allow 22
  • Rule ditambahkan menggunakan format angka: $sudo ufw insert 1 allow 80
  • Untuk menutup sebuah port: $sudo ufw deny 22
  • Untuk  menghapus sebuah rule: $sudo ufw delete deny 22
  • Menonaktifkan firewall: $sudo ufw disable
  • Melihat status firewall: $sudo ufw status
  • Melihat status informasi  verbose: $sudo ufw status verbose

Apparmor

AppArmor adalah sebuah sistem Mandatory Access Control (MAC) dimana sebuah kernel untuk confine program dengan sumber daya yang terbatas. Model keamanan AppArmor adalah memasangkan atribut kontrol akses ke program daripada ke user.

AppArmor confinementmenggunakan profile yang dimasukkan ke dalam kernel dibandingkan ke dalam boot. Profile AppArmoe dibagi menjadi 2(dua) mode yaitu enforcement and complain.

Profile dalam mode enforcement akan menghasilkan pemaksaan kebijakan yang dedefinisikan di dalam profile sama halnya dengan percobaan pelanggaran kebijakan (baik melalui syslog maupun auditd).

Sedangkan profile dalam mode complain tidak akan memaksa kebijakan tetapi lebih ke pelaporan percobaan pelanggaran kebijakan.

Profiles loaded in enforcement mode will result in enforcement of the policy defined in the profile as well as reporting policy violation attempts (either via syslog or auditd). Profiles in complain mode will not enforce policy but instead report policy violation attempts.

Secara default aplikasi AppArmor sudah terinstall di Ubuntu 14.10

Untuk melihat status AppArmor kita dapat mengetikkan:

$sudo app_armor status

apparmor_status
apparmor_status

Jika kita lihat gambar diatas, terdapat 22 profil dan 22 profil tersebut dalam enforce mode

Certificates (Sertifikat Digital)

Pembuatan sertifikat digital di Ubuntu dapat menggunakan openSSL. Kita akan membuat sertifikat digital dengan cara sebagai berikut:

  1. Buat pasangan kunci privat dan kunci publik;
  2. Buat sebuah certificate request berdasarkan kunci publik yang telah dibuat pada langkah 1. Certificate request berisi informasi tentang server anda dan perusahaan hosting server tersebut.
  3. Kirim certificate request, bersama dengan dokumen yang membuktikan identitas anda ke sebuah CA.
  4. Ketika anda setuju untuk menggunakan CA tertentu, anda harus mengikuti intruksi untuk memperoleh sertifikat digital dari CA tersebut
  5. Instalasi sertifikat digital di dalam server anda dan konfigurasi aplikasi yang sesuai untuk penggunaan sertifikat digital tersebut.

    eCryptfs

eCryptfs adalah sebuah aplikasi kriptografi sistem file yang bertumpuk (stacked). Pada lapisan atas sistem file eCryptfs melindungi file tidak peduli sistem file yang ada di bawahnya contoh tipe partisi, dll.

Selama instalasi terdapat sebuah pilihan untuk enkripsi partisi /home. Hal ini akan secara otomatis melakukan konfigurasi yang dibutuhkan untuk enkripsi dan mount partisi tersebut.

Sebagai contoh, kita akan melakukan enkripsi pada direktori /srv menggunakan eCryptfs

Pertama kita install eryptfs menggunakan terminal dengan mengetikkan perintah di bawah ini;

$ sudo apt-get install ecryptfs-utils

Kemudian kita akan mount dan enkripsi direktori /srv, ketikkan perintah dibawah ini;

$ sudo mount -t ecryptfs /srv /srv

mount -t artinya kita memilih aplikasi apa dan direktori mana yang akan dienkripsi

Maka akan muncul tampilan sebagai berikut:

ecryptfs
ecyrptfs

Kita pilih algoritma enkripsi yang akan digunakan, misal pilih no 1, kemudian pilih kunci 1 (16 bytes)

Lanjutan…

Leave a Reply

Your email address will not be published. Required fields are marked *