Install dan Konfigurasi Config Server Firewall (CSF) di Ubuntu

Wednesday, May 2, 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 pernah 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:

ufw disable
wget http://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
perl /usr/local/csf/bin/csftest.pl
Perintah diatas adalah untuk mematikan firewall bawaan Ubuntu yakni ufw, mendownload csf, mengekstrak csf serta melakukan testing apakah csf sudah terinstall dengan benar. 


Jika semuanya benar maka output nya akan seperti berikut:
 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
Oke sekarang saatnya kita melakukan konfigurasi csf. Kita mulai dengan konfugurasi dasar yaitu mengatur port mana saja yang akan dibuka dan tidak.
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;20"
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.
csf -r
Jika semuanya oke, kita edit lagi konfigurasi csf dan mematikan mode testing.
nano /etc/csf/csf.conf
Ubah value TESTING menjadi:
TESTING ="0"
Sekarang kita coba restart kembali csf.
csf -r
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
nano /etc/csf/csf.deny
Mengijinkan IP
nano /etc/csf/csf.allow
Mengabaikan IP
nano /etc/csf/csf.ignore
 Bisa diisi dengan single ip maupun ip range. Jika sudah, jangan lupa untuk merestart csf.
csf -r

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

No comments:

Post a Comment