FreeBSD Hardening Project

Istilah hardening tentu sudah tidak asing lagi bagi kalangan para administrator system, yaitu sebuah proses memeriksa keamanan dari sebuah system yang dipakai untuk melayani bebrapa service yang diperlukan. Dalam artikel kali saya akan membahas bagaimana melakukan optimasi keamanan pada system operasi freebsd.

–//Perancangan system

Dalam sebuah proses membangun sebuah server sangat diperlukan sebuah perencanaan dan perancangan system yang baik, hal ini tentu didasari oleh beberapa hal:

1. Untuk apa server anda dibangun (service apa saja yg berjalan nantinya) ?
2. Siapa saja yang akan mengakses mesin anda?
3. ….isi sendiri 😛

Ketika kita sudah tahu maksud, tujuan, aturan tentang server tersebut, tentunya kita sudah tahu apa yang mesti kita lakukan, seperti:

1. Service apa saja yang akan di-install
2. Settingan firewall sesuai dengan rule yang telah dibuat
3. etc

Perencanaan dan perancangan yang baik tentu adalah awal dari proses hardening system yang baik pula, makanya pastikan bahwa sebelum anda melakukan setup terhadap sebuah server, pastikan dulu perencanaan dan perancangan system anda.

–//Installasi

Dalam proses installasi, sebaiknya kita menginstall system base-nya saja, dan hanya mengaktifkan service sshd saja, agar bisa melakukan administrasi secara remote, JANGAN pernah menginstall server anda dengan pilihan FULL installasi dan atau memilih semua packet yang ada, ini banyak ditemui di lapangan, bahwa di dalam server banyak aplikasi yang terinstall, malah ada kasus, server terinstall packet x-window, yang perlu diperhatikan “ini bukan desktop tapi server..!”, menginstall banyak packet mungkin akan membuat anda yakin dan perpikir bahwa nantinya sudah tidak perlu lagi install sana-sini, kalau anda berpikiran begitu, lebih baik jangan meneruskan pekerjaan anda sebagai sysadmin :P.

Menginstall banyak packet tanpa peduli packet itu untuk apa dan bagaimana merupakan sebuah pilihan yang sangat bodoh, karena selain menghabiskan resource mesin anda, tentu juga akan membuka peluang terjadi-nya penetrasi terhadap sistem anda, dimana dengan bertambahnya service yg berjalan berarti menambah peluang terbukanya lubang keamanan.

Jadi installasi base system adalah pilihan installasi yang terbaik [menurut penulis, -xnuxerstaff], baru kemudian install packet-packet yang memang sangat diperlukan untuk menjalani service yg seharusnya berjalan. that’s all!!

–//Pemilihan packet

Sebelum menginstall packet-packet yang akan menjalankan service tertentu sebaiknya anda mengupgrade dulu ports dari bawaan installasi (dengan asumsi anda menginstall dari ports packet manager). Hal ini tentunya agar ports yang anda gunakan adalah yang up to date.
well, berikut langkah-langkah dalam mengupgrade ports colection

//————————————————–//

[root@XNUXER /]# cat /etc/portsnap.conf
# $FreeBSD: src/etc/portsnap.conf,v 1.1.2.3 2006/01/21 09:58:12 cperciva Exp $

WORKDIR=/var/db/portsnap
PORTSDIR=/usr/ports
SERVERNAME=portsnap.FreeBSD.org
KEYPRINT=9b5feee6d69f170e3dd0a2c8e469ddbd64f13f978f2f3aede40c98633216c330

[root@XNUXER /]# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors… using portsnap3.FreeBSD.org
Fetching public key… done.
Fetching snapshot tag… done.
Fetching snapshot metadata… done.
Fetching snapshot generated at Tue Feb  5 07:16:50 WIT 2008:
540d254fd61bd9ed37008b0c3e7427adf1ef1718d582df  1% of   50 MB 11 kBps 01h42m
[Duhh, koneksi-nya lelet :P]

[root@XNUXER /]# portsnap extract
[root@XNUXER /]# portsnap update
//—————————————————//

Oke, port-nya anda sudah up to date, silahkan install dan configurasi aplikasi yang anda ingin jalankan!

NB::
ketika server anda sudah berjalan cukup lama, dan anda merasa bahwa beberapa aplikasi dah cukup tua, silahkan gunakan portupgrade untuk mengupgrade port anda!

–//File configurations hardening

Berikut beberapa file yang harus jadi perhatian anda agar system lebih secure:

1. /etc/rc.conf

//——————————————–//
#Hostname untuk mesin anda
hostname=”XNUXER”
#configurasi inet untuk server anda
ifconfig_lnc0=”IP-anda”
defaultrouter=”gateway-anda”
#service yang berjalan pada saat boot
sshd_enable=”YES”
sendmail_enable=”NONE”
#set kernel secure level
#-1 & 0    = unsecure mode!!
# 1        = – /dev/mem, /dev/kmem dan /dev/io tidak bisa di write
#          – tidak bisa meload/unload module
# 2        = – sama dengan level 1,
#          – tidak bisa menulis pada hardisk, kecuali yang di mount
# 3        = – sama dengan level 2,
#          – tidak bisa mengubah rule logical device seperti pf-device
#keterangan lebih lanjut silahkan baca manual init
kern_securelevel_enable=”YES”
kern_securelevel=”-1 to 3″–>> dipilih
#menone-aktifkan service yg berpontensi utk diserang 😀
portmap_enable=”NO”
inetd_enable=”NO”
#membersihkan file temporary
clear_tmp_enable=”YES”
#beberapa options tambahan (untuk ket: man rc.conf)
icmp_drop_redirect=”YES”
icmp_log_redirect=”YES”
log_in_vain=”YES”
accounting_enable=”YES”
fsck_y_enable=”YES”
#options untuk pf firewall, ini bisa diaktifkan ketika pf device dan
#pf_log device telah dikenali oleh kernel
pf_enable=”YES”
pf_flags=””
pf_rules=”/etc/pf.conf”
pflog_enable=”YES”
pflog_files=”/var/log/pflog”
pflog_flags=””
//——————————————-//

Banyak options tambahan yang bisa anda konfigurasi sendiri, tergantung kebutuhan dan aturan yang anda terapkan pada saat perangcangan awal pada server anda.

2. /etc/sysctl.conf

file configurasi untuk menyetting beberapa configurasi kernel, seperti mengaktifkan IP forward maupun set ttl untuk icmp replay, membatasi resource yang digunakan oleh user, membatasi jumlah user, dan lain sebagainya. Silahkan menyetting file ini sesuai dengan perencanaan awal anda.

3. /etc/ssh/sshd_config

Tentu saja, file ini juga harus anda perhatikan baik-baik, tentukan user atau groups yang bisa mengakses sshd server, minimal configurasi sshd_config anda seperti berikut::

//———————————————–//
Port 22
Protocol 2
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 2m
PermitRootLogin no
StrictModes yes
MaxAuthTries 3
PermitEmptyPasswords no
X11Forwarding no
PrintMotd no
DenyGroups wheel # list group yg di denied
DenyUsers root toor # list user yg di denied
AllowGroups xnuxer #list groups yg di allow
AllowUsers am_007 #list users yg di allow
//———————————————–//

4. /etc/?

Ada beberapa file yang ada di directory /etc atau di /usr/local/etc yang harus anda perhatikan seperti file sudoers, httpd.conf dan php.ini (jika anda menginstall webserver) serta beberapa file configurasi lainya.

–//Firewall

Dalam proses pemilihan firewall, ada baiknya anda memilih firewall yang benar-benar anda pahami dan anda kuasai pengoperasian dan design dari firewall device tersebut, jangan sampai firewall anda yg akan menjadi penghambat pekerjaan anda, banyak kasus yang terjadi karena pemilhan firewall yang kurang tepat dapat menghambat pekerjaan utama seorang sysadmin.
Freebsd datang dengan beberapa firewall built in seperti IPFW. Bagi anda yang lebih suka menikmati Packet filter-nya openbsd silahkan compile ulang kernel freebsd anda dan tambahkan beberapa options pada file configurasi kernel anda sehingga defice PF dapat dikenali oleh kernel freebsd anda.
Pembuatan aturan yang akan diberlakukan dalam firewall sebaiknya di setting default agar menolak segala koneksi dan request dari luar, Selanjutnya anda tinggal membuat aturan agar koneksi dan request yang memang seharusnya di ijinkanlah yang diperbolehkan.

–//Aplikasi tambahan

Beberapa aplikasi tambahan yang berfungsi meningkatkan sekuritas dan untuk mengaudit system anda ::

1. hostsentry / portsentry

aplikasi yang mengawasi usaha scanning terhadap service-service yang berjalan, aplikasi ini juga bisa membuat fake service yang bisa mengelabui attacker yang sedang melakukan scanning kemudian memutuskan jalur dan atau memblock ip yang terdetetksi

2. Tripwire

Aplikasi yang akan me-log segala perubahan yang terjadi di dalam system.

3. Denyhost

Aplikasi yang melindungi SSH server anda dari BruteForce attack.

Masih banyak aplikasi yang bisa meningkatkan keamanan system anda, seperti snort dan yg lainya, tentu semuanya tergantung kebutuhan anda. Pastikan aplikasi yang anda install adalah aplikasi yang sebisa mungkin tidak memiliki celah keamanan.

–//Penutup

Artikel ini hanya memberikan sedikit gambaran bagaimana membuat system anda sedikit lebih aman dibandingkan dengan installasi default system operasi. Bagaimanapun juga, semua kembali kepada perencanaan awal anda, terlalu paranoid juga akan membuat system anda akan sulit diakses oleh user yang sah, terlalu lengah juga akan membuat user yang tidak sah ‘bisa’ bermain-main di system anda. Ingat bahwa keamanan berbanding terbalik dengan kenyamanan, jadi design system yang bagus sebelum penerapan (installasi dan configurasi) adalah langkah awal yang baik untuk sysadmin seperti anda.
Saran dan masukan sangat diharapkan agar release berikutnya artikel ini bisa lebih baik lagi..!

Leave a Comment.