hagen_id Опубликовано 28 января, 2011 · Жалоба Всем добрый день. Подскажите пожалуйста у кого есть опыт в настройке Freeradius(Virtual server)+Mysql Задача следующая: Есть настроенное решение ISG+Freeradius+DHCP все работает, потребовалось настоит авторизацию оборудования через Fereeradius. Я прочитал про возможности Freeradius такие как "Vitrual Server" аналогичный принцип работы как у Apache "Virtual Host". Virtual server я настроил он работает на разных IP на разных портах работает одновременно. Вопрос в следующем как настроить радиус для обращений в разные БД с разными запросами? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Hawk128 Опубликовано 28 января, 2011 · Жалоба Возьмите FreeRadius2 там и с базами без проблем (у меня один радиус к двум разным базам обращается, не говоря уже о разных виртуальных.), и виртуалка по принципу апача есть. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hagen_id Опубликовано 28 января, 2011 · Жалоба Ну я как раз и пытаюсь настроить это все на FreeRADIUS Version 2.1.9.Виртуальные сервера я настроил. У меня не получается с SQL разобраться с разными ДБ:( устал курить мануалы...:( Не поделитесь примерчиком кофига?:) Был бы очень благодарен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 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/ тоже удалить всё что сам туда не ложил. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hagen_id Опубликовано 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 31 января, 2011 · Жалоба # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" Единственная строка которая за это отвечает.Проверьте ещё раз и внимательно ваш конфиг, сдаётся мне что вы лишнего там исправили. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 31 января, 2011 · Жалоба Когда я спрашивал в рассылке по поводу нескольких обработчиков perl, то мне ответили что можно так: perl module1 { ... } perl module2 { ... } И далее везде использовать имя. Может быть с базами тоже прокатит. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hagen_id Опубликовано 4 февраля, 2011 · Жалоба Большое спасибо все заработало по следующему примеру: sql sql { ... } sql sql2 { ... } У меня теперь возник другой вопрос. Хотелось бы в базе хранить пароли но не открытом виде а хотя бы в MD5, может кто то поделится опытом и рассказать как это осуществляется без головной боли? Заране благодарен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...