Dalam lingkungan pengembangan perangkat lunak modern, Docker telah menjadi pilihan populer bagi para pengembang dan tim DevOps untuk mengelola dan menyebarkan aplikasi dengan lebih efisien. Docker memungkinkan pengemasan aplikasi ke dalam wadah yang ringan dan portabel, yang dapat dijalankan di berbagai lingkungan. Namun, ketika kita menggunakan Docker, penting untuk mempertimbangkan aspek keamanan. Salah satu cara untuk meningkatkan keamanan lingkungan Docker adalah dengan menggunakan firewall yang tepat. Dalam artikel ini, kita akan membahas tentang implementasi Docker dengan menggunakan firewall CSF (ConfigServer Security & Firewall).
Docker
Docker merupakan platform open-source yang memungkinkan para pengembang untuk membangun, menguji, dan mendistribusikan aplikasi dengan menggunakan wadah (container). Fungsinya untuk memisahkan aplikasi dari infrastruktur yang ada, sehingga memungkinkan aplikasi untuk berjalan dengan konsisten di berbagai lingkungan. Namun, sifat terbuka Docker juga dapat menjadi celah keamanan jika tidak dikelola dengan baik.
Firewall CSF
Di sinilah firewall seperti CSF dapat membantu. CSF adalah firewall bersumber terbuka yang dirancang untuk melindungi server Linux dari serangan jaringan. CSF dapat diimplementasikan untuk melindungi host yang menjalankan container dan mengontrol akses jaringan ke kontainer-kontainer tersebut.
Implementasi Docker dengan Firewall CSF
Berikut adalah beberapa langkah implementasi Docker dengan firewall CSF:
Instalasi Docker
Sebelum memulai tutorial ini, silahkan melakukan instalasi docker pada perangkat anda, instalasi docker bisa mengikuti tutorial berikut ini.
Setelah melakukan instalasi, pastikan docker sudah terinstall dengan benar, anda bisa melakukan verifikasi dengan mengetik perintah di terminal:
docker info
Instalasi WordPress Docker
Studi kasus yang akan kita implementasikan nantinya adalah menggunakan CSF untuk membatasi akses ke website wordpress Docker hanya untuk beberapa negara saja, untuk itu anda dapat melakukan instalasi wordpress didalam docker dengan mengikuti tutorial berikut ini.
Setelah Instalasi wordpress berhasil, kurang lebih berikut adalah tampilan hasilnya:
Instalasi Firewall CSF
Sebelum melakukan instalasi CSF, alangkah baiknya kita melihat hasil instalasi wordpress yang sebelumnya dulakukan, dengan begitu kita tahu negara mana saja yang bisa mengakses website tersebut, anda bisa menggunakan layanan dari https://ping.pe untuk melihat apakah ip address dapat diakses menggunakan ping atau tidak.
Sebagai contoh hasil dari instalasi wordpress yang sudah saya lakukan seperti berikut:
Dari gambar diatas kita bisa lihat bahwa ip dari server yang terinstall wordpress didalam docker bisa diakses dari semua negara, selanjutnya kita akan coba membatasi untuk akses website hanya boleh diakses oleh ip dari negara Indonesia, USA, dan Singapore. untuk itu kita harus instalasi CSF terlebih dahulu.
Langkah langkah instalasi Firewall CSF:
- Ubuntu hadir dengan UFW yang sudah diinstal sebelumnya. Untuk menginstal CSF, Anda harus menghapusnya terlebih dahulu dengan perintah berikut:
apt remove ufw
- Selanjutnya, instal dependensi CSF.
apt install perl zip unzip libwww-perl liblwp-protocol-https-perl
- CSF memerlukan Sendmail untuk mengirimkan peringatan ke administrator (Opsional).
apt install sendmail-bin
- Masuk ke directory /usr/src.
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
Verifikasi status CSF setelah instalasi selesai:
perl /usr/local/csf/bin/csftest.pl
Konfigurasi Firewall CSF
CSF berjalan dalam mode TEST secara default. Untuk menonaktifkannya, edit/etc/csf/csf.conf
. Ubah nilai TESTING dari 1 menjadi 0
Ubah konfigurasi CSF untuk support mode Docker, silahkan ubah baris DOCKER menjadi angka 1 seperti gambar dibawah ini:
Selanjutnya anda memerlukan lisensi MaxMind untuk melakukan percobaan pembatasan akses website, silahkan registrasi di website mereka secara gratis. kemudian anda bisa mendapatkan key dengan masuk ke menu Manage License Key:
JIka belum memiliki Key, silahkan klik Generate new license key, nantinya anda akan diarahkan untuk mengisi nama lisensi dan setelah berhasil membuat key, kurang lebih tampilan seperti gambar berikut:
Kemudian edit file konfigurasi pada MM_LICENSE_KEY dengan key yang anda dapat diatas:
Selanjutnya, ubah bagian-bagian berikut untuk enable Maxmind dan mengijinkan beberapa negara saja yang bisa akses website kita:
CC_SRC = “1”
CC_ALLOW = “ID,US,SG”
Setelah melakukan konfigurasi tersebut, simpan file dan reload Firewall CSF nya dengan perintah:
csf -ra
Restart docker service dan docker container, jika anda mengguankan docker compose, silahkan jalankan docker compose ulang untuk menjalankan docker setelah restart docker service:
Setelah melakukan restart docker service, harusnya website anda hanya bisa diakses oleh ip dari Indonesia, United States, dan Singapore. untuk membuktikan nya kita coba melakukan ping menggunakan https://ping.pe sebegai berikut:
Dari gambar diatas, kita dapat melihat bahwa website kita hanya bisa di ping oleh negara-negara yang telah kita ijinkan yakni Indonesia, United States, dan Singapore.
Anda juga bisa melakukan pembatasan dari port port tertentu saja menggunakan Firewall CSF ini, untuk lebih lengkapnya anda bisa explore file configurasi dari Firewall CSF. Sekian tutorial ini, jika kamu ingin mendapatkan layanan Cloud Server untuk Implementasi Docker dengan Firewall CSF, Anda bisa pakai VPS Cloudaja !