Possível? Servidor OpenVPN que requer login com certificado e senha (via firmware do roteador Tomato)


8

Eu tenho usado a versão do Shibby do Tomato (versão de 64k NVRAM) no meu roteador Asus N66U para executar um servidor OpenVPN.

Estou curioso para saber se é possível configurar este servidor OpenVPN para exigir um certificado E um nome de usuário / senha antes que um usuário tenha acesso permitido.

Percebi que há uma entrada de "senha de desafio" ao preencher os detalhes do certificado, mas todo mundo diz para deixá-la em branco "ou então"; Não faço ideia do porquê e não consigo encontrar uma explicação. Além disso, eu já resolvi esse problema no Google e notei pessoas falando sobre um módulo PAM para o OpenVPN para se autenticar via nome de usuário / senha, mas isso parecia ser uma opção de opção. em outras palavras, posso forçar a autenticação via nome de usuário / senha OU certificado. Eu quero exigir os dois.

Isso é possível? Se sim, como?

Respostas:


4

O recurso OpenVPN que você está procurando, o que irá permitir que o servidor para os clientes autenticar com base tanto o seu certificado e uma credencial, é auth-user-pass-verify. Esse recurso permite que o servidor transmita o nome de usuário / senha fornecidos pelo usuário remoto para um script que executa a autenticação. Nesse ponto, você pode validar as credenciais contra o que quiser - PAM, RADIUS, LDAP, sinais de fumaça etc.

Não sei nada sobre os firmwares "Tomato", então nem vou tentar dar um passo a passo aqui. Eu fiz uma pesquisa rápida e suspeito que você possa usar a opção "Configuração personalizada" do OpenVPN para incluir uma auth-user-pass-verifyreferência. Você precisará de um script para executar a autenticação.

Pesquise e suspeito que você encontrará referências específicas do "Tomate".


2

A senha de desafio é uma senha usada para permitir a descriptografia da chave. Essa é a única maneira de você realmente fazer uma "senha" e uma chave.

Você pode realmente verificar apenas por senha ou chave, não pelas duas. Se você tiver os dois métodos ativados, ele tentará primeiro a autenticação por chave e, se isso falhar, voltará à autenticação por senha.

Não ter uma frase secreta em uma chave facilita que alguém imite sua identidade se ela conseguir segurar a chave.

Eu sugiro descobrir por que a interwebz diz que você não deve usar senhas nas teclas e ver se é realmente um problema.


Ya é isso que eu tenho tido problemas em responder. Espero que outra pessoa possa nos esclarecer a esse respeito; parece uma sugestão contra-intuitiva.
23412 Eric Eric

Enquanto isso, existe uma maneira quantificável de comparar a força de um certificado + requisito com apenas uma combinação de nome de usuário / senha? Estou assumindo ordens de magnitude mais difíceis de decifrar, mas isso é apenas uma suposição baseada no meu conhecimento circunstancial.
23412 Eric Eric

Esta é uma resposta antiga, mas ... Não é isso que a senha do desafio é e faz. Você pode usar uma senha para proteger uma chave, conforme descrito acima, mas a senha de desafio é algo não relacionado. Ele não é armazenado no certificado ou na chave, mas é mantido com a CA. Ele deve ser usado ao usar a CA para revogar a chave ou emitir uma substituição.
B

2

auth-user-pass-check é a coisa certa a fazer. Além disso, você pode forçar o nome de usuário do auth-user a ser o CN certificado. Você também pode forçar o openvpn a fazer apenas uma conexão por certificado.

Dessa forma, um "imitador" precisa ter o usuário certo em comparação à CN certc e o passe certo e ele precisa fazer logon por vez, o verdadeiro proprietário não

Além disso, você pode pensar em um IDS, dependendo de qual escolher, pode até reduzi-lo, como intervalos de IP externos permitidos, tempos de logon e assim por diante.

Qualquer certificado exposto deve ser revogado imediatamente. O servidor de assinatura deve estar fora da rede - chave de transferência por usb -, então você tem um acesso realmente seguro.

e não, você não deve senha de um certificado.

  1. Fácil de força bruta.
  2. Você não pode bloquear um usuário (o certificado só está offline).
  3. As pessoas perdem suas senhas o tempo todo, forçando você a revogar e recriar um certificado toda vez - grande risco de ter um monte de informações por aí, onde você às vezes esquece a revogação.

Mas se você realmente deseja, pode usar a senha de usuário e certificado do mesmo tempo, não haverá substituto ou algo assim.

Primeiro, o openvpn usará a senha cert para descriptografar a chave privada para estabelecer uma conexão - então o usuário auth entra em ação com os servidores - se as credenciais estiverem erradas, você está fora do ar.

No entanto, se um invasor obtém as credenciais regulares, você já está com problemas e as chances são altas de obter a senha do certificado também.

Portanto, não vejo benefícios reais aqui, mas muitas desvantagens e um sentimento errado de mais segurança.


0

Segui este tutorial (com o TomatoUSB Shibby 1.28 no meu Asus N66U): http://www.dd-wrt.com/wiki/index.php/OpenVPN Isso pode ajudá-lo bastante.


2
AndyZ - bem-vindo ao SF, mas gostamos de respostas aqui para conter mais substância do que apenas um link (que pode apodrecer com a idade). Se você pode revisar esta resposta para conter os bits importantes do método que você seguiu, bem como o link para o artigo, pode ser uma resposta muito boa.
MadHatter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.