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ção | Posicionamento | Custo | Uso recomendado |
|---|---|---|---|
| RHEL | Versão comercial de referência | Assinatura paga (gratuita para até 16 máquinas em desenvolvimento) | Produção com suporte do fornecedor |
| Rocky Linux | Reconstrução 1:1 do RHEL | Gratuito | Produção sem necessidade de suporte |
| AlmaLinux | Compatível em ABI com o RHEL | Gratuito | Produção, correções às vezes mais rápidas |
| CentOS Stream | A montante do RHEL, rolling | Gratuito | Desenvolvimento, testes, contribuição |
| Fedora | Laboratório de inovação da Red Hat | Gratuito | Estaçã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ção | Debian/Ubuntu (apt) | RHEL/Rocky/Alma (dnf) |
|---|---|---|
| Atualizar os índices | apt update | Automático (dnf makecache para forçar) |
| Atualizar o sistema | apt upgrade / apt full-upgrade | dnf update |
| Instalar | apt install paquet | dnf install paquet |
| Remover | apt remove / apt purge | dnf remove |
| Pesquisar | apt search motif | dnf search motif |
| Detalhes de um pacote | apt show paquet | dnf info paquet |
| Limpar órfãos | apt autoremove | dnf autoremove |
| Arquivos de um pacote | dpkg -L paquet | rpm -ql paquet |
| Proprietário de um arquivo | dpkg -S /chemin | rpm -qf /chemin |
| Desfazer uma transação | Sem equivalente nativo | dnf history undo N |
| Repositórios | /etc/apt/sources.list.d/ | /etc/yum.repos.d/ |
| Firewall padrão | ufw (Ubuntu) | firewalld |
| MAC padrão | AppArmor | SELinux |
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
restoreconesemanagee 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 historyantes de entrar em pânico após uma atualização problemática: oundoé 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 pacotednf-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.
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+
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão