ConfigServer Security & Firewall (CSF) adalah Stateful Packet Inspection (SPI) firewall, deteksi gangguan, dan aplikasi keamanan untuk server Linux. CSF adalah rangkaian keamanan yang sangat poluler dan keren.
Dalam artikel ini, saya akan menunjukkan cara menonaktifkan firewalld, menginstal IPtables, dependensi CSF, dan CSF.
Stop dan disable firewalld
systemctl disable firewalld.service
systemctl stop firewalld.service
Install iptables
yum -y install iptables-services
Buat file yang dibutuhkan iptables
touch /etc/sysconfig/iptables
touch /etc/sysconfig/iptables6
Start iptables dan Enable iptables saat boot
systemctl start iptables.service && systemctl enable iptables.service
systemctl start ip6tables.service && systemctl enable ip6tables.service
Install CSF dependensi
yum -y install wget perl unzip net-tools perl-libwww-perl perl-LWP-Protocol-https perl-GDGraph perl-Time-HiRes
Masuk ke direktori /usr/src/
dan download CSF dengan perintah wget
cd /usr/src
wget https://download.configserver.com/csf.tgz
Ekstrak file csf.tgz
dan masuk ke direktori csf, lalu install
tar -xzf csf.tgz
cd csf
sh install.sh
Sekarang lakukan verifikasi apakah CSF bekerja di server. Masuk direktori /usr/local/csf/bin/
, dan jalankan csftest.pl
cd /usr/local/csf/bin/
perl csftest.pl
Jika output verifikasi seperti di bawah ini, CSF bekerja tanpa masalah di server
Untuk melihat pilihan apa saja yang ada pada baris perintah csf
man csf
atau dengan cara
csf -h
Semua file konfigurasi untuk csf
ada di directory /etc/csf/
csf.conf
: file konfigurasi utama dari CSF, ada beberapa komentar yang bermanfaat untuk menjelaskan apa yang harus dilakukancsf.allow
: daftar alamat IP dan CIDR yang mendapatkan akses izinkan melalui firewallcsf.deny
: daftar alamat IP dan CIDR yang tidak mendapatkan akses izinkan melalui firewall atau diblokircsf.ignore
: daftar alamat IP dan CIDR yang diabaikan dan tidak diblokir jika terdeteksi oleh firewallcsf.*ignore
: berbagai macam file yang diabaikan oleh firewall dan berisi daftar file, pengguna, IP yang diabaikan. Setiap file memiliki tujuan yang spesifik
Setelah selesai mengedit beberapa file konfigurasi CSF, layanan CSF biasanya direstart
csf -ra
CSF dapat dikonfigurasi dengan mengedit file konfigurasinya csf.conf
pada directory /etc/csf
vim /etc/csf/csf.conf
Setelah selesai simpan file konfigurasi dan jalankan perintah berikut
csf -ra
Semakin sedikit akses yang ada pada VPS, semakin aman VPS nya. Namun tidak semua port yang aktif bisa ditutup, karena klien harus menggunakan layanan yang ada pada VPS.
Port yang dibuka secara default oleh CSF sebagai berikut
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,80,110,113,443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
Layanan yang menggunakan port:
- 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)
Ada kemungkinan tidak menggunakan semua layanan yang ada diatas. Jadi saya akan merekomendasikan untuk menutup port yang tidak digunakan, dan kemudian menambahkan port yang dibutuhkan.
Konfigurasi lanjutan dari CSF, masuk ke direktori CSF /etc/csf/
dan edit file csf.conf
dengan editor vim
cd /etc/csf/
vim csf.conf
Cari dan ganti value dari baris TESTING
menjadi 0
untuk menerapkan konfigurasi firewall
TESTING = "0"
Simpan file konfigurasi, dan restart CSF
csf -ra
Untuk melihat daftar rules hasil dari konfigurasi CSF
csf -l
Berikut adalah beberapa tweak firewall CSF, dapat di konfigurasi sesuai kebutuhan
Kembali masuk ke direktori CSF /etc/csf/
dan edit file csf.conf
dengan editor vim
cd /etc/csf/
vim csf.conf
-
Mencegah diblokirnya alamat IP yang ada di file konfigurasi
csf.allow
Jadi jika menginginkan alamat IP di file konfigurasi
csf.allow
tidak diblokir, maka cari dan ganti value dari barisIGNORE_ALLOW
menjadi1
. Hal ini akan berguna apabila memiliki IP statis di rumah atau di kantor dan memastikan bahwa alamat IP tidak diblokir oleh firewall.IGNORE_ALLOW = "1"
-
Ijin akses Incoming dan Outgoing ICMP
Cari dan ganti value dari baris
ICMP_IN
menjadi1
, Incoming ICMPICMP_IN = "1"
Cari dan ganti value dari baris
ICMP_OUT
menjadi1
, Outgoing ICMPICMP_OUT = "1"
-
Block Certain Countrys
CSF dapat memberikan opsi untuk mengizinkan dan memblokir akses dari beberapa Negara menggunakan CIDR (Country Code). Cari baris dengan nama variabel
CC_DENY
danCC_ALLOW
, dan tambahkan kode negara yang akan diizinkan(CC_ALLOW)
dan diblokir(CC_DENY)
CC_DENY = "CN,UK,US" CC_ALLOW = "ID"
-
Kirim log akses SSH dan Super User(su) ke E-mail
LF_SSH_EMAIL_ALERT = "1" ... LF_SU_EMAIL_ALERT = "1"
LF_ALERT_TO = "[email protected]"
Setelah selesai mengedit beberapa file konfigurasi CSF, simpan dan restart CSF
csf -ra
-
Start firewall (memulai rule dari firewall)
csf -s
-
Flush/Stop firewall (menghentikan rule dari firewall)
csf -f
-
Restart firewall (me-restart rule dari firewall)
csf -r
-
Status firewall (melihat hasil rule dari firewall)
csf -l
-
Menambahkan IP ke
csf.allow
danrule akses
csf -a 192.168.1.109
Output:
Adding 192.168.1.109 to csf.allow and iptables ACCEPT... ACCEPT all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0 ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
-
Menghapus IP dari
csf.allow
danrule akses
csf -ar 192.168.1.109
Output:
Removing rule... ACCEPT all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0 ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
-
Menambahkan IP ke
csf.deny
danrule block
csf -d 192.168.1.109
Output:
Adding 192.168.1.109 to csf.deny and iptables DROP... DROP all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
-
Menghapus IP ke
csf.deny
danrule block
csf -dr 192.168.1.109
Output:
Removing rule... DROP all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
-
Menghapus semua record / data dari
csf.deny
.csf -df
Output:
DROP all opt -- in !lo out * 192.168.1.110 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.110 DROP all opt -- in !lo out * 192.168.1.111 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.111 csf: all entries removed from csf.deny
-
Untuk mencari pola yang sesuai dengan IPtables, contoh: IP, CIDR, Port
csf -g 192.168.1.110
-
Disable firewall (menonaktifkan rule dari firewall)
csf -x
-
Enable firewall (mengaktifkan rule dari firewall)
csf -e
-
Check update firewall
csf -c
-
Update firewall (mendownload paket dan fitur baru firewall)
csf -u
Jika menginginkan lebih banyak tweak firewall CSF, baca opsi / komentar / dokumentasi di dalam file konfigurasi /etc/csf/csf.conf
atau di Dokumentasi CSF.
Sekian Dokumentasi :D
Semoga berhasil!