Cara Mengonfigurasi Firewall dengan UFW di Ubuntu 22.04 Server

Di Ubuntu 22.04 Server, Anda dapat mengelola lalu lintas jaringan masuk dan keluar menggunakan UFW (Uncomplicated Firewall). Untuk server jarak jauh, pastikan untuk mengizinkan port SSH yang sedang Anda gunakan sebelum mengaktifkan firewall, dan pastikan bahwa Anda dapat memulihkan akses menggunakan terminal atau konsol lain.

Hal-hal yang Perlu Diperiksa Sebelum Memulai

UFW adalah alat untuk mengelola firewall Linux. Bahkan jika sebuah port diizinkan dalam firewall, koneksi hanya dapat dilakukan jika layanan telah diinstal, berjalan, dan mendengarkan di alamat dan port yang benar. Jika ada grup keamanan cloud atau firewall eksternal, periksa aturan mereka secara terpisah juga.

Jangan mengubah kebijakan yang ada secara sembarangan pada server yang sedang berjalan. Pertama, periksa status firewall saat ini, aturan yang terdaftar, layanan yang dibutuhkan, dan port akses, serta siapkan metode akses yang dapat digunakan bahkan jika SSH terputus, seperti melalui konsol cloud atau konsol manajemen server. Perintah memerlukan hak istimewa administrator.

sudo ufw status verbose
sudo ufw show added
sudo ss -lntup

status verbose menunjukkan kebijakan dan aturan UFW yang aktif. Jika UFW tidak aktif, Anda tidak dapat memeriksa semua aturan yang terdaftar hanya dengan layar ini, jadi juga rujuk ke show added. ss membantu mengidentifikasi soket yang mendengarkan, tetapi tidak menentukan apakah suatu layanan dapat diakses dari luar.

Aktifkan setelah mengizinkan SSH

Berikut adalah contoh server baru yang menjalankan SSH pada port TCP default 22. Jika port berbeda, ubah ke port yang sebenarnya. Aturan ini mengizinkan port tersebut tanpa membatasi ke IP tertentu, jadi pertimbangkan bahwa jangkauan akses cukup luas. Pada server yang sudah aktif, tinjau terlebih dahulu aturan dan prioritas yang ada.

sudo ufw allow 22/tcp

Periksa aturan layanan lain yang diperlukan dan kebijakan default, lalu nyalakan firewall. Saat Anda menyalakan UFW, koneksi SSH yang ada mungkin akan terputus karena aturan diterapkan ulang. Uji koneksi SSH baru dari terminal terpisah sambil mempertahankan sesi saat ini, dan jika gagal, akses dengan konsol yang sudah disiapkan untuk mengubah aturan.

sudo ufw enable
sudo ufw status verbose

Verifikasi bahwa statusnya adalah active dan bahwa aturan SSH yang dimaksud ditampilkan. Kemudian, uji koneksi dari jaringan yang diizinkan dan tidak diizinkan untuk layanan yang benar-benar diperlukan. Prosedur ini dan pengecualiannya juga dapat diperiksa di bagian manajemen jarak jauh dari Dokumentasi UFW Ubuntu 22.04.

Kebijakan Dasar dan Aturan Port

Pengaturan default dari UFW yang baru diinstal umumnya menolak koneksi masuk dan mengizinkan koneksi keluar, tetapi ini dapat bervariasi tergantung pada server. Periksa kebijakan yang sebenarnya dengan status verbose. Misalnya, untuk menolak koneksi masuk secara default pada server baru di mana semua layanan yang diperlukan telah diperiksa, Anda dapat menggunakan perintah berikut. Pada server yang sudah beroperasi, pertama-tama tinjau bagaimana perubahan kebijakan akan memengaruhi layanan dan koneksi yang ada.

sudo ufw default deny incoming

Jika Anda perlu menyediakan server web secara eksternal, izinkan port dan protokol yang benar-benar digunakan. Berikut adalah contoh port TCP untuk HTTP dan HTTPS, dan tidak perlu menerapkannya secara universal ke server yang tidak menjalankan layanan web.

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Jika server menyediakan layanan DNS, Anda dapat mengizinkan UDP dan TCP pada port 53 sesuai kebutuhan. Jangan membuka port pada server yang tidak menyediakan layanan DNS hanya karena itu contoh.

sudo ufw allow 53/udp
sudo ufw allow 53/tcp

allow menambahkan aturan izinkan, dan deny menambahkan aturan tolak. Aturan port tanpa protokol yang ditentukan dapat berlaku untuk TCP dan UDP, jadi lebih jelas untuk menentukan protokol yang dibutuhkan. Urutan aturan penting, dan aturan yang pertama cocok dapat diterapkan, jadi menambahkan aturan tolak ketika aturan izinkan sudah ada tidak selalu memblokir akses.

Izinkan akses hanya dari IP tertentu

Berikut adalah contoh mengizinkan koneksi hanya ke port TCP 22 dari satu alamat IPv4. 192.0.2.10 adalah alamat placeholder untuk tujuan penjelasan, jadi ganti dengan IP akses admin yang sebenarnya, dan jika IP dapat diubah, siapkan metode pemulihan terlebih dahulu.

sudo ufw allow from 192.0.2.10 to any port 22 proto tcp

Bahkan jika Anda menambahkan aturan ini, akses mungkin tidak terbatas jika ada aturan yang mengizinkan port 22 dari semua alamat tetap ada. Periksa aturan yang ada dan urutannya menggunakan daftar bernomor, dan pertahankan hanya aturan yang benar-benar diperlukan. Jika server mengaktifkan IPv6, jangan menganggap bahwa aturan hanya untuk IPv4 membatasi akses IPv6; periksa juga kebijakan dan aturan IPv6.

sudo ufw status numbered

Menghapus aturan dan menonaktifkan firewall

Untuk menghapus aturan yang Anda tambahkan dengan konten yang sama persis, gunakan delete dalam perintah asli. Sebagai contoh, perintah di bawah ini menghapus aturan yang memperbolehkan port UDP 53, sementara aturan TCP bersifat terpisah.

sudo ufw delete allow 53/udp

Anda juga bisa menghapus berdasarkan nomor, tetapi jika Anda menghapus satu aturan, nomornya akan berubah. Selalu periksa nomor dan konten saat ini lagi dengan sudo ufw status numbered. Penghapusan berbasis nomor hanya menghapus satu aturan IPv4 atau IPv6 yang ditampilkan, jadi periksa aturan yang sesuai untuk versi IP lainnya juga. Setelah penghapusan, periksa status lagi dan uji koneksi yang sebenarnya.

Untuk mematikan firewall, gunakan perintah berikut. Saat dinonaktifkan, perlindungan yang diberikan oleh UFW hilang, jadi jangan menganggapnya aman hanya karena ada firewall lain; pertama, periksa cakupan dampaknya.

sudo ufw disable

Ketika suatu aturan tidak berperilaku seperti yang diharapkan

Periksa apakah layanan sedang berjalan, apakah port dan protokol yang benar diizinkan, urutan aturannya, dan kebijakan default. Juga, tinjau aturan firewall cloud, router, dan jaringan hulu, serta alamat IPv4 atau IPv6 yang digunakan untuk terhubung. Karena adanya wadah (container) atau aturan jaringan yang dikelola secara terpisah, mungkin sulit menilai perilaku secara keseluruhan hanya dengan menggunakan daftar status UFW.

Sebelum benar-benar mengubah suatu aturan, Anda dapat melihat pratinjau perubahannya menggunakan --dry-run. Sebagai contoh, perintah berikut menampilkan perubahan pada aturan izinkan TCP 80 tanpa menerapkannya.

sudo ufw --dry-run allow 80/tcp

Layar status UFW terutama menunjukkan aturan yang dikelola oleh perintah UFW dan tidak mewakili semua pengaturan firewall di sistem. Untuk penjelasan tambahan dan format perintah, lihat Dokumentasi Firewall Server Ubuntu.