Install dan Konfigurasi ConfigServer Security and Firewall

Rabu, 02 Mei 2018

Install dan Konfigurasi Config Server Firewall (CSF) di Ubuntu - CSF adalah firewall gratis dan canggih yang cukup populer dan dapat digunakan di hampir semua distro linux. Selain fungsi firewall dasar, CSF juga menyediakan fitur lain seperti deteksi login, flood, dsb. Firewall ini bisa diintegrasikan dengan cPanel, Webmin maupun panel lainnya, namun di tutorial ini saya hanya akan menulis konfigurasi di command line nya saja karena saya memang tidak menggunakan panel.


Beberapa fitur dari CSF:
  • Check and notify login authentication failures for ssh, su, pop3/imap, smtp, ftp, cPanel, password protected web pages.
  • Notify potential exploits running on the server.
  • Monitor suspicious file and directory, notify if directory or a file changes.
  • Protect against SYN Flood and Ping of death.
  • Suspicious process reporting and notify if potential exploits running on the server.
  • Port Scan tracking and blocking.
  • Notify if server load average remains high for a specified length of time.
  • Provides system statistics via graphs, e.g. Load Averages, CPU Usage, Memory Usage, etc.
  • Download list of blocked IP addresses automatically from sources defined by you.
Oke berikut cara instalasinya.
Pertama, kita disable firewall yang sudah terpasang di server. Jika kalian menggunakan ufw, maka command nya adalah:
sudo ufw disable

Selanjutnya download source code csf dengan perintah wget. 

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

Selanjutnya kita ekstrak file nya dengan perintah tar

tar -xvf csf.tgz 
cd csf 

Nah, didalam direktori csf ada banyak installer yang bisa dipakai. Tinggal kita sesuaikan. Namun karena kita menginstall csf di server tanpa panel, maka gunakan file install.sh

sudo ./install.sh

Selanjutnya kita uji terlebih dahulu apakah csf sudah siap dipakai. 

sudo perl /usr/local/csf/bin/csftest.pl

Jika semuanya sudah oke, kita lanjut ke konfigurasi CSF.

Konfigurasi CSF
Oke sekarang saatnya kita melakukan konfigurasi csf. Kita mulai dengan konfugurasi dasar yaitu mengatur port mana saja yang akan dibuka dan tidak.
sudo nano /etc/csf/csf.conf
Berikut port yang saya buka dan tidak. Karena saya hanya menggunakan webserver saja tanpa email (dns management menggunakan cloudflare) maka saya hanya membuka port ssh dan web server saja.
TCP_IN = "22,80,443"
TCP_OUT = "22,80,443"
UDP_IN = ""
UDP_OUT = "123"

Begitu juga jika kalian mengaktifkan layanan IPv6 jangan lupa diedit di CSF.
TCP6_IN = "22,80,443"
TCP6_OUT = "22,80,443"
UDP6_IN = ""
UDP6_OUT = "123"
Berikut beberapa layanan atau service beserta port yang digunakan.
  • Port 20: FTP data transfer
  • Port 21: FTP control
  • Port 22: Secure shell (SSH)
  • Port 25: Simple mail transfer protocol (SMTP)
  • Port 53: Domain name system (DNS)
  • Port 80: Hypertext transfer protocol (HTTP)
  • Port 110: Post office protocol v3 (POP3)
  • Port 113: Authentication service/identification protocol
  • Port 123: Network time protocol (NTP)
  • Port 143: Internet message access protocol (IMAP)
  • Port 443: Hypertext transfer protocol over SSL/TLS (HTTPS)
  • Port 465: URL Rendesvous Directory for SSM (Cisco)
  • Port 587: E-mail message submission (SMTP)
  • Port 993: Internet message access protocol over SSL (IMAPS)
  • Port 995: Post office protocol 3 over TLS/SSL (POP3S)
Tentunya tidak mungkin kalian gunakan semua. Jadi gunakan yang diperlukan saja.

Konfigurasi tambahan
CSF juga menyediakan konfigurasi tambahan seperti limit koneksi per ip address terhadap port tertentu untuk menghindari ddos.
CONNLIMIT - Untuk membatasi jumlah koneksi per IP pada port tertentu. contoh:
CONNLIMIT = "443;40"
Maksudnya,  satu IP hanya diijinkan konek ke port 443 sebanyak 20 koneksi secara bersamaan.

PORTFLOOD - Membatasi jumlah koneksi per interval waktu agar koneksi baru dapat dibuat ke port tertentu. contoh:
PORTFLOOD = "443;tcp;20;10,80;tcp;20;10"
Msksudnya, jika IP tertentu mengakses port 443 secara bersamaan lebih dari 20, maka IP tersebut akan di block selama 10 detik. Begitu juga dengan port 80.

Untuk konfigurasi lain silahkan bereksperimen sendiri ya.
Sekarang kita coba restart csf.
sudo csf -r
Jika semuanya oke, kita edit lagi konfigurasi csf dan mematikan mode testing.
sudo nano /etc/csf/csf.conf
Ubah value TESTING menjadi:
TESTING ="0"
Sekarang kita coba restart kembali csf.
csf -ra

Mengelola IP address

csf bisa digunakan untuk memblokir serta mengijinkan IP untuk mengakses server kita. Serta untuk mengabaikan ip tertentu agar tidak terpengaruh oleh rules firewall.

Memblokir IP
sudo nano /etc/csf/csf.deny
Mengijinkan IP
sudo nano /etc/csf/csf.allow
Mengabaikan IP
sudo nano /etc/csf/csf.ignore
Bisa diisi dengan single ip maupun ip range. Jika sudah, jangan lupa untuk merestart csf.
sudo csf -r

Uninstall CSF

Untuk menghapus csf dari server masuk ke direktori source csf, lalu jalankan script uninstall.sh

sudo ./uninstall.sh

 
Baiklah sekian tutorial kali ini, jika ada yang kurang jelas silahkan ditanyakan.

Referensi:
  • https://blog.rapid7.com/2017/05/24/how-to-install-and-configure-csf-firewall-on-ubuntu-linux/
  • https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-config-server-firewall-csf-on-ubuntu

Artikel Terkait CSF ,Hardening ,Security