De acordo com o comportamento que você descreve sobre strongSwan não conectando novos usuários ou não conectando usuários quando ipsec.secrets
cresce muito, podemos dizer com segurança que o problema é não haver erros nos scripts.
Parece que você está atingindo um limite de arquivo / buffer / memória. A verdadeira questão é que sua base de usuários superou sua configuração atual, por exemplo, sua configuração talvez seja a ideal para uma base de usuários menor, mas não indicada para muitos usuários.
Como um trabalho temporário, considere a possibilidade de dividir a lista de usuários em vários servidores VPN.
No entanto, a médio / longo prazo, aconselho a configuração de um servidor de autenticação central, seja RADIUS, LDAP, MySQL ou Active Directory, em vez de criar usuários na configuração ipsec.secrets
, e criar uma nova infra-estrutura para permitir que o StrongSwan seja autenticado.
A documentação ainda classifica o plugin SQL como experimental. Há também plugins para o PAM, mas eu não os recomendaria.
O FreeRadius também fala com uma configuração LDAP de backend e compreende mais protocolos se configurado adequadamente (ou seja, PAP, MSCHAPv2, EAP-PAP e EAP-MSCHAPv2). Usar um protocolo RADIUS também traz a vantagem adicional de ter os dados contábeis em um ponto central. Com uma configuração adequada (ou seja, o FreeRadius despejando a contabilidade no MySQL, que é uma configuração opcional), você pode facilmente ter listagens do uso da VPN pelos usuários.
Como tal, embora mais complicado eu recomendaria para um serviço do seu tamanho, ter StrongSwan conversando com FreeRADIUS e FreeRADIUS falando com um LDAP backend com seus usuários e senhas.
De acordo com a documentação oficial:
Autenticação com o RADIUS (com o FreeRadius, por exemplo)
EAP-Radius The eap-radius plugin does not implement an EAP method directly, but it redirects the EAP conversation with a client to a RADIUS backend server. On the gateway, the EAP packets get extracted from the IKE messages and encapsulated into the RADIUS protocol, and vice versa. The gateway itself does not need special support for a specific EAP method, as it handles the EAP conversation between the client and the RADIUS backend more or less transparently.
RADIUS servers The plugin should work with any RADIUS server, we tested it successfully with FreeRADIUS and the NPS Server included with Windows Server 2008 R2.
For EAP methods providing an MSK, the RADIUS server must include the key within the MPPE-Send/Receive Keys; Unfortunately, FreeRADIUS before 2.1.10 did not include these attributes when used with EAP-MSCHAPv2.
Alternativa você também pode usar o pfSense , que é um firewall de código aberto baseado no FreeBSD que possui uma interface gráfica web; você ainda terá o problema de classificar um back-end escalável e sustentável.
Também adicionarei como exemplo, que estou gerenciando algumas VPNs IPsec pfSense para vários milhares de usuários que se autenticam no FreeRadius + Active Directory. Eles estão usando os clientes VPN nativos do Windows 7 a 10, MacOS, iOS, Linux e Android.
Também no que toca à integração com WHMCS: disclaimer - Eu não estou familiarizado com WHMCS . No entanto, parece-me que só diz respeito ao faturamento em uma solução VPN. Eu suspeito que depois de ter uma configuração RADIUS unificada colocando o uso no MySQL, ainda há algum desenvolvimento de software para integrar o uso / faturamento com o WHMCS. Se não for assim, é muito mais complicado fazer o trabalho pesado de extrair de diferentes plataformas os registros de uso do cliente.