Guia de tecnologias

Adicionar RADIUS ao sudo para 2FA no CentOS 7 e Ubuntu 14.04

5 min read Segurança Atualizado 19 Oct 2025
RADIUS no sudo para 2FA em CentOS 7 e Ubuntu 14.04
RADIUS no sudo para 2FA em CentOS 7 e Ubuntu 14.04

Introdução

Atacantes costumam usar credenciais perdidas, roubadas, fracas ou padrão para escalar privilégios após infiltrar uma rede. A autenticação em dois fatores reduz muito esse risco, mas outras vias de entrada, como malware, podem existir. Integrar RADIUS ao PAM permite separar autorização (diretório central) e autenticação 2FA (servidor dedicado), o que é uma boa prática de segurança.

Nota: como estamos usando RADIUS, essa configuração básica funciona com sistemas empresariais de 2FA que suportem RADIUS.

O que você precisa saber

  • Definição rápida: RADIUS é um protocolo de rede para autenticar e autorizar usuários em serviços, frequentemente usado com tokens/OTP para 2FA.
  • Este guia cobre CentOS/RHEL 7 e Ubuntu 14.04.
  • Preserva gerenciamento central de usuários (Active Directory, LDAP) + autenticação 2FA externa.

Pré-requisitos

  • Acesso root ou sudo no servidor CentOS/RHEL ou Ubuntu.
  • Um servidor RADIUS acessível (FreeRADIUS, NPS do Windows ou WiKID).
  • Conhecimento básico de PAM e arquivos em /etc/pam.d.

Configurar sudo no CentOS/RHEL para autenticação em dois fatores

Vamos começar no RHEL/CentOS 7.

Instale pré-requisitos:

sudo yum -y install make gcc pam pam-devel

Baixe o código PAM RADIUS (1.4 foi referência na época deste tutorial):

wget ftp://ftp.freeradius.org/pub/radius/pam_radius-x.x.x.tar.gz

Compile a biblioteca:

tar -xzvf pam-radius-x.x.x.tar.gz
cd pam-radius-x.x.x
sudo ./configure
sudo make

Copie a biblioteca para o local correto:

cp pam_radius_auth.so /lib/security/

Ou, em sistemas 64 bits:

cp pam_radius_auth.so /lib64/security/

Crie o diretório de configuração e copie o arquivo de configuração com o nome ‘server’:

sudo mkdir /etc/raddb
cp pam_radius_auth.conf /etc/raddb/server

Edite /etc/raddb/server e adicione o IP do servidor RADIUS e o segredo compartilhado:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             1
radius_server_IP    secret           3
#
# ter localhost na configuração RADIUS é uma boa prática para testes

Observação: você pode apontar diretamente para o servidor WiKID como servidor RADIUS para testar; adicione esta máquina CentOS como cliente de rede no WiKID e reinicie o WiKID para validar.

Agora diga ao sudo para usar o RADIUS. Edite /etc/pam.d/sudo e substitua a linha que aponta para system-auth por:

auth       required      pam_radius_auth.so

Isso é suficiente para o CentOS/RHEL 7. A mesma abordagem funciona em 5 e 6 com ajustes mínimos de paths.

Configurar sudo no Ubuntu para autenticação em dois fatores

No Ubuntu 14.04, instale o pacote pronto:

sudo apt-get install libpam-radius-auth

Edite /etc/pam_radius_auth.conf para apontar ao seu servidor RADIUS, igual ao exemplo acima:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             1
radius_server_IP   secret           3
#
# ter localhost na configuração RADIUS é uma boa prática para testes

Edite /etc/pam.d/sudo e adicione a linha que ativa o pam_radius acima da inclusão das configurações comuns:

auth       required   pam_env.so readenv=1 user_readenv=0
auth       required   pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
auth sufficient pam_radius_auth.so
@include common-auth
@include common-account
@include common-session-noninteractive

A partir de agora, quando um administrador usar sudo, o PAM encaminhará nome de usuário e OTP ao servidor RADIUS/WiKID para validação.

Testes mínimos e mini-metodologia

  1. Antes de alterar /etc/pam.d/sudo, abra outra sessão ou consolide um método de recuperação (ex.: acesso direto via console) para evitar lockout.
  2. Configure o servidor RADIUS e verifique conectividade (ping/telnet na porta RADIUS, geralmente 1812).
  3. Teste autenticação com um usuário de teste e OTP válido.
  4. Monitore logs: /var/log/secure (CentOS) ou /var/log/auth.log (Ubuntu) para mensagens do pam_radius.
  5. Reverter: restaure o arquivo /etc/pam.d/sudo original se houver problemas.

Critérios de aceitação

  • Um usuário administrador autenticado por sudo precisa fornecer OTP válido e receber permissão.
  • Logs do servidor RADIUS mostram o pedido de autenticação e resposta bem-sucedida.
  • Usuários não configurados no RADIUS não obtêm elevação via sudo.

Quando isso pode falhar (contraexemplos)

  • Falha de rede entre o host e o servidor RADIUS: sudo pode bloquear se o tempo limite for curto.
  • Configuração incorreta do segredo compartilhado ou IP do servidor RADIUS impede validação.
  • Dependência excessiva de RADIUS sem fallback pode causar indisponibilidade para administradores.
  • Aplicações automatizadas que usam sudo sem interação humana podem quebrar ao exigir OTP.

Abordagens alternativas

  • Usar autenticação de dois fatores diretamente com PAM (por exemplo, Google Authenticator PAM) sem RADIUS.
  • Usar soluções PAM multifator que integram AD/LDAP e 2FA em um único módulo.
  • Implementar sudoers com NOPASSWD para scripts controlados e mover ações perigosas para contas específicas com auditoria.

Checklists por função

Administrador de sistema:

  • Verificar conectividade RADIUS (porta 1812/udp).
  • Confirmar mapeamento de usuários entre diretório central e RADIUS.
  • Testar fallback para console físico.

Equipe de segurança:

  • Auditar logs de autenticação e alertar tentativas suspeitas.
  • Verificar rotação de segredos compartilhados e políticas de token.

Caixa de fatos chave

  • Porta RADIUS padrão: 1812/udp.
  • Local de configuração PAM sudo: /etc/pam.d/sudo.
  • Arquivo de configuração do pam_radius no exemplo: /etc/raddb/server ou /etc/pam_radius_auth.conf.

Compatibilidade e migração

  • FreeRADIUS, NPS (Windows) e WiKID falam RADIUS e funcionam com este módulo PAM.
  • Em distribuições diferentes, paths de bibliotecas podem variar (/lib vs /lib64). Ajuste conforme arquitetura.
  • Em versões modernas do Ubuntu/CentOS, prefira pacotes empacotados (libpam-radius-auth ou equivalente) em vez de compilar manualmente.

Procedimento rápido de implantação (playbook)

  1. Configurar e testar servidor RADIUS separadamente.
  2. Instalar pam_radius no host alvo (pacote ou compilação).
  3. Copiar configuração de RADIUS para /etc/raddb/server ou /etc/pam_radius_auth.conf.
  4. Editar /etc/pam.d/sudo para chamar pam_radius_auth.so antes do common-auth/system-auth.
  5. Testar com usuário de teste e OTP.
  6. Monitorar logs e ajustar timeouts/segredos.

Riscos e mitigação

  • Risco: perda de acesso administrativo por erro de configuração. Mitigação: mantenha sessão root ativa ou acesso via console antes de alterar PAM.
  • Risco: indisponibilidade do servidor RADIUS. Mitigação: configurar múltiplos servidores RADIUS e timeouts razoáveis.

Notas de segurança e privacidade

  • Não armazene segredos compartilhados em repositórios públicos.
  • Audite periodicamente os logs de autenticação para detectar abusos.
  • Verifique requisitos de conformidade (ex.: PCI DSS) da sua organização.

Resumo e próximos passos

Integração de RADIUS com PAM para sudo aumenta substancialmente a proteção das contas administrativas ao exigir 2FA. Depois de implantar, sopese: adicionar múltiplos servidores RADIUS para redundância, automatizar testes de autenticação e documentar recuperação de acesso.

Importante: faça testes em um ambiente controlado antes de aplicar em produção.

Autor
Edição

Materiais semelhantes

ChatGPT e Spotify: criar playlists com IA
Integração

ChatGPT e Spotify: criar playlists com IA

Instalar ONLYOFFICE com Docker (Guia rápido)
Instalação

Instalar ONLYOFFICE com Docker (Guia rápido)

Corrigir consumo de bateria no iPhone com iOS 26
Tutoriais

Corrigir consumo de bateria no iPhone com iOS 26

Como cortar imagens no Word, Excel e PowerPoint
Guias Office

Como cortar imagens no Word, Excel e PowerPoint

Proteja Contatos e Fotos num iPhone iOS 9
Segurança Móvel

Proteja Contatos e Fotos num iPhone iOS 9

Fim do suporte Windows 10: guia de atualização
Windows

Fim do suporte Windows 10: guia de atualização