Freeradius + mssql   more help project  :- http://linux.tulipit.com<br><br>RPM installation <br><br>[root@tariq ha.d]# rpm -qa | grep freetds<br>freetds-0.62.1-1<br>freetds-devel-0.62.1-1<br>freetds-unixodbc-0.62.1-1<br><br><br>[root@tariq ha.d]# rpm -qa | grep unixODBC<br>freeradius-unixODBC-1.0.1-2.RHEL4<br>unixODBC-kde-2.2.9-1<br>unixODBC-devel-2.2.9-1<br>unixODBC-2.2.9-1<br><br><br>Software:<br>Using FreeRADIUS with MSSQL requires three components:<br><br>    * FreeRADIUS - the radius server software<br>    * FreeTDS - this is a set of libraries that know how to "talk" to a MSSQL server.<br>    * unixODBC - this is a conduit between FreeRADIUS and FreeTDS.<br><br>At one time, I think FreeRADIUS supported FreeTDS directly, but for some reason the FreeRADIUS folks removed that capability in recent versions. So we have to use unixODBC now. No biggie really. It's still pretty simple.<br><br>I used the following
 versions on my box:<br><br>    * FreeRADIUS 1.1.0<br>    * FreeTDS 0.63<br>    * unixODBC 2.2.11<br><br>If your distro has these as RPMs, debs, etc, you might be able to get it going with what the distro provides. If so, you can skip the install instructions and focus on the configuration (but do be careful as your files won't likely be in the same place that my files are). However, since I may want to use eDirectory later, and since there is a special configure switch for FreeRADIUS to turn on eDirectory support, I'm starting from scratch with all of them.<br><br>Compiling and installing:<br><br>untar freeradius-1.1.4.tar.gz<br>and compilation option is <br><br> ./configure --localstatedir=/var --sysconfdir=/etc<br>  make<br>  make install<br><br><br><br>The general order to compile these three components is:<br><br>   1. unixODBC<br>   2. FreeTDS<br>   3. FreeRADIUS<br><br><br>Part
 I - compiling/installing unixODBC and FreeTDS<br>unixODBC:<br>pretty straightforward. Just do a standard<br><br>    ./configure<br>    make<br>    make install <br><br>However, if your Linux box doesn't have X Windows (mine doesn't), do a<br><br>    ./configure --enable-gui=no <br><br>so that it won't try to compile any GUI components.<br><br>The only components of unixODBC that you have to deal with are the configuration file odbc.ini and the isql "testing" program. The install routine puts odbc.ini in /usr/local/etc, and puts isql in /usr/local/bin/ . You can't really tweak the ini file until after you've installed FreeTDS, so we'll skip that part for now.<br><br>What you need from unixODBC: you need the odbc.ini file in /usr/local/etc and the isql program in /usr/local/bin.<br><br>FreeTDS:<br>again, pretty straightforward.<br><br>    ./configure<br>    make<br>   
 make install <br><br>I didn't need any options for ./configure. I think at one time you had to tell it where unixODBC was, but versions since ~0.62 can find it by themselves (which is why you have to compile/install unixODBC first... )<br><br>what you need from FreeTDS: the freetds.conf file in /usr/local/etc, the libtdsodbc.so file in /usr/local/lib, and the tsql testing program in /usr/local/bin<br><br>After you've got unixODBC and freeTDS installed, you almost ready to start configuring files and testing your database connectivity.<br><br>Initial Test of FreeTDS:<br><br>Before you jump into the configuring part, do a quick test to make sure your box can actually connect to your SQL server and that FreeTDS compiled and installed cleanly. (Note that at this point, we aren't really using the unixODBC stuff yet). Use the tsql program to do this. My SQL server name is blackboard, and I'll use a SQL username of "tester" and a password of "letmein" to get
 in.<br><br>    tsql -H blackboard -p 1433 -U tester -P letmein <br><br>If it works, you should see this:<br><br>    locale is "en_US"<br>    locale charset is "ISO-8859-1"<br>    1> <br><br>If you see that, you know that you can at least talk to your SQL server. That is a Good Thing (tm). If the test fails, try using the IP instead of the hostname (or edit your resolv.conf/update your DNS records/etc). If it still fails, make sure you've, umm, you know, really GOT a SQL user on your database server named "tester". If it still still fails, you've got mondo problems that I won't get into here...<br><br>BTW - type "quit" to end the connection to the sql server. <br><br><br>Configuration file example:-<br><br>_______________/etc/odbc.ini____________________<br><br>[root@tariq etc]# cat odbc.ini<br>[ODBC Data Sources]<br>FILEMANAGER = Radius on Blackboard<br><br>[FILEMANAGER]<br>Driver =
 /usr/lib/libtdsodbc.so<br>Description = Radius on Blackboard<br>Trace = No<br>Servername = FILEMANAGER<br>Database = radius<br><br>[Default]<br>Driver = /usr/lib/libtdsodbc.so<br><br><br>_______________/etc/freetds.conf________________<br><br>[root@tariq etc]# cat freetds.conf<br>[global]<br>        tds version = 8.0<br>        initial block size = 512<br>        text size = 64512<br><br>[FILEMANAGER]<br>        host = filemanager<br>        port = 1433<br>        tds version = 8.0<br>        dump file = /tmp/freetds.log<br>        dump file append = yes<br><br>______________/etc/odbcinst.ini___________________<br><br>[root@tariq etc]# cat
 odbcinst.ini<br>[ODBC]<br>Trace                   = Yes<br>TraceFile               = /tmp/sql.log<br>ForceTrace              = Yes<br>Pooling                 = No<br>UsageCount              = 2<br><br>[TDS]<br>Description     = FreeTDS<br>Driver          = /usr/lib/libtdsodbc.so<br>#Setup          = /usr/lib/libtdsS.so.1<br>#FileUsage              = 2<br>#UsageCount             =
 2<br><br>_______________/etc/hosts__________________________<br><br>[root@tariq etc]# cat /etc/hosts<br># Do not remove the following line, or various programs<br># that require network functionality will fail.<br>127.0.0.1               localhost.localdomain localhost<br>10.0.0.90               FILEMANAGER # windows machin name c:\>hostname<br><br><br>check your connectivity from mssql<br><br>Run this command on your command prompt<br><br>[root@tariq ha.d]# tsql -S FILEMANAGER -U sa -P test<br>locale is "en_US.UTF-8"<br>locale charset is "UTF-8"<br>Msg 5703, Level 0, State 1, Server FILEMANAGER, Line 0<br>Changed language setting to us_english.<br>1><br><br><br><br>There are several other "sample" entries in the file. I deleted all of them except the mypool entry. You can probably nuke it too, if you want.<br>Actually, if you're
 only going to be doing simple RADIUS authorizations, you can rem out the tds version line. It will default to 4.2, which seemed to work OK for me when I tried it. But for completeness, I left it in.<br><br>At this point, you should be able to test again with tsql. But this time, do it like this:<br><br>    tsql -S blackboardhost -U tester -P letmein <br><br>You should get the same SQL prompt as before<br><br>    locale is "en_US"<br>    locale charset is "ISO-8859-1"<br>    1> <br><br>The -S option tells tsql to use the entry "blackboardhost" in the freetds.conf file. If that works, then your FreeTDS setup is complete. <br><br><br><br><br><br>Troubleshooting:<br><br>Uh-oh. It didn't work. Lucky you, there's a verbose switch (-v) to isql. It's very, very handy in debugging problems.<br><br>As long as the "tsql -S" test works, you can rest assured that your isql problem is entirely related to your lack of typing
 skills when transcribing the odbc.ini file or when typing in the isql command. :)<br><br>For instance, here's what you get when you misspell the username or password on the isql command line:<br><br>    [root@localhost /etc]# isql -v blackboardDSN testeeeer letmein<br>    [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source<br>    [28000][unixODBC][FreeTDS][SQL Server]Login incorrect.<br>    [][unixODBC][FreeTDS][SQL Server]Login failed for user 'testeeeer'.<br>    [ISQL]ERROR: Could not SQLConnect<br><br>Here's what happens when you misspell the DSN name on the command line:<br><br>    [root@localhost etc]# isql -v blackbooooardDSN tester letmein<br>    [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source<br>    [ISQL]ERROR: Could not SQLConnect<br><br>Here's what you get when odbc.ini is pointing to the wrong
 directory for libtdsodbc.so, or when the library name is misspelled.<br>(I changed it to point to the older location of /usr/local/lib/freetds/libtdsodbc.ini for this example)<br><br>    [root@localhost etc]# isql -v blackboardDSN tester letmein<br>    [01000][unixODBC][Driver Manager]Can't open lib '/usr/local/lib/freetds/libtdsodbc.so' :<br>    /usr/local/lib/freetds/libtdsodbc.so: cannot open shared object file: No such file or directory<br>    [ISQL]ERROR: Could not SQLConnect<br><br>Here's what happens when you misspell the ServerName in odbc.ini:<br>(I changed it to blackboooooardhost for this example)<br><br>    [root@localhost etc]# isql -v blackboardDSN tester letmein<br>    [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source<br>    [ISQL]ERROR: Could not SQLConnect<br><br>Here's what happens when you misspell the database name in
 odbc.ini:<br>(radiuuus in this example)<br><br>    [root@localhost etc]# isql -v blackboardDSN tester letmein<br>    [S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source<br>    [28000][unixODBC][FreeTDS][SQL Server]Login incorrect.<br>    [][unixODBC][FreeTDS][SQL Server]Login failed for user 'tester'.<br>    [][unixODBC][FreeTDS][SQL Server]Cannot open database requested in login 'radiuuus'. Login fails.<br>    [ISQL]ERROR: Could not SQLConnect<br><br>Like I said, so long as the "tsql -S" test works, then the only place you have to look is in odbc.ini. Using unixODBC really IS that simple at this point of the process.<br><br><br><br>Configuring the mssql.conf file:<br><br>While not too hard to configure, the mssql.conf file is really ugly. Lucky for us, we only have to make a few changes to it, and those are all at the "top" of the file. Just remember to check your
 double-quote marks.<br><br>1. Under Database type, make sure the driver line says<br><br>    driver = "rlm_sql_unixodbc" <br><br>it already should say that, but be smart and check it.<br><br>2. Under Connect Info, set the "server" entry to be the DSN name you gave the connection in odbc.ini. Remember that far back? Yes, it was long ago. Also, the "login" and "password" are for the SQL user on the database server. I told you those were coming.<br><br>    # Connect info<br>    server = "blackboardDSN"<br>    login = "tester"<br>    password = "letmein"<br><br>3. The radius_db entry (under Database table configuration) should say "radius". If it doesn't, I can't help you anymore, because that means the freeRADIUS guys have changed something big... ;)<br><br>    # Database table configuration<br>    radius_db = "radius" <br><br>4.The last thing you'll want to change
 is<br><br>    # Print all SQL statements when in debug mode (-x)<br>    sqltrace = no<br>    sqltracefile = ${logdir}/sqltrace.sql<br><br>you really should set sqltrace to "yes" while you're debugging this. it will be a great help, as it will print out all of the sql stuff when you run "radiusd -X". You can reset it to "no" after you've got everything working.<br><br>That's it for mssql.conf, you don't have to touch any of the other stuff in the file.<br><br>At this point, we have no way to test that mssql.conf is doing what we want, since radiusd doesn't know to use sql yet. That's why it's so handy to turn sqltrace on right now, because you're really going to need it later...<br><br>Finally, we get to the last little bit of all this. Tying it all together in FreeRADIUS. Please wake up if you've fallen asleep. My great work, umm, sorry, YOUR great work in all of this is soon to pay off and you'll want to be awake when it does.
 <br><br><br><br><br><br><br><br><br><b><i>elmalhi abdelghani <eabdelghani@yahoo.fr></i></b> wrote:<blockquote class="replbq" style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px;"> hello,<br>i want testing my Freeradius with mssql.<br>so by starting radiusd -X i have this error:<br><br>rlm_sql (sql): Driver rlm_sql_unixodbc (module rlm_sql_unixodbc) loaded and linked<br>rlm_sql (sql): Attempting to connect to sa@192.168.100.206:/radius<br>rlm_sql (sql): starting 0<br>rlm_sql (sql): Attempting to connect rlm_sql_unixodbc #0<br>rlm_sql_unixodbc: SQL down 08S01 [unixODBC][FreeTDS][SQL Server]Server is unavailable or does not exist. <br>rlm_sql_unixodbc: Connection failed <br>rlm_sql (sql): Failed to connect DB handle #0<br>rlm_sql (sql): starting 1<br>rlm_sql (sql): starting 2<br>rlm_sql (sql): starting 3<br>rlm_sql (sql): starting 4<br>rlm_sql (sql): Failed to connect to any SQL server.<br><br>tipps or help please ?<br>regards.<br><div>  
                </div><hr size="1">  Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !  Profitez des connaissances, des opinions et des expériences des internautes sur <a href="http://fr.rd.yahoo.com/evt=42054/*http://fr.answers.yahoo.com">Yahoo! Questions/Réponses</a>.- <br>List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html</blockquote><br><BR><BR>$ cat ~/satish/url.txt<br><br>System administrator ( Data Center )<br><br>please visit this site<br><br>http://linux.tulipit.com   <p>



      <hr size=1></hr> 
SHOUT IT OUT! Tell everyone, from anywhere, that you're online on <a href="http://us.rd.yahoo.com/mail/in/ymessenger/*http://messenger.yahoo.com/addpresence.php">Yahoo! Messenger</a>