OpenVPN client-config-dir: nome do ficheiro versus CN do certificado
O nome do ficheiro CCD vem do nome comum do certificado, ou do nome de utilizador quando esse mapeamento está ativo. Compare as duas regras antes de renomear um ficheiro.
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.