Pengendalian Akses Sistem oleh firewalld
Sebuah firewall adalah cara untuk melindungi mesin dari akses yang tidak diinginkan dari luar. Di Fedora, firewall diinstal secara default selama proses instalasi sistem operasi, diaktifkan, dan dikonfigurasi untuk memastikan operasi yang aman bahkan tanpa tindakan tambahan dari administrator. Secara default, firewall ini memblokir semua akses kecuali SSH.
Bagaimana cara kerjanya
Firewall memungkinkan pengguna untuk mengontrol lalu lintas jaringan masuk pada mesin host dengan mendefinisikan serangkaian aturan firewall. Aturan-aturan ini digunakan untuk menyortir lalu lintas masuk dan memblokirnya atau mengizinkannya melewati.
firewalld adalah daemon layanan firewall yang menyediakan firewall berbasis host yang dinamis dan dapat disesuaikan dengan antarmuka D-Bus. Karena sifatnya yang dinamis, daemon ini memungkinkan pembuatan, perubahan, dan penghapusan aturan tanpa perlu me-restart daemon firewall setiap kali aturan diubah.
firewalld menggunakan konsep zona dan layanan, yang mempermudah pengelolaan lalu lintas.
Zones adalah kumpulan aturan yang telah ditentukan sebelumnya. Antarmuka jaringan dan sumber dapat ditugaskan ke suatu zona. Lalu lintas yang diizinkan bergantung pada jaringan yang terhubung ke komputer Anda dan tingkat keamanan yang ditetapkan untuk jaringan tersebut. Layanan firewall adalah aturan yang telah ditentukan sebelumnya yang mencakup semua pengaturan yang diperlukan untuk mengizinkan lalu lintas masuk untuk layanan tertentu, dan aturan ini berlaku di dalam suatu zona.
Services menggunakan satu atau lebih port atau alamat untuk komunikasi jaringan. Tembok api (firewall) menyaring komunikasi berdasarkan port. Untuk mengizinkan lalu lintas jaringan untuk suatu layanan, port-portnya harus dibuka. firewalld memblokir semua lalu lintas pada port yang tidak secara eksplisit ditetapkan sebagai terbuka. Beberapa zona, seperti zona tepercaya (trusted), mengizinkan semua lalu lintas secara default.
Untuk informasi lebih lanjut tentang penggunaan firewalld dan konfigurasi zona serta layanan, lihat Dokumentasi firewalld atau Wiki Fedora: firewalld
Mengonfigurasi firewalld
Semua edisi Fedora menginstal, mengonfigurasi, dan mengaktifkan firewall secara default. Tidak diperlukan tindakan lebih lanjut. Satu-satunya pengecualian adalah Cloud Edition, yang bergantung pada sistem cloud tingkat atas.
Beberapa varian dan redistribusi pihak ketiga mungkin berbeda. Dalam hal ini, administrator bertanggung jawab untuk menginstal dan mengaktifkan firewall setelahnya.
Anda memeriksa apakah firewalld telah dikonfigurasi di terminal dengan menjalankan perintah
systemctl status firewalld
Anda sebaiknya mendapatkan sesuatu seperti
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset>
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since Sat 2023-08-19 19:05:18 CEST; 3 days ago
...
Menginstal dan mengaktifkan firewalld
Jika Anda menjalankan perintah di atas, Anda mungkin akan mendapatkan sesuatu seperti
Unit firewalld.service tidak dapat ditemukan.
Anda harus menginstalnya. Jalankan di baris perintah:
$ sudo dnf install firewalld
$ sudo systemctl unmask firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld
Urutan ini menginstal, memulai, dan memastikan restart otomatis setelah sistem boot.
Menyesuaikan operasi firewalld selama pemeliharaan sistem
Terkadang seorang administrator sistem perlu menghentikan atau me-restart firewalld selama tugas pemeliharaan sistem.
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld
$ sudo systemctl mask firewalld
$ sudo systemctl unmask firewalld
Menginstal alat konfigurasi antarmuka pengguna (GUI) firewall-config
Untuk menggunakan alat konfigurasi antarmuka pengguna grafis (GUI) firewall-config, instal paket firewall-config sebagai root:
$ sudo dnf install firewall-config
Alternatifnya, di GNOME, tekan tombol Super dan ketik Software untuk membuka aplikasi Software Sources. Ketik firewall ke kotak pencarian, yang muncul setelah Anda mengklik tombol pencarian di pojok kanan atas. Pilih item Firewall dari hasil pencarian, lalu klik tombol Install.
Untuk menjalankan firewall-config, gunakan perintah firewall-config atau tekan tombol Super untuk masuk ke Activities Overview, ketik firewall, dan tekan tombol Enter.
Mengelola firewalld
Melihat status saat ini dari firewalld
Layanan firewall, firewalld, sudah terpasang secara default pada sistem. Gunakan antarmuka baris perintah (CLI) firewalld untuk memeriksa apakah layanan tersebut sedang berjalan.
$ sudo firewall-cmd --state
Untuk informasi lebih lanjut tentang status layanan, gunakan perintah systemctl.
$ sudo systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr
Active: active (running) since Mon 2017-12-18 16:05:15 CET; 50min ago
Docs: man:firewalld(1)
Main PID: 705 (firewalld)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/firewalld.service
└─705 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
Selain itu, penting untuk mengetahui bagaimana firewalld dikonfigurasi dan aturan mana yang berlaku sebelum Anda mencoba mengedit pengaturannya. Untuk menampilkan pengaturan firewall, lihat Melihat pengaturan firewalld saat ini
Melihat pengaturan firewalld saat ini
Melihat layanan yang diizinkan menggunakan antarmuka grafis (GUI)
Untuk melihat daftar layanan menggunakan alat grafis firewall-config, tekan tombol Super untuk masuk ke Ringkasan Aktivitas, ketik perintah firewall, dan tekan tombol Enter. Alat firewall-config akan muncul. Anda sekarang dapat melihat daftar layanan di bawah tab Services.
Sebagai alternatif, untuk memulai alat konfigurasi firewall grafis menggunakan baris perintah, masukkan perintah berikut:
$ firewall-config
Jendela Konfigurasi Firewall terbuka. Perhatikan bahwa perintah ini dapat dijalankan sebagai pengguna biasa, tetapi Anda akan diminta untuk memasukkan kata sandi administrator sesekali.
Melihat pengaturan firewalld menggunakan CLI
Dengan klien CLI, Anda dapat melihat berbagai tampilan pengaturan firewall saat ini. Opsi --list-all menampilkan ringkasan lengkap pengaturan firewalld.
firewalld menggunakan zona untuk mengelola lalu lintas. Jika zona tidak ditentukan oleh opsi --zone, perintah tersebut berlaku di zona default yang ditugaskan ke antarmuka jaringan aktif dan koneksi.
Untuk mencantumkan semua informasi yang relevan untuk zona default:
$ firewall-cmd --list-all public target: default icmp-block-inversion: no interfaces: sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
|
Untuk menentukan zona yang akan ditampilkan pengaturannya, tambahkan argumen ~]# firewall-cmd --list-all --zone=home home target: default icmp-block-inversion: no interfaces: sources: services: ssh mdns samba-client dhcpv6-client ... [output truncated] |
Untuk melihat pengaturan untuk informasi tertentu, seperti layanan atau port, gunakan opsi khusus. Lihat halaman manual firewalld atau dapatkan daftar opsi menggunakan perintah help:
$ firewall-cmd --help Penggunaan: firewall-cmd [OPSI...] Opsi Umum -h, --help Menampilkan teks bantuan singkat dan keluar -V, --version Menampilkan string versi firewalld -q, --quiet Tidak menampilkan pesan status Opsi Status --state Menampilkan dan mencetak status firewalld --reload Memuat ulang firewall dan mempertahankan informasi status... [output dipotong]
Misalnya, untuk melihat layanan apa saja yang diizinkan di zona saat ini:
$ firewall-cmd --list-services samba-client ssh dhcpv6-client
Menampilkan pengaturan untuk suatu subbagian menggunakan alat CLI terkadang sulit untuk diinterpretasikan. Misalnya, Anda mengizinkan layanan SSH dan firewalld membuka port yang diperlukan (22) untuk layanan tersebut. Kemudian, jika Anda menampilkan layanan yang diizinkan, daftar tersebut menampilkan layanan SSH, tetapi jika Anda menampilkan port yang terbuka, tidak ada yang ditampilkan. Oleh karena itu, disarankan untuk menggunakan opsi --list-all agar Anda mendapatkan informasi yang lengkap.
Pengaturan runtime dan pengaturan permanen
Perubahan apa pun yang dilakukan saat firewalld sedang berjalan akan hilang saat firewalld di-restart. Saat firewalld di-restart, pengaturan akan kembali ke nilai permanennya.
Perubahan ini dikatakan dilakukan dalam mode runtime.
Untuk membuat perubahan tetap berlaku setelah reboot, terapkan kembali perubahan tersebut menggunakan opsi --permanent. Sebagai alternatif, untuk membuat perubahan tetap berlaku saat firewalld sedang berjalan, gunakan opsi --runtime-to-permanent firewall-cmd.
Jika Anda melakukan perubahan saat firewalld sedang berjalan menggunakan opsi --permanent saja, perubahan tersebut tidak akan berlaku hingga firewalld di-restart. Namun, me-restart firewalld akan menghentikan sementara lalu lintas jaringan, yang dapat menyebabkan gangguan pada sistem Anda.
Mengubah pengaturan dalam runtime dan konfigurasi permanen menggunakan CLI
Menggunakan CLI, Anda hanya dapat mengubah mode runtime atau mode permanen. Untuk mengubah pengaturan firewall dalam mode permanen, gunakan opsi --permanent bersama perintah firewall-cmd.
$ sudo firewall-cmd --permanent <other options>
Tanpa opsi ini, perintah akan mengubah mode runtime. Untuk mengubah pengaturan di kedua mode, Anda dapat menggunakan dua metode:
-
Ubah pengaturan runtime dan kemudian jadikan permanen sebagai berikut:
-
Ubah pengaturan runtime:
firewall-cmd <other options> -
Gunakan
--runtime-to-permanentuntuk membuat perubahan menjadi permanen.firewall-cmd --runtime-to-permanent
-
-
Atur pengaturan permanen dan muat ulang pengaturan ke mode runtime:
-
Lakukan perubahan dalam mode permanen:
firewall-cmd --permanent <other options> -
Muat ulang pengaturan:
firewall-cmd --reload
-
Metode pertama memungkinkan Anda untuk menguji pengaturan sebelum menerapkannya ke mode permanen.
|
Ada kemungkinan pengaturan yang salah dapat menyebabkan pengguna terkunci dari mesin. Untuk mencegah hal ini, gunakan opsi Misalnya, untuk menambahkan layanan SSH selama 15 menit, gunakan perintah berikut: $ sudo firewall-cmd --add-service=ssh --timeout 15m Layanan SSH akan tersedia hingga akses dihapus setelah 15 menit. |
Mengontrol port menggunakan firewalld
Apa itu port?
Port adalah perangkat logis yang memungkinkan sistem operasi untuk menerima dan membedakan lalu lintas jaringan, serta meneruskannya ke layanan sistem yang sesuai. Port ini biasanya diwakili oleh daemon yang mendengarkan pada port tersebut, artinya daemon tersebut menunggu lalu lintas yang datang ke port tersebut.
Secara normal, layanan sistem mendengarkan (listen) pada port standar yang telah disediakan khusus untuk mereka. Misalnya, daemon httpd mendengarkan pada port 80. Namun, administrator sistem dapat mengonfigurasi daemon untuk mendengarkan pada port yang berbeda guna meningkatkan keamanan.
Membuka port
Melalui port yang terbuka, sistem dapat diakses dari luar, yang merupakan risiko keamanan. Secara umum, tutup semua port dan hanya buka port yang diperlukan untuk layanan tertentu.
-
Dapatkan daftar port yang diizinkan di zona saat ini:
$ firewall-cmd --list-ports
-
Tambahkan port ke daftar port yang diizinkan untuk membukanya bagi lalu lintas masuk:
$ sudo firewall-cmd --add-port=port-number/port-type
-
Jadikan pengaturan baru tetap berlaku:
$ sudo firewall-cmd --runtime-to-permanent
Jenis port dapat berupa TCP, UDP, SCTP, atau DCCP. Jenis port harus sesuai dengan jenis komunikasi jaringan.
Menutup port
Ketika sebuah port terbuka tidak lagi diperlukan, tutup port tersebut di firewalld. Sangat disarankan untuk menutup semua port yang tidak diperlukan segera setelah tidak digunakan, karena meninggalkan port terbuka dapat menimbulkan risiko keamanan.
Untuk menutup sebuah port, hapus port tersebut dari daftar port yang diizinkan:
-
Daftar semua port yang diizinkan:
$ firewall-cmd --list-ports
Perintah ini hanya akan menampilkan daftar port yang telah dibuka sebagai port. Anda tidak akan dapat melihat port terbuka yang telah dibuka sebagai layanan. Oleh karena itu, disarankan untuk menggunakan opsi --list-all daripada --list-ports.
-
Hapus port dari daftar port yang diizinkan untuk menutupnya bagi lalu lintas masuk:
$ sudo firewall-cmd --remove-port=port-number/port-type
-
Jadikan pengaturan baru tetap berlaku:
$ sudo firewall-cmd --runtime-to-permanent
Want to help? Learn how to contribute to Fedora Docs ›