Saya mencoba untuk mengkonfigurasi firewalld (Fedora 21) sehingga respons dapat melewati untuk permintaan MDNS yang dikirim dari aplikasi klien menggunakan port sumber UDP singkat ke target multicast. Responsnya unicast. Urutannya seperti ini (seperti yang ditangkap menggunakan wireshark)
- UDP: local-address: 45325 (ephemeral) -> 224.0.0.251-05353; kueri
- UDP: some-system: 5353 -> local-address: 45325; responnya
- ICMP: local-address -> some-system: Type: 3 (Destination unreachable), Kode: 10 (Host secara administratif dilarang)
Layanan firewalld mdns, yang menambahkan port 5353 UDP diaktifkan tetapi ini tidak membantu dengan respons.
Pointer apa pun akan dihargai.
Jawaban:
Selamat, Anda menemukan batasan dalam konsep penyaringan paket. Melacak protokol multicast: respons tidak dapat kembali dari alamat yang sama, karena Anda dilarang mengirim dari alamat multicast. Firewall tidak dapat mencocokkan respons terhadap permintaan Anda, jadi itu memblokirnya. Jelas sistem MDNS dameon, avahi, menghindari ini dengan mengirim dari port tetap 5353, jadi di situlah ia mendapat respons juga. Port 5353 diizinkan secara khusus oleh aturan firewall. Jika Anda dapat meminta perangkat lunak untuk berbicara dengan avahi , itulah solusi yang akan direkomendasikan avahi.
Atau dimungkinkan untuk mengandalkan opsi avahi default
disallow-other-stacks=no
, dan konfigurasikan aplikasi klien untuk menggunakan port tetap 5353 . Tidak jelas apa efeknya terhadap keandalan Avahi. Atau Anda bisa menonaktifkan Avahi jika Anda tidak membutuhkannya. Tentu saja jika aplikasi memungkinkan Anda memilih port sumber tetap, Anda bisa menambahkannya ke firewall & itu akan berfungsi ...... kecuali ketika Anda mengatakan "aplikasi klien", Anda mungkin bermaksud kelas perangkat lunak yang secara teori dapat menjalankan beberapa instance secara bersamaan. Itu tidak menjalankan semua permintaan jaringan melalui daemon tunggal. Dan saya yakin aplikasi ini tidak menggunakan hack SO_REUSEPORT yang mengimplementasikan avahi
disallow-other-stacks=no
, jadi ini hanya akan membiarkan Anda menjalankan satu instance aplikasi sekaligus .Banyak perangkat lunak Linux untuk Desktop atau kotak jaringan lokal mungil mungkin tidak dirancang untuk dijalankan dengan firewall host. Fedora adalah distribusi utama yang melakukannya. Fedora Workstation baru-baru ini mengubah zona standar firewall mereka menjadi "FedoraWorkstation", yang memungkinkan koneksi ke port TCP atau UDP di atas 1024. Baik konfigurasi FedoraWorkstation, atau berjalan tanpa firewall, akan memungkinkan perangkat lunak Anda untuk bekerja tidak berubah.
Sulit untuk mengungkapkan titik firewall host seperti Firewalld. Itu tidak memiliki dukungan untuk routing antara zona seperti Shorewall. Itu memungkinkan Anda memilih untuk mengatur zona default ke sesuatu yang lebih ketat, dengan pengaturan yang lebih permisif untuk jaringan nirkabel di rumah Anda, atau VPN. Mungkin jika Anda bekerja keras di NetworkManager, Anda juga bisa menggunakannya untuk jaringan kabel rumah. Tapi itu sangat tidak jelas untuk sesuatu yang diaktifkan secara default.
Ini sepenuhnya aman untuk menjalankan instalasi default Fedora (atau Ubuntu) tanpa firewall. Apa yang Anda menyerah adalah kebijakan terpusat untuk port yang terbuka - jika Anda nanti membuat beberapa perangkat lunak acak, dan tidak menyadari bahwa ia ingin mendengarkan pada port.
Orang-orang mencoba membandingkan firewall di Linux dan Windows, tetapi Windows Firewall jelas diperlukan dan sebenarnya mungkin dipahami oleh manusia, tidak seperti Firewalld . Windows memiliki port terbuka secara default, dan mengandalkan firewall host untuk melindunginya. Ini mengimplementasikan zona tepercaya / tidak dipercaya untuk jaringan kabel. Jaringan baru default untuk tidak dipercaya, dan muncul untuk menanyakan apakah Anda ingin mengubahnya. Jaringan kabel yang berbeda diidentifikasi oleh alamat MAC dari server DHCP. Setidaknya sejak Window 8, "express" first-run juga menandai jaringan saat ini sebagai tepercaya, yang menurut saya menjengkelkan tetapi dalam praktiknya mungkin cukup membantu.
Secara teknis, Anda juga dapat memodifikasi perangkat lunak untuk berbicara dengan Firewalld over dbus dan meminta agar porta porta yang diikat terbuka untuk tanggapan. Entah bagaimana saya tidak berpikir itu saran yang membantu.
sumber
Saya memiliki masalah yang sama dengan beberapa perangkat tertentu yang terhubung ke server. Apa pun yang saya coba, firewall tetap memblokir permintaan.
Redhat merekomendasikan dua metode, sesuai basis pengetahuan:
Solusi 1:
Buka port UDP lalu lintas masuk akan berada di:
Ini mungkin tidak akan berhasil karena
mdns
layanan membuka UDP 5353 dan Anda telah menyebutkan ini tidak membantu.Solusi 2:
Buat layanan:
Namun contoh ini tampaknya untuk keluar daripada masuk. Sebagai gantinya, Anda dapat mencoba mengganti
<destination>
for<source address="xx.xx.xx.xx">
dan melihat apakah itu membantu.Solusi 3:
Saya pribadi, tidak bisa bekerja. Saya pada dasarnya memasukkan daftar putih sumber IP ke semua port. Sesuatu yang saya tidak akan merekomendasikan, tapi saya bosan menghabiskan berjam-jam main-main dengan firewalld dan karena klien yang dimaksud adalah perangkat Raspberry Pi pada LAN pribadi, risikonya minimal.
Anda akan ingin menyesuaikan zona jika Anda menggunakan sesuatu yang berbeda. Saya juga hanya melakukan ini untuk klien IPv4 internal pada LAN.
Sumber: https://access.redhat.com/solutions/1587673
sumber
Sudah ada Layanan-Templat:
mungkin Anda perlu menginstal
firewalld-config-workstation
.Jika Anda masih tidak bisa membuatnya berfungsi. Bisakah Anda menambahkan aturan ke pertanyaan Anda? Misalnya dengan:
atau mungkin hanya mencoba:
sumber