Настройка firewall в CentOS 7 (firewalld)
Índice:
- Pré-requisitos
- Conceitos básicos do firewalld
- Zonas de firewall
- Serviços de firewall
- Tempo de execução do Firewall e configurações permanentes
- Instalando e habilitando o FirewallD
- Trabalhando com regiões do Firewalld
- Alterando a zona de uma interface
- Alterando a zona padrão
- Abrindo uma porta ou serviço
- Criando um novo serviço FirewallD
- Porta de encaminhamento com o Firewalld
- Criando um conjunto de regras com o FirewallD
- Conclusão
Um firewall configurado corretamente é um dos aspectos mais importantes da segurança geral do sistema.
O FirewallD é uma solução completa de firewall que gerencia as regras de tabelas de ip do sistema e fornece uma interface D-Bus para operar com elas. A partir do CentOS 7, o FirewallD substitui o iptables como a ferramenta de gerenciamento de firewall padrão.
Neste tutorial, mostramos como configurar um firewall com o FirewallD no sistema CentOS 7 e explicamos os conceitos básicos do FirewallD.
Pré-requisitos
Antes de começar com este tutorial, verifique se você está conectado ao servidor com uma conta de usuário com privilégios de sudo ou com o usuário root. A melhor prática é executar comandos administrativos como um usuário sudo em vez de root. Se você não possui um usuário sudo no seu sistema CentOS, pode criar um seguindo estas instruções.
Conceitos básicos do firewalld
O FirewallD usa os conceitos de zonas e serviços, em vez da cadeia e regras do iptables. Com base nas zonas e serviços que você configurará, você pode controlar qual tráfego é permitido ou não de e para o sistema.
O FirewallD pode ser configurado e gerenciado usando o utilitário de linha de comando
firewall-cmd
.
Zonas de firewall
As zonas são conjuntos de regras predefinidos que especificam qual tráfego deve ser permitido com base no nível de confiança nas redes às quais o computador está conectado. Você pode atribuir interfaces e fontes de rede a uma zona.
Abaixo estão as zonas fornecidas pelo FirewallD ordenadas de acordo com o nível de confiança da zona de não confiável para confiável:
- drop: Todas as conexões de entrada são descartadas sem qualquer notificação. Somente conexões de saída são permitidas. bloco: Todas as conexões de entrada são rejeitadas com uma mensagem
icmp-host-prohibited
paraIPv4
eicmp6-adm-prohibited
allowed para IPv6n. Somente conexões de saída são permitidas. público: Para uso em áreas públicas não confiáveis. Você não confia em outros computadores na rede, mas pode permitir conexões de entrada selecionadas. externo: Para uso em redes externas com o mascaramento de NAT ativado quando o sistema atua como gateway ou roteador. Somente conexões de entrada selecionadas são permitidas. internal: Para uso em redes internas quando o sistema atua como gateway ou roteador. Outros sistemas na rede geralmente são confiáveis. Somente conexões de entrada selecionadas são permitidas. dmz: Usado para computadores localizados na sua zona desmilitarizada que têm acesso limitado ao restante da sua rede. Somente conexões de entrada selecionadas são permitidas. trabalho: Usado para máquinas de trabalho. Outros computadores na rede geralmente são confiáveis. Somente conexões de entrada selecionadas são permitidas. home: usado para máquinas domésticas. Outros computadores na rede geralmente são confiáveis. Somente conexões de entrada selecionadas são permitidas. confiável: todas as conexões de rede são aceitas. Confie em todos os computadores da rede.
Serviços de firewall
Os serviços do firewall são regras predefinidas que se aplicam a uma zona e definem as configurações necessárias para permitir o tráfego de entrada para um serviço específico.
Tempo de execução do Firewall e configurações permanentes
O Firewalld usa dois conjuntos de configurações separados, tempo de execução e configuração permanente.
A configuração de tempo de execução é a configuração real em execução e não é persistente nas reinicializações. Quando o serviço Firewalld é iniciado, ele carrega a configuração permanente, que se torna a configuração de tempo de execução.
Por padrão, ao fazer alterações na configuração do Firewalld usando o utilitário
firewall-cmd
, as alterações são aplicadas à configuração do tempo de execução. Para tornar as alterações permanentes, você precisa usar a opção
--permanent
.
Instalando e habilitando o FirewallD
-
O Firewalld é instalado por padrão no CentOS 7, mas se não estiver instalado no seu sistema, você pode instalar o pacote digitando:
sudo yum install firewalld
O serviço Firewalld está desativado por padrão. Você pode verificar o status do firewall com:
sudo firewall-cmd --state
Para iniciar o serviço FirewallD e habilitá-lo no tipo de inicialização:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Trabalhando com regiões do Firewalld
Depois de ativar o serviço FirewallD pela primeira vez, a zona
public
é definida como uma zona padrão. Você pode ver a zona padrão digitando:
sudo firewall-cmd --get-default-zone
public
Para obter uma lista de todas as zonas disponíveis, digite:
sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work
Por padrão, todas as interfaces de rede recebem a zona padrão. Para verificar quais zonas são usadas pelas suas interfaces de rede, digite:
sudo firewall-cmd --get-active-zones
public interfaces: eth0 eth1
A saída acima nos diz que as interfaces
eth0
e
eth1
estão atribuídas à zona pública.
Você pode imprimir as configurações da zona com:
sudo firewall-cmd --zone=public --list-all
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
A partir da saída acima, podemos ver que a zona pública está ativa e definida como padrão, usada pelas interfaces
eth0
e
eth1
. Além disso, as conexões relacionadas ao cliente DHCP e SSH são permitidas.
sudo firewall-cmd --list-all-zones
O comando imprime uma lista enorme com as configurações de todas as zonas disponíveis.
Alterando a zona de uma interface
Você pode alterar facilmente a Zona de Interface usando a opção
--zone
em combinação com a opção
--change-interface
. O comando a seguir atribuirá a interface
eth1
à zona de trabalho:
sudo firewall-cmd --zone=work --change-interface=eth1
Verifique as alterações digitando:
sudo firewall-cmd --get-active-zones
work interfaces: eth1 public interfaces: eth0
Alterando a zona padrão
Para alterar a zona padrão, use a opção
--set-default-zone
seguida do nome da zona que você deseja tornar padrão.
Por exemplo, para alterar a zona padrão para home, você deve executar o seguinte comando:
sudo firewall-cmd --set-default-zone=home
Verifique as alterações com:
sudo firewall-cmd --get-default-zone
Abrindo uma porta ou serviço
Com o FirewallD, você pode permitir o tráfego para portas específicas com base em regras predefinidas chamadas serviços.
Para obter uma lista de todos os serviços disponíveis padrão, digite:
sudo firewall-cmd --get-services
Você pode encontrar mais informações sobre cada serviço, abrindo o arquivo.xml associado no
/usr/lib/firewalld/services
. Por exemplo, o serviço HTTP é definido assim:
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.
Para permitir o tráfego HTTP de entrada (porta 80) para interfaces na zona pública, apenas para a sessão atual (configuração de tempo de execução):
sudo firewall-cmd --zone=public --add-service=http
Se você estiver modificando a zona padrão, poderá deixar de fora a opção
--zone
.
Para verificar se o serviço foi adicionado com sucesso, use a opção
--list-services
:
sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client
sudo firewall-cmd --permanent --zone=public --add-service=http
Use o
--list-services
junto com a opção
--permanent
para verificar suas alterações:
sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client
A sintaxe para remover o serviço é a mesma que ao adicionar um serviço. Basta usar
--remove-service
vez da opção
--remove-service
:
sudo firewall-cmd --zone=public --remove-service=http --permanent
O comando acima remove o serviço http da configuração permanente da zona pública.
E se você estiver executando um aplicativo como o Plex Media Server para o qual não há serviço adequado disponível?
Em situações como essas, você tem duas opções. Você pode abrir as portas apropriadas ou definir um novo serviço FirewallD.
Por exemplo, o Plex Server escuta na porta 32400 e usa TCP, para abrir a porta na zona pública da sessão atual, use a opção
--add-port=
:
sudo firewall-cmd --zone=public --add-port=32400/tcp
Os protocolos podem ser
tcp
ou
udp
.
Para verificar se a porta foi adicionada com sucesso, use a opção
--list-ports
:
sudo firewall-cmd --zone=public --list-ports
32400/tcp
Para manter a porta
32400
aberta após uma reinicialização, adicione a regra às configurações permanentes executando o mesmo comando usando a opção
--permanent
.
A sintaxe para remover uma porta é a mesma que ao adicionar uma porta. Basta usar
--remove-port
vez da opção
--remove-port
.
sudo firewall-cmd --zone=public --remove-port=32400/tcp
Criando um novo serviço FirewallD
Como já mencionamos, os serviços padrão são armazenados no
/usr/lib/firewalld/services
. A maneira mais fácil de criar um novo serviço é copiar um arquivo de serviço existente para o diretório
/etc/firewalld/services
, que é o local para serviços criados pelo usuário e modificar as configurações do arquivo.
Por exemplo, para criar uma definição de serviço para o Plex Media Server, podemos usar o arquivo de serviço SSH:
sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml
Abra o arquivo
plexmediaserver.xml
recém-criado e altere o nome abreviado e a descrição do serviço dentro do
plexmediaserver.xml
port
, que define o número da porta e o protocolo que você deseja abrir.
No exemplo a seguir, estamos abrindo as portas
1900
UDP e
32400
TCP.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.
Salve o arquivo e recarregue o serviço FirewallD:
sudo firewall-cmd --reload
Agora você pode usar o serviço
plexmediaserver
em suas zonas, assim como em qualquer outro serviço.
Porta de encaminhamento com o Firewalld
Para encaminhar o tráfego de uma porta para outra porta ou endereço, primeiro habilite o mascaramento para a zona desejada usando o switch
--add-masquerade
. Por exemplo, para ativar o mascaramento para
external
tipo de zona
external
:
sudo firewall-cmd --zone=external --add-masquerade
- Encaminhar tráfego de uma porta para outra no mesmo servidor
No exemplo a seguir, estamos encaminhando o tráfego da porta
80
para a porta
8080
no mesmo servidor:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080
- Encaminhar tráfego para outro servidor
No exemplo a seguir, estamos encaminhando o tráfego da porta
80
para a porta
80
em um servidor com IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2
- Encaminhar tráfego para outro servidor em uma porta diferente
No exemplo a seguir, estamos encaminhando o tráfego da porta
80
para a porta
8080
em um servidor com IP
10.10.10.2
:
sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2
Criando um conjunto de regras com o FirewallD
No exemplo a seguir, mostraremos como configurar seu firewall se você estava executando um servidor web. Supomos que seu servidor tenha apenas uma interface
eth0
e você deseja permitir o tráfego de entrada apenas nas portas SSH, HTTP e
-
Mude a zona padrão para dmz
Usaremos a zona dmz (desmilitarizada) porque, por padrão, ela permite apenas o tráfego SSH. Para alterar a zona padrão para dmz e atribuí-la à interface
eth0
, execute os seguintes comandos:sudo firewall-cmd --set-default-zone=dmz
sudo firewall-cmd --zone=dmz --add-interface=eth0
Portas HTTP e HTTPS abertas:
Para abrir portas HTTP e HTTPS, adicione regras de serviço permanentes à zona dmz:
sudo firewall-cmd --permanent --zone=dmz --add-service=http
sudo firewall-cmd --permanent --zone=dmz --add-service=https
Efetue as alterações imediatamente, recarregando o firewall:
sudo firewall-cmd --reload
Verifique as alterações
Para verificar as configurações da zona dmz, digite:
sudo firewall-cmd --zone=dmz --list-all
dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
A saída acima nos diz que o dmz é a zona padrão, é aplicada à interface
eth0
e as portas ssh (22) http (80) e https (443) estão abertas.
Conclusão
Você aprendeu como configurar e gerenciar o serviço FirewallD no seu sistema CentOS.
Certifique-se de permitir todas as conexões de entrada necessárias para o bom funcionamento do seu sistema, enquanto limita todas as conexões desnecessárias.
firewalld firewall iptables centos segurançaUse o aplicativo Configurar os PCs da escola para configurar PCs com Windows em Escolas Baixe o aplicativo Configurar computadores da escola na Windows Store e use-o para configurar rapidamente seus computadores Windows 10 para melhores opções de aprendizado para os alunos

Os computadores agora se tornaram parte integrante da educação nas escolas, e quase todas as boas escolas têm os sistemas de computador definidos para seus alunos. O único problema com a educação em informática na escola ocorre quando os alunos se distraem com vários aplicativos e recursos dos PCs.
Como configurar e gerenciar o firewall no centos 8

Neste tutorial, falaremos sobre como configurar e gerenciar o firewall no CentOS 8. Também explicaremos os conceitos básicos do FirewallD.
Como parar e desativar o firewalld no centos 7

A partir do CentOS 7, o FirewallD substitui o iptables como a ferramenta de gerenciamento de firewall padrão. Neste tutorial, mostraremos como desativar o FirewallD nos sistemas CentOS 7.