Substituindo uma biblioteca Freeradius

1

Eu tenho um servidor freeradius 2.0.4 que eu quero atualizar. Ele está funcionando sem interrupção há 2 anos.
Minha atualização consiste apenas em atualizar o módulo chap sem criar um novo.
Para evitar a descontinuidade do serviço e ter certeza de que todas as configurações permanecem as mesmas, estou tentando encontrar uma maneira suave de fazer isso em uma máquina de teste.
Eu pensei que seria possível simplesmente substituir a biblioteca rlm_chap-2.0.4.so com a minha versão modificada dela . mas isso produz um segfault (provavelmente causado por um conflito de biblioteca).

Outras informações:
 - Freeradius inicia e segfault é produzido quando o módulo chap é chamado no primeiro pedido.
 Minha biblioteca funciona bem quando é usada junto com a versão compilada de fontes de freeradius
 - Estou usando 2 versões do Freeradius: 2.0.4 instaladas através de uma instalação do apt-get e a versão compilada de fontes do apt-get
 - O conflito da biblioteca é causado pela biblioteca modificada e por nada mais. Se eu restaurar a versão original do rlm_chap-2.0.4.so (e não fazer mais nada), ela funcionará bem novamente.
 - Eu ainda sou um noob em compilação / biblioteca manipulations / freeradius, então provavelmente estou fazendo muitas coisas erradas.

Alguma idéia?

Obrigado!

    
por yco 12.04.2013 / 17:39

1 resposta

0

Não tenho certeza do que você quer dizer com "conflito de biblioteca".

Mas, de qualquer forma, você não deveria fazer isso. Se você está modificando o rlm_chap, ele deve ser construído com a mesma versão do código como libfreeradius e radiusd.

Se você está tentando usar uma versão empacotada do rlm_chap de uma versão mais recente do FreeRADIUS (por exemplo, 2.2.0), provavelmente não funcionará porque as APIs internas do FreeRADIUS podem ser alteradas.

Com o FreeRADIUS 3.0.0 isso é explicitamente proibido. O servidor se recusará a iniciar se carregar um módulo vinculado a uma versão diferente da biblioteca.

Ele também se recusará a iniciar se ele foi construído com uma versão diferente do OpenSSL para o que ele está vinculando em tempo de execução.

Se você estiver configurado para atualizar o rlm_chap, será necessário fazer o download do release oficial do 2.0.4, trocar o código rlm_chap em src / modules / rlm_chap, tentar construir o módulo, corrigir quaisquer erros de compilação e, em seguida, use essa versão no lugar do atual .so.

    
por 30.04.2013 / 21:48