0%
Red Hat, Rocky Linux e AlmaLinux: Guia de Administração

Red Hat, Rocky Linux e AlmaLinux: Guia de Administração

Domine o ecossistema RHEL: DNF, repositórios, RPM, SELinux, firewalld e subscription-manager. Guia completo para Rocky Linux, AlmaLinux e Red Hat.

I

InSkillCoach

· min

Red Hat, Rocky Linux e AlmaLinux: Guia de Administração

Se Debian e Ubuntu dominam a web e a nuvem pública, o ecossistema Red Hat reina nas infraestruturas corporativas: bancos, seguradoras, setor público, telecomunicações. Conhecer a administração de um sistema RHEL (Red Hat Enterprise Linux) ou de seus derivados é uma competência muito procurada, e também é a base das certificações RHCSA e RHCE. Neste guia, abordamos o gerenciamento de pacotes com DNF e RPM, a segurança com SELinux e firewalld, além do gerenciamento de assinaturas da Red Hat.

1. O Ecossistema RHEL e o Fim do CentOS

Um pouco de história

Durante quinze anos, o CentOS foi a cópia gratuita e binariamente compatível do RHEL: o mesmo sistema, sem o suporte comercial. Em 2020, a Red Hat encerrou o CentOS Linux em favor do CentOS Stream, que deixou de ser uma cópia do RHEL e passou a ser sua versão de desenvolvimento: o Stream fica a montante do RHEL, não a jusante.

Essa decisão fez surgir imediatamente dois sucessores comunitários, fundados, respectivamente, pelo criador original do CentOS e pela empresa CloudLinux:

  • Rocky Linux: projeto comunitário conduzido pela Rocky Enterprise Software Foundation;
  • AlmaLinux: projeto conduzido pela fundação AlmaLinux, com objetivo de compatibilidade de ABI (e não mais cópia bit a bit desde 2023).

Qual distribuição escolher?

DistribuiçãoPosicionamentoCustoUso recomendado
RHELVersão comercial de referênciaAssinatura paga (gratuita para até 16 máquinas em desenvolvimento)Produção com suporte do fornecedor
Rocky LinuxReconstrução 1:1 do RHELGratuitoProdução sem necessidade de suporte
AlmaLinuxCompatível em ABI com o RHELGratuitoProdução, correções às vezes mais rápidas
CentOS StreamA montante do RHEL, rollingGratuitoDesenvolvimento, testes, contribuição
FedoraLaboratório de inovação da Red HatGratuitoEstação de trabalho, acompanhamento tecnológico

Para um servidor de produção sem contrato de suporte, Rocky Linux e AlmaLinux são escolhas equivalentes na prática: mesmos pacotes, mesmas versões, mesma documentação do RHEL aplicável.

# Identificar a distribuição e a versão
cat /etc/redhat-release
cat /etc/os-release

2. DNF: o Gerenciador de Pacotes

O DNF (Dandified YUM) substituiu o YUM desde o RHEL 8. O comando yum ainda existe, mas não passa de um link simbólico para dnf.

Operações básicas

# Pesquisar um pacote
dnf search nginx

# Exibir as informações de um pacote
dnf info nginx

# Instalar um pacote
sudo dnf install nginx

# Remover um pacote
sudo dnf remove nginx

# Atualizar todo o sistema
sudo dnf update

# Verificar as atualizações disponíveis sem aplicá-las
dnf check-update

# Atualizar apenas as correções de segurança
sudo dnf update --security

# Limpar as dependências órfãs
sudo dnf autoremove

Diferentemente do APT, não há equivalente de apt update para executar manualmente: o DNF atualiza seus metadados automaticamente quando eles expiram.

O histórico de transações: o grande trunfo do DNF

O DNF registra cada transação e permite desfazê-la, algo que o APT não faz nativamente:

# Listar as transações
dnf history

# Detalhes de uma transação
dnf history info 42

# Desfazer uma transação (desinstala o que foi instalado, etc.)
sudo dnf history undo 42

# Reexecutar uma transação desfeita
sudo dnf history redo 42

Os módulos (Application Streams)

Desde o RHEL 8, alguns softwares são distribuídos em “módulos” que oferecem várias versões principais em paralelo:

# Listar os módulos disponíveis
dnf module list

# Ver as versões (streams) disponíveis para um módulo
dnf module list nodejs

# Habilitar e instalar uma versão específica
sudo dnf module enable nodejs:20
sudo dnf module install nodejs:20

# Trocar de versão: redefinir e depois habilitar o outro stream
sudo dnf module reset nodejs
sudo dnf module enable nodejs:22

Gerenciamento de repositórios

# Listar os repositórios ativos
dnf repolist

# Listar todos os repositórios, inclusive os desabilitados
dnf repolist --all

# Habilitar / desabilitar um repositório de forma permanente
sudo dnf config-manager --set-enabled crb
sudo dnf config-manager --set-disabled crb

# Instalar um pacote a partir de um repositório desabilitado, pontualmente
sudo dnf --enablerepo=crb install nom-du-paquet

3. Arquivos .repo e EPEL

Anatomia de um arquivo .repo

Os repositórios são definidos em arquivos /etc/yum.repos.d/*.repo:

# /etc/yum.repos.d/exemple.repo
[exemple]
name=Mon depot exemple
baseurl=https://depot.exemple.com/el9/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://depot.exemple.com/RPM-GPG-KEY-exemple

As variáveis $releasever (versão principal) e $basearch (arquitetura) são substituídas automaticamente, o que permite escrever arquivos .repo portáveis.

EPEL: o repositório indispensável

O EPEL (Extra Packages for Enterprise Linux) é um repositório mantido pela comunidade Fedora que fornece milhares de pacotes ausentes do RHEL: htop, ncdu, fail2ban, certbot, etc.

# Instalação no Rocky/Alma 9
sudo dnf install epel-release

# No RHEL, o pacote vem diretamente do repositório Fedora
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

# Muitos pacotes do EPEL exigem também o repositório CRB (CodeReady Builder)
sudo dnf config-manager --set-enabled crb

4. RPM: o Nível Baixo

Assim como o dpkg no Debian, o RPM é a ferramenta de baixo nível subjacente ao DNF.

# Listar todos os pacotes instalados
rpm -qa

# Verificar se um pacote está instalado e qual é a sua versão
rpm -q nginx

# Listar os arquivos de um pacote
rpm -ql nginx

# Encontrar o pacote proprietário de um arquivo
rpm -qf /etc/nginx/nginx.conf

# Exibir as informações de um pacote
rpm -qi nginx

# Verificar a integridade dos arquivos de um pacote
# (arquivos modificados, permissões alteradas...)
rpm -V nginx

# Instalar um .rpm local: prefira o dnf, que resolve as dependências
sudo dnf install ./paquet.rpm

5. SELinux: a Segurança Reforçada

O SELinux (Security-Enhanced Linux) vem habilitado por padrão em toda a família RHEL. É um sistema de controle de acesso obrigatório (MAC): até a conta root é restringida pela política. Primeira regra de ouro: nunca desabilite o SELinux para “resolver” um problema; aprenda, em vez disso, a diagnosticá-lo.

Os modos

# Exibir o modo atual
getenforce

# Estado detalhado
sestatus

# Passar temporariamente para o modo permissive (registra sem bloquear)
sudo setenforce 0

# Voltar ao modo enforcing
sudo setenforce 1

O modo permanente é definido em /etc/selinux/config com três valores possíveis: enforcing (a política é aplicada), permissive (violações registradas, mas permitidas, útil para diagnóstico) e disabled (a evitar).

Os contextos

Cada arquivo, processo e porta recebe um rótulo de contexto. A maioria dos bloqueios vem de um contexto de arquivo incorreto:

# Ver o contexto dos arquivos (opção -Z, presente em muitas ferramentas)
ls -Z /var/www/html

# Ver o contexto dos processos
ps auxZ | grep nginx

# Corrigir o contexto de um diretório movido ou copiado
sudo restorecon -Rv /var/www/html

# Tornar permanente um contexto para um caminho não padrão
sudo semanage fcontext -a -t httpd_sys_content_t "/srv/monsite(/.*)?"
sudo restorecon -Rv /srv/monsite

# Autorizar uma porta não padrão para um serviço
sudo semanage port -a -t http_port_t -p tcp 8081

Caso típico: você move arquivos com mv do seu diretório pessoal para /var/www/html, e o Nginx retorna um erro 403. A movimentação preserva o contexto de origem (user_home_t) em vez de httpd_sys_content_t. Um restorecon -Rv resolve o problema.

Diagnosticar com sealert

# Instalar as ferramentas de análise
sudo dnf install setroubleshoot-server

# Analisar as negações recentes com explicações e sugestões
sudo sealert -a /var/log/audit/audit.log

# Busca bruta no log de auditoria
sudo ausearch -m AVC -ts recent

Os booleanos

Os booleanos são interruptores que ativam permissões predefinidas sem modificar a política:

# Listar os booleanos relacionados ao httpd
getsebool -a | grep httpd

# Permitir que um servidor web abra conexões de rede de saída
# (indispensável para um reverse proxy); -P torna a configuração permanente
sudo setsebool -P httpd_can_network_connect on

# Permitir que o httpd se conecte a um banco de dados
sudo setsebool -P httpd_can_network_connect_db on

6. firewalld: o Firewall

O firewalld é o firewall padrão da família RHEL. Ele se baseia na noção de zonas: cada interface de rede é associada a uma zona que define o nível de confiança e os serviços permitidos.

# Estado do firewall
sudo firewall-cmd --state

# Zona padrão e zonas ativas
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones

# Ver tudo sobre a zona atual
sudo firewall-cmd --list-all

Permitir serviços e portas

# Listar os serviços predefinidos disponíveis
sudo firewall-cmd --get-services

# Permitir HTTP e HTTPS de forma permanente
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Permitir uma porta arbitrária
sudo firewall-cmd --permanent --add-port=8080/tcp

# Remover um serviço
sudo firewall-cmd --permanent --remove-service=http

# Aplicar as alterações permanentes
sudo firewall-cmd --reload

Pegadinha clássica: sem a opção --permanent, a regra fica ativa imediatamente, mas desaparece na reinicialização; com --permanent, ela sobrevive à reinicialização, mas só é aplicada após um --reload. Para ter os dois efeitos ao mesmo tempo, execute o comando duas vezes (com e sem --permanent) ou use --permanent seguido de --reload.

# Mudar a zona de uma interface
sudo firewall-cmd --permanent --zone=internal --change-interface=eth1
sudo firewall-cmd --reload

7. Assinaturas RHEL: subscription-manager

Particularidade do RHEL em relação ao Rocky e ao Alma: o acesso aos repositórios exige uma assinatura registrada. Desde 2023, a Red Hat oferece uma assinatura de desenvolvedor gratuita que cobre até 16 sistemas.

# Registrar a máquina no portal da Red Hat
sudo subscription-manager register --username votre_login

# Verificar o status
sudo subscription-manager status

# Listar os repositórios disponíveis por meio da assinatura
sudo subscription-manager repos --list-enabled

# Habilitar um repositório adicional
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms

# Cancelar o registro da máquina (antes de desativá-la)
sudo subscription-manager unregister

No Rocky Linux e no AlmaLinux, o subscription-manager não existe: os repositórios são públicos, como no Debian.

8. Vindo do Debian: Tabela de Correspondência

Se você já conhece o APT, esta tabela vai economizar seu tempo:

OperaçãoDebian/Ubuntu (apt)RHEL/Rocky/Alma (dnf)
Atualizar os índicesapt updateAutomático (dnf makecache para forçar)
Atualizar o sistemaapt upgrade / apt full-upgradednf update
Instalarapt install paquetdnf install paquet
Removerapt remove / apt purgednf remove
Pesquisarapt search motifdnf search motif
Detalhes de um pacoteapt show paquetdnf info paquet
Limpar órfãosapt autoremovednf autoremove
Arquivos de um pacotedpkg -L paquetrpm -ql paquet
Proprietário de um arquivodpkg -S /cheminrpm -qf /chemin
Desfazer uma transaçãoSem equivalente nativodnf history undo N
Repositórios/etc/apt/sources.list.d//etc/yum.repos.d/
Firewall padrãoufw (Ubuntu)firewalld
MAC padrãoAppArmorSELinux

Boas Práticas

  • Para produção sem suporte comercial, escolha Rocky Linux ou AlmaLinux; reserve o CentOS Stream para ambientes de teste.
  • Nunca desabilite o SELinux: passe para o modo permissive durante o diagnóstico, corrija os contextos com restorecon e semanage e depois volte ao modo enforcing.
  • Instale o EPEL e habilite o CRB assim que colocar um servidor em operação: você vai precisar deles.
  • Use dnf history antes de entrar em pânico após uma atualização problemática: o undo é a sua rede de segurança.
  • Com o firewalld, pense sempre no par --permanent + --reload.
  • Aplique as correções de segurança regularmente com dnf update --security, ou automatize-as com o pacote dnf-automatic.
  • No RHEL, cancele o registro das máquinas desativadas para liberar as assinaturas.

Conclusão

O ecossistema Red Hat impõe um quadro mais rígido que o mundo Debian: SELinux ativo por padrão, firewall baseado em zonas, assinaturas no RHEL. Esse rigor é justamente o que o torna o padrão das infraestruturas corporativas. Ao dominar o DNF e seu histórico de transações, os arquivos .repo, os contextos do SELinux e o firewalld, você cobre o essencial do dia a dia de um administrador RHEL — e boa parte do programa da certificação RHCSA. Para ir além, explore o systemd em profundidade, a automação com Ansible (outro produto da Red Hat) e a conteinerização com Podman, a alternativa da Red Hat ao Docker.

InSkillCoach

Sobre InSkillCoach

Especialista em treinamento e tecnologias

Coach especializado em tecnologias avançadas e IA, apoiado pela GNeurone Inc.

Certificações:

  • AWS Certified Solutions Architect – Professional
  • Certificações Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
988
86

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!