Jump to content

Recommended Posts

Posted

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

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

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

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

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

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

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

 

 

Posted

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

Posted

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

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

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

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

Posted

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

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

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

 

 

Posted
#

# Which FreeRADIUS driver to use.

#

driver = "rlm_sql_${database}"

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

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

Posted

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

perl module1 {

...

}

 

perl module2 {

...

}

 

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

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

Posted

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

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.