Terus terang sebelumnya saya punya opini bahwa CSF (ConfigServer Security & Firewall) ini hanyalah paket aplikasi tambahan untuk firewall di Linux. Saya anggap berbeda dengan iptables. Ternyata ini salah besar. Ya memang tepat peribahasa tak kenal maka tak sayang. 😛

Jadi CSF ini sebenarnya merupakan alat pembantu untuk setting firewall dan mesin yang dipakai pun tetaplah iptables dibaliknya. Asli saya kira dulu perlu uninstall iptables untuk memakainya dan ini yang membuat enggan mencobanya. Main – main dengan firewall itu bisa membuat servernya terblokir. Nah… kalau iptables bisa dikatakan firewall yang bodoh, maksudnya apa perintahnya ya itu saja yang dilakukan, maka dengan CSF katanya akan dilengkapi dengan analisa trafik, sudah diikutkan peraturan default untuk protokol dan aplikasi populer juga optimasi lainnya.

Tampaknya script instalasi CSF ini otomatis mengenali distro Linux yang digunakan, jadi langkah – langkahnya akan sama saja. Semoga. 😀 Yang saya tahu kalau distro Linux yang dipakai sudah ada firewallnya tapi bukan iptables seperti Ubuntu dengan ufw dan CentOS 7 dengan firewalld. Ini harus dihapus dulu baru diinstall CSFnya.

Pertama mari kita download dulu:

wget https://download.configserver.com/csf.tgz

Kemudian mari kita ekstrak arsipnya:

tar -xzf csf.tgz

Masuk ke direktori hasil ekstrakannya:

cd csf

Dan mari kita eksekusi script installernya:

sh install.sh

Log prosesnya akan seperti ini:

Don't forget to:
1. Configure the following options in the csf configuration to suite your server: TCP_*, UDP_*, IPV6, TCP6_*, UDP6_*
2. Restart csf and lfd
3. Set TESTING to 0 once you're happy with the firewall, lfd will not run until you do so

Adding current SSH session IP address to the csf whitelist in csf.allow:
*WARNING* URLGET set to use LWP but perl module is not installed, reverting to HTTP::Tiny
Adding 192.168.1.94 to csf.allow only while in TESTING mode (not iptables ACCEPT)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
`lfd.sh' -> `/etc/init.d/lfd'
`csf.sh' -> `/etc/init.d/csf'
mode of `/etc/init.d/lfd' retained as 0755 (rwxr-xr-x)
mode of `/etc/init.d/csf' retained as 0755 (rwxr-xr-x)
`csf/LICENSE.txt' -> `webmin/csf/images/LICENSE.txt'
`csf/bootstrap/fonts/glyphicons-halflings-regular.woff' -> `webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff'
`csf/bootstrap/fonts/glyphicons-halflings-regular.eot' -> `webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.eot'
`csf/bootstrap/fonts/glyphicons-halflings-regular.woff2' -> `webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff2'
`csf/bootstrap/fonts/glyphicons-halflings-regular.ttf' -> `webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.ttf'
`csf/bootstrap/fonts/glyphicons-halflings-regular.svg' -> `webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.svg'
`csf/bootstrap/js/bootstrap.min.js' -> `webmin/csf/images/bootstrap/js/bootstrap.min.js'
`csf/bootstrap/css/bootstrap.min.css.map' -> `webmin/csf/images/bootstrap/css/bootstrap.min.css.map'
`csf/bootstrap/css/bootstrap.min.css' -> `webmin/csf/images/bootstrap/css/bootstrap.min.css'
`csf/configserver.css' -> `webmin/csf/images/configserver.css'
`csf/csf-loader.gif' -> `webmin/csf/images/csf-loader.gif'
`csf/csf.svg' -> `webmin/csf/images/csf.svg'
`csf/csf_small.png' -> `webmin/csf/images/csf_small.png'
`csf/jquery.min.js' -> `webmin/csf/images/jquery.min.js'
`csf/loader.gif' -> `webmin/csf/images/loader.gif'
`/etc/csf/csfwebmin.tgz' -> `/usr/local/csf/csfwebmin.tgz'

Installation Completed

Selesai. 😀

Aslinya saya cari ada tidak repository untuk install CSF dan tampaknya tidak ada. Bakal agak repot waktu updatenya nanti. Semoga saja tidak.

Tapi yang terpenting sekarang kita harus tahu lebih dulu apakah CSF dapat berfungsi normal pada VPS tersebut.

cd /usr/local/csf/bin/

Dan eksekusi:

perl csftest.pl

Semoga hasilnya seperti ini:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

Kalau iya ya berarti sukses terinstall.

Ada satu hal menarik yang baru saya tahu setelah menginstall CSF, tampaknya kita tidak perlu menginstall Fail2Ban karena sudah ada LFD (Login Failure Daemon) sepaket dalam instalasinya. Dan ini baru bekerja setelah menghidupkan CSF juga karena secara default masih dalam mode percobaan.

Mari kita edit konfigurasinya dulu:

nano /etc/csf/csf.conf

Kemudian ubah setting didalamnya jadi seperti berikut:

###############################################################################
# SECTION:Initial Settings
###############################################################################
# Testing flag - enables a CRON job that clears iptables incase of
# configuration problems when you start csf. This should be enabled until you
# are sure that the firewall works - i.e. incase you get locked out of your
# server! Then do remember to set it to 0 and restart csf when you're sure
# everything is OK. Stopping csf will remove the line from /etc/crontab
#
# lfd will not start while this is enabled
TESTING = "0"

Intinya kita matikan mode testing.

Setelah itu kita restart:

csf -r

Tutorial kali ini sampai disini dulu karena penjelasan instalasinya sudah habis. 😀 Nanti akan saya lanjutkan dengan pembahasan setting peraturan CSF. Tapi setelan defaultnya sudah cukup bagus kalau saya baca dokumentasinya.

Bagi yang terbiasa menggunakan murni iptables saja (seperti saya) tampaknya sudah patut dipertimbangkan untuk menambahkan CSF karena kerjanya adalah melengkapi dan mengoptimasi. Tapi saat ini saya masih eksperimen mempelajari setting – settingnya yang pas.