Periksa, aktifkan, konfigurasikan, dan nonaktifkan firewall OS Linux tanpa mengunci akses Anda sendiri.
Cara kerja
Security group menyaring seluruh lalu lintas ke dan dari instans ECS terlebih dahulu, lalu firewall OS memprosesnya. Lalu lintas harus melewati keduanya agar dapat mencapai aplikasi.
-
Security group (lapisan jaringan cloud)
-
Fungsi: Security group berfungsi sebagai firewall virtual yang mengontrol lalu lintas inbound dan outbound di luar OS — lini pertahanan pertama.
-
Logika: Jika security group menolak lalu lintas pada suatu port (misalnya port 22 untuk SSH), semua permintaan eksternal ke port tersebut akan diblokir, terlepas dari pengaturan firewall OS.
-
-
Firewall sistem (lapisan instans)
-
Fungsi: Perangkat lunak firewall seperti
firewalldatauufwberjalan di dalam OS Linux dan nonaktif secara default. Firewall ini memberikan kontrol granular terhadap lalu lintas yang telah diizinkan oleh security group. -
Logika: Lalu lintas harus melewati security group sebelum mencapai firewall OS. Keduanya membentuk hubungan AND — aplikasi Anda hanya menerima lalu lintas jika keduanya mengizinkannya.
-
Prosedur
Periksa status firewall
Periksa status firewall saat ini sebelum melakukan perubahan.
Alibaba Cloud Linux, CentOS, atau Red Hat
Jalankan perintah berikut untuk memeriksa status firewalld.
sudo firewall-cmd --state
-
not running: Firewall dinonaktifkan. -
running: Firewall diaktifkan. -
Jika output-nya adalah
command not found,firewalldbelum terinstal. Instal dengan menjalankansudo yum install firewalld -yatausudo dnf install firewalld -y.
Ubuntu atau Debian
Jalankan perintah berikut untuk memeriksa status ufw.
sudo ufw status
-
Status: active: Firewall diaktifkan. -
Status: inactive: Firewall dinonaktifkan. -
Pada Debian, jika output-nya adalah
command not found,ufwbelum terinstal. Jalankansudo apt update && sudo apt install ufw -yuntuk menginstalnya.
Aktifkan firewall
Jangan pernah mengaktifkan firewall sebelum menambahkan aturan untuk mengizinkan lalu lintas yang diperlukan. Melakukannya dapat mengunci akses Anda ke instans. Selalu izinkan terlebih dahulu, baru aktifkan.
Alibaba Cloud Linux, CentOS, atau Red Hat
-
Izinkan SSH secara permanen agar sesi remote Anda tetap terbuka.
sudo firewall-cmd --permanent --add-service=ssh -
Muat ulang firewall untuk menerapkan aturan baru.
sudo firewall-cmd --reload -
Jalankan layanan firewall.
sudo systemctl start firewalld -
(Opsional): Aktifkan firewall agar berjalan saat boot.
sudo systemctl enable firewalld
Ubuntu atau Debian
-
Izinkan koneksi SSH.
sudo ufw allow ssh -
Aktifkan firewall.
ufwsecara otomatis memuat aturanallowyang sudah ada dan berjalan saat boot secara default.sudo ufw enableSistem akan memperingatkan bahwa operasi ini dapat mengganggu koneksi yang sedang berjalan. Masukkan
yuntuk mengonfirmasi. SSH sudah diizinkan, sehingga sesi Anda tetap terhubung.
Buka port atau layanan tertentu
Alibaba Cloud Linux, CentOS, atau Red Hat
-
Buka port atau layanan tertentu:
-
Berdasarkan nama layanan (disarankan):
# Izinkan layanan HTTP dan HTTPS secara permanen sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https -
Berdasarkan nomor port:
# Izinkan port 8080/TCP secara permanen sudo firewall-cmd --permanent --add-port=8080/tcp
-
-
Terapkan aturan baru: Muat ulang firewall setelah menambahkan atau menghapus aturan.
sudo firewall-cmd --reload -
Verifikasi bahwa aturan telah berlaku:
Menampilkan semua aturan aktif di zona saat ini, termasuk layanan, port, dan protokol.
sudo firewall-cmd --list-all
Ubuntu atau Debian
Dengan ufw, aturan langsung berlaku dan tetap aktif setelah reboot.
-
Buka port atau layanan tertentu:
-
Berdasarkan nama layanan (disarankan):
# Izinkan layanan HTTP dan HTTPS sudo ufw allow http sudo ufw allow https -
Berdasarkan nomor port:
# Izinkan port 3306/TCP sudo ufw allow 3306/tcp
-
-
Verifikasi bahwa aturan telah berlaku:
Jalankan perintah berikut untuk melihat semua aturan aktif.
sudo ufw status
Nonaktifkan firewall
Nonaktifkan firewall sementara untuk menentukan apakah kebijakan pemblokiran menyebabkan masalah konektivitas.
Jangan nonaktifkan firewall di lingkungan produksi. Aktifkan kembali setelah pengujian atau penyelesaian masalah.
CentOS, Red Hat, atau Alibaba Cloud Linux
sudo systemctl stop firewalld
Ubuntu atau Debian
sudo ufw disable
Terapkan di lingkungan produksi
-
Praktik terbaik
-
Prinsip hak istimewa minimal: Hanya buka port yang esensial bagi aplikasi Anda. Untuk layanan inti seperti database, izinkan akses hanya dari alamat IP internal tepercaya dan hindari paparan ke Internet.
-
Pertahankan koneksi cadangan: Sebelum mengubah aturan firewall, buat remote connection to the instance. Sesi yang sudah ada tetap aktif setelah perubahan aturan dan berfungsi sebagai channel cadangan.
-
-
Pencegahan risiko
-
Pemantauan dan pencatatan log: Audit log firewall secara berkala untuk mendeteksi upaya akses yang tidak biasa.
-
firewalld: Log dikelola olehjournald. Lihat log tersebut dengan perintahsudo journalctl -u firewalld. -
ufw: Log tersimpan di/var/log/ufw.log.
-
-
FAQ
-
Layanan tetap tidak dapat diakses setelah menonaktifkan firewall OS
Periksa hal-hal berikut secara berurutan:
-
Periksa security group: Login ke halaman Security Groups di Konsol ECS. Pastikan aturan inbound mengizinkan lalu lintas pada port yang diperlukan dari IP sumber yang sesuai.
-
Periksa status listening layanan: Pastikan aplikasi melakukan listening pada alamat yang diharapkan (misalnya
0.0.0.0) dan port tersebut. Jalankanss -tunlp | grep <port_number>ataunetstat -tunlp | grep <port_number>pada instans. -
Periksa network ACL: Jika instans Anda dikaitkan dengan network ACL, verifikasi bahwa aturannya mengizinkan lalu lintas terkait.
-
-
Mengatasi
command not founderorTool manajemen firewall belum terinstal. Instal tool tersebut:
-
Pada CentOS/Red Hat/Alibaba Cloud Linux, jalankan
sudo yum install firewalld -yatausudo dnf install firewalld -y. -
Pada Ubuntu/Debian, jalankan
sudo apt update && sudo apt install ufw -y.
-