diff --git a/archinstall/applications/firewall.py b/archinstall/applications/firewall.py index 6e928cea1a..02d4ed9e24 100644 --- a/archinstall/applications/firewall.py +++ b/archinstall/applications/firewall.py @@ -14,12 +14,24 @@ def ufw_packages(self) -> list[str]: 'ufw', ] + @property + def fwd_packages(self) -> list[str]: + return [ + 'firewalld', + ] + @property def ufw_services(self) -> list[str]: return [ 'ufw.service', ] + @property + def fwd_services(self) -> list[str]: + return [ + 'firewalld.service', + ] + def install( self, install_session: 'Installer', @@ -34,3 +46,7 @@ def install( # write default conf file to enabled ufw_conf = install_session.target / 'etc/ufw/ufw.conf' ufw_conf.write_text(ufw_conf.read_text().replace('ENABLED=no', 'ENABLED=yes')) + + case Firewall.FWD: + install_session.add_additional_packages(self.fwd_packages) + install_session.enable_service(self.fwd_services) diff --git a/archinstall/lib/models/application.py b/archinstall/lib/models/application.py index c1b92a50e2..d32042ff2f 100644 --- a/archinstall/lib/models/application.py +++ b/archinstall/lib/models/application.py @@ -32,6 +32,7 @@ class PrintServiceConfigSerialization(TypedDict): class Firewall(StrEnum): UFW = 'ufw' + FWD = 'firewalld' class FirewallConfigSerialization(TypedDict):