Hardening FreeBSD 10.1 (4)

Pada artikel bagian keempat ini, akan dibahas teknik-teknik dasar untuk melakukan langkah kelima yaitu langkah menginstal kontrol keamanan tambahan.

Intrusion Detection System (IDS)

FreeBSD menyediakan dukungan untuk sistem IDS dasar. Kakas bawaan mtree dapat digunakan untuk membangkitkan spesifikasi dari konten-konten pada sebuah direktori, seperti /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /etc, dan /usr/local/etc.

Nilai 3483151339707503 merepresentasikan seed. Nilai ini harus diingat dan tidak dibagikan.
Untuk mensimulasikan perubahan, ubah tanggal modifikasi pada on /bin/cat menggunakan touch dan jalankan lagi perintah verifikasi:

Ada sistem IDS yang lebih canggih, seperti security/aide.

Mendeteksi Rootkits

Rootkit adalah perangkat lunak yang tidak berwenang yang berusaha mengambil akses root pada sebuah sistem. Sekalinya rootkit terinstal, maka rootkit akan membuka celah masuk untuk penyerang. Dalam FreeBSD, terdapat kakas bawaan untuk mendeteksi rootkit yaitu security/rkhunter.
Setelah instalasi package atau port ini, sistem dapat diperiksa menggunakan perintah berikut:

# rkhunter -c

Setelah proses selesai, pesan status akan muncul di layar. Pesan ini berisi jumlah berkas yang diperiksa, berkas-berkas yang dicurigai, kemungkinan rootkit, dan sebagainya.

Firewall

FreeBSD mempunyai tiga firewall bawaan: PF, IPFW, dan IPFILTER (yang juga dikenal sebagai IPF). Setiap firewall menggunakan aturan-aturan untuk mengendalikan akses dari paket yang masuk ke dan keluar dari sistem FreeBSD, walaupun ketiganya memiliki pendekatan yang berbeda dan masing-masing memiliki sintaks aturan yang berbeda. Dalam artikel ini, hanya akan dibahas bagaimana menggunakan firewall PF.
Untuk menggunakan PF, tambahkan baris berikut ke /etc/rc.conf dengan perintah berikut:

pf_enable="YES"

Opsi-opsi tambahan (pfctl) dapat digunakan pada PF ketika PF dimulai, yaitu dengan menambahkan baris berikut ke /etc/rc.conf:

pf_flags=""

Secara default, PF membaca aturan-aturan konfigurasi pada /etc/pf.conf dan memodifikasi, menjatuhkan, atau mengizinkan paket-paket yang masuk atau yang keluar berdasarkan pada aturan-aturan atau definisi-definisi yang dispesifikasikan dalam berkas tersebut. FreeBSD menyediakan contoh ruleset yang ada di /usr/share/examples/pf/pf.conf.

Dukungan logging untuk PF disediakan oleh pflog. Untuk mengaktifkan dukungan logging, tambahkan baris berikut ke /etc/rc.conf:

pflog_enable="YES"

Baris-baris berikut dapat juga ditambahkan untuk mengubah lokasi default dari berkas log atau untuk menspesifikasikan flag tambahan untuk digunakan pada pflog ketika pflog dimulai:

pflog_logfile="/var/log/pflog"
pflog_flags=""

Setelah menyimpan perubahan-perubahan yang dibutuhkan, PF dapat dimulai dengan dukungan logging dengan menggunakan perintah berikut:

# service pf start
# service pflog start

Ruleset PF

Berikut adalah contoh aturan-aturan PF yang sederhana untuk webserver:

# Makro
EXT="em0"

# Izinkan semuanya ke/dari localhost
set skip on lo0

# Blok semuanya secara default
block log all

# Izinkan paket masuk untuk protokol ssh (22) dan http (80)
pass in quick on $EXT proto tcp from any to port {22, 80}

# Izinkan semua paket yang keluar
# 'quick' adalah agar PF menggunakan strategi aturan terakhir yang cocok yang menang
pass out quick on $EXT all

Ruleset dapat dimuat dengan perintah:

# pfctl -e ; pfctl -f /etc/pf.conf

Kapanpun dilakukan perubahan pada ruleset, aturan baru harus dimuat agar dapat digunakan:

# pfctl -f /etc/pf.conf

Jika tidak ada kesalahan sintaks, pfctl tidak akan menampilkan pesan apapun selama aturan dimuat. Ruleset juga dapat diuji sebelum dimuat yaitu dengan perintah berikut:

# pfctl -nf /etc/pf.conf

Dalam contoh ruleset di atas, semua paket yang diblok akan ditampilkan dalam pflog0. Kita dapat melihatnya dengan perintah berikut:

tcpdump -v -eni pflog0

Referensi:
  1. Stallings, William, dan Lawrie Brown. Computer Security: Principles and Practice. Pearson, edisi ke-2, 2012.
  2. https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html
  3. https://forums.freebsd.org/threads/pf-rules-for-webserver-something-missing.10582/

Leave a Reply

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