
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:
- Instalasi dan patch sistem operasi;
- 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
- Instalasi dan konfigurasi kontrol keamanan tambahan, seperti anti-virus, host-based firewalls, intrusion detection systems (IDS)
- 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:

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.


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

Pilih Create a virtual harddrive now

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





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

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

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:
- Buat pasangan kunci privat dan kunci publik;
- 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.
- Kirim certificate request, bersama dengan dokumen yang membuktikan identitas anda ke sebuah CA.
- Ketika anda setuju untuk menggunakan CA tertentu, anda harus mengikuti intruksi untuk memperoleh sertifikat digital dari CA tersebut
- 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:

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