firewalld menyediakan firewall yang dikelola secara dinamis dengan dukungan untuk jaringan atau zona firewall untuk menentukan tingkat kepercayaan koneksi atau antarmuka jaringan. Ini memiliki dukungan untuk IPv4, pengaturan firewall IPv6 dan jembatan ethernet serta pemisahan opsi konfigurasi runtime dan permanen. Ini juga menyediakan antarmuka untuk layanan atau aplikasi untuk menambahkan aturan ip*tables dan ebtables secara langsung.
Untuk memeriksa repositori sumber, Anda dapat menggunakan:
git klon https://github.com/firewalld/firewalld.git
Ini akan membuat salinan lokal dari repositori.
Kode etik kontributor dapat ditemukan di CODE_OF_CONDUCT.md
Firewalld menggunakan gettext GNU untuk dukungan pelokalan. Terjemahan dapat dilakukan menggunakan contoh Weblate Fedora. Terjemahan secara berkala digabungkan ke dalam repositori firewalld utama.
Ini adalah dependensi runtime:
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
Catatan : python2 tidak didukung.
Ketergantungan ini dapat meningkatkan fungsionalitas firewalld, namun tidak diperlukan.
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
Selain dependensi runtime, beberapa dependensi lain juga diperlukan untuk membangun dari sumber:
desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units pytest
Untuk dapat membuat halaman manual dan dokumentasi dari file docbook:
docbook-style-xsl libxslt
Gunakan mantra autoconf/automake biasa untuk menghasilkan makefile
./autogen.sh ./konfigurasi
Anda dapat menggunakan juru bahasa python tertentu dengan meneruskan variabel PYTHON. Ini juga digunakan oleh testsuite.
./configure PYTHON=/path/ke/python3
Menggunakan
membuat
untuk membuat dokumentasi dan memperbarui file po.
Menggunakan
melakukan pengecekan
untuk menjalankan testsuite. Pengujian dijalankan di dalam namespace jaringan dan tidak mengganggu firewalld yang dijalankan oleh host. Mereka juga dapat dijalankan secara paralel dengan meneruskan flag ke autotest.
buat cek TESTSUITEFLAGS="-j4"
Testsuite juga menggunakan kata kunci untuk memungkinkan menjalankan subset pengujian yang melatih area tertentu. Misalnya:
buat cek TESTSUITEFLAGS="-k rich -j4"
Keluaran:
24: audit aturan kaya oke 25: prioritas aturan kaya oke 26: kaya memerintah buruk oke 53: audit aturan kaya oke 23: aturan kaya bagus oke 55: kaya memerintah buruk oke 74: hapus port maju setelah memuat ulang oke
Anda bisa mendapatkan daftar tes dan kata kunci
buat -C src/tests centang TESTSUITEFLAGS="-l"
Atau hanya kata kuncinya saja
buat -C src/tests periksa TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; cetak $0}' |tr ' ' 'n' |sort |uniq
Ada tes integrasi. Saat ini termasuk NetworkManager. Ini mungkin merugikan tuan rumah. Jalankan dalam VM atau kontainer sekali pakai.
membuat check-integrasi
Ada juga target check-container yang akan menjalankan testsuite di dalam berbagai container podman/docker. Ini berguna untuk mencakup beberapa distribusi. Ini juga menjalankan pengujian yang mungkin merusak host seperti pengujian integrasi.
buat wadah periksa TESTSUITEFLAGS="-j4"
Sebagai bagian dari target pembangunan dist
gambar kontainer OCI dihasilkan. Ini didistribusikan bersamaan dengan tarball rilis normal. Ini dapat digunakan untuk menjalankan firewalld dari sebuah wadah. Firewall dalam container tidak akan berintegrasi dengan host (misalnya podman, libvirt, NetworkManager).
Untuk memuat gambar kontainer secara manual ke lingkungan Anda:
podman memuat -i .../path/to/firewalld-oci-<ver>.tar
Untuk mengambil gambar dari quay.io:
podman pull quay.io/firewalld/firewalld:<ver>
jika <ver>
bersifat opsional, versi terbaru akan digunakan jika dihilangkan.
Untuk memulai daemon/wadah:
podman jalankan -d --host jaringan --istimewa --namakan firewall-firewall saya
Konfigurasi Firewalld akan berada di dalam container. Oleh karena itu, pengguna mungkin ingin sesekali podman commit
pada image tersebut.
Penggunaan CLI firewalld harus dilakukan melalui podman exec setelah daemon/container dimulai:
podman exec firewall-saya-firewall-cmd ...
Gambar kontainer yang sama dapat digunakan untuk berintegrasi dengan NetworkManager, podman, libvirt, dll yang dijalankan oleh host. Hal ini mengharuskan host untuk memiliki kebijakan dbus untuk firewalld.
Kebijakan dbus dapat diperoleh dari pohon kode sumber firewalld di lokasi config/FirewallD.conf
.
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
Setelah kebijakan dbus diterapkan, penampung dapat dimulai seperti:
podman lari -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --host jaringan --istimewa --nama firewall-firewall sayad firewalld --nofork --nopid
Satu-satunya tambahan adalah: pemasangan volume, CMD eksplisit.
Pendekatan some dapat digunakan untuk menyimpan file konfigurasi firewalld di host.
podman lari -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --host jaringan --istimewa --nama firewall-firewall sayad firewalld --nofork --nopid
Untuk distribusi berbasis Fedora dan RHEL, terdapat file spesifikasi di repo sumber bernama firewalld.spec. Ini seharusnya dapat digunakan untuk versi Fedora >= 16 dan RHEL >= 7.
Beranda: http://firewalld.org
Laporkan bug: https://github.com/firewalld/firewalld/issues
Peramban repo Git: https://github.com/firewalld/firewalld
Repo Git: https://github.com/firewalld/firewalld.git
Dokumentasi: http://firewalld.org/documentation/
Untuk penggunaan: https://lists.fedorahosted.org/archives/list/[email protected]/
Untuk pengembangan: https://lists.fedorahosted.org/archives/list/[email protected]/
Direktori | Isi |
---|---|
konfigurasi/ | File konfigurasi |
konfigurasi/icmptypes/ | Jenis ICMP yang telah ditentukan sebelumnya |
konfigurasi/layanan/ | Layanan yang telah ditentukan sebelumnya |
konfigurasi/skema xml/ | Skema XML memeriksa file konfigurasi |
konfigurasi/zona/ | Zona yang telah ditentukan sebelumnya |
konfigurasi/ipsets/ | IPSet yang telah ditentukan sebelumnya |
dokter/ | Dokumentasi |
dokumen/pria/ | Direktori dasar untuk halaman manual |
dokumen/pria/pria1/ | Manusia(1) halaman |
dokumen/pria/pria5/ | Manusia(5) halaman |
po/ | Terjemahan |
penyelesaian shell/ | Direktori dasar untuk skrip penyelesaian otomatis |
src/ | Pohon sumber |
src/firewall/ | Impor pohon untuk layanan dan semua aplikasi |
src/ikon/ | Ikon dalam ukuran: 16, 22, 24, 32, 48 dan dapat diskalakan |
src/tes/ | Tes |