<?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>BlueJacket With Silent &#187; FreeRadius</title>
	<atom:link href="http://phpsrv.nutn.edu.tw/~silent/archives/tag/freeradius/feed" rel="self" type="application/rss+xml" />
	<link>http://phpsrv.nutn.edu.tw/~silent</link>
	<description>資訊技術手札</description>
	<lastBuildDate>Wed, 21 Sep 2011 09:35:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://phpsrv.nutn.edu.tw/~silent/?pushpress=hub'/>
	<div id='fb-root'></div>
					<script type='text/javascript'>
						window.fbAsyncInit = function()
						{
							FB.init({appId: null, status: true, cookie: true, xfbml: true});
						};
						(function()
						{
							var e = document.createElement('script'); e.async = true;
							e.src = document.location.protocol + '//connect.facebook.net/zh_TW/all.js';
							document.getElementById('fb-root').appendChild(e);
						}());
					</script>	
						<item>
		<title>FreeRadius pop3認證程式(加入pop3 ssl認證判斷)</title>
		<link>http://phpsrv.nutn.edu.tw/~silent/archives/126</link>
		<comments>http://phpsrv.nutn.edu.tw/~silent/archives/126#comments</comments>
		<pubDate>Tue, 09 Mar 2010 09:07:31 +0000</pubDate>
		<dc:creator>水手</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[FreeRadius]]></category>
		<category><![CDATA[pop3 auth]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://phpsrv.nutn.edu.tw/~silent/?p=126</guid>
		<description><![CDATA[2010-10-07 這次把ssl判斷也加上去囉&#8230; 這樣就可以對只能用pop3s協定的主機做認證了 使用前&#8230;perl必須先安裝兩個模組 日前有廠商問我有沒有辦法寫一個pop3認證程式給radius用 我是記得之前有人有改過用pam去做認證，但是一次只能對一台pop3做認證&#8230; 雖然有人有改出來&#8230;但是卻沒有提供source 而我以前的師父是直接改pam的source去達成&#8230;. http://cym6112.blogspot.com/2008/01/freeradius-pampop3-mail-server-pop3.html 那我的作法&#8230;因為我比較懶惰..我想要能夠持續用apt或者是yum去更新server的套件&#8230; 所以是用外掛的方式&#8230;寫一隻script去完成這項工作 這隻程式就看你要丟去哪裡囉&#8230; 記得要讓freeradius的使用帳號有權限去執行它.. 程式裡面的 login success 看你要輸出什麼參數給radius做接收&#8230; fail的話就不要輸出任何訊息 接下來要如何使用這隻script呢？ 我們要先編輯users 下面加入 加完之後&#8230;記得要去proxy.conf裡面去加入你需要的認證主機的domain哦]]></description>
			<content:encoded><![CDATA[<p>2010-10-07<br />
這次把ssl判斷也加上去囉&#8230;<br />
這樣就可以對只能用pop3s協定的主機做認證了<br />
使用前&#8230;perl必須先安裝兩個模組</p>
<pre class="brush: bash; title: ; notranslate">
#cpan

cpan[1]&gt;install Mail::POP3Client
cpan[2]&gt;install IO::Socket::SSL
</pre>
<hr /></p>
<p>日前有廠商問我有沒有辦法寫一個pop3認證程式給radius用</p>
<p>我是記得之前有人有改過用pam去做認證，但是一次只能對一台pop3做認證&#8230;<br />
雖然有人有改出來&#8230;但是卻沒有提供source</p>
<p>而我以前的師父是直接改pam的source去達成&#8230;.<br />
<a href="http://cym6112.blogspot.com/2008/01/freeradius-pampop3-mail-server-pop3.html" target="_blank">http://cym6112.blogspot.com/2008/01/freeradius-pampop3-mail-server-pop3.html</a></p>
<p>那我的作法&#8230;因為我比較懶惰..我想要能夠持續用apt或者是yum去更新server的套件&#8230;<br />
所以是用外掛的方式&#8230;寫一隻script去完成這項工作<br />
<span id="more-126"></span></p>
<pre class="brush: perl; title: ; notranslate">
#!/usr/bin/perl
# Example:
# pop3.pl 你的認證主機 username password 是否使用ssl(1 or 0)

use Mail::POP3Client;

my $hostname=$ARGV[0];
my $username=$ARGV[1];
my $password=$ARGV[2];
my $ssl=$ARGV[3];

$pop = Mail::POP3Client-&gt;new(
        USER =&gt; $username,
        PASSWORD =&gt; $password,
        HOST =&gt; $hostname,
        USESSL =&gt; $ssl,
);

if($pop-&gt;Connect()){
  # login success
  # ex... &quot;Aruba-User-Role = guest&quot;;
  print &quot;&quot;;
}else{
  # login fail
  exit 4;
}
$pop-&gt;Close;
</pre>
<p>這隻程式就看你要丟去哪裡囉&#8230;<br />
記得要讓freeradius的使用帳號有權限去執行它..</p>
<p>程式裡面的 login success<br />
看你要輸出什麼參數給radius做接收&#8230;<br />
fail的話就不要輸出任何訊息</p>
<p>接下來要如何使用這隻script呢？<br />
我們要先編輯users<br />
下面加入</p>
<pre class="brush: bash; title: ; notranslate">
DEFAULT Auth-Type = Accept, User-Name !~ &quot;@&quot;
        Exec-Program-Wait = &quot;/usr/local/bin/pop3.pl 你的認證主機 %u %{Password} 0&quot;,
        Fall-Through = 1,

DEFAULT Auth-Type = Accept, User-Name =~ &quot;@你的認證主機domain&quot;
        Exec-Program-Wait = &quot;/usr/local/bin/pop3.pl 你的認證主機 %u %{Password} 1&quot;,
        Fall-Through = 1,
</pre>
<p>加完之後&#8230;記得要去proxy.conf裡面去加入你需要的認證主機的domain哦</p>
<div class='wpfblike' style='height: 40px;'><fb:like href='http://phpsrv.nutn.edu.tw/~silent/archives/126' layout='button_count' show_faces='true' width='400' action='like' colorscheme='light' send='true' /></div>]]></content:encoded>
			<wfw:commentRss>http://phpsrv.nutn.edu.tw/~silent/archives/126/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

