Pagina 1 di 1
freeradius: rlm_eap_tls.so not found [parzialmente RISOLTO]
Inviato: ven 31 ago 2007, 22:33
da EMIX
Salve a tutti, oggi ho installato il server freeradius seguendo la guida
http://tldp.org/HOWTO/html_single/8021X-HOWTO/
Al momento di lanciare radius in modalità debug ecco l'errore:
Codice: Seleziona tutto
root@mela:~# radiusd -X
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
gtc: challenge = "Password: "
gtc: auth_type = "PAP"
rlm_eap: Loaded and initialized type gtc
rlm_eap: Failed to link EAP-Type/tls: rlm_eap_tls.so: cannot open shared object file: No such file or directory
radiusd.conf[10]: eap: Module instantiation failed.
radiusd.conf[1961] Unknown module "eap".
radiusd.conf[1908] Failed to parse authenticate section.
Il problema DOVREBBE essere la mancanza della libreria rm_eap_tls.so che infatti sul mio sistema non esiste.
Ho cercato in rete e questo problema sembra lo abbiano molti utenti Debian/Ubuntu e le soluzioni possibili sono solo per Debian.
Cosa posso fare? Grazie anticipatamente a chiunque mi voglia dare una mano.
Inviato: ven 31 ago 2007, 22:34
da EMIX
Per completezza riporto l'intero output di radius -X:
Codice: Seleziona tutto
Starting - reading configuration files ...
reread_config: reading radiusd.conf
Config: including file: /usr/local/etc/raddb/proxy.conf
Config: including file: /usr/local/etc/raddb/clients.conf
Config: including file: /usr/local/etc/raddb/snmp.conf
Config: including file: /usr/local/etc/raddb/eap.conf
Config: including file: /usr/local/etc/raddb/sql.conf
main: prefix = "/usr/local"
main: localstatedir = "/usr/local/var"
main: logdir = "/usr/local/var/log/radius"
main: libdir = "/usr/local/lib"
main: radacctdir = "/usr/local/var/log/radius/radacct"
main: hostname_lookups = no
main: max_request_time = 30
main: cleanup_delay = 5
main: max_requests = 1024
main: delete_blocked_requests = 0
main: port = 0
main: allow_core_dumps = no
main: log_stripped_names = no
main: log_file = "/usr/local/var/log/radius/radius.log"
main: log_auth = no
main: log_auth_badpass = no
main: log_auth_goodpass = no
main: pidfile = "/usr/local/var/run/radiusd/radiusd.pid"
main: user = "(null)"
main: group = "(null)"
main: usercollide = no
main: lower_user = "no"
main: lower_pass = "no"
main: nospace_user = "no"
main: nospace_pass = "no"
main: checkrad = "/usr/local/sbin/checkrad"
main: proxy_requests = yes
proxy: retry_delay = 5
proxy: retry_count = 3
proxy: synchronous = no
proxy: default_fallback = yes
proxy: dead_time = 120
proxy: post_proxy_authorize = no
proxy: wake_all_if_all_dead = no
security: max_attributes = 200
security: reject_delay = 1
security: status_server = no
main: debug_level = 0
read_config_files: reading dictionary
read_config_files: reading naslist
Using deprecated naslist file. Support for this will go away soon.
read_config_files: reading clients
read_config_files: reading realms
radiusd: entering modules setup
Module: Library search path is /usr/local/lib
Module: Loaded exec
exec: wait = yes
exec: program = "(null)"
exec: input_pairs = "request"
exec: output_pairs = "(null)"
exec: packet_type = "(null)"
rlm_exec: Wait=yes but no output defined. Did you mean output=none?
Module: Instantiated exec (exec)
Module: Loaded expr
Module: Instantiated expr (expr)
Module: Loaded PAP
pap: encryption_scheme = "crypt"
pap: auto_header = yes
Module: Instantiated pap (pap)
Module: Loaded CHAP
Module: Instantiated chap (chap)
Module: Loaded MS-CHAP
mschap: use_mppe = yes
mschap: require_encryption = yes
mschap: require_strong = yes
mschap: with_ntdomain_hack = no
mschap: passwd = "(null)"
mschap: ntlm_auth = "(null)"
Module: Instantiated mschap (mschap)
Module: Loaded System
unix: cache = no
unix: passwd = "(null)"
unix: shadow = "(null)"
unix: group = "(null)"
unix: radwtmp = "/usr/local/var/log/radius/radwtmp"
unix: usegroup = no
unix: cache_reload = 600
Module: Instantiated unix (unix)
Module: Loaded eap
eap: default_eap_type = "peap"
eap: timer_expire = 60
eap: ignore_unknown_eap_types = no
eap: cisco_accounting_username_bug = no
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
gtc: challenge = "Password: "
gtc: auth_type = "PAP"
rlm_eap: Loaded and initialized type gtc
rlm_eap: Failed to link EAP-Type/tls: rlm_eap_tls.so: cannot open shared object file: No such file or directory
radiusd.conf[10]: eap: Module instantiation failed.
radiusd.conf[1961] Unknown module "eap".
radiusd.conf[1908] Failed to parse authenticate section.
Inviato: ven 31 ago 2007, 22:46
da Night_Watch
Prova a scaricare il seguente pacchetto per Mandriva. Fai la conversione con rpm2tgz per portarlo da rpm a tgz (puoi anche installarlo direttamente in rpm) ed installalo. Il pacchetto contiene la libreria che ti manca. Prova a vedere se così risolvi.
ftp://mirror.switch.ch/mirror/mandrake/ ... 1.i586.rpm
Inviato: ven 31 ago 2007, 23:12
da EMIX
Purtroppo nulla.
Ho installato il pacchetto e in effetti ora questa libreria è in /usr/lib/freeradius/file:///usr/lib/freeradius/rlm_eap_tls.so
Poi ho riavviato il pc e lanciato radius -X ma purtroppo c'è sempre il solito errore.
Devo reinstallare freeradius( ora è installato da sorgenti)?
Io non mi spiego una cosa, nel pacchetto sorgente di freeradius c'è la directory: freeradius-1.1.7/src/modules/rlm_eap/types/rlm_eap_ttls che contiene a sua volta un config, make e degli altri file. Perchè in fase di make o makeinstall non mi ha installato questa benedetta libreria? Ci può essere qualche problema con altri programmi da cui dipende (openssl?)?
GRAZIE MILLE
Inviato: ven 31 ago 2007, 23:52
da EMIX
Intanto ho trovato questo su
http://wiki.freeradius.org/Build :
Don't forget to read supplied documentation first, including the configuration files. As with many free software projects, FreeRADIUS could use more documentation. Until such documentation is available, the only place that configuration items are documented is in the configuration files themselves.
If you have problems when trying to run FreeRADIUS, and you see error messages like:
rlm_sql: Could not link driver rlm_sql_mysql: file not found
Then the shared libraries on your system are misconfigured
Perchè le librerie dovrebbero essere mal configurate?
Inviato: ven 31 ago 2007, 23:57
da EMIX
Nel wiki di freeradius
http://wiki.freeradius.org/index.php/Fr ... do_I_do.3F ho trovato questo:
It says "Could not link ... file not found", what do I do?
You may see an error message like the one below, when you try to run the server:
Module: Loaded SQL rlm_sql: Could not link driver rlm_sql_mysql: file not found rlm_sql: Make sure it (and all its dependent libraries!) are in the search path of your system's ld. radiusd.conf[50]: sql: Module instantiation failed.
There are only a few things that can be happening:
1) The 'mysql_config' cannot be found in $PATH. Try running "./configure | grep mysql_config" and see if you get the follows:
checking for mysql_config... no
configure: WARNING: mysql libraries not found. Use --with-mysql-lib-dir=<path>.
configure: WARNING: sql submodule 'mysql' disabled
If it is, simply do something like "export $PATH=$PATH:/usr/local/mysql/bin" and "./configure | grep mysql_config" again to make sure you get:
checking for mysql_config... yes
Then you should run "make;make install" again.
2) You put shared libraries into a place where your linker cannot find them.
Everyone blames FreeRADIUS because it's the one printing the error message. But it just gets the error message from your linker.
3) You don't have static libraries for SQL clients on your system. So doing "./configure --disable-shared;make" doesn't help.
The 'make' process WILL print out error messages saying it's creating a static library which links to a dynamic one. If your linker is misconfigured (see #1), then FreeRADIUS still won't work.
So you probably ignored the error/warning messages produced during the 'make' stage. That's bad.
And libtool still does dynamic linking when told to do static linking, instead of failing to do the build. It should be taken out and shot.
There is nothing you can do to FreeRADIUS to fix issues with non-FreeRADIUS shared libraries. Fix your SQL libraries so that:
a) your linker can find them
or
b) There are static versions of those libraries available.
You can use the LD_LIBRARY_PATH environment variable in a script which starts the server, to set the paths where these libraries may be found.
One some systems, you can edit /etc/ld.so.conf, ('man ld.so', or 'man ldconfig'), and add the directory containing the dynamic libraries to that list.
See also the 'libdir' configuration directive in the 'radiusd.conf' file which is distributed with the server. It contains additional information.
If none of these solutions work, then your ONLY option is to build FreeRADIUS without dynamic libraries. This may be done via:
./configure --disable-shared
make
make install
Please READ the messages produced during the 'make' and 'make install' stages. While there is a lot of text to wade through, these messages may be the ONLY source of information as to what's wrong your system.
Inviato: sab 1 set 2007, 0:05
da EMIX
Penso di aver trovato il problema:
Codice: Seleziona tutto
root@mela:/usr/local/freeradius-1.1.7# ./configure | grep rlm_eap_tls
config.status: WARNING: ./Make.inc.in seems to ignore the --datarootdir setting
config.status: WARNING: ./src/include/build-radpaths-h.in seems to ignore the - -datarootdir setting
configure: WARNING: FAILURE: rlm_dbm requires: (ndbm.h or gdbm/ndbm.h or gdbm-n dbm.h) (libndbm or libgdbm or libgdbm_compat).
configure: WARNING: silently not building rlm_dbm.
configure: configuring in ./types/rlm_eap_tls
configure: WARNING: silently not building rlm_eap_tls.
configure: WARNING: FAILURE: rlm_eap_tls requires: OpenSSL.
configure: WARNING: silently not building rlm_eap_peap.
configure: WARNING: FAILURE: rlm_eap_peap requires: OpenSSL.
configure: WARNING: silently not building rlm_eap_ttls.
configure: WARNING: FAILURE: rlm_eap_ttls requires: OpenSSL.
Da quanto scritto l'errore è che rlm_eap_tls richiedeOpenSSL! Ma OpenSSL è installato!
Inviato: sab 1 set 2007, 2:31
da Night_Watch
Il fatto che ricevi sempre lo stesso errore riferito alla libreria mancante è strano. Il riavvio dovrebbe lanciare il comando ldconfig che quindi dovrebbe rilevare le nuove librerie installate. Comunque............
...............prova ad installare (se non lo hai già fatto) la versione pacchettizata per Slackware 10.2:
http://linuxpackages.telecoms.bg/Slackw ... 86-1mp.tgz
E' una versione vecchia rispetto a quella che c'è sul sito ma per lo meno vedi se funziona!!!
Inviato: sab 1 set 2007, 10:21
da EMIX
Allora, ho installato il pacchetto da te indicato sia su una slackware 11 che su una 12, ma c'è un nuovo messaggio di errore (su entrambe):
Codice: Seleziona tutto
read_config_files: reading dictionary
Errors reading dictionary: dict_init: /etc/raddb/dictionary[14]: Couldn't open dictionary "/usr/share/freeradius/dictionary": No such file or directory
Errors reading radiusd.conf
Cercando su google si vede che è un problema comune delle versioni di freeradius precedenti alla 1.1.0.
Inviato: sab 1 set 2007, 11:16
da Night_Watch
Ho provato ha commentare la riga all'interno del file /etc/raddb/dictonary:
perchè in effetti non esiste nessun /usr/share/freeradius/dictionary. L'errore non c'è più ma mi ha dato un altro errore:
Codice: Seleziona tutto
radiusd.conf[1682] Unknown Auth-Type "System" in authenticate section.
Alla riga 1682 inizia la parte dove evidentemente il server fa un controllo sui sistemi di autenticazione supportati dal sistema. Ho ancora provato a commentare tutta la parte inerente ad authenticate ma ho ricevuto un altro errore:
Codice: Seleziona tutto
/etc/raddb/hints[37]: Unexpected trailing comma in check item list for entry DEFAULT
rlm_preprocess: Error reading /etc/raddb/hints
radiusd.conf[986]: preprocess: Module instantiation failed.
Inviato: sab 1 set 2007, 13:03
da EMIX
Ragazzi ho risolto il problema, ma vale SOLO se si installa da sorgenti.
Descrizione problema: il server freeradius non compila i moduli rlm_eap poichè non trova le librerie di openssl
Verificarsi del problema: ci si accorge del problema in due momenti, o nella fase di configure o nella fase di debug (radius -X)
Codice: Seleziona tutto
root@mela:/usr/local/freeradius-1.1.7# ./configure | grep rlm_eap_tls
config.status: WARNING: ./Make.inc.in seems to ignore the --datarootdir setting
config.status: WARNING: ./src/include/build-radpaths-h.in seems to ignore the - -datarootdir setting
configure: WARNING: FAILURE: rlm_dbm requires: (ndbm.h or gdbm/ndbm.h or gdbm-n dbm.h) (libndbm or libgdbm or libgdbm_compat).
configure: WARNING: silently not building rlm_dbm.
configure: configuring in ./types/rlm_eap_tls
configure: WARNING: silently not building rlm_eap_tls.
configure: WARNING: FAILURE: rlm_eap_tls requires: OpenSSL.
configure: WARNING: silently not building rlm_eap_peap.
configure: WARNING: FAILURE: rlm_eap_peap requires: OpenSSL.
configure: WARNING: silently not building rlm_eap_ttls.
configure: WARNING: FAILURE: rlm_eap_ttls requires: OpenSSL.
Codice: Seleziona tutto
root@mela:~# radiusd -X
rlm_eap: Loaded and initialized type md5
rlm_eap: Loaded and initialized type leap
gtc: challenge = "Password: "
gtc: auth_type = "PAP"
rlm_eap: Loaded and initialized type gtc
rlm_eap: Failed to link EAP-Type/tls: rlm_eap_tls.so: cannot open shared object file: No such file or directory
radiusd.conf[10]: eap: Module instantiation failed.
radiusd.conf[1961] Unknown module "eap".
radiusd.conf[1908] Failed to parse authenticate section.
Soluzione e passi per l'installazione:
1) PRIMA di iniziare il configure aggiungere la directory /usr/lib nel file /etc/ld.so.conf
2) digitare ldconfig
3) lanciare l'installazione ( ./configure, make, make install)
Spero di esser stato utile