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

Atualizar Ubuntu 12.04 para 14.04 LTS
Linux

Atualizar Ubuntu 12.04 para 14.04 LTS

Corrigir erro 0xc000001d no Windows
Windows

Corrigir erro 0xc000001d no Windows

Limpar Recent Places no macOS
macOS

Limpar Recent Places no macOS

Corrigir erros 0x80070057, 0xa0000400 e Cortana
Windows

Corrigir erros 0x80070057, 0xa0000400 e Cortana

Remover atualizações problemáticas do Windows
Tutoriais

Remover atualizações problemáticas do Windows

Organizar abas e sessões no Firefox e Chrome
Navegadores

Organizar abas e sessões no Firefox e Chrome