hagen_id Posted January 28, 2011 Posted January 28, 2011 Всем добрый день. Подскажите пожалуйста у кого есть опыт в настройке Freeradius(Virtual server)+Mysql Задача следующая: Есть настроенное решение ISG+Freeradius+DHCP все работает, потребовалось настоит авторизацию оборудования через Fereeradius. Я прочитал про возможности Freeradius такие как "Vitrual Server" аналогичный принцип работы как у Apache "Virtual Host". Virtual server я настроил он работает на разных IP на разных портах работает одновременно. Вопрос в следующем как настроить радиус для обращений в разные БД с разными запросами? Вставить ник Quote
Hawk128 Posted January 28, 2011 Posted January 28, 2011 Возьмите FreeRadius2 там и с базами без проблем (у меня один радиус к двум разным базам обращается, не говоря уже о разных виртуальных.), и виртуалка по принципу апача есть. Вставить ник Quote
hagen_id Posted January 28, 2011 Author Posted January 28, 2011 Ну я как раз и пытаюсь настроить это все на FreeRADIUS Version 2.1.9.Виртуальные сервера я настроил. У меня не получается с SQL разобраться с разными ДБ:( устал курить мануалы...:( Не поделитесь примерчиком кофига?:) Был бы очень благодарен. Вставить ник Quote
Ivan_83 Posted January 28, 2011 Posted January 28, 2011 Ну я как раз и пытаюсь настроить это все на FreeRADIUS Version 2.1.9.Виртуальные сервера я настроил.У меня не получается с SQL разобраться с разными ДБ:( устал курить мануалы...:( Не поделитесь примерчиком кофига?:) Был бы очень благодарен. Плохо искали, видел пример с двумя серверами, там же показывалось как делать между ними балансировку.Вроде даже в дефолтном конфиге дан пример двух sql, уж в wiki на сайте точно был. Виртуальные сервера там виртуальны - всмысле что я не заморачивался и в radiusd.conf в modules прямо и описывал sql, linelog и прочее. как то так: modules { # Persistent, embedded Perl interpreter. perl { # The Perl script to execute on authorize, authenticate, # accounting, xlat, etc. This is very similar to using # 'rlm_exec' module, but it is persistent, and therefore faster. module = ${confdir}/dhcpreq.pl # List of functions in the module to call. func_post_auth = post_auth } sql { # # Set the database to one of: # # mysql, mssql, oracle, postgresql # database = "mysql" # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" # Connection info: server = "127.0.0.1" port = 3306 login = "radius" password = "radius" # Database table configuration for everything except Oracle radius_db = "radiusdb" # Print all SQL statements when in debug mode (-x) sqltrace = no sqltracefile = ${logdir}/sqltrace.sql # number of sql connections to make to server num_sql_socks = 16 # number of seconds to dely retrying on a failed database # connection (per_socket) connect_failure_retry_delay = 60 # lifetime of an SQL socket. If you are having network issues # such as TCP sessions expiring, you may need to set the socket # lifetime. If set to non-zero, any open connections will be # closed "lifetime" seconds after they were first opened. lifetime = 0 # Maximum number of queries used by an SQL socket. If you are # having issues with SQL sockets lasting "too long", you can # limit the number of queries performed over one socket. After # "max_qeuries", the socket will be closed. Use 0 for "no limit". max_queries = 0 } sql2 { # # Set the database to one of: # # mysql, mssql, oracle, postgresql # database = "mysql" # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" # Connection info: server = "127.0.0.1" port = 3306 login = "radius" password = "radius" # Database table configuration for everything except Oracle radius_db = "radiusdb" # Print all SQL statements when in debug mode (-x) sqltrace = no sqltracefile = ${logdir}/sqltrace.sql # number of sql connections to make to server num_sql_socks = 16 # number of seconds to dely retrying on a failed database # connection (per_socket) connect_failure_retry_delay = 60 # lifetime of an SQL socket. If you are having network issues # such as TCP sessions expiring, you may need to set the socket # lifetime. If set to non-zero, any open connections will be # closed "lifetime" seconds after they were first opened. lifetime = 0 # Maximum number of queries used by an SQL socket. If you are # having issues with SQL sockets lasting "too long", you can # limit the number of queries performed over one socket. After # "max_qeuries", the socket will be closed. Use 0 for "no limit". max_queries = 0 } # As of 2.0.5, most of the module configurations are in a # sub-directory. Files matching the regex /[a-zA-Z0-9_.]+/ # are loaded. The modules are initialized ONLY if they are # referenced in a processing section, such as authorize, # authenticate, accounting, pre/post-proxy, etc. # #$INCLUDE ${confdir}/modules/ $INCLUDE ${confdir}/modules/always } instantiate { perl sql sql2 } Обращатся sql, sql2 Я закоментил загрузку стандартных модулей - мне этот хлам не нужен, только always для меня был необходим, там базисный функционал. Из sites-enabled/ тоже удалить всё что сам туда не ложил. Вставить ник Quote
hagen_id Posted January 31, 2011 Author Posted January 31, 2011 Добрый день еще раз. Вроде все сделал как вы написали. Все настройки своих sql поместил в sql,sql2 и все прописывал как у вас в radius.conf Но в итоге получаю непонятную ошибку. /etc/freeradius/radiusd.conf[1378]: Failed to link to module 'rlm_sql2': file not found Проверил есть ли такой модуль, его нет и я не уверен должен ли быть. Оно почему то переименовывает стандартный модуль rlm_sql_mysql на rlm_sql2 Linux 2.6.35-24-generic Ubuntu SMP i686 GNU/Linux FreeRADIUS Version 2.1.9 ls /usr/lib/freeradius libfreeradius-eap-2.1.9.so rlm_dbm-2.1.9.so rlm_eap_sim.so rlm_logintime-2.1.9.so rlm_radutmp-2.1.9.so libfreeradius-radius-2.1.9.so rlm_dbm.so rlm_eap.so rlm_logintime.so rlm_radutmp.so rlm_acctlog-2.1.9.so rlm_detail-2.1.9.so rlm_eap_tls-2.1.9.so rlm_mschap-2.1.9.so rlm_realm-2.1.9.so rlm_acctlog.so rlm_detail.so rlm_eap_tls.so rlm_mschap.so rlm_realm.so rlm_acct_unique-2.1.9.so rlm_digest-2.1.9.so rlm_eap_ttls-2.1.9.so rlm_otp-2.1.9.so rlm_sql-2.1.9.so rlm_acct_unique.so rlm_digest.so rlm_eap_ttls.so rlm_otp.so rlm_sqlcounter-2.1.9.so rlm_always-2.1.9.so rlm_dynamic_clients-2.1.9.so rlm_exec-2.1.9.so rlm_pam-2.1.9.so rlm_sqlcounter.so rlm_always.so rlm_dynamic_clients.so rlm_exec.so rlm_pam.so rlm_sqlippool-2.1.9.so rlm_attr_filter-2.1.9.so rlm_eap-2.1.9.so rlm_expiration-2.1.9.so rlm_pap-2.1.9.so rlm_sqlippool.so rlm_attr_filter.so rlm_eap_gtc-2.1.9.so rlm_expiration.so rlm_pap.so rlm_sql_log-2.1.9.so rlm_attr_rewrite-2.1.9.so rlm_eap_gtc.so rlm_expr-2.1.9.so rlm_passwd-2.1.9.so rlm_sql_log.so rlm_attr_rewrite.so rlm_eap_leap-2.1.9.so rlm_expr.so rlm_passwd.so rlm_sql_mysql-2.1.9.so rlm_chap-2.1.9.so rlm_eap_leap.so rlm_fastusers-2.1.9.so rlm_perl-2.1.9.so rlm_sql_mysql.so rlm_chap.so rlm_eap_md5-2.1.9.so rlm_fastusers.so rlm_perl.so rlm_sql_postgresql-2.1.9.so rlm_checkval-2.1.9.so rlm_eap_md5.so rlm_files-2.1.9.so rlm_policy-2.1.9.so rlm_sql_postgresql.so rlm_checkval.so rlm_eap_mschapv2-2.1.9.so rlm_files.so rlm_policy.so rlm_sql.so rlm_copy_packet-2.1.9.so rlm_eap_mschapv2.so rlm_ippool-2.1.9.so rlm_preprocess-2.1.9.so rlm_unix-2.1.9.so rlm_copy_packet.so rlm_eap_peap-2.1.9.so rlm_ippool.so rlm_preprocess.so rlm_unix.so rlm_counter-2.1.9.so rlm_eap_peap.so rlm_linelog-2.1.9.so rlm_python-2.1.9.so rlm_counter.so rlm_eap_sim-2.1.9.so rlm_linelog.so rlm_python.so Вставить ник Quote
Ivan_83 Posted January 31, 2011 Posted January 31, 2011 # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" Единственная строка которая за это отвечает.Проверьте ещё раз и внимательно ваш конфиг, сдаётся мне что вы лишнего там исправили. Вставить ник Quote
SokolovS Posted January 31, 2011 Posted January 31, 2011 Когда я спрашивал в рассылке по поводу нескольких обработчиков perl, то мне ответили что можно так: perl module1 { ... } perl module2 { ... } И далее везде использовать имя. Может быть с базами тоже прокатит. Вставить ник Quote
hagen_id Posted February 4, 2011 Author Posted February 4, 2011 Большое спасибо все заработало по следующему примеру: sql sql { ... } sql sql2 { ... } У меня теперь возник другой вопрос. Хотелось бы в базе хранить пароли но не открытом виде а хотя бы в MD5, может кто то поделится опытом и рассказать как это осуществляется без головной боли? Заране благодарен. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.