Firewall adalah lapisan pertahanan pertama yang menentukan lalu lintas jaringan mana yang boleh masuk dan keluar dari sistem Linux. Tanpa aturan yang jelas, server dapat terpapar berbagai upaya koneksi yang tidak diinginkan — mulai dari pemindaian port hingga percobaan masuk paksa. Untungnya, mayoritas distribusi Linux modern menyediakan alat bernama UFW, kependekan dari Uncomplicated Firewall. Sesuai namanya, UFW dirancang sebagai antarmuka sederhana untuk mengelola aturan firewall tanpa harus menghafal sintaks iptables yang rumit.

Tutorial ini berfokus pada satu prinsip penting — menutup port yang tidak perlu tanpa mengunci diri sendiri dari server. Ini adalah kekhawatiran paling umum ketika seseorang baru belajar mengonfigurasi firewall pada server jarak jauh. Salah langkah kecil, seperti mengaktifkan firewall sebelum mengizinkan akses SSH, bisa membuat Anda kehilangan kendali atas server. Karena itu, urutan konfigurasi menjadi kunci. Semua praktik di sini hanya boleh diterapkan pada sistem milik sendiri atau sistem yang sudah Anda kantongi izin tertulis dari pemiliknya. Belajar keamanan jaringan harus selalu berada dalam koridor etis dan legal.

Mengenal UFW dan Konsep Dasar Firewall

UFW adalah front-end atau antarmuka pengguna untuk iptables, kerangka kerja firewall bawaan kernel Linux. Tugas utama UFW adalah menerjemahkan perintah-perintah pendek dan mudah dibaca menjadi aturan iptables yang lebih kompleks. Dengan UFW, Anda cukup mengetik sudo ufw allow 22/tcp untuk membuka port SSH, tanpa perlu menulis rantai iptables panjang.

Sebelum menyentuh perintah apa pun, pahami dua arah lalu lintas yang dikelola firewall — koneksi masuk dan koneksi keluar. Koneksi masuk adalah upaya dari luar menuju server Anda, misalnya permintaan HTTP ke web server atau percobaan login SSH. Koneksi keluar adalah lalu lintas yang dimulai dari server Anda, seperti saat server mengunduh pembaruan paket. Pada dasarnya, firewall membedakan keduanya dan menerapkan kebijakan berbeda.

Konsep lain yang perlu dipegang adalah daftar aturan berlapis. Setiap aturan yang Anda buat akan dievaluasi secara berurutan, dan aturan pertama yang cocok akan menentukan nasib paket data. Karena itu, urutan penambahan aturan bisa berpengaruh pada hasil akhir. Namun, UFW mengelola urutan ini secara otomatis di belakang layar, sehingga pengguna pemula tidak perlu terlalu khawatir.

Dalam konteks server yang baru dipasang, sering kali tidak ada aturan firewall aktif. Artinya, semua lalu lintas masuk dan keluar diizinkan. Ini bukan kondisi ideal karena port yang tidak digunakan tetap terbuka dan bisa menjadi celah. Tujuan kita adalah menutup semua pintu masuk kecuali yang benar-benar dibutuhkan — tanpa mengunci pintu utama yang kita gunakan untuk masuk, yaitu SSH.

Menyiapkan Kebijakan Default yang Aman

Langkah pertama dalam mengonfigurasi UFW adalah menetapkan kebijakan default. Kebijakan default adalah aturan yang diterapkan ketika tidak ada aturan spesifik yang cocok dengan suatu koneksi. Titik awal yang disarankan oleh dokumentasi resmi dan praktik keamanan umum adalah menolak semua koneksi masuk dan mengizinkan semua koneksi keluar.

Dengan kebijakan default menolak koneksi masuk, server Anda secara otomatis menutup semua port kecuali yang Anda buka secara eksplisit. Ini prinsip paling aman — whitelist, bukan blacklist. Anda hanya membuka pintu yang memang diperlukan, dan sisanya tertutup rapat.

Di sisi lain, mengizinkan semua koneksi keluar memastikan server Anda tetap bisa berkomunikasi ke luar, seperti melakukan pembaruan sistem, mengirim email, atau mengakses repositori paket. Menolak koneksi keluar secara default akan merepotkan karena Anda harus membuat aturan untuk setiap layanan yang butuh akses internet. Untuk pemula, kombinasi default menolak masuk dan mengizinkan keluar adalah titik awal yang paling seimbang.

Untuk menerapkan kebijakan ini, gunakan dua perintah berikut:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Setelah menjalankan dua perintah di atas, jangan langsung mengaktifkan firewall. Kita masih perlu menambahkan aturan izin untuk layanan yang Anda gunakan — terutama SSH jika Anda mengelola server dari jarak jauh. Mengaktifkan firewall sekarang akan langsung memblokir semua koneksi masuk termasuk SSH, dan Anda bisa terkunci dari server.

Mengizinkan Akses SSH Sebelum Aktivasi

Ini adalah langkah paling krusial bagi siapa pun yang mengelola server jarak jauh melalui SSH. Aturan SSH harus diizinkan lebih dulu sebelum firewall diaktifkan. Jika Anda melewatkan langkah ini lalu menjalankan sudo ufw enable, sesi SSH aktif mungkin masih bertahan beberapa saat, tetapi koneksi baru akan ditolak. Setelah sesi terputus — misalnya karena jaringan tidak stabil — Anda tidak akan bisa masuk lagi tanpa akses konsol fisik atau panel kontrol dari penyedia server.

Untungnya, UFW menyediakan cara singkat untuk mengizinkan layanan umum seperti SSH. Anda bisa menggunakan nama profil layanan:

sudo ufw allow ssh

Perintah di atas otomatis membuka port 22, port standar SSH. Jika server Anda memakai port SSH non-standar, misalnya 2222, ganti dengan perintah berbasis nomor port:

sudo ufw allow 2222/tcp

Penting untuk memastikan nomor port yang Anda izinkan sama dengan port yang dikonfigurasi pada layanan SSH di server. Kesalahan kecil di sini — misalnya membuka port 22 padahal SSH berjalan di port 2222 — akan tetap membuat Anda terkunci setelah firewall aktif.

Setelah menambahkan aturan SSH, biasakan memeriksa daftar aturan yang sudah dibuat. Gunakan perintah:

sudo ufw status

Karena firewall belum diaktifkan, output-nya akan menunjukkan status inactive namun tetap menampilkan aturan yang sudah terdaftar. Pastikan ada baris yang mengizinkan port SSH. Jika Anda melihat aturan yang salah, hapus dengan sudo ufw delete allow <port> lalu tambahkan ulang dengan benar.

Jangan terburu-buru menambahkan aturan untuk layanan lain sebelum firewall aktif. Prinsipnya sederhana — siapkan aturan untuk akses manajemen terlebih dahulu, lalu aktifkan firewall, baru kemudian buka port lain sesuai kebutuhan. Urutan ini meminimalkan risiko terkunci dan memberi Anda kesempatan untuk menguji koneksi SSH di setiap tahap.

Mengaktifkan Firewall dan Memeriksa Status

Setelah yakin aturan SSH sudah benar, barulah kita mengaktifkan firewall. Gunakan perintah:

sudo ufw enable

UFW akan menanyakan konfirmasi karena mengaktifkan firewall dapat memutus koneksi yang sedang berjalan. Ketik y lalu tekan Enter. Pada beberapa distribusi, perintah ini juga akan menampilkan pesan bahwa firewall akan aktif saat sistem boot — ini bagus karena aturan tetap berlaku setelah server di-restart.

Segera setelah firewall aktif, jangan menutup sesi SSH yang sedang berjalan. Buka terminal baru atau gunakan sesi paralel untuk mencoba login SSH kembali. Ini adalah uji nyata apakah aturan izin SSH berfungsi. Jika koneksi baru berhasil, berarti Anda tidak mengunci diri sendiri. Jika gagal, kemungkinan besar ada kesalahan pada aturan SSH atau nomor port.

Untuk melihat status firewall beserta daftar aturannya, gunakan:

sudo ufw status verbose

Perintah ini menampilkan status aktif, kebijakan default untuk masuk dan keluar, serta setiap aturan dengan nomor port dan protokolnya. Contoh output yang sehat akan menunjukkan Default: deny (incoming), allow (outgoing) dan baris 22/tcp ALLOW Anywhere untuk SSH.

Jika ternyata Anda terkunci — misalnya karena port salah dan kini tidak bisa login SSH — jangan panik. Selama Anda masih memiliki akses konsol melalui panel penyedia VPS atau akses fisik ke mesin, Anda bisa masuk dan menonaktifkan firewall dengan sudo ufw disable atau memperbaiki aturan. Inilah mengapa sangat disarankan untuk selalu memiliki akses konsol cadangan sebelum bereksperimen dengan firewall pada server produksi.

Setelah firewall aktif dan akses SSH terverifikasi, langkah selanjutnya adalah menutup port lain yang tidak diperlukan. Prinsipnya sama — jangan biarkan port terbuka tanpa alasan jelas. Semakin sedikit port yang terbuka, semakin kecil permukaan serangan yang bisa dimanfaatkan oleh pihak tidak bertanggung jawab.

Pertama, periksa port apa saja yang sedang didengarkan oleh sistem. Gunakan perintah:

sudo ss -tulpn

Perintah ini menampilkan daftar socket TCP dan UDP yang sedang aktif beserta proses yang memakainya. Dari sini Anda bisa menilai layanan apa saja yang berjalan. Misalnya, jika Anda tidak menjalankan server web, seharusnya tidak ada proses yang mendengarkan pada port 80 atau 443. Jika ada, itu mungkin layanan yang tidak sengaja terpasang dan bisa dihentikan atau dinonaktifkan.

Untuk menutup port yang tidak diperlukan, Anda tidak perlu menambahkan aturan deny secara eksplisit. Karena kebijakan default sudah menolak semua koneksi masuk, port yang tidak Anda izinkan secara otomatis tertutup. Tugas Anda hanyalah memastikan tidak ada aturan allow untuk port yang tidak dibutuhkan. Gunakan sudo ufw status numbered untuk melihat daftar aturan bernomor, lalu hapus aturan yang tidak perlu dengan sudo ufw delete <nomor>.

Contoh skenario — Anda sebelumnya mengizinkan port 8080 untuk pengujian aplikasi, tetapi sekarang aplikasi tersebut sudah tidak dipakai. Hapus aturannya:

sudo ufw delete allow 8080/tcp

Setelah menghapus, verifikasi kembali dengan sudo ufw status. Port 8080 kini tidak muncul dalam daftar izin, dan karena kebijakan default menolak masuk, port itu otomatis tertutup dari luar.

Perlu diingat bahwa menutup port tidak selalu berarti menghentikan layanan. Layanan yang masih berjalan tetap mendengarkan di port tersebut, tetapi firewall memblokir akses dari jaringan luar. Ini tetap mengurangi risiko, tetapi praktik terbaik adalah menonaktifkan layanan yang tidak digunakan sepenuhnya — misalnya dengan sudo systemctl disable --now nama-layanan. Dengan begitu, sumber daya tidak terbuang dan tidak ada proses yang bisa dieksploitasi jika suatu saat aturan firewall berubah.

Konfigurasi firewall hanyalah salah satu lapisan keamanan. Tidak ada sistem yang sepenuhnya aman hanya dengan mengandalkan UFW. Selalu perbarui sistem secara berkala, gunakan autentikasi kuat, dan pantau log untuk mendeteksi aktivitas mencurigakan. Untuk memperdalam pemahaman tentang keamanan jaringan dan pengujian penetrasi secara etis, Anda dapat mengunjungi kalilinux.net atau kalilinux.info sebagai bahan bacaan tambahan — keduanya sering memuat artikel konseptual dan studi kasus yang membantu Anda memahami sisi ofensif keamanan siber dengan tetap menjunjung tinggi legalitas.

Menutup port yang tidak perlu adalah praktik dasar tetapi sangat efektif dalam mengamankan server Linux. Dengan UFW, proses ini menjadi jauh lebih mudah bahkan bagi pemula. Kuncinya adalah menetapkan kebijakan default yang aman, mengizinkan akses SSH lebih dulu, mengaktifkan firewall, lalu secara bertahap membuka atau menutup port sesuai kebutuhan nyata.

Selalu uji koneksi SSH setelah setiap perubahan besar, dan jangan pernah mengaktifkan firewall pada server jarak jauh tanpa memastikan aturan akses manajemen sudah benar. Dengan pendekatan hati-hati dan bertahap, Anda bisa menutup celah keamanan tanpa risiko mengunci diri sendiri. Praktik ini sepenuhnya legal dan etis selama diterapkan pada sistem milik sendiri atau sistem yang Anda mil