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