星期四, 5月 26, 2005

Fedora core 3 無線上網

今天拿到NoteBook就看了些文章
關於無線上網
以升級的kernel
加上使用apt 安裝
ipw2200-firm的套件應該就可以上網
找個時間Lab一下

安裝Fedora core 3 kernel source

方法kernel-2.6.9為例
1. rpm -ivh kernel-2.6.9-1.667.src.rpm
2. cd /usr/src/redhat/SPEC
3. rpmbuild -bp --target i586 kernel-2.6.spec
4. cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
5. cp configs/kernel-2.6.9-i586.config .config
6. make oldconfig
7. make menuconfig
8. make bzImage

星期五, 5月 20, 2005

使用AWStats分析Web和Mail的紀錄檔心得

使用AWStats分析Web和Mail的紀錄檔
Lab環境 Fedora core 3

1.檢查是否有安裝Perl
#which perl
2.安裝AWStats
官方網站 http://awstats.sourceforge.net/#DOWNLOAD 下載RPM檔安裝
#rpm -ivh awstats-6.4-1.noarch.rpm
3.設定AWStats
#cd /usr/local/awstats/tools/
#./awstats_configure.pl
1.此時會要求輸入Apache設定檔位置 /etc/httpd/conf/httpd.conf
2.詢問是否要建立新設定檔----回答y
3.詢問網站位置--------輸入網站的位置
4.修改細部設定
#cd /etc/awstats/
#vi awstats.您的網站.conf
LogFile="/var/log/httpd/access_log"-----原來是mylog.log不正確
AllowAccessFromWebToFollowingIPAddresses="192.168.1.3-192.168.1.254"
設定允許看報表的ip範圍..建議加入conf中..因為實測時候發現粉耗費CPU
5.建立報表輸出資料夾(在之前的conf檔案有提到但是系統預設不存在)
#mkdir /var/lib/awstats
6.執行AWStats產生報表
#/usr/local/awstats/tools/awstats_updateall.pl now
7.排入crond 設定每日3點定時更新
#crontab -e
0 3 * * * /usr/local/awstats/tools/awstats_updateall.pl now
8.驗收成果
http://您的網站/awstats/awstats.pl
就可以看到Web報表

接下來來製作Mail分析報表
9.#cd /etc/awstats
#cp awstats.model.conf awstats.mail.conf (複製預設檔來做)
#vi awstats.mail.conf

列出修改的部份
< LogFile="/var/log/maillog"
< LogType=M
< #LogFormat=1
< LogFormat="%time2 %email %email_r %host %host_r %method %url %code %bytesd"
< sitedomain="您的網站"
< AllowAccessFromWebToFollowingIPAddresses="192.168.1.3-192.168.1.254"
< LevelForBrowsersDetection=0 # 0 disables Browsers detection.
< LevelForOSDetection=0 # 0 disables OS detection.
< LevelForRefererAnalyze=0 # 0 disables Origin detection.
< LevelForRobotsDetection=0 # 0 disables Robots detection.
< LevelForSearchEnginesDetection=0 # 0 disables Search engines detection.
< LevelForFileTypesDetection=0 # 0 disables File types detection.
< ShowMonthStats=HB
< ShowDaysOfMonthStats=HB
< ShowDaysOfWeekStats=HB
< ShowHoursStats=HB
< ShowDomainsStats=0
< ShowHostsStats=HBL
< ShowRobotsStats=0
< ShowEMailSenders=HBML
< ShowEMailReceivers=HBML
< ShowSessionsStats=0
< ShowPagesStats=0
< ShowFileTypesStats=0
< ShowOSStats=0
< ShowBrowsersStats=0
< ShowOriginStats=0
< ShowKeyphrasesStats=0
< ShowKeywordsStats=0
< ShowMiscStats=0
< ShowHTTPErrorsStats=0
< ShowSMTPErrorsStats=1

10.執行AWStats產生報表
#/usr/local/awstats/tools/awstats_updateall.pl now
11.驗收成果
http://您的網站/awstats/awstats.pl?config=mail
就可以看到Mail報表

使用Webalizer分析報表心得

在RedHat系列中大多都內建Webalizer這套分析軟體
使用rpm -qa | grep web查詢是否安裝

安裝後預設在/var/www/usage目錄
可以建立一個link連結usage達到用網頁監控的目的
#cd /var/www/html
#ln -s /var/www/usage status
就可以瀏覽http://yoursite/status來觀看

但可以先調整語系Fedora core 3 預設適用UTF-8
可改為Big5 修改/etc/httpd/conf/httpd.conf
#Max edit at 20th May 2005
#LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
LanguagePriority zh-TW en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN

#Max edit at 20th May 2005
#AddDefaultCharset UTF-8
AddDefaultCharset Big5

重新啟動httpd
#service httpd restart

LINUX LPI 資格檢定讀書心得Part 2

1.7 使用正規表示式搜尋文字檔

globbing(使用萬用字符wildcard的行為)
操作可以同時列出或找出具有共同元素的檔案.但是若想將glob的概念延伸到任何一般的文字形式上就得靠正規表示式(regular expressions)的協助才行.

指令 grep
語法
grep [options] regex [files]

常用選項
-c 計算相符的列數
-h 顯示相符的每一列.但指定多檔時.不前置檔名
-i 忽略大小寫
-n 前置其列號
-v 顯示不相符的每一列

正規表示式內可以內含
中介字符(metacharacter)與字面字符(literal)
而且grep 可以只使用literal作為正規表示式

指令sed
語法
sed [options] 'command1' [files]
sed [options] -e 'command1' [-e 'command2'] [files]
sed [options] -f script [files]

正規表示式定義自數串文字或樣式(pattern). 而樣式是由中介字符(metacharacter)與字面字符(literal)所組成.所以當建構正規表示式時便可以使用中介字符(metacharacter)與字面字符(literal)對所要處理的輸入文字表達三個基本的意念:

1.位置定位符(Postition anchor)
用來指定一或多個字符位於整列文字的何處
2.字符集(Character set)
字符集可用來比對文字
3.數量修飾符(Quantity modifier)
代表與字符集的文字比對應該重複出現.讓正規表示式用有不定長度的文字比對能力

正規表示式的使用範例

定位符(anchor)

^ 比對一列之首
$ 比對一列之尾

範例1
顯示 file1檔中以 Linux 開頭的每一列文字

$grep '^Linux' file1

範例2
顯示file1檔中以 x 字符結尾的每一列文字

$grep 'x$' file1

群組與範圍

[abc] 符合a,b,或c的任一字符
[a-z] 符合範圍a到z的任一字符
[^abc] 非符合a,b,或c的任一字符
[^a-z] 非符合範圍a到z的任一字符
\ 比對單字
. 相符於newline以外的任一字符
\ 關閉其後所接字符的特殊意義

範例1
顯示 file1檔中包含 Linux 、 linux 的每一列文字
$grep '[Ll]inux' file1

範例2
顯示file1 包含連續三位數字的每一列
$grep '[0-9][0-9][0-9]' file1

範例3
顯示file1檔中任何非以一位數字起頭的每一列
$grep '^[^0-9]' file1

範例4
顯示file1檔中包含單字Linux或是linux (但不包含LinuxOS 或是 TurboLinux)的每一列
$grep '\<[Ll]inux\>' file1

範例5
顯示file1檔中包含五個或更多字符(newline字符不算在內)的每一列
$grep '.....' file1

範例6
顯示file1檔中包含一個句點(原是中介字符.但是使用倒斜線避開它的特殊意義)的每一列
$grep '\.' file1

修飾符

* 用來表示它之前的單一字符可能重現零次或多次
? 用來表示它之前的正規表示式可能重現零次或一次.屬延伸功能需使用-E才有作用
+ 用來表示它之前的正規表示式可能重現一次或多次.屬延伸功能需使用-E才有作用
\{n,m\} 用來表示它之前的單一字符可能重現的次數範圍
| 交替比對.可比對| 之前或是之後的正規表示式.屬延伸功能需使用-E才有作用

範例1
顯示file1檔中包含ab abc abcc 或是abccc等等的每一列
$grep 'abc*' file1

範例2
顯示file1檔中包含ab abc abcc 或是abccc(但是不包含ab)等等的每一列
$grep 'abcc*' file1

範例3
顯示file1檔中包含連續兩位或多位數字的每一列
$grep '[0-9][0-9][0-9]*' file1

範例4
顯示file1檔中包含file,file1,或是file2字樣的每一列
$grep -E 'file[12]?' file1

範例5
顯示file1檔中至少包含一位數字的每一列
$grep -E '[0-9]+' file1

範例6
顯示flie1檔中只包含111,1111,或是11111的每一列
$grep '^1\{3,5\}$' file1

範例7
顯示file1檔中包含3位4位或是5位數字的每一列
$grep '\<[0-9]\{3,5\}\>' file1

範例8
顯示file1檔中包含Happy,happy,Sad,sad,Angry,angry的每一列
$grep -E '[Hh]appy|[Ss]ad|[Aa]ngry' file1

星期五, 5月 13, 2005

資訊安全理論與實務讀後心得

密碼技術可以達到下列四項功能
1.隱密性
2.可認証性
3.完整性
4.不可否認性

兩大密碼系統
1.對稱式金鑰 Symmetric Key
著名的演算法有DES RC4 RC5 IDEA SAFER FEAL Skipjack Rijndael(AES)

DES演算法(Data Encryption Standard)
1970年代由IBM提出.長度為56位元有時會輸入64個位元.則第8.16.24.32.40.48.56.64八個位元是同位檢查碼.在加解密時並沒有真正使用
2.非對稱式金鑰 Asymmetric key

星期二, 5月 03, 2005

linux心得--常用linux字元

- Single-dash 單破折號
$0 Command name
' ' Full quote (no expansion)
" " Partial quote (allows variable and command expansion)
$$ Process id
$* All arguments as a simple word
$n nth argument (n from 0 to 9)
$var Use avalue for variable
& Run process in background
() Execute in subshell
* wildcard (represents everything)
. Single Period (The current directory)
.. Double Period (Parent Directory)
; Separate commands on same line
? Single character wildcard
[] Match any characters enclosed
\ Quote the following character.Also used to break a command line to multiple lines
` ` back ticks (Substitute output of enclosed command)
| Pipe (Takes the stdout and it becomes the stdin for the command after the pipe)
< Redirect input
<< Uses a delimiter with text to pass as input a command
> Redirect output
>> Used to append data to another file

LPI LINUX 資格檢定讀書心得

Chapter 1
*大體來說,Unix系統的架構從內而外依序是
硬體Hardware--系統核心Kernel--系統呼叫System call--命令解譯器command interpreter(又稱為shell)
*命令列command line是指使用者在shell操作模式中.於提示符號之後所鍵入的一列完整命令.
其中包含: 命令.選項.以及引數串列
*bash (Bourne-Again Shell) 為linux系統上預設的shell
*Shell 變數簡介
PS1 ( Prompt String1 ) 第一個提示字串
可以用echo的指令來顯示PS1或其他shell變數的內容但是必須要變數名稱之前附加$符號

#echo $PS1
[\u@\h \W]\$

在此範例中
每個前置倒斜線的字符對bash而言都有其特殊的意義
\u會被代換成使用者名稱
\h會被代換成系統主機名稱
\W會被代換成現行工作目錄的最底層

PATH --存放命令以及執行程式的目錄清單
要讓bash可以順利找到並執行你在提示符號之後所鍵入的命令.該命令必須
#是一個bash內建的命令
#是一個可執行的程式.其所在目錄已列在PATH的變數中
#有明確的定義(完整路徑名稱)

*在linux系統上.使用者對shell所下達的命令.通常組成自四個部分
#一個有效的命令
#命令選項
#引數
#受理機制(即按下Enter鍵)

*若想要在單一的命令列上同時加入一筆以上的命令應該依序執行順序鍵入每筆命令並以分號(;)將他們隔開.
#ls ; ps

*命令歷程(history)
當bash以互動的模式執行時.可讓使用者存取自己先前所鍵入的命令.使用者所鍵入的每筆命令.都會先存放到歷程清單(history list). 再交由Shell 進行解譯.
history list 是由shell 變數 HISTSIZE所控制
一般於/etc/profile 中定義 預設為1000列
在bash session 結束之後會存放在 ~/.bash_history
並可以用history檢視命令的歷程
*請注意.如果同時啟動多個shell.那只有最後一個結束執行的shell才會將其所經歷過的命令寫入~/.bash_history