<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>空想枫 &#187; mysql</title>
	<atom:link href="http://blog.it580.com/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.it580.com</link>
	<description>一个IT从业者的枫言枫语</description>
	<lastBuildDate>Tue, 09 Mar 2010 07:03:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>zh</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>FreeRadius+Mysql+EAP认证身份认证系统安装及配置</title>
		<link>http://blog.it580.com/2028</link>
		<comments>http://blog.it580.com/2028#comments</comments>
		<pubDate>Sat, 04 Jul 2009 07:12:28 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[手记]]></category>
		<category><![CDATA[eap]]></category>
		<category><![CDATA[freeradius]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.it580.com/2028</guid>
		<description><![CDATA[使用FreeRadius,Mysql及EAP认证可以搭建用于无线、有线、VPN链路等的统一身份认证系统。
环境:Ubuntu 8.04.2-Server
各软件版本:

Mysql:5.0.51a-3ubuntu5.4 
OpenSSL:0.9.8g-4ubuntu3.7 
FreeRadius:2.1.6 

 
安装
1.Mysql      
执行命令:
sudo apt-get install mysql-server mysql-common mysql-client

2.OpenSSL
执行命令:
sudo apt-get install openssl libssl0.9.8 libssl-dev ca-certificates

3.FreeRadius
执行命令:
sudo apt-get install&#160; debhelper&#160; libltdl3-dev libpam0g-dev libmysqlclient15-dev build-essential libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev snmp autotools-dev dpatch&#160; libperl-dev libtool dpkg-dev libpq-dev libsnmp-dev 
cd /usr/local/src/
sudo wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz
sudo tar -xzvf freeradius-server-2.1.6.tar.gz 
cd freeradius-server-2.1.6
sudo ./configure &#8211;prefix=/usr/local/freeradius
sudo make
sudo [...]]]></description>
			<content:encoded><![CDATA[<p>使用FreeRadius,Mysql及EAP认证可以搭建用于无线、有线、VPN链路等的统一身份认证系统。</p>
<p>环境:Ubuntu 8.04.2-Server</p>
<p>各软件版本:</p>
<ul>
<li>Mysql:5.0.51a-3ubuntu5.4 </li>
<li>OpenSSL:0.9.8g-4ubuntu3.7 </li>
<li>FreeRadius:2.1.6 </li>
</ul>
<p> <span id="more-2028"></span><br />
<h2><strong>安装</strong></h2>
<p><strong>1.Mysql      <br /></strong></p>
<p>执行命令:</p>
<blockquote><p>sudo apt-get install mysql-server mysql-common mysql-client</p>
</blockquote>
<p><strong>2.OpenSSL</strong></p>
<p>执行命令:</p>
<blockquote><p>sudo apt-get install openssl libssl0.9.8 libssl-dev ca-certificates</p>
</blockquote>
<p><strong>3.FreeRadius</strong></p>
<p>执行命令:</p>
<blockquote><p>sudo apt-get install&#160; debhelper&#160; libltdl3-dev libpam0g-dev libmysqlclient15-dev build-essential libgdbm-dev libldap2-dev libsasl2-dev libiodbc2-dev libkrb5-dev snmp autotools-dev dpatch&#160; libperl-dev libtool dpkg-dev libpq-dev libsnmp-dev </p>
<p>cd /usr/local/src/</p>
<p>sudo wget <a href="ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz">ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz</a></p>
<p>sudo tar -xzvf freeradius-server-2.1.6.tar.gz </p>
<p>cd freeradius-server-2.1.6</p>
<p>sudo ./configure &#8211;prefix=/usr/local/freeradius</p>
<p>sudo make</p>
<p>sudo make install</p>
</blockquote>
<h2><strong>配置</strong></h2>
<p><strong>1.Mysql</strong></p>
<p>执行命令：</p>
<blockquote><p>mysqladmin -u root -p create radius</p>
<p>mysql –u root –p radius &lt; /usr/local/freeradius/etc/raddb/sql/mysql/schema.sql</p>
</blockquote>
<p>配置权限:</p>
<blockquote><p>mysql –u root –p</p>
<p>grant all on radius.* to <a href="mailto:radius@localhost">radius@localhost</a> identified by &quot;it580.pass&quot;;</p>
<p>exit</p>
</blockquote>
<p><strong>2.FreeRadius</strong></p>
<p>执行命令:</p>
<blockquote><p>sudo nano /etc/ld.so.conf</p>
</blockquote>
<p>加入如下内容:</p>
<blockquote><p>include /usr/local/freeradius/lib</p>
</blockquote>
<p>执行命令:</p>
<blockquote><p>sudo ldconfig</p>
<p>adduser radiususer</p>
<p>sudo chown -R radiususer:radiususer /usr/local/freeradius/</p>
</blockquote>
<p>执行如下命令,看FreeRadius是否能够启动起来</p>
<blockquote><p>sudo /usr/local/freeradius/sbin/radiusd –X</p>
</blockquote>
<p>如果看到如下内容，说明FreeRadius启动正常。</p>
<blockquote><p>Listening on authentication address * port 1812      <br />Listening on accounting address * port 1813       <br />Listening on command file /usr/local/freeradius/var/run/radiusd/radiusd.sock       <br />Listening on proxy address * port 1814       <br />Ready to process requests.</p>
</blockquote>
<p><u>执行测试一(1.User文件方式认证)，确认radius user方式认证正常。</u></p>
<p><u></u></p>
<p>通过后开始加入数据库支持。</p>
<p>执行命令:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/sql.conf</p>
</blockquote>
<p>修改里面的用户名和密码:</p>
<blockquote><p>login = &quot;radius&quot;     <br />password = &quot;it580.pass&quot;</p>
</blockquote>
<p>执行命令,编辑radiusd.conf:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/radiusd.conf</p>
</blockquote>
<p>首先，将执行Freeradius的用户修改为:</p>
<blockquote><p>user = radiususer     <br />group = radiususer</p>
</blockquote>
<p>开启sql支持,将以下的内容前的#去除:</p>
<blockquote><p>$INCLUDE sql.conf</p>
</blockquote>
<p>执行命令,编辑default:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/sites-available/default</p>
</blockquote>
<p>将以下的内容前的#去除:</p>
<blockquote><p>sql</p>
</blockquote>
<p><u>执行测试二(2.SQL方式认证)，确认radius SQL认证正常。</u></p>
<p>&#160;</p>
<p>通过后开始启动EAP支持。</p>
<p>检查/usr/local/freeradius/etc/raddb/sites-available/default,eap前的#是否去除。可以使用如下命令:</p>
<blockquote><p>cat /usr/local/freeradius/etc/raddb/sites-available/default |grep -v &#8216;#&#8217;</p>
</blockquote>
<p><u>执行测试三(3.EAP-MD5方式认证)，确认radius EAP-MD5认证正常。</u></p>
<p><u></u></p>
<p>通过后开始启动EAP-PEAP。</p>
<p>执行命令:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/eap.conf</p>
</blockquote>
<p>修改md5为peap，显示如下，并保存：</p>
<blockquote><p>default_eap_type = peap</p>
</blockquote>
<p>检查证书是否存在，使用命令:</p>
<blockquote><p>ls /usr/local/freeradius/etc/raddb/certs/*.pem</p>
</blockquote>
<p>如果没有ca.pem文件，就执行命令,如果有的话，请不必执行该命令:</p>
<blockquote><p>/usr/local/freeradius/etc/raddb/certs/bootstrap</p>
</blockquote>
<p><u>执行测试四(4.EAP-PEAP方式认证)，确认radius EAP-PEAP认证正常。</u></p>
<p><u></u></p>
<p>通过后开始启动EAP-TTLS-MD5。</p>
<p>执行命令:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/eap.conf</p>
</blockquote>
<p>修改peap为ttls-md5，显示如下并保存：</p>
<blockquote><p>default_eap_type = ttls</p>
</blockquote>
<p><u>执行测试五(5.TTLS-MD5方式认证)，确认radius TTLS-MD5认证正常。</u></p>
<p><u></u></p>
<p>通过后开始启动TTLS-MSCHAPV2。</p>
<p>执行命令:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/eap.conf</p>
</blockquote>
<p>修改md5为mschapv2，显示如下并保存:</p>
<blockquote><p>default_eap_type = mschapv2</p>
</blockquote>
<p><u>执行测试六(6.TTLS-MSCHAPV2方式认证)，确认radius TTLS-MSCHAPV2认证正常。</u></p>
<p><u></u></p>
<p>全文完。</p>
<p>&#160;</p>
<p><strong></strong></p>
<p><strong></strong></p>
<h2><strong>测试</strong></h2>
<p><strong>1.User文件方式认证</strong></p>
<p>执行命令:</p>
<blockquote><p>nano /usr/local/freeradius/etc/raddb/users</p>
</blockquote>
<p>在该文件底部加入如下内容,增加一个用户radiususer,密码为it580.com:</p>
<blockquote><p>radiususer Cleartext-Password := &quot;it580.com&quot;</p>
</blockquote>
<p>执行命令,启动Freeradius的调试模式:</p>
<blockquote><p>/usr/local/freeradius/sbin/radiusd –X</p>
</blockquote>
<p>执行命令，测试新增的用户:</p>
<blockquote><p>/usr/local/freeradius/bin/radtest radiususer it580.com localhost 0 testing123</p>
</blockquote>
<p>如果输出如下内容，说明该用户验证成功:</p>
<blockquote><p>Sending Access-Request of id 180 to 127.0.0.1 port 1812     <br /> User-Name = &quot;radiususer&quot;      <br /> User-Password = &quot;it580.com&quot;      <br /> NAS-IP-Address = 127.0.1.1      <br /> NAS-Port = 0      <br /><strong>rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=180, length=20</strong></p>
</blockquote>
<p><strong>2.SQL 方式认证</strong></p>
<p>执行命令:</p>
<blockquote><p>mysql –u radius –p radius</p>
<p>insert into radcheck(username,attribute,value,op) values(&#8217;sqluser&#8217;,'Cleartext-Password&#8217;,'it580.com&#8217;,':=&#8217;);</p>
</blockquote>
<p>执行命令,启动Freeradius的调试模式:</p>
<blockquote><p>/usr/local/freeradius/sbin/radiusd –X</p>
</blockquote>
<p>执行命令，测试新增的用户:</p>
<blockquote><p>/usr/local/freeradius/bin/radtest sqluser it580.com localhost 0 testing123</p>
</blockquote>
<p>如果输出如下内容，说明该用户验证成功:</p>
<blockquote><p>Sending Access-Request of id 113 to 127.0.0.1 port 1812     <br /> User-Name = &quot;sqluser&quot;      <br /> User-Password = &quot;it580.com&quot;      <br /> NAS-IP-Address = 127.0.1.1      <br /> NAS-Port = 0      <br /><strong>rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=113, length=20</strong></p>
</blockquote>
<p>&#160;</p>
<p><strong>3.EAP-MD5方式认证</strong></p>
<p>执行命令,启动Freeradius的调试模式:</p>
<blockquote><p>/usr/local/freeradius/sbin/radiusd –X</p>
</blockquote>
<p>执行命令，测试user方式的EAP-MD5:</p>
<blockquote><p>( echo &quot;User-Name = \&quot;radiususer\&quot;&quot;;&#160;&#160; echo &quot;Cleartext-Password = \&quot;it580.com\&quot;&quot;;&#160;&#160; echo &quot;EAP-Code = Response&quot;;&#160;&#160; echo &quot;EAP-Id = 210&quot;;&#160;&#160; echo &quot;EAP-Type-Identity = \&quot;dial\&quot;&quot;;&#160;&#160; echo &quot;Message-Authenticator = 0&#215;00&quot;; ) | /usr/local/freeradius/bin/radeapclient -x 127.0.0.1 auth testing123</p>
</blockquote>
<p>执行命令，测试SQL方式的EAP-MD5:</p>
<blockquote><p>( echo &quot;User-Name = \&quot;sqluser\&quot;&quot;;&#160;&#160; echo &quot;Cleartext-Password = \&quot;it580.com\&quot;&quot;;&#160;&#160; echo &quot;EAP-Code = Response&quot;;&#160;&#160; echo &quot;EAP-Id = 210&quot;;&#160;&#160; echo &quot;EAP-Type-Identity = \&quot;sqluser\&quot;&quot;;&#160;&#160; echo &quot;Message-Authenticator = 0&#215;00&quot;; ) | /usr/local/freeradius/bin/radeapclient -x 127.0.0.1 auth testing123</p>
</blockquote>
<p>如果输出如下内容，说明验证成功:</p>
<blockquote><p> EAP-Id = 211     <br /><strong> EAP-Code = Success</strong></p>
</blockquote>
<p><strong>4.EAP-PEAP方式认证</strong></p>
<p>先安装测试工具,eapol_test:</p>
<blockquote><p>cd /usr/local/src/</p>
<p>sudo wget <a href="http://hostap.epitest.fi/releases/wpa_supplicant-0.6.9.tar.gz">http://hostap.epitest.fi/releases/wpa_supplicant-0.6.9.tar.gz</a></p>
<p>sudo tar –xzvf wpa_supplicant-0.6.9.tar.gz</p>
<p>cd wpa_supplicant-0.6.9/wpa_supplicant/</p>
<p>cp defconfig .config</p>
<p>make eapol_test</p>
<p>cp eapol_test /usr/local/freeradius/bin/</p>
</blockquote>
<p>建立测试配置文件peap.test：</p>
<blockquote><p>nano ~/peap.test</p>
</blockquote>
<p>将以下内容贴入,并保存:</p>
<blockquote><p>network={     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; eap=PEAP      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; eapol_flags=0      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; key_mgmt=IEEE8021X      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; identity=&quot;sqluser&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; password=&quot;it580.com&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ca_cert=&quot;/usr/local/freeradius/etc/raddb/certs/ca.pem&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; phase2=&quot;auth=MSCHAPV2&quot;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; anonymous_identity=&quot;anonymous&quot;      <br />}</p>
</blockquote>
<p>执行以下命令测试:</p>
<blockquote><p>cd ~</p>
<p>/usr/local/freeradius/bin/eapol_test -c peap.test -s testing123</p>
</blockquote>
<p>如果输出如下内容，说明验证成功:</p>
<blockquote><p>eapol_sm_cb: success=1     <br />EAPOL: Successfully fetched key (len=32)      <br />PMK from EAPOL &#8211; hexdump(len=32): d9 2f f7 04 41 7c 74 66 5b b3 e7 7c ea 77 21 72 04 94 cd 7f e1 c9 a0 6b 08 34 b1 b2 25 55 6f 53      <br />EAP: deinitialize previously used EAP method (25, PEAP) at EAP deinit      <br />ENGINE: engine deinit      <br />MPPE keys OK: 1&#160; mismatch: 0      <br /><strong>SUCCESS</strong></p>
</blockquote>
<p><strong>5.TTLS-MD5方式认证</strong></p>
<p>执行命令:</p>
<blockquote><p>nano ~/ttlsmd5.test</p>
</blockquote>
<p>加入如下内容，并保存:</p>
<blockquote><p>network={     <br />ssid=&quot;test&quot;      <br />eap=TTLS      <br />key_mgmt=WPA-EAP      <br />identity=&quot;sqluser&quot;      <br />password=&quot;it580.com&quot;      <br />anonymous_identity=&quot;anonymous&quot;      <br />ca_cert=&quot;/usr/local/freeradius/etc/raddb/certs/ca.pem&quot;      <br />phase2=&quot;auth=MD5&quot;      <br />}</p>
</blockquote>
<p>执行测试命令:</p>
<blockquote><p>/usr/local/freeradius/bin/eapol_test -c ttlsmd5.test -s testing123</p>
</blockquote>
<p>如果输出如下内容，说明验证成功:</p>
<blockquote><p>eapol_sm_cb: success=1     <br />EAPOL: Successfully fetched key (len=32)      <br />PMK from EAPOL &#8211; hexdump(len=32): 91 b2 66 fb da ff bd 7d 95 91 2a c5 82 a8 86 bb 18 14 ac 9f 30 e4 7e 21 9f 28 b8 00 35 62 ff f2      <br />EAP: deinitialize previously used EAP method (21, TTLS) at EAP deinit      <br />ENGINE: engine deinit      <br />MPPE keys OK: 1&#160; mismatch: 0      <br /><strong>SUCCESS</strong></p>
</blockquote>
<p><strong>6.TTLS-MSCHAPV2方式认证</strong></p>
<p>执行命令:</p>
<blockquote><p>nano ~/ttlsmschapv2.test</p>
</blockquote>
<p>加入如下内容，并保存:</p>
<blockquote><p>network={     <br />ssid=&quot;test&quot;      <br />eap=TTLS      <br />key_mgmt=WPA-EAP      <br />identity=&quot;sqluser&quot;      <br />password=&quot;it580.com&quot;      <br />anonymous_identity=&quot;anonymous&quot;      <br />ca_cert=&quot;/usr/local/freeradius/etc/raddb/certs/ca.pem&quot;      <br />phase2=&quot;auth=MSCHAPV2&quot;      <br />}</p>
</blockquote>
<p>执行测试命令:</p>
<blockquote><p>/usr/local/freeradius/bin/eapol_test -c ~/ttlsmschapv2.test -s testing123</p>
</blockquote>
<p>如果输出如下内容，说明验证成功:</p>
<blockquote><p>eapol_sm_cb: success=1     <br />EAPOL: Successfully fetched key (len=32)      <br />PMK from EAPOL &#8211; hexdump(len=32): 16 6d 2a 43 84 f9 9c cd 56 91 ee e5 d4 78 28 b1 c1 8b 09 e0 f9 4b 29 0f 0c c4 00 a8 f2 96 3b 80      <br />EAP: deinitialize previously used EAP method (21, TTLS) at EAP deinit      <br />ENGINE: engine deinit      <br />MPPE keys OK: 1&#160; mismatch: 0      <br /><strong>SUCCESS</strong></p>
</blockquote>
<img src="http://blog.it580.com/?ak_action=api_record_view&id=2028&type=feed" alt="" /><hr />
<p><small>© David for <a href="http://blog.it580.com">空想枫</a>, 2009. |
<a href="http://blog.it580.com/2028">Permalink</a> |
<a href="http://blog.it580.com/2028#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://blog.it580.com/2028&title=FreeRadius+Mysql+EAP认证身份认证系统安装及配置">del.icio.us</a>
<br/>
</small></p>
	Tags: <a href="http://blog.it580.com/tag/eap" title="eap" rel="tag nofollow">eap</a>, <a href="http://blog.it580.com/tag/freeradius" title="freeradius" rel="tag nofollow">freeradius</a>, <a href="http://blog.it580.com/tag/linux" title="linux" rel="tag nofollow">linux</a>, <a href="http://blog.it580.com/tag/mysql" title="mysql" rel="tag nofollow">mysql</a>, <a href="http://blog.it580.com/tag/ubuntu" title="ubuntu" rel="tag nofollow">ubuntu</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.it580.com/2063" title="如何在Ubuntu下安装VMware Tools (2009 10-11)">如何在Ubuntu下安装VMware Tools</a> (0)</li>
	<li><a href="http://blog.it580.com/1909" title="debian 5 系统截图 (2009 2-17)">debian 5 系统截图</a> (0)</li>
	<li><a href="http://blog.it580.com/1843" title="openSUSE 11.1安装测试第一印象 (2008 12-20)">openSUSE 11.1安装测试第一印象</a> (0)</li>
	<li><a href="http://blog.it580.com/1830" title="openSUSE 11.1正式发布 (2008 12-19)">openSUSE 11.1正式发布</a> (0)</li>
	<li><a href="http://blog.it580.com/1823" title="openSUSE 11.1即将发布 (2008 12-16)">openSUSE 11.1即将发布</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.it580.com/2028/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
