Contabilização de conexões IPSec com autenticação RSA

Contabilização de conexões IPSec com autenticação RSA

Apple iOS possui função "VPN On Demand". Com esta função a conexão VPN é feita sempre que o dispositivo tenta se conectar a determinados domínios ou à internet. iOS suporta "VPN On Demand" apenas com autenticação baseada em certificado.

Para fornecer "VPN On Demand" para usuários iOS do servidor VPN do meu escritório, estamos usando a próxima solução IPSec:

  • Ubuntu 14.04 - o sistema operacional do servidor VPN.
  • strongSwan 5.1.2 - daemon IKE.
  • Para cada par, estou gerando uma chave privada individual e emito um certificado correspondente. O cliente (iOS IKEv1) autentica usando RSA e Xauth.
  • iPhone e iPad não podem usar IPSec sem Xauth (chamado Cisco IPSec). E "VPN On Demand" não pode usar o perfil VPN que requer inserção de senha, mas nome de usuário/senha geralmente são exigidos pelo Xauth. Para lidar com esse problema, estamos usando xauth-noauth - falso autenticador Xauth que permite qualquer nome de usuário e senha. Neste caso estamos usando apenas certificado de cliente para autenticá-lo.

Esta solução está funcionando bem para nós. Mas temos um novo requisito - configurar vários servidores VPN com um banco de dados de usuários e contabilizar o uso da VPN.

Esta é uma prática comum para esta tarefa usar RADIUS e o strongSwan possui um plugin para isso. Mas o strongSwan com IKEv1/Xauth usa nome de usuário/senha para autenticar o usuário no servidor RADIUS backend. nome de usuário/senha não está sendo usado na minha solução.

Minhas perguntas:

  1. Como usar a contabilidade Radius se o Xauth não estiver usando nome de usuário/senha?
  2. É possível delegar a verificação de autenticação RSA ao servidor RADIUS?

PS A maioria dos meus clientes iOS usa iOS 8, que suporta IKEv2. Existe EAP-TLS no IKEv2. Posso usar o EAP-TLS para delegar a verificação de autenticação RSA ao servidor RADIUS? Ou estou indo na direção errada com o EAP-TLS?

PSPS Minha segunda coisa foi sobre a interface VICI do strongSwan. Eu deveria receber notificações sobre cada nova conexão IPSec, mas parece que o VICI funciona de maneira diferente.

Responder1

RADIUS Contabilidade noraio eapplugin não requer autenticação XAuth. Na verdade funciona com qualquer tipo de autenticação, via RADIUS ou não, desde que o cliente solicite um endereço IP virtual (para IKEv2 até esse requisito pode ser desabilitado). No entanto, com alguns clientes IKEv1, existem alguns problemas em caso de reautenticação (consulte o problema#937e relacionado).

O EAP-TLS possibilita delegar a autenticação do certificado para clientes IKEv2 ao servidor AAA, mas isso não está relacionado à Contabilidade RADIUS.

Responder2

Graças à ecdsa, encontrei várias soluções para o meu problema.

  1. Use a contabilidade RADIUS sem autenticação RADIUS.

Se o plugin eap-radius estiver habilitado com a opçãocontabilidade = sim, o strongSwan enviará uma mensagem RADIUS para iniciar a contabilidade, mesmo se eap-radius não for usado no arquivo ipsec.conf. No meu caso, esta mensagem RADIUS é assim:

Acct-Status-Type = Start
Acct-Session-Id = 1434531934-1
NAS-Port-Type = Virtual
Service-Type = Framed-User
NAS-Port = 1
NAS-Port-Id = ios-ikev1-fakexauth
NAS-IP-Address = <nas_ip>
Called-Station-Id = <nas_ip>[4500]
Calling-Station-Id = <client_ip>[4500]
User-Name = "C=CH, O=strongSwan, [email protected]"
Framed-IP-Address = 172.20.1.1
NAS-Identifier = strongSwan

Posso obter o certificado CN da mensagem e basta-me fazer a contabilidade adequada. Se eu quiser rejeitar o acesso para algum CN, posso simplesmente rejeitar a mensagem RADIUS do stronSwan e a conexão ipsec será interrompida.

  1. Faça contabilidade e verificação de acesso nocima baixoscript em vez de usar RADIUS.

Também gostaria de usar o plugin strongSwan curl para acessar a lista de revogação de certificados. Mas descobri falta de documentação sobre este plugin. Estou esquecendo de algo?

informação relacionada