2008/08/13

MySQL 的管理密碼忘記的補救措施

先關閉 MySQL Server
#/etc/init.d/mysql stop

然後重啟 MySQL 並加上額外選項:
mysqld --skip-grant-tables &

再執行 MySQL Client:
#mysql
mysql>use mysql
mysql>update user set password=password("新的密碼打在這裡面") where user="root";
mysql>flush privileges;
mysql>exit;

把剛剛直行的 mysqld 關閉,然後重新正常啟動 MySQL server,就可以用新的密碼登錄

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 會比較舒服。