firewalld fornece um firewall gerenciado dinamicamente com suporte para zonas de rede ou firewall para definir o nível de confiança de conexões ou interfaces de rede. Possui suporte para configurações de firewall IPv4, IPv6 e pontes Ethernet e uma separação entre tempo de execução e opções de configuração permanente. Ele também fornece uma interface para serviços ou aplicativos adicionarem regras ip*tables e ebtables diretamente.
Para verificar o repositório de origem, você pode usar:
clone do git https://github.com/firewalld/firewalld.git
Isso criará uma cópia local do repositório.
O código de conduta do contribuidor pode ser encontrado em CODE_OF_CONDUCT.md
Firewalld usa gettext GNU para suporte de localização. As traduções podem ser feitas usando a instância Weblate do Fedora. As traduções são periodicamente mescladas no repositório principal do firewalld.
Estas são as dependências de tempo de execução:
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
Nota : python2 não é compatível.
Essas dependências podem melhorar a funcionalidade do firewalld, mas não são obrigatórias.
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
Além das dependências de tempo de execução, algumas outras são necessárias para compilar a partir do código-fonte:
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
Para poder criar páginas de manual e documentação a partir de arquivos docbook:
docbook-style-xsl libxslt
Use o encantamento usual do autoconf/automake para gerar makefiles
./autogen.sh ./configure
Você pode usar um interpretador python específico passando a variável PYTHON. Isso também é usado pelo testsuite.
./configure PYTHON=/caminho/para/python3
Usar
fazer
para criar a documentação e atualizar os arquivos po.
Usar
fazer verificação
para executar o conjunto de testes. Os testes são executados dentro de namespaces de rede e não interferem na execução do firewalld do host. Eles também podem ser executados em paralelo, passando sinalizadores para autoteste.
verifique TESTSUITEFLAGS="-j4"
O testsuite também usa palavras-chave para permitir a execução de um subconjunto de testes que exercitam uma área específica. Por exemplo:
verifique TESTSUITEFLAGS = "-k rich -j4"
Saída:
24: auditoria de regras ricas ok 25: prioridade de regras ricas ok 26: regras ricas são ruins, ok 53: auditoria de regras ricas ok 23: regras ricas, boas, ok 55: regras ricas são ruins, ok 74: remova a porta de encaminhamento após recarregar ok
Você pode obter uma lista de testes e palavras-chave
make -C src/testes verifica TESTSUITEFLAGS="-l"
Ou apenas as palavras-chave
make -C src/testes check TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; imprimir $0}' |tr ' ' 'n' |classificar |uniq
Existem testes de integração. Atualmente isso inclui o NetworkManager. Estes podem ser destrutivos para o hospedeiro. Execute-os em uma VM ou contêiner descartável.
fazer integração de verificação
Há também um destino check-container que executará o testsuite dentro de vários contêineres podman/docker. Isso é útil para cobertura de múltiplas distribuições. Ele também executa testes que podem ser destrutivos para o host, como testes de integração.
faça o contêiner de verificação TESTSUITEFLAGS = "-j4"
Como parte do destino de construção dist
uma imagem de contêiner OCI é gerada. Isso é distribuído junto com o tarball de lançamento normal. Ele pode ser usado para executar o firewalld a partir de um contêiner. O firewalld conteinerizado não se integrará ao host (por exemplo, podman, libvirt, NetworkManager).
Para carregar manualmente a imagem do contêiner em seu ambiente:
podman load -i .../caminho/para/firewalld-oci-<ver>.tar
Para buscar a imagem em quay.io:
podman pull quay.io/firewalld/firewalld:<ver>
onde <ver>
é opcional, a versão mais recente será usada se for omitida.
Para iniciar o daemon/contêiner:
podman execute -d --network host --privileged --name meu-firewalld firewalld
A configuração do Firewalld ficará dentro do contêiner. Portanto, os usuários podem querer ocasionalmente podman commit
.
O uso da CLI do firewalld deve ser feito via podman exec após o daemon/contêiner ter sido iniciado:
podman exec meu-firewalld firewall-cmd ...
A mesma imagem de contêiner pode ser usada para integração com o NetworkManager, podman, libvirt, etc. em execução do host. Isso requer que o host tenha uma política dbus para firewalld.
Uma política dbus pode ser obtida na árvore de código-fonte do firewalld no local config/FirewallD.conf
.
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
Assim que a política dbus estiver em vigor, o contêiner poderá ser iniciado da seguinte forma:
podman execute -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --host da rede --privilegiado --name meu-firewalld firewalld firewalld --nofork --nopid
As únicas adições são: montagem de volume, CMD explícito.
A abordagem some pode ser usada para armazenar arquivos de configuração do firewalld no host.
podman execute -d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --host da rede --privilegiado --name meu-firewalld firewalld firewalld --nofork --nopid
Para distribuições baseadas em Fedora e RHEL, há um arquivo de especificações no repositório de origem chamado firewalld.spec. Isso deve ser utilizável para versões do Fedora >= 16 e RHEL >= 7.
Página inicial: http://firewalld.org
Relate um bug: https://github.com/firewalld/firewalld/issues
Navegador de repositório Git: https://github.com/firewalld/firewalld
Repositório Git: https://github.com/firewalld/firewalld.git
Documentação: http://firewalld.org/documentation/
Para uso: https://lists.fedorahosted.org/archives/list/[email protected]/
Para desenvolvimento: https://lists.fedorahosted.org/archives/list/[email protected]/
Diretório | Contente |
---|---|
configuração/ | Arquivos de configuração |
configuração/icmptypes/ | Tipos de ICMP predefinidos |
configuração/serviços/ | Serviços predefinidos |
config/xmlschema/ | Esquema XML verifica arquivos de configuração |
configuração/zonas/ | Zonas predefinidas |
configuração/ipsets/ | Ipsets predefinidos |
documento/ | Documentação |
doc/homem/ | Diretório base para páginas de manual |
doc/homem/man1/ | Páginas man(1) |
doc/man/man5/ | Homem(5) páginas |
po/ | Traduções |
conclusão do shell/ | Diretório base para scripts de preenchimento automático |
fonte/ | Árvore de origem |
src/firewall/ | Árvore de importação para o serviço e todos os aplicativos |
src/ícones/ | Ícones nos tamanhos: 16, 22, 24, 32, 48 e escaláveis |
src/testes/ | Conjunto de testes |