A maneira mais segura de se livrar de firewalld
é removê-lo:
dnf remove firewalld
É bem aceitável fazer para máquinas virtuais.
Eu tenho para um projeto de escola uma arquitetura simples composta de 3 máquinas virtuais que executam o Fedora 24: um servidor, um cliente e um roteador. Decidi usar o iptables sobre o firewalld para o uso extensivo do DNAT / SNAT que eu só sabia gerenciar bem com o iptables; portanto, desabilitei o firewalld e ative o iptables:
# dnf install iptables-services
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl start iptables && systemctl start ip6tables
# systemctl enable iptables && systemctl enable ip6tables
Eu tinha um conjunto de regras que salvei em # service iptables save
e funcionou perfeitamente no meu roteador.
Eu usei o mesmo método em minhas duas outras máquinas, servidor e cliente, mas as regras não foram salvas. Depois de um pouco de pesquisa, percebi que o iptables.service não inicia na inicialização; e notei ainda que o firewalld fez mesmo que tenha sido desativado como apresentado acima.
Existe algum motivo específico pelo qual o firewalld seria iniciado mesmo desativado? Veja o que o status mostra logo após a inicialização:
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset : enabled)
Active: active (running) since Sun 2017-01-22 23:52:34 PST; 15s ago
Docs: man:firewalld(1)
Main PID: 619 (firewalld)
Tasks: 2 (list:512)
CGroup: /system.slice/firewalld.service
└─619 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
Jan 22 23:52:33 public systemd[1]: Starting firewalld - dynamic firewall daemon
Jan 22 23:52:34 public systemd[1]: Started firewalld - dynamic firewall daemon.
Por outro lado, aqui está o iptables:
iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/systemd/system/iptables.service; enabled; vendor preset: disabled)
Active: inactive (dead)
Mascare e desative o firewalld
service:
systemctl mask firewalld
systemctl disable firewalld
você pode desativá-lo usando o seguinte comando:
#chkconfig firewalld off
depois reinicie sua máquina e pronto.
Dessa forma, você desligará o serviço firewalld dos níveis de execução para que ele não seja iniciado quando você inicializar a máquina.