Install SafeLine WAF – SafeLine adalah Web Application Firewall (WAF) open-source yang dirancang untuk melindungi aplikasi web dari berbagai serangan siber seperti SQL Injection, Cross-Site Scripting (XSS), dan serangan berbasis HTTP lainnya.
Beberapa Fitur SafeLine WAF:
SafeLine is a self-hosted WAF
By deploying a WAF in front of a web application, a shield is placed between the web application and the Internet. While a proxy server protects a client machine’s identity by using an intermediary, a WAF is a type of reverse-proxy, protecting the server from exposure by having clients pass through the WAF before reaching the server.
Sebelum memulai proses instalasi, Ada beberapa hal yang harus disiapkan, seperti Server VPS yang digunakan untuk menginstall SafeLine WAF.
Minimum Spesifikasi Server VPS
Pada kesempatan kali ini, Kita akan coba deploy SafeLine WAF ini ke Server Ubuntu. Nantinya kita juga akan coba host beberapa webapp seperti wordpress ke dalam VM yang sama dengan SafeLine ini. Untuk mengetahui bagaimana SafeLine ini dapat melindungi aplikasi web Kita.
Gambaran Proses Instalasi SafeLine
Baca Juga : Cara Install ModSecurity WAF di Nginx + OWASP CRS
SafeLine WAF berjalan menggunakan Docker container, jadi pertama-tama Kita perlu menginstal Docker di VPS untuk bisa menjalankannya. Sebelum itu, pastikan juga untuk memperbarui dan meng-upgrade paket sistem terlebih dahulu. Jangan lupa juga untuk mengatur zona waktu server sesuai lokasi Anda, misalnya di sini saya atur ke Asia/Jakarta.
sudo apt update && sudo apt upgrade -y
sudo timedatectl set-timezone Asia/Jakarta
Setelah itu baru mulai proses instalasi docker dengan menggunakan tutorial di bawah ini. Pertama tambahkan Docker’s official GPG key, lalu tambahkan juga repository docker ke Apt sources.
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Mulai menginstall docker versi terbaru.
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Jalankan layanan docker secara otomatis setelah server selesai boot. Dan periksa versi docker yang telah terinstall.
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
docker -v
Akan terlihat versi docker seperti gambar di bawah ini:
Kita akan menginstall SafeLine WAF dengan metode Automatic Deploy. Yaitu menggunakan bash script yang telah dibuatkan oleh official safeLine. Untuk menjalankan bash script ini, Kita hanya perlu masuk sebagai user root ke server VPS.
sudo su
Kemudian jalankan script automatic Deploy berikut ini:
bash -c "$(curl -fsSLk https://waf.chaitin.com/release/latest/manager.sh)" -- --en
Akan tampil pilihan instalasi seperti ini. Di sini karena Kita akan menginstall SafeLine, maka masukkan angka 1 kemudian enter untuk memulai proses instalasi.
Akan ada pertanyaan path tempat menyimpan konfigurasi SafeLine WAF, Kita enter saja agar konfigurasinya disimpan dilokasi default yaitu, /data/safeline
Setelah instalasi selesai, akan tampil username dan password untuk login ke dashboard SafeLine. ditampilkan juga URL berupa IP address dan port yang digunakan untuk login ke dashboardnya.
Untuk mengakses halaman Safeline, Kita hanya perlu memasukkan IP Address beserta Port di search bar browser seperti chrome. Kemudian akan tampil halaman login page seperti ini. Masukkan username dan password yang tadi sudah Kita dapat di langkah sebelumnya.
https://ip-server:9443
Ini adalah tampilan dashboard SafeLine WAF
Sebenarnya setelah berhasil melakukan langkah ini instalasi SafeLine WAF sudah selesai dan siap digunakan. Tetapi kita juga akan menambah beberapa konfigurasi seperti mengatur domain dan SSL.
Secara default, untuk mengakses web console, kita harus memasukkan IP address beserta port-nya. Namun kali ini, kita akan mengatur agar akses ke web console SafeLine bisa menggunakan domain. Cara ini tentu lebih aman dan lebih mudah diingat dibandingkan harus mengingat IP address.
Tapi sebelum itu, Kita pointing domain dulu. Siapkan satu subdomain yang akan digunakan sebagai nama domain SafeLine Web Console. Di sini saya menggunakan nama subdomain, safeline.awanservers.com. Jika Anda menggunakan Cloudflare, gambar di bawah ini bisa Anda jadikan contoh.
Kemudian request SSL Cert menggunakan menu dashboard web console. Masuk ke web console -> Applications -> SSL Cert.
Akan muncul popup seperti ini. Pilih Get free cert, isikan nama subdomain untuk web console dan isikan email aktif juga, email di sini bebas mau pakai mana saja. Kalau sudah pilih SUBMIT
Kita masuk ke setting sub domain untuk web console, Masuk ke Application -> applications ->ADD APPLICATION
Akan muncul popup seperti ini, lihat gambar di bawah ini sebagai contoh. Di sini yang perlu diperhatikan adalah nama domain yang perlu disesuikan dengan sub domain milik Anda sendiri, SSL Cert yang harus dipilih dan port cukup 443 saja. Jika sudah klik SUBMIT
Jika sudah, Kita akan coba akses SafeLine Web Console menggunakan domain. Jika berhasil akan muncul halaman login page seperti ini.
Kita akan coba uji dengan menjalankan simulasi attact dengan skrip, Kita akan uji untuk domain safeline web console. Kita akan coba uji dengan beberapa metode serangan seperti SQL Injection, XSS, Path Traversal, Code Injection, dan XXE.
Skrip Pengujian
https://safeline.awanservers.com/?id=1+and+1=2+union+select+1
https://safeline.awanservers.com/?id=<img+src=x+onerror=alert()>
https://safeline.awanservers.com/?id=../../../../etc/passwd
https://safeline.awanservers.com/?id=phpinfo();system('id')
https://safeline.awanservers.com/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">
Maka akan ada proteksi dari SafeLine seperti ini
Kemudian kita coba periksa log di dashboard web console. Akan tampil log event dan log attact yang mengarah ke web Kita seperti ini.
Dengan mengikuti langkah-langkah di atas, Anda kini berhasil menginstal dan mengonfigurasi SafeLine WAF di Ubuntu Server menggunakan Docker. Mulai dari instalasi Docker, setup SafeLine WAF, hingga pengaturan domain dan pengujian, semua langkah ini memberikan perlindungan lebih pada aplikasi web Anda. Pastikan untuk terus memantau dan menyesuaikan konfigurasi demi keamanan yang optimal.
Semoga panduan ini bermanfaat, dan selamat mencoba! 🚀