Há dois nomes em jogo antes de o cliente se ligar: o nome do ficheiro no portátil (nuc.ovpn) e a identidade que o servidor deriva da credencial. Uma pesquisa em client-config-dir usa o segundo. Mudar o nome do perfil no cliente, ou acrescentar .conf ao ficheiro do servidor, não altera nada quanto ao ficheiro que o servidor abre.

A comparação útil não é «que nome usei» mas «que regra aplica o servidor», porque a autenticação por certificado e a autenticação por nome de utilizador/palavra-passe podem produzir nomes efetivos diferentes a partir do mesmo início de sessão.

Nome do perfil versus nome comum do certificado

Na configuração predefinida baseada em certificados, o servidor pega no nome comum X.509 e procura um ficheiro com exatamente esse nome dentro de client-config-dir. Um perfil chamado nuc.ovpn cujo certificado diz tester resolve-se em /etc/openvpn/server/ccd/tester. O nome do ficheiro do cliente nunca entra no cálculo. É o primeiro sítio onde uma incompatibilidade se esconde.

Um diretório cheio de perfis cuidadosamente nomeados pode, por isso, falhar todas as vezes. O ficheiro não é emparelhado por subject, por endereço de correio eletrónico nem pelo nome mostrado numa GUI; é emparelhado pela cadeia do nome comum.

Num sistema de ficheiros sensível a maiúsculas, Tester e tester são dois ficheiros diferentes e só um é aberto. Verifique o nome comum no certificado que o cliente apresenta de facto, não numa cópia nas suas notas.

username-as-common-name inverte a regra

Quando o servidor executa autenticação por nome de utilizador/palavra-passe com username-as-common-name, o nome de utilizador autenticado substitui o nome comum do certificado nesta pesquisa.

Compare os dois casos diretamente: com identidade de certificado, o ficheiro segue o certificado e uma mudança de palavra-passe é irrelevante; com identidade de nome de utilizador, o ficheiro segue o nome de início de sessão e uma reemissão do certificado é irrelevante. O campo que o servidor substitui é aquele contra o qual se renomeia. Um certificado reemitido com um CN novo muda silenciosamente o alvo da pesquisa, e o ficheiro CCD antigo fica no disco com bom aspeto.

Existem configurações mistas, e é aí que começa a maior parte da confusão. Se um bloco de serviço ativa a substituição e outro não, o nome efetivo depende de qual instância tratou da ligação. Confirme a configuração ativa em vez de assumir que o ficheiro global se aplica. A referência de opções do servidor original documenta a pesquisa pelo ficheiro nomeado e o recurso opcional.

O que o servidor lê e o que ignora em silêncio

Duas pequenas diferenças decidem se um ficheiro é selecionado. A primeira é uma extensão acrescentada. A segunda é um caráter perdido no nome.

OpenVPN não acrescenta .conf ao nome que procura, pelo que tester.conf não corresponde a tester. Um editor que esconde extensões pode deixar um ficheiro que parece correto numa listagem e nunca corresponde.

Quando não existe um ficheiro correspondente, o servidor pode recuar para um ficheiro chamado DEFAULT. A chegada de algumas definições não é, por isso, prova de que o ficheiro por cliente foi usado. Compare o endereço atribuído ou as rotas empurradas com o que o ficheiro por cliente produziria. As permissões são o terceiro filtro, porque o servidor abre o ficheiro depois de abdicar dos privilégios; uma shell de root que o consiga ler não prova nada.

Um nome de ficheiro correto não valida o conteúdo

A seleção e o conteúdo são falhas separadas. Depois de aberto o ficheiro certo, as suas diretivas continuam a ter de ser válidas para esse cliente.

ifconfig-push tem de atribuir um endereço que a topologia consiga realmente usar, e iroute só faz sentido para uma sub-rede encaminhada atrás desse cliente.

Uma identidade, vários dispositivos

Dois portáteis que apresentam o mesmo nome comum selecionam o mesmo ficheiro e recebem as mesmas definições específicas do cliente. Se precisa de endereços separados ou de revogação separada, precisa de identidades separadas, não de duas cópias de um ficheiro.

A comparação é entre partilhar uma identidade e emitir um certificado por dispositivo. Partilhar é mais simples de administrar e mais grosseiro de revogar, enquanto os certificados por dispositivo custam mais preparação e dão uma unidade limpa para desativar.

Artigos relacionados