Instalasi WordPress di Sistem Operasi Debian Wheezy

Pada pos ini dibahas bagaimana membuat suatu aplikasi web berbasis WordPress pada sistem operasi Debian Wheezy. WordPress adalah aplikasi web blog yang gratis dan open source sehingga memiliki sumber daya yang luas dan dapat dijadikan pembelajaran manajemen peladen.

Langkah awal untuk instalasi WordPress yaitu menyiapkan beberapa berkas dan konfigurasi peladen web yang dikenal dengan Linux, Apache, MySQL, PHP (LAMP). Apache adalah aplikasi peladen web yang digunakan oleh WordPress. MySQL adalah sistem basis data yang digunakan WordPress untuk menyimpan informasi. PHP merupakan bahasa pemrograman peladen untuk koneksi sumber daya WordPress.

Langkah 1 – Instal Apache

Buka terminal dan ketik:

$sudo apt-get install apache2

Lalu periksa apakah aplikasi peladen telah berjalan dengan membuka web browser dan akses alamat peladen, misalkan 192.168.56.10 sehingga didapatkan hasil seperti pada gambar:

Hasil instalasi Apache
Hasil instalasi Apache

Langkah 2 – Instal MySQL

Buka terminal dan ketik:

$sudo apt-get install mysql-server

Saat instalasi MySQL berjalan akan ditanyakan untuk kata sandi root MySQL. Kata sandi tersebut akan digunakan untuk manajemen basis data sehingga tidak boleh lupa. Ketik dalam terminal untuk menyelesaikan instalasi:

$sudo mysql_secure_installation

Pada langkah ini akan ditanyakan beberapa konfigurasi untuk mengamankan MySQL sehingga masuk sebagai root dan ikuti pertanyaan yang diberikan seperti:

By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them.  This is intended only for testing, and to make the installation go a bit smoother.  You should remove them before moving into a production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

Langkah 3 – Instal PHP

Buka terminal dan ketik:

$sudo apt-get install php5 php-pear php5-mysql

Setelah instalasi selesai, mulai ulang peladen web dengan ketik:

$sudo service apache2 restart

Untuk memeriksa apakah PHP telah berjalan, buatlah berkas inforamsi dengan menyunting:

$sudo nano /var/www/info.php

Lalu isi dengan kode berikut:

<?php
phpinfo();
?>

Simpan berkas dan keluar dari terminal. Akses dalam web browser alamat:

http://192.168.56.10/info.php

Hasilnya dapat dilihat sebagai berikut:

Hasil instalasi PHP
Hasil instalasi PHP

Langkah 4 – Unduh WordPress

Unduh berkas WordPress dengan ketik dalam terminal:

$wget http://wordpress.org/latest.zip

Ekstrak berkas sehingga didapatkan direktori WordPress dengan perintah:

$unzip latest.zip

Langkah 5 – Membuat Akun Pengguna dan Basis Data WordPress

Masuk sebagai root MySQL menggunakan kata sandi sebelumnya untuk membuat akun pengguna dan basis data dengan ketik dalam terminal:

mysql -u root -p

Pada tahap ini akan dibuat basis data untuk WordPress dengan nama wpdatabase, ketik:

CREATE DATABASE wpdatabase;

Lalu buatlah akun pengguna yang dapat mengakses basis data WordPress, ketik:

CREATE USER wpuser@localhost;

Atur kata sandi untuk mengakses basis data WordPress, ketik:

SET PASSWORD FOR wpuser@localhost= PASSWORD("dbpassword");

Berikan wewenang kepada akun pengguna agar dapat mengakses basis data WordPress, ketik:

GRANT ALL PRIVILEGES ON wpdatabase.* TO 
wpuser@localhost IDENTIFIED BY 'dbpassword';

Akhiri basis data dengan ketik:

FLUSH PRIVILEGES;

Untuk keluar dari MySQL, ketik:

exit

Langkah 6 – Konfigurasi WordPress

Buatlah berkas konfigurasi WordPress dari contoh dengan ketik dalam terminal:

cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php

Sunting berkas konfigurasi dengan ketik dalam terminal:

sudo nano ~/wordpress/wp-config.php

Cari baris kode yang memiliki informasi sebagai berikut lalu ganti dengan konfigurasi basis data WordPress:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wpdatabase');

/** MySQL database username */
define('DB_USER', 'wpuser');

/** MySQL database password */
define('DB_PASSWORD', 'dbpassword');

Simpan berkas lalu keluar.

Langkah 7 – Salin Direktori WordPress

Salinlah direktori WordPress ke dalam direktori peladen dengan ketik dalam terminal:

$sudo cp -R ~/wordpress/* /var/www/

Lalu atur izin direktori menggunakan akun pengguna sistem operasi Debian Wheezy dengan masuk dalam direktori:

$cd /var/www/

Berikan izin pada akun pengguna dengan ketik:

sudo chown www-data:www-data /var/www/* -R 
sudo usermod -a -G www-data akunpengguna

Langkah 8 – Akses WordPress

Sebelum mengakses WordPress menggunakan web browser, ganti berkas indeks peladen web sehingga membaca berkas indeks WordPress dengan ketik dalam terminal:

$sudo mv /var/www/index.html /var/www/index.html.orig

Selanjutnya WordPress dapat diakses menggunakan web browser dengan alamat peladen web hingga memulai konfigurasi seperti pada gambar berikut ini:

Akses WordPress pada web browser
Akses WordPress pada web browser
Konfigurasi halaman WordPress
Konfigurasi halaman WordPress
Konfigurasi halaman selesai
Konfigurasi halaman selesai
Masuk sebagai akun web WordPress
Masuk sebagai akun web WordPress
Tampilan web admin
Tampilan web admin
Tampilan web WordPress
Tampilan web WordPress

Hardening Sistem Operasi Debian Wheezy – SELinux

Pos ini akan membahas bagaimana instalasi SELinux pada sistem operasi Debian Wheezy. Security-Enhanced Linux (SELinux) merupakan proyek implementasi kendali akses wajib pada sistem operasi berbasis Linux. Proyek ini awalnya dikembangkan oleh National Security Agency (NSA) sebagai implementasi dari kebijakan keamanan yang dapat dikendalikan secara terpusat. Desain SELinux merupakan modul keamanan kernel Linux yang memberikan penilaian kendali akses kepada komunitas Linux dan bagaimanan kendali keamanan dapat ditambahkan dalam sistem operasi.

Kendali akses wajib adalah jenis kendali akses pada sistem operasi yang membatasi kemampuan subjek untuk mengakses beberapa operasi pada suatu objek atau target. Secara praktis, subjek yang dimaksud adalah suatu proses atau perintah, sedangkan objek dapat berupa berkas, direktori, port TCP/UDP, dan perangkat IO. Setiap subjek dan objek memiliki kumpulan atribut keamanan, misalnya ketika suatu subjek mencoba untuk mengakses suatu objek maka aturan otorisasi dilakukan oleh kernel sistem operasi dengan memeriksa atribut keamanannya dan menentukan apakah akses tersebut sesuai dengan kebijakan yang diterapkan.

Sistem operasi Linux memiliki kendali akses standar, seperti mode akses berkas (-rwxr-xr-x) yang dapat dimodifikasi oleh pengguna dan aplikasi yang dijalankan. Sedangkan kendali akses SELinux ditentukan dengan kebijakan yang diterapkan dalam sistem dan tidak boleh diganti oleh pengguna biasa.

Berikut ini adalah langkah-langkah instalasi dan konfigurasi SELinux:

  • Pastikan bahwa sistem operasi menggunakan kernel linux standar yang diberikan Debian seperti ext2/3/4 sehingga SELinux memiliki kapabilitas terhadap kernel dan sistem berkas.
  • Instal SELinux dasar dan kebijakan wajibnya dengan ketik dalam terminal:
$sudo apt-get install selinux-basics selinux-policy-default auditd
  • Jalankan SELinux untuk mengkonfigurasi GRUB dan PAM dengan ketik dalam terminal:
$sudo selinux-activate
  • Mulai ulang sistem operasi sehingga saat proses booting SELinux melakukan konfigurasi dan memulai ulang sistem secara otomatis hingga proses selesai.
  • Ketik dalam terminal untuk memeriksa konfigurasi SELinux telah benar dan mengetahui jika terjadi kesalahan. (Catatan: pada sistem operasi Debian Wheezy terdapat peringatan tentang /etc/pam.d/login dan merupakan alarm positif palsu)
$sudo check-selinux-installation
Memeriksa instalasi SELinux
Memeriksa instalasi SELinux
  • Periksa status dengan ketik dalam terminal:
$sudo sestatus
  • Penjelasan atribut keamanan status sistem dapat dilihat dengan ketik dalam terminal:
$sudo audit2why -al
  • Secara umum, SELinux diatur pada mode permisif sehingga untuk diatur pada mode paksa dilakukan dengan ketik dalam terminal:
$sudo setenforce 1
  • Untuk mengatur paksaan kebijakan SELinux dilakukan dengan menambahkan pada berkas /etc/default/grub:
enforcing=1
  • Mulai ulang sistem untuk memperbarui konfigurasi.

 

“Main Page – SELinux Wiki.” [Online]. Available: http://selinuxproject.org/page/Main_Page.

“SELinux – Debian Wiki.” [Online]. Available: https://wiki.debian.org/SELinux.

“SELinux/Setup – Debian Wiki.” [Online]. Available: https://wiki.debian.org/SELinux/Setup.

Hardening Sistem Operasi Debian Wheezy – Manajemen

Manajemen pengguna, patch, dan service diperlukan untuk menutup celah keamanan yang mungkin ada serta dapat mengurangi layanan yang tidak dibutuhkan dalam sistem. Proses pertama adalah menambahkan akun pengguna yang berbeda sehingga direktori dan wewenang setiap pengguna dapat diatur.

Buka terminal dan masuk sebagai root dengan ketik:

$su

Misalkan ditambahkan akun pengguna userlab maka ketik:

#adduser userlab

Masukan kata sandi untuk akun userlab dan verifikasi dengan benar. Lalu tambahkan informasi lainnya yang dibutuhkan. Jika akun userlab ingin ditambahkan sehingga memiliki wewenang seperti root maka perlu ditambahkan dalam grup sudo dengan ketik:

#adduser userlab sudo

Hasilnya dapat dilihat pada gambar berikut ini:

Proses manajemen pengguna
Proses manajemen pengguna

Untuk melihat kapabilitas grup sudo dapat dibuka pada file sudoers dengan ketik:

#nano /etc/sudoers
Isi berkas /etc/sudoers
Isi berkas /etc/sudoers

Dapat dilihat bahwa grup sudo memiliki wewenang yang sama dengan root.

Proses kedua yaitu manajemen patch dapat diatur dengan konfigurasi repositori untuk memperbarui aplikasi dan sistem agar memiliki fitur dan konfigurasi baru yang lebih baik dan aman. Konfigurasi repositori dapat dilakukan dengan menyunting berkas source.list, ketik dalam terminal:

#nano /etc/apt/sources.list

Konfigurasi repositori dapat diambil dari berbagai peladen bergantung pada konektivitas yang lebih handal seperti FTP ITB atau Kambing UI.

Konfigurasi repositori
Konfigurasi repositori

Berikan tanda pagar (#) pada setiap awal baris untuk menonaktifkan sistem membaca konfigurasi sehingga menjadi komentar. Lalu tambahkan baris baru dan isi dengan:

# Repositori ITB
deb http://ftp.itb.ac.id/pub/Debian/ wheezy main contrib non-free
deb http://ftp.itb.ac.id/pub/Debian/ wheezy-backports main contrib non-free
deb http://ftp.itb.ac.id/pub/Debian/ wheezy-backports-sloppy main contrib non-free
deb http://ftp.itb.ac.id/pub/Debian/ wheezy-updates main contrib non-free
deb http://ftp.itb.ac.id/pub/Debian/ wheezy-proposed-updates main contrib non-free

# Repositori UI
deb http://kambing.ui.ac.id/debian/ wheezy main contrib non-free
deb http://kambing.ui.ac.id/debian/ wheezy-backports main contrib non-free
deb http://kambing.ui.ac.id/debian/ wheezy-backports-sloppy main contrib non-free
deb http://kambing.ui.ac.id/debian/ wheezy-updates main contrib non-free
deb http://kambing.ui.ac.id/debian/ wheezy-proposed-updates main contrib non-free

Simpan berkas dengan tekan Ctrl+X lalu Y dan Enter. Selanjutnya sistem dapat membaca konfigurasi repositori dengan ketik dalam terminal sebagai akun pengguna:

$sudo apt-get update
Sistem membaca konfigurasi repositori
Sistem membaca konfigurasi repositori

Setelah membaca konfigurasi maka perbarui dengan ketik:

$sudo apt-get upgrade
Sistem memperbarui
Sistem memperbarui

Jika terdapat anjuran terhadap suatu aplikasi atau paket yang perlu diperbarui maka tekan Y lalu Enter sehingga proses pemasangan berjalan.

Proses ketiga adalah manajemen layanan yang berjalan pada sistem. Tidak semua layanan yang berjalan kita butuhkan karena dapat menjadi celah keamanan sehingga perlu dinonaktifkan. Untuk mengetahui layanan yang sedang berjalan dalam sistem ketik dalam terminal:

$netstat -a
Hasil netstat -a
Hasil netstat -a

Perhatikan layanan yang berjalan dan cari informasi layanan yang tidak diperlukan dari berbagai blog dan forum di internet. Misalkan layanan sunrpc akan dinonaktifkan maka pasang paket rcconf dengan ketik dalam terminal:

$sudo apt-get install rcconf

Jalankan aplikasi rcconf sebagai root dengan ketik dalam terminal:

#rcconf

Lalu hilangkan tanda * pada paket rpcbind seperti pada gambar berikut ini:

Menonaktifkan rpcbind
Menonaktifkan rpcbind

Pilih <Ok> lalu Enter dilanjutkan dengan mengulang kembali sistem. Setelah sistem menyala periksa dengan ketik dalam terminal:

$netstat -a

Maka layanan sunrpc telah non aktif seperti pada gambar berikut ini:

Hasil netstat -a baru
Hasil netstat -a baru

Hardening Sistem Operasi Debian Wheezy – Instalasi

Pada pos ini akan dibahas mengenai proses penguatan (hardening) sistem operasi Debian (codename Wheezy) yang mengikuti anjuran pada Chapter 12.6 [1]. Post dibagi menjadi 4 bagian yaitu:

  1. Instalasi dalam lingkungan VirtualBox
  2. Manajemen pengguna, patch, dan service
  3. Instalasi SELinux
  4. Instalasi peladen web WordPress

Pada studi ini menggunakan sistem operasi Ubuntu 14.04 sebagai host dan Debian sebagai guest dalam VirtualBox. Unduh sistem operasi Debian dari FTP ITB (tautan), sebagai contoh unduh untuk versi 64 bit. Unduh VirtualBox dari https://www.virtualbox.org/ dengan cara buka terminal Ubuntu lalu ketik:

sudo apt-get install virtualbox

Setelah selesai instalasi, buka VirtualBox dan buatlah virtual machine baru menggunakan iso yang telah diunduh. Ikuti dan isilah informasi yang dibutuhkan sesuai keinginan.

Memulai Proses Instalasi Debian
Memulai proses instalasi Debian

Beberapa hal yang perlu menjadi perhatian ditunjukkan pada gambar berikut ini:

Tentukan sandi untuk root yang baik dan kompleks
Masukan kata sandi untuk root yang baik dan kompleks
Verifikasi sandi root dengan benar
Verifikasi kata sandi root dengan benar
Tidak dapat membuat akun pengguna dengan nama admin
Tidak dapat membuat akun pengguna dengan nama admin
Membuat akun pengguna dengan nama user
Membuat akun pengguna dengan nama user
Masukkan sandi untuk akun user
Masukan kata sandi untuk akun user
Pilih partisi dengan enkripsi
Pilih partisi dengan enkripsi
Pisahkan direktori /home/
Pisahkan partisi direktori /home/
Proses instalasi berjalan
Proses partisi berjalan
Masukkan frasa sandi untuk booting
Masukan frasa sandi untuk booting
Pesan kesalahan jika verifikasi frasa sandi salah
Pesan kesalahan jika verifikasi frasa sandi salah
Proses partisi selesai dan lakukan format pada cakram
Proses partisi selesai dan lakukan format pada cakram
Pilih untuk instalasi minimal tanpa GUI
Pilih untuk instalasi desktop dengan atau tanpa GUI
Proses booting dengan frasa sandi
Proses booting dengan frasa sandi
Masuk sebagai user
Masuk sebagai user

Proses instalasi selesai.


[1] W. Stallings and L. Brown, Computer Security: Principles and Practice. Pearson Education, 2012.