2008/07/23

在 mysql 建立 radius 所需的資料庫

在完成 freeradius 跟 mysql 的安裝之後,當然要建立給 radius 使用的資料庫。使用 freeradius 裡面的範例結構來建立就行了。檔案會在 /usr/src/freeradius/freeradius-1.1.3/doc/examples/mysql.sql

1. 建立 radius 資料庫
debianj:/# mysql -uroot -p**********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.0.32-Debian_7etch5-log Debian etch distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database radius;
Query OK, 1 row affected (0.24 sec)

mysql> exit
Bye

2. 建立範例提供的資料表 (請注意那個只有一行)
debianj:/# mysql -uroot -p********** radius < /usr/src/freeradius/freeradius-1.1.3/doc/examples/mysql.sql
基本上他會建立
nas (對應 client.conf 設定 nas 的相關資料)
radacct
radcheck (對應 users 的使用者資料)
radgroupcheck
radgroupreply (對應 users 的群組資料)
radpostauth
radreply
usergroup
這八個資料表,至於各個資料表的功能,先不管,以後再看吧!

3. 建立群組資料
insert into radgroupreply (groupname,attribute,op,value) values ('taichung','Auth-Type',':=','Local');
insert into radgroupreply (groupname,attribute,op,value) values ('taichung','Service-Type',':=','Framed-User');
insert into radgroupreply (groupname,attribute,op,value) values ('taichung','Framed-IP-Address',':=','255.255.255.254');
insert into radgroupreply (groupname,attribute,op,value) values ('taichung','Framed-IP-Netmask',':=','255.255.255.0');

4. 建立使用者
insert into radcheck (username,attribute,op,value) values ('aimwang','User-Password',':=','superman');

5. 幫使用者跟群組建立關係
insert into usergroup (username,groupname) values ('aimwang','taichung');

6. 建立 nas 資料
insert into nas (nasname, shortname, secret) values ('192.168.10.1/24', 'RubytechTC', 'rubytech');

7. 把 radiusd.conf 的
authorize {sql}
accounting {sql}
session {sql}
post-auth {sql}
# 解開

8. 修改 sql.conf 裡面的 login 資訊
# Connect info
server = "localhost"
login = "radius"
password = "**************"

#
# Set to 'yes' to read radius clients from the database ('nas' table)
readclients = yes
server 如果在別台,請改掉
login 帳號,建議就增加一個給 radius 用吧
password 當然就是密碼啦
readclients 如果要從在資料庫管理 clients 的話,把他前面的 # 拿掉

2008/07/09

Debian 安裝 MySQL

為了提供 AAA 環境暖身,準備使用 freeradius + MySQL 來完成,所以要先安裝 MySQL。
沒有比安裝 MySQL 更簡單的了。

#apt-get install mysql-server


目前的版本為 5.0.32-7etch5

安裝完成之後,第一個工作自然是更改至高無上的 root 的密碼(MySQL 的不是系統的)。其中 ooxxoo 就是指定的新密碼

#mysqladmin -h localhost -u root password ooxxoo


使用文字模式管理 MySQL 實在很惱人,安裝 mysql gui tools

第一次使用,恐怕無法從遠端登錄成功。要更改 debian 的 ssh 設定,修改 /etc/ssh/ssh_config 新增下面內容

Host remotesql
Hostname *
User root
LocalForward *:13306 localhost:3306


然後執行

ssh -f -N remotesql


詢問密碼的時候,就輸入系統的 root 密碼
這段我也還有疑問,因為我不是設定成 root,但是 mysqladmin 卻可以用 root 登錄。先不管他,目前能用就好。GUI tools 的 Port 要記得改成 13306。

2008/06/12

Debain 建置支援 PEAP 的 Radius 認證環境

Debian Stable 的 Freeradius 預設不支援 PEAP,害我繞了一大圈,寫下來當筆記。如果已經安裝 Freeradius,請務必先完整移除。按順序操作應該都不會出錯。

1. 建立原始碼儲存資料夾

#mkdir /usr/src/freeradius
#cd /usr/src/freeradius


2. 安裝必要條件及下載原始碼

#apt-get update
#apt-get build-dep freeradius
#apt-get install libssl-dev fakeroot
#apt-get source freeradius


3. 編輯 /usr/src/freeradius/freeradius-1.1.3/debian/control 把 libssl-dev 加入相依並從牴觸移除。也就是加入第二行(Build-Depends)最後面,從第三行(Build-Conflicts)拿掉。

Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev
Build-Conflicts:


4. 同樣編輯 /usr/src/freeradius/freeradius-1.1.3/debian/control 在檔案最後面加入 EAP 模組,這裡要特別注意各模組的 Description 下面幾行最前面都要空一格,才會被視為 Description 的一部分,否則會出錯。

Package: freeradius-eaptls
Architecture: any
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
Description: eap-tls module for FreeRADIUS server
Debian will not provide a binary version of the rlm_eap_tls.so library. This
module is required if you want to use EAP/TLS authentication, commonly used
for WiFi access points.

Package: freeradius-eappeap
Architecture: any
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends}
Description: eap-peap module for FreeRADIUS server
Debian will not provide a binary version of the rlm_eap_peap.so library. This
module is required if you want to use EAP/PEAP authentication, commonly used
for WiFi access points.


5. 編輯 /usr/src/freeradius/freeradius-1.1.3/debian/rules 搜尋 "buildssl=" ,把 tls 和 peap 的 without 拿掉,如果有其他需求,就再拿到需要的 without 吧。再搜尋 "moduleslist=" 加入 eap_peap eap_tls。變成

buildssl=--without-rlm_otp --without-rlm_sql_postgresql --without-snmp
modulelist=krb5 ldap sql_mysql sql_iodbc eap_peap eap_tls


6. 建立檔案 /usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.install 內容為

usr/lib/freeradius/rlm_eap_tls*.so


7. 建立檔案 /usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.install 內容為

usr/lib/freeradius/rlm_eap_peap*.so


8. 建立檔案 /usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.postinst 內容為

#! /bin/sh

set -e

case "$1" in
configure)
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d freeradius restart
else
/etc/init.d/freeradius restart
fi
;;
abort-upgrade)
;;
abort-remove)
;;
abort-deconfigure)
;;
esac


9. 建立檔案 /usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.postinst 內容為

#! /bin/sh

set -e

case "$1" in
configure)
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d freeradius reload
else
/etc/init.d/freeradius reload
fi
;;
abort-upgrade)
;;
abort-remove)
;;
abort-deconfigure)
;;
esac


10. 編譯

#cd /usr/src/freeradius/freeradius-1.1.3/
#dpkg-buildpackage -rfakeroot -uc -us

完成後應該可以在 /usr/src/freradius 看到一堆 freeradius-*.deb

11. 逐一安裝需要的套件

#dpkg -i freeradius_1.1.3-3_i386.deb
#dpkg -i freeradius-eaptls_1.1.3-3_i386.deb
#dpkg -i freeradius-eappeap_1.1.3-3_i386.deb

#dpkg -i freeradius-dialupadmin_1.1.3-3_all.deb
#dpkg -i freeradius-iodbc_1.1.3-3_i386.deb
#dpkg -i freeradius-krb5_1.1.3-3_i386.deb
#dpkg -i freeradius-ldap_1.1.3-3_i386.deb
#dpkg -i freeradius-mysql_1.1.3-3_i386.deb

安裝成功應該就可以看到 freeradius 的執行緒

#ps aux | grep freeradius

2008/05/27

PS3 安裝 Yellowdog Linux 6.0

1. 你需要一台 PS3

2. USB 鍵盤滑鼠

3. 切割 PS3 硬碟,留個 10G 給 Other OS 用就夠了

4. 到官方下載頁面下載 YDL 6.0 ISO 檔,台灣當然是去美國下載比較快啦。

5. 按照安裝手冊安裝

5.1 把 YDL 安裝 DVD 放進 PS3 光碟機.
5.2 從 GameOS 清單選擇:
設定 ==> 系統設定 ==> 安裝 Other OS
5.3 這時候 PS3 會掃描 DVD 有沒有 bootloader installer 跟 bootloader.
5.4 確認位置在 "/ps3/otheros/otheros.bld".
5.5 按下 "X" 開始安裝.
5.6 現在要選用 Other OS 開機進行 YDL 的安裝:
設定 ==> 系統設定 ==> 預設系統 ==> Other OS
5.7 詢問時, 選擇 "是" 確認.

這時候 PS3 會重新開機,進入 kboot,並且停留在命令列,請先試著回到 Game OS 裡面,確定你的 Game OS 還活著,再重複 6.6==>6.7 的步驟回到 kboot。如果你沒有 USB 鍵盤,又誤闖 kboot,只有先關機,然後按著電源超過五秒鐘,應該能強迫回到 Game OS。

6. 在 kboot 命令列輸入 (408i 只支援文字模式)
install_ps3_1080i for PS3 and monitor capable of 1080i
install_ps3_1080p for PS3 and monitor capable of 1080p
install_ps3_720p for PS3 and monitor capable of 720p
install_ps3_480i (等同於 install_text)
install_text

後面的步驟就跟在電腦上安裝 Linux 的程序差不多了。
檢查光碟 -> 選擇語言(當然是選擇繁體中文) -> 硬碟切割(預設值就好了吧) -> 網路設定 -> root 密碼(設好請不要忘記) -> 套件選取(喜歡的通通裝) -> 套件相依(自動把相依套件打勾)

整個安裝過程需要挺長的時間,去泡個咖啡,嗯!不夠,去吃頓飯,還是不夠,去摸一圈麻將再回來吧!可惜 PS3 正在裝 YDL,不然可以玩個 GAME 。還好我的電視有子母畫面功能,看電視去。

[2008/05/28]
使用 PS3 直行 YDL 6.0 效率實在很糟糕,主要的原因應該是記憶體不夠吧!使用 P4 + 1G RAM 的感受都比他好。測試了一下 MPlayer 播放 720P 的影片,畫面會有垂直線條,而且非常不流暢,可能是沒有針對 Cell CPU 作最佳化。感覺上只有 15fps 的能力,因為看電影不可能接受這樣的品質,所以作罷。如果是為了要玩 Linux 而用安裝,那就免了,用 PC 會比較舒服。

2008/05/19

使用 RipBot264 製作內坎字幕的影片(for PS3)

需要用到的軟體 RipBot264 真棒,綠色免安裝。目前版本為 1.9.4,之前 1.8.X 是可以直接作成 m2ts 的,現在的版本卻拿掉了,不知道為什麼,不過還好,先作成 mkv 再用 tsmuxer 來製作成 m2ts 也不會多花太多時間。因為光是重新編碼可能就要耗費十多個小時以上了。所以沒有耐心給電腦跑轉檔的,就不需要繼續看下去了。
還有avisynth
本篇的主要目標是那些非標準解析的影片,在 Sony 幫 PS3 修正這個問題之前,使用 tsmuxer 封裝成 avchd 是無法完美播放影片的,只好請電腦多勞累一下了。

0. 設定預設值
修改 RipBot264.ini
[settings]
//我把工作暫存資料放在 D:\temp\RipBos264temp
//他會再自行區分 job1, job2...
StoreTempFilesin=D
//這個設定就是給 PS3 吃的
DefaultProfile=[ level 4.1 ] HD . BluRay . Consoles
DefaultEncodingMode=CQ
DefaultModeValue=22
DefaultOutputPath=D:\temp\Movie\
DefaultContainer=mkv
DGindexNTSCForceFilm=2



1. 執行 RipBot264

1.1 勾選 Low Priority 讓執行編碼的時候使用低優先權,免得系統都被編碼成是占用
1.2 按下 Add 新增任務

2.


2.1 開啟 MKV 影片檔

開啟之後要等一段時間,他要把 AUDIO 串流拉出來。因為 PS3 讀取 M2TS 的時候不支援 DTS 輸出,甚至說他根本不把 DTS 音軌當一回事,所以遇到 DTS 音軌,請先轉換成 AC3 ,參考

2.2 調整流量

a. 選用 2-pass 模式
b. 先用 lock size,把容量鎖在 4000 MB,看看 kbps 的變化
c. 取消 lock size,適量的減少 kbps,目前我還沒去算出要減多少,因為 MKV 轉成 M2TS 還會再增加一些空間。

2.3 設定內坎字幕


2.3.1 抄一下目前的解析度

這裡可以看到解析度為 1280x528

2.3.2 選擇字幕內坎

他會自動複製跟影片名稱相同檔名,副檔名為 srt 的檔案,設定好之後,直接按下 OK

2.3.3 按下 Down 完成設定


2.4 修改 job1.avs
根據 RipBot264.ini 的設定,我的會在 D:\temp\RipBot264temp\job1

2.4.1 增加黑邊 .AddBorders(x,x,x,x)

剛剛有拿到影片的解析為 1280x528 但是 720p 的標準是 1280x720,所以上下有 720-528=192 的差距,所以補上下各 192/2=96 點黑邊。

2.4.2 字幕同步修正

可能是為了方便吧,字幕預設會作成 25fps 輸出,但是對於我們使用 NTSC 的格式來說,字幕會不同步,所以乾脆把這部分刪除掉。

2.4.3 拿掉不必要的設定

沒必要在重編碼的時候,讓 AVS 多作這些工作,因為最後聲音是用串流匯入的方式處理。最後一行的色彩空間不一定會有。

2.5 更改字幕字型大小
檔案是 D:\temp\RipBot264temp/*.style

我喜歡這個大小,可以讓我看清楚字幕。你可以根據視力,喜好,自行調整。
上面的設定都作好存檔之後,可以把 job1.avs 拉到 Media Player Classic 播放,看看字幕大小是否合適以及同步是否正常。

2.6 按下 start 開始,開始之前也可以重複上述動作,多設定幾個任務。


等它完成再把產生的 MKV 檔放到 tsmuxer 作成 m2ts 的包裝。