Выпуск firewalld 1.0

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· динамичСски управляСмого мСТсСтСвого экрана firewalld 1.0, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ обвязки Π½Π°Π΄ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ nftables ΠΈ iptables. Firewalld запускаСтся Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ динамичСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· D-Bus, Π±Π΅Π· нСобходимости ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈ Π±Π΅Π· Ρ€Π°Π·Ρ€Ρ‹Π²Π° установлСнных соСдинСний. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΠΆΠ΅ примСняСтся Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах Linux, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ RHEL 7+, Fedora 18+ ΠΈ SUSE/openSUSE 15+. Код firewalld написан Π½Π° языкС Python ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2.

Для управлСния мСТсСтСвым экраном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° firewall-cmd, которая ΠΏΡ€ΠΈ создании ΠΏΡ€Π°Π²ΠΈΠ» отталкиваСтся Π½Π΅ ΠΎΡ‚ IP-адрСсов, сСтСвых интСрфСйсов ΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΡ€Ρ‚ΠΎΠ², Π° ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠΉ слуТб (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для открытия доступа ΠΊ SSH Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ «firewall-cmd —add —service=ssh», для закрытия SSH — «firewall-cmd —remove —service=ssh»). Для измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ мСТсСтСвого экрана Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ графичСский интСрфСйс firewall-config (GTK) ΠΈ Π°ΠΏΠΏΠ»Π΅Ρ‚ firewall-applet (Qt). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° управлСния мСТсСтСвым экраном Ρ‡Π΅Ρ€Π΅Π· D-BUS API firewalld имССтся Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠ°ΠΊ NetworkManager, libvirt, podman, docker ΠΈ fail2ban.

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии связано с внСсСниСм ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π·ΠΎΠ½Π°ΠΌΠΈ. ВсС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² Π·ΠΎΠ½Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, адрСсованного хосту, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ firewalld, Π° для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° трСбуСтся настройка ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ. НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ измСнСния:

  • ОбъявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ бэкСнд, позволявший Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… iptables. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° iptables Π±ΡƒΠ΄Π΅Ρ‚ сохранСна Π² ΠΎΠ±ΠΎΠ·Ρ€ΠΈΠΌΠΎΠΌ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΉ бэкСнд Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.
  • Π’ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для всСх Π½ΠΎΠ²Ρ‹Ρ… Π·ΠΎΠ½ Ρ€Π΅ΠΆΠΈΠΌ intra-zone-forwarding, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΉ свободноС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ сСтСвыми интСрфСйсами ΠΈΠ»ΠΈ источниками Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹ (public, block, trusted, internal ΠΈ Ρ‚.ΠΏ.). Для возвращСния старого повСдСния ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚Π° пСрСнаправлСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «firewall-cmd —permanent —zone public —remove-forward».
  • ΠŸΡ€Π°Π²ΠΈΠ»Π°, связанныС с трансляциСй адрСсов (NAT), ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² сСмСйство ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² «inet» (Ρ€Π°Π½Π΅Π΅ добавлялись Π² сСмСйствах «ip» ΠΈ «ip6», Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ нСобходимости дублирования ΠΏΡ€Π°Π²ΠΈΠ» для IPv4 ΠΈ IPv6). ИзмСнСниС ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ использовании ipset — вмСсто Ρ‚Ρ€Ρ‘Ρ… ΠΊΠΎΠΏΠΈΠΉ записСй ipset Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄Π½Π°.
  • ДСйствиС «default», ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ «—set-target», Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ эквивалСнтно «reject», Ρ‚.Π΅. всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π΅ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² Π·ΠΎΠ½Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сдСлано Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ICMP-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. Для возвращСния старого повСдСния для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ доступной Π·ΠΎΠ½Ρ‹ «trusted» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π°: firewall-cmd —permanent —new-policy allowForward firewall-cmd —permanent —policy allowForward —set-target ACCEPT firewall-cmd —permanent —policy allowForward —add-ingress-zone public firewall-cmd —permanent —policy allowForward —add-egress-zone trusted firewall-cmd —reload
  • ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ с ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нСпосрСдствСнно Π΄ΠΎ выполнСния ΠΏΡ€Π°Π²ΠΈΠ»Π° «—set-target catch-all», Ρ‚.Π΅. Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ добавлСнию Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» drop, reject ΠΈΠ»ΠΈ accept, Π² Ρ‚ΠΎΠΌ числС для Π·ΠΎΠ½, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ «—set-target drop|reject|accept».
  • Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ICMP Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ адрСсованным Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ хосту входящим ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ (input) ΠΈ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, пСрСнаправляСмыС ΠΌΠ΅ΠΆΠ΄Ρƒ Π·ΠΎΠ½Π°ΠΌΠΈ (forward).
  • Π£Π΄Π°Π»Ρ‘Π½ сСрвис tftp-client, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для отслСТивания соСдинСний для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TFTP, Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠΉΡΡ Π² Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΌ для использования Π²ΠΈΠ΄Π΅.
  • ОбъявлСн ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ интСрфСйс «direct», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ интСрфСйсС ΠΏΡ€ΠΎΠΏΠ°Π»Π° послС добавлСния возмоТности Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ пСрСнаправляСмых ΠΈ исходящих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CleanupModulesOnExit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «no». ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ firewalld.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС ipset ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ систСмы (destination).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ опрСдСлСния сСрвисов WireGuard, Kubernetes ΠΈ netbios-ns.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° автодополнСния для zsh.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Python 2.
  • Π‘ΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½ список зависимостСй. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ firewalld, ΠΏΠΎΠΌΠΈΠΌΠΎ ядра Linux, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ dbus, gobject ΠΈ nftables, Π° ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ebtables, ipset ΠΈ iptables отнСсСны ΠΊ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. Из числа зависимостСй ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ decorator ΠΈ slip.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru