RHCSA Series Firewall Essentials e Controle de tráfego de rede usando firewalld e iptables - Parte 11

RHCSA Series Firewall Essentials e Controle de tráfego de rede usando firewalld e iptables - Parte 11

Em palavras simples, um firewall é um sistema de segurança que controla o tráfego de entrada e saída em uma rede com base em um conjunto de regras predefinidas (como o destino / fonte de pacotes ou o tipo de tráfego, por exemplo).

RHCSA: controle de rede de controle com firewalld e iptables - Parte 11

Neste artigo, revisaremos o básico de Firewalld, o daemon de firewall dinâmico padrão em Red Hat Enterprise Linux 7, e iptables Serviço, o serviço de firewall herdado para Linux, com o qual a maioria dos administradores de sistemas e redes está bem familiarizada e que também está disponível em RHEL 7.

Uma comparação entre firewalld e iptables

Sob o capô, ambos Firewalld e a iptables Fale com o serviço com o Netfilter estrutura no kernel através da mesma interface, não surpreendentemente, o comando iptables. No entanto, em oposição ao serviço iptables, o firewalld pode alterar as configurações durante a operação normal do sistema sem que as conexões existentes sejam perdidas.

Firewalld deve ser instalado por padrão no seu sistema RHEL, embora possa não estar funcionando. Você pode verificar com os seguintes comandos (Firewall-Config é a ferramenta de configuração da interface do usuário):

# yum info firewalld firewall-config 
Verifique as informações do Firewalld

e,

# status do SystemCtl -l Firewalld.serviço 
Verifique o status do firewalld

Por outro lado, o iptables O serviço não está incluído por padrão, mas pode ser instalado por meio de.

# yum update && yum install iptables services 

Ambos os daemons podem ser iniciados e habilitados para iniciar a inicialização com o habitual Systemd comandos:

# SystemCtl Start Firewalld.serviço | Iptables-Service.Serviço # SystemCtl Ativar firewalld.serviço | Iptables-Service.serviço 

Leia também: Comandos úteis para gerenciar serviços Systemd

Quanto aos arquivos de configuração, o serviço iptables usa /etc/sysconfig/iptables (que não existirá se o pacote não estiver instalado em seu sistema). Em uma caixa RHEL 7 usada como um nó de cluster, este arquivo parece a seguir:

Configuração do firewall iptables

Enquanto o Firewalld armazena sua configuração em dois diretórios, /usr/lib/firewalld e /etc/firewalld:

# ls/usr/lib/firewalld/etc/firewalld 
Configuração do firewalld

Examinaremos esses arquivos de configuração mais adiante neste artigo, depois de adicionar algumas regras aqui e ali. Até agora, será suficiente lembrá -lo de que você sempre pode encontrar mais informações sobre as duas ferramentas com.

# Man Firewalld.Conf # Man Firewall-CMD # Man iptables 

Fora isso, lembre -se de dar uma olhada na revisão de comandos essenciais e documentação do sistema - parte 1 da série atual, onde descrevi várias fontes onde você pode obter informações sobre os pacotes instalados em seu RHEL 7 sistema.

Usando iptables para controlar o tráfego da rede

Você pode querer se referir para configurar o firewall iptables - parte 8 do Engenheiro Certificado da Fundação Linux (LFCE) Série para refrescar sua memória sobre iptables internos antes de prosseguir. Assim, poderemos pular diretamente nos exemplos.

Exemplo 1: Permitir o tráfego da Web de entrada e saída

Portas TCP 80 e 443 são as portas padrão usadas pelo Apache Web Server para lidar com o normal (Http) e seguro (Https) Tráfego da Web. Você pode permitir o tráfego da Web de entrada e saída através de ambas as portas no ENP0S3 Interface da seguinte maneira:

# iptables -a input -i enp0s3 -p tcp - -dport 80 -m State -estado novo, estabelecido -j aceita # iptables -a saída -O enp0s3 -p tcp - -sport 80 -m estado -estado estabelecido - J Aceitar # iptables -a entrada -i enp0s3 -p tcp - -dport 443 -m estado -estado novo, estabelecido -j aceita # iptables -a output -o enp0s3 -p tcp -sport 443 -m state -state Estabelecido -j aceitar 
Exemplo 2: Bloqueie todos (ou algumas) conexões de entrada de uma rede específica

Pode haver momentos em que você precisa bloquear todos (ou algum) tipo de tráfego originário de uma rede específica, digamos 192.168.1.0/24 por exemplo:

# iptables -i entrada -s 192.168.1.0/24 -J Drop 

soltará todos os pacotes vindos do 192.168.1.0/24 rede, enquanto que,

# iptables -a entrada -s 192.168.1.0/24 -Dport 22 -j Aceitar 

só permitirá o tráfego de entrada através da porta 22.

Exemplo 3: Redirecionar o tráfego de entrada para outro destino

Se você usar o seu RHEL 7 Caixa não apenas como um firewall de software, mas também como o real baseado em hardware, para que fique entre duas redes distintas, o encaminhamento de IP deve ter sido ativado em seu sistema. Caso contrário, você precisa editar /etc/sysctl.conf e definir o valor de líquido.IPv4.ip_forward para 1, do seguinte modo:

líquido.IPv4.ip_forward = 1 

Em seguida, salve a alteração, feche seu editor de texto e finalmente execute o seguinte comando para aplicar a alteração:

# sysctl -p /etc /sysctl.conf 

Por exemplo, você pode ter uma impressora instalada em uma caixa interna com IP 192.168.0.10, com o Xícaras serviço de serviço no porto 631 (tanto no servidor de impressão quanto no seu firewall). Para encaminhar solicitações de impressão de clientes do outro lado do firewall, você deve adicionar a seguinte regra iptables:

# iptables -t nat -a pré -excluindo -i enp0s3 -p tcp - -dport 631 -j dnat -para 192.168.0.10: 631 

Por favor, lembre -se disso iptables lê suas regras sequencialmente, portanto, verifique se as políticas padrão ou regras posteriores não substituem as descritas nos exemplos acima.

Introdução ao firewalld

Uma das mudanças introduzidas com Firewalld são zonas. Esse conceito permite separar redes em diferentes zonas de confiança que o usuário decidiu colocar nos dispositivos e tráfego nessa rede.

Para listar as zonas ativas:

# firewall-cmd-get-attive-zonas 

No exemplo abaixo, o zona pública é ativo e o ENP0S3 A interface foi atribuída automaticamente. Para ver todas as informações sobre uma zona específica:

# firewall-cmd-zone = public-list-all 
Liste todas as zonas de firewalld

Já que você pode ler mais sobre zonas No Guia de Segurança Rhel 7, listaremos apenas alguns exemplos específicos aqui.

Exemplo 4: Permitir serviços através do firewall

Para obter uma lista dos serviços suportados, use.

# Firewall-CMD-Get-Services 
Liste todos os serviços suportados

Permitir http e https Tráfego na Web através do firewall, efetivo imediatamente e em botas subsequentes:

# firewall-cmd-zone = myZone --add-service = http # firewall-cmd-zone = myZone --permanent --add-service = http # firewall-cmd-zone = myZone --Add-service = https # firewall-cmd-zone = myZone --permanent --add-service = https # firewall-cmd--reload 

Se código>-zona é omitido, a zona padrão (você pode verificar com Firewall-CMD -Get-Default-Zone) é usado.

Para remover a regra, substitua a palavra add pelo Remover nos comandos acima.

Exemplo 5: Encaminhamento de IP / Porta

Primeiro, você precisa descobrir se está ativado para a zona desejada:

# firewall-cmd-zone = myZone --Query-massqueada 

Na imagem abaixo, podemos ver que mascarada está ativado para o zona externa, mas não para público:

Verifique o status de disfarce

Você pode ativar a disfarce para o público:

# firewall-cmd-zone = public --Add-masmerade 

ou use disfarçado em externo. Aqui está o que faríamos para replicar Exemplo 3 com Firewalld:

# firewall-cmd-zone = externo --add-forward-port = porta = 631: proto = tcp: toport = 631: toaddr = 192.168.0.10 

E não se esqueça de recarregar o firewall.

Você pode encontrar mais exemplos na Parte 9 da série RHCSA, onde explicamos como permitir ou desativar as portas que geralmente são usadas por um servidor da Web e um servidor FTP e como alterar a regra correspondente quando a porta padrão para esses serviços são alterados. Além disso, você pode querer consultar o Wiki do Firewalld para mais exemplos.

Leia também: Exemplos úteis de firewalld para configurar o firewall no rhel 7

Conclusão

Neste artigo, explicamos o que um firewall é, quais são os serviços disponíveis para implementar um em RHEL 7, e forneceu alguns exemplos que podem ajudá -lo a começar com esta tarefa. Se você tiver algum comentário, sugestões ou perguntas, fique à vontade para nos informar usando o formulário abaixo. Agradeço antecipadamente!