Contabilizando conexões IPSec com autenticação RSA

1

O Apple iOS tem a 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. O iOS suporta "VPN On Demand" apenas com autenticação baseada em certificados.

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 eu estou gerando uma chave privada individual e emito um certificado correspondente. Cliente (iOS IKEv1) autentica usando RSA e Xauth.
  • O iPhone e o iPad não podem usar o IPSec sem o Xauth (o chamado Cisco IPSec). E "VPN On Demand" não pode usar o perfil de VPN que requer a digitação de senha, mas o nome de usuário / senha geralmente é exigido pelo Xauth. Para lidar com esse problema, estamos usando o 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 recebemos novos requisitos - configure vários servidores VPN com um banco de dados de usuários e faça a contabilização do uso da VPN.

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

Minhas perguntas:

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

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

P.S. P.S. 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.

    
por John Green 14.06.2015 / 23:56

2 respostas

2

O RADIUS Accounting no plugin eap-radius não requer autenticação XAuth. Ele realmente funciona com qualquer tipo de autenticação, via RADIUS ou não, desde que o cliente solicite um endereço IP virtual (para o IKEv2, até mesmo este requisito pode ser desativado). No entanto, com alguns clientes IKEv1, existem alguns problemas em caso de reautenticação (consulte o # 937 e os relacionados)

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

    
por 15.06.2015 / 10:53
0

Graças ao 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ção accounting = yes , strongSwan enviará a mensagem RADIUS para iniciar a contabilização, mesmo se o 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

Eu posso obter o certificado CN da mensagem e é necessário fazer uma contabilidade adequada. Se eu quiser rejeitar o acesso para algum CN eu posso apenas rejeitar a mensagem RADIUS do stronSwan e a conexão ipsec será interrompida.

  1. Fazer a verificação de contabilidade e acesso no script updown em vez de usar o RADIUS.

Além disso, gostaria de usar o plugin strongSwan curl para acessar a lista de revogação de certificados. Mas eu encontrei falta de documentação sobre este plugin. Estou faltando alguma coisa?

    
por 17.06.2015 / 18:46