Guia de tecnologias

Proteger X2Go no Ubuntu Precise com autenticação WiKID de dois fatores

7 min read Segurança Atualizado 19 Oct 2025
X2Go + WiKID: autenticação 2FA no Ubuntu Precise
X2Go + WiKID: autenticação 2FA no Ubuntu Precise

Visão geral rápida

Definição curta: WiKID é um sistema de autenticação forte de dois fatores; X2Go é um cliente/servidor de desktop remoto baseado em NX. Neste fluxo, o WiKID valida o token (posse) e o PIN (conhecimento) do usuário. O objetivo é exigir um código OTP além da senha do Linux para sessões remotas X2Go.

Importante: Presuma que o servidor WiKID já está instalado e funcional. Este guia foca na integração e na configuração do servidor X2Go/Ubuntu com pam-radius.

Principais passos

  1. Criar um domínio no servidor WiKID.
  2. Criar um Network Client no WiKID apontando para o servidor X2Go.
  3. Instalar e configurar X2Go no Ubuntu Precise.
  4. Instalar e configurar libpam-radius-auth no X2Go para encaminhar autenticações ao WiKID.
  5. Testar e validar com token WiKID e PIN.

Adicionando um domínio ao servidor WiKID

Siga a interface web do WiKID para criar um domínio que represente o conjunto de usuários e políticas que usarão X2Go. O domínio organiza os tokens e permite separar ambientes (por exemplo, produção vs teste).

![/files/3334f43e-80d2-4035-82c9-72fcd307ec25.jpg]

Alt: Página de administração do WiKID mostrando a criação de um novo domínio e opções relacionadas.

Criar um Network Client

Depois de salvar as informações do domínio, acesse a aba Network Client e clique em Create New Network Client. Informe um nome identificável e o endereço IP do servidor X2Go na rede interna. Escolha RADIUS como protocolo e selecione o domínio criado.

![/files/4d4dcb46-39ef-4318-ba20-d753896c8c5b.jpg]

Alt: Formulário de criação de Network Client no painel WiKID com campos para nome, IP e protocolo.

Clique em Add. Na página seguinte insira o shared secret (segredo compartilhado) para RADIUS. Guarde este segredo: ele será colocado no arquivo de configuração do PAM RADIUS do servidor X2Go.

![/files/434d1b1f-43f1-4c88-84ef-ef9ed05e723c.jpg]

Alt: Configuração do segredo compartilhado (shared secret) para o cliente RADIUS no WiKID.

Instalar e configurar X2Go no Ubuntu (Precise)

Instalar repositórios e pacotes do X2Go:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession x2gobroker x2gobroker-daemon x2gobroker-authservice

Instale um ambiente de desktop se necessário (exemplo: Unity/GNOME):

sudo apt-get install ubuntu-desktop gnome

Ou instale o desktop leve de sua preferência (XFCE, MATE, LXDE) para reduzir uso de recursos.

Recomendo testar a autenticação local do X2Go antes de integrar o RADIUS. No cliente, instale o x2goclient e crie uma sessão apontando ao IP do servidor X2Go. Verifique login com usuário e senha locais:

apt-get install x2goclient

Configurar PAM RADIUS no servidor X2Go

Cada distribuição trata PAM de forma ligeiramente diferente. Este passo descreve Ubuntu/ Debian.

Instale o pacote de autenticação RADIUS para PAM:

$ sudo apt-get install libpam-radius-auth

A seguir, edite o arquivo de configuração do libpam-radius-auth para apontar ao seu servidor WiKID:

$ sudo vim /etc/pam_radius_auth.conf

No arquivo, substitua a linha de exemplo:

other-server; other-secret 3

por uma linha com o endereço IP (ou hostname) do seu servidor WiKID e o segredo compartilhado criado no Network Client:

192.0.2.10 my-shared-secret 3

Nota: o arquivo instrui copiar para /etc/raddb/server — NÃO faça isso; mantenha /etc/pam_radius_auth.conf conforme o pacote espera.

Agora configure o serviço SSH (e/ou outros serviços PAM-aware) para usar pam_radius_auth. Edite:

$ sudo vim /etc/pam.d/sshd

Adicione a linha seguinte antes de incluir common-auth:

auth       sufficient  pam_radius_auth.so

O trecho final deverá ficar semelhante a:

auth       sufficient  pam_radius_auth.so

# Standard Un*x authentication.
@include common-auth

Significado curto: ‘sufficient’ permite que, se o RADIUS autenticar com sucesso, o PAM aceite a autenticação sem continuar as outras pilhas.

Testes e validação

Abra um terminal com logs de autenticação:

tail -f /var/log/auth.log

No cliente X2Go, inicie seu token WiKID e selecione o domínio apropriado. Digite seu PIN e gere o código OTP (one-time passcode). Tente autenticar no X2Go usando o nome de usuário Linux e o OTP. Observe os logs para eventos de acesso e erros.

Dicas de teste:

  • O nome de usuário no Linux deve corresponder ao nome no WiKID.
  • Se usar diretório central (LDAP/AD), certifique-se que o usuário exista localmente ou configure pam_ldap antes do pam_radius, conforme sua política.

Critérios de aceitação

  • O usuário A consegue autenticar via X2Go usando PIN+OTP gerado pelo token WiKID.
  • Tentativas sem OTP falham quando o RADIUS é obrigatório.
  • Logout, encerramento e múltiplas sessões funcionam sem perda de sessão do X2Go.
  • A administração consegue desabilitar um token no WiKID e bloquear o acesso imediatamente.

Checklist rápido para implantação (roles)

Administrador de sistema:

  • Confirmar servidor WiKID operacional.
  • Criar domínio e Network Client com IP do servidor X2Go.
  • Guardar shared secret do Network Client.
  • Instalar X2Go e desktop no Ubuntu Precise.
  • Instalar libpam-radius-auth e configurar /etc/pam_radius_auth.conf.
  • Editar /etc/pam.d/sshd para incluir pam_radius_auth.
  • Testar logs e autenticação com token.

Administrador de segurança/Identidade:

  • Garantir políticas de PIN e bloqueio no WiKID.
  • Planejar processos de provisionamento e revogação de tokens.

Usuário final:

  • Receber token e instruções de uso.
  • Testar login X2Go com OTP.

Troubleshooting comum

Problema: autenticação falha com o RADIUS.

  • Verifique /var/log/auth.log e os logs do servidor WiKID.
  • Confirme IP/hostname e shared secret em /etc/pam_radius_auth.conf.
  • Teste conectividade UDP/TCP entre servidor X2Go e WiKID (porta RADIUS 1812 UDP normalmente).

Problema: usuário não existe no Linux.

  • Garanta que haja conta local com mesmo nome de usuário ou configure pam_ldap/pam_sss para consultar seu diretório antes do pam_radius.

Problema: atraso ou sincronização de tokens.

  • Tokens WiKID não dependem de tempo (algoritmos baseados em evento) na maioria dos casos, mas verifique a documentação do seu tipo de token.

Decisão rápida (fluxo) — quando usar esse modelo

flowchart TD
  A[Precisa de 2FA para X2Go?] -->|Sim| B[Servidor WiKID disponível?]
  B -->|Sim| C[Criar domínio e Network Client]
  B -->|Não| D[Instalar/configurar WiKID]
  C --> E[Configurar X2Go no Ubuntu]
  E --> F[Instalar libpam-radius-auth e apontar para WiKID]
  F --> G[Testar autenticação com token]
  G --> H{Autenticação OK?}
  H -->|Sim| I[Produção]
  H -->|Não| J[Depurar logs e regras PAM]

Boas práticas de segurança e endurecimento

  • Restrinja o acesso à porta RADIUS (UDP 1812) apenas entre o servidor X2Go e o WiKID.
  • Use segredos RADIUS fortes e rotacione-os conforme política.
  • Monitore logs de autenticação e alerte tentativas repetidas.
  • Desabilite tokens imediatamente quando houver suspeita de comprometimento.
  • Se usar diretório (AD/LDAP), mantenha autorização centralizada: o RADIUS deve delegar apenas autenticação, não autorização, quando apropriado.

Compatibilidade e notas de migração

  • Este guia foi testado para Ubuntu 12.04 (Precise). Em versões mais recentes do Ubuntu, nomes de pacotes e métodos de gestão de PAM podem variar. Verifique pacotes equivalentes e caminhos de configuração.
  • Em distribuições RHEL/CentOS, o pacote PAM RADIUS e o caminho de configuração podem diferir — consulte a documentação específica da sua distro.

Quando esse método falha (contraexemplos)

  • Em ambientes sem infraestrutura de tokens ou quando o WiKID não pode ser acessado por rede.
  • Quando é necessário SSO (single sign-on) completo com Kerberos; nesse caso combine métodos ou escolha um gateway SSH central com RADIUS.
  • Em cenários de alta latência entre o X2Go e o WiKID que causem timeouts frequentes.

Testes de aceitação (exemplos)

  • Caso de teste 1: Usuário válido, token válido -> autenticação sucedida.
  • Caso de teste 2: Usuário válido, token inválido -> autenticação negada e registrada no log.
  • Caso de teste 3: Token desabilitado no WiKID -> autenticação negada imediatamente.

Plano de rollback / runbook de incidente breve

  1. Se a autenticação RADIUS falhar amplamente, comente a linha pam_radius_auth em /etc/pam.d/sshd para restaurar login local (se aplicável).
  2. Reinicie o serviço SSH se necessário.
  3. Investigue conectividade e logs do WiKID antes de reverter permanentemente.

Sumário

A integração de X2Go com o WiKID via pam-radius oferece autenticação de dois fatores que combina posse do token e conhecimento do PIN. O procedimento envolve criar um domínio e cliente no WiKID, instalar/configurar X2Go no Ubuntu, apontar libpam-radius-auth para o WiKID, e testar com tokens. Siga o checklist e as boas práticas de segurança para implantação segura.

Observação final: mantenha documentados os procedimentos de provisão e revogação de tokens. Isso minimizará janela de risco quando for necessário desabilitar acessos.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE