Перейти к содержимому
Калькуляторы

Freeradius(Virtual server)+Mysql Freeradius(Virtual server)+Mysql

Всем добрый день.

Подскажите пожалуйста у кого есть опыт в настройке Freeradius(Virtual server)+Mysql

Задача следующая:

Есть настроенное решение ISG+Freeradius+DHCP все работает, потребовалось настоит авторизацию оборудования через Fereeradius.

Я прочитал про возможности Freeradius такие как "Vitrual Server" аналогичный принцип работы как у Apache "Virtual Host".

Virtual server я настроил он работает на разных IP на разных портах работает одновременно.

Вопрос в следующем как настроить радиус для обращений в разные БД с разными запросами?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Возьмите FreeRadius2 там и с базами без проблем (у меня один радиус к двум разным базам обращается, не говоря уже о разных виртуальных.), и виртуалка по принципу апача есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я как раз и пытаюсь настроить это все на FreeRADIUS Version 2.1.9.Виртуальные сервера я настроил.

У меня не получается с SQL разобраться с разными ДБ:( устал курить мануалы...:(

Не поделитесь примерчиком кофига?:) Был бы очень благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну я как раз и пытаюсь настроить это все на 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/ тоже удалить всё что сам туда не ложил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день еще раз.

Вроде все сделал как вы написали.

Все настройки своих 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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

#

# Which FreeRADIUS driver to use.

#

driver = "rlm_sql_${database}"

Единственная строка которая за это отвечает.

Проверьте ещё раз и внимательно ваш конфиг, сдаётся мне что вы лишнего там исправили.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда я спрашивал в рассылке по поводу нескольких обработчиков perl, то мне ответили что можно так:

perl module1 {

...

}

 

perl module2 {

...

}

 

И далее везде использовать имя.

Может быть с базами тоже прокатит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Большое спасибо все заработало по следующему примеру:

sql sql {

...

}

sql sql2 {

...

}

У меня теперь возник другой вопрос.

Хотелось бы в базе хранить пароли но не открытом виде а хотя бы в MD5, может кто то поделится опытом и рассказать как это осуществляется без головной боли?

Заране благодарен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.