Archive for the ‘Note’ Category

Filed Under (Note) by a-wei on 15-04-2009

這陣子要試驗 IBM Director 6.1.

安裝過程中,Windows 2003 還算順利,然而在 Linux 平台,它僅支援 Red Hat, SuSe. CentOS 沒列在支援之列.

好在 CentOS 是源自 Red Hat Enterprise.

以 CentOS 4.7 來說,它是對應到 Red Hat Enterprise Linux AS release 4 (Nahant Update 7)

問我怎麼知道的,Google 大神 ..

修改 /etc/redhat-release, 把內文改掉就成了 RedHat 企業版的,而 IBM Director 6.1 即可順利安裝囉。

分別在 x32 跟 x64 都安裝成功。

x32 安裝最順利,可能先前裝了很多預設套件 … x64 倒是遇到不少缺套件的情況。

如 pam, compat-libstdc++-33. 還好都不是什麼大問題, yum 安裝即可。

不過 … 好像沒這麼順利 …

在 /var/log/message 內 … 不時有 ”kernel: MASQUERADE: Route sent us somewhere else.”

的錯誤訊息 …

由於該機器,有設定一虛擬網卡綁另一真實 IP,且看該錯誤出現的時間,剛好在安裝 Director common agent 的時間點。因此呢 … 就移除.

移除程式位於安裝路徑下 “/opt/ibm/director/bin/diruninstall”



Filed Under (Note) by a-wei on 31-01-2009

一、更新 Amavisd-new

去年年底 … 也就是 2008 年,將 Amavisd-new 的版本,從 2.5.0 更新到了 2.6.2。
間格了快兩年的時間沒去動它 … =.=

不過現在版本更新的方式還真的是蠻簡便的 ..

兩個檔案: 替換 /usr/sbin/amavisd ,還有 /etc/amavisd.conf 。
當然不建議直接把檔案給蓋掉,而是先把 /usr/sbin/amavisd 給 rename,然後再一個一個對照 amavisd.conf 這個組態檔,逐一變更。

二、 DKIM
amavisd-new 2.6 版內建 DKIM,可以識別外部郵件的 DKIM 簽章,也可以簽署由內部外寄的郵件。
會想搞 DKIM,主因還是 yahoo … 有事沒事搞個什麼 domainkey … 卻不知自己反而是垃圾郵件的製造機 ><.
原先還以為 DKIM 就是 domainkey ... 搞到後來才知道 ...「原來不是我想像」... 囧 ..
這也就是為什麼 Gmail 寄出的郵件標頭,分別有 domainkey 跟 DKIM 簽章的標頭 ...
至於什麼是 domainkey、DKIM ... 求一下 Google 大神,可以得到不少資料,以下就不贅述了 ...
看招囉!

導讀:
RSA 非對稱加解密演算法,一個公鑰(公開的鑰匙),一個私鑰(隱藏的鑰匙),這有什麼奧妙?
Google 一下 ....

1. 產生 key (預設 key 的存放路徑於 /var/db/dkim,沒有這個目錄的就先建一下)

指令:$ amavisd genrsa /var/db/dkim/foo.example.com.key.pem

之後可以看見 /var/db/dkim 目錄內,有個 foo.example.com.key.pem 這個 key 存在.
這是什麼 key ? 這是 私鑰 ... 那公鑰呢?

2. 先讓 amavisd 把私鑰戴上.
$ vi /etc/amavisd.conf

$enable_dkim_verification = 1; # enable DKIM signatures verification
$enable_dkim_signing = 1; # load DKIM signing code, keys defined by dkim_key

dkim_key(’example.com’,'foo’, ‘/var/db/dkim/example.com.key.pem’);

#以下為選項

$signed_header_fields{’received’} = 1; # turn off signing of Received
$signed_header_fields{’sender’} = 1; # turn on signing of Sender
$signed_header_fields{’to’} = 1; # turn on signing of To
$signed_header_fields{’cc’} = 1; # turn on signing of Cc
$signed_header_fields{lc(’X-MySpecialFlag’)} = 1;

改完後存檔,把 amavisd 重起 .
$ service amavisd reload

3. 公鑰出洞
指令:$ amavisd showkey

; key#1, domain example.com, /var/db/dkim/foo.example.com.key.pem
foo._domainkey.example.com. 3600 TXT (
“v=DKIM1; p=”
“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLfJ59TbSZZA8zpx2T/vEI7ulY”
“DooVqxYs4s0rcuMtSA2kxlKGi9Wd3ZUz6H7AbFQsJB9gUPgFCTDDwtj34BI3eFyl”
“Y5kWvz/EQipORFLvzgwHyqtZ8u5/6DnRsf1DYuWdgaVZYvnoaHshMzDok1+v5gjT”
“77ARDCI6EyTEmBWfTQIDAQBA”)

4. 為 example.com 網域掛上公鑰.

$ vi /var/named/chroot/var/named/example.com.hosts

foo._domainkey.example.com. 3600 TXT (
“v=DKIM1; p=”
“MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLfJ59TbSZZA8zpx2T/vEI7ulY”
“DooVqxYs4s0rcuMtSA2kxlKGi9Wd3ZUz6H7AbFQsJB9gUPgFCTDDwtj34BI3eFyl”
“Y5kWvz/EQipORFLvzgwHyqtZ8u5/6DnRsf1DYuWdgaVZYvnoaHshMzDok1+v5gjT”
“77ARDCI6EyTEmBWfTQIDAQBA”)

存檔後 … named 重啟動.

$ service named restart

5. 檢驗一下
指令: $ amavisd testkey
這時會出現

TESTING#1: foo._domainkey.example.com => pass

如果不是上面的訊息,檢查一下該主機的 /etc/resolv.conf 是不是指到內部的 dns.

6. 修改 Postfix
早期的 amavisd-new 在 Postfix 的 main.cf、master.cf 這兩個檔案內,關於 amavisd 過濾器的名稱是
smtp-amavis,這時要修改成 amavisfeed.

(1) master.cf
amavisfeed unix - - n - 2 smtp
(2) main.cf
content_filter = amavisfeed:[127.0.0.1]:10024

都改完後,$ service postfix restart
為什麼要做這樣的修改? 因為 … 不這樣改的話, maillog 內會有這樣的錯誤訊息 …

warning: connect to transport amavisfeed: No such file or directory

以上六個步驟 … 就可以讓從 Postfix 寄出的郵件加上 DKIM 的簽章了 .

三、 rndc 題外話.
話說在搞第 4 點時,蓋掉原本 rndc 的 key,導致系統記錄檔 /var/log/messages 內有這樣的錯誤訊息 ..

named[25140]: /etc/named.conf:36: couldn’t find key ‘rndckey’ for use with command channel 127.0.0.1#953

著實讓我緊張了一陣子 … 後來呢逐一檢查 named.conf 的組態檔 … 位於 /var/named/chroot/etc

controls {
inet 127.0.0.1 allow { localhost; } keys { rndc-key; rndckey; };
};

key rndc-key {
algorithm hmac-md5;
secret “G2A1xiwHuidO9F528m61Mw==”;
};

把多出來的 rndckey; 給刪除 … 存檔後 named 重起 ..
$ service named restart
這樣就行了.



Filed Under (Note) by a-wei on 23-11-2008

網站搬遷 … 工程也算相當浩大 …

由於先前是用一台快十年的機器, P-III 500, 512MB, 20G HDD.

前陣子一直發現載入網頁的速度很慢,而且硬碟又有內傷 … 因此決定將站台從該機器搬遷出來。

目的地是國外的某個虛擬主機.

要搬遷,總得先計畫才行 … 因此草擬了搬遷計畫之後,便開始著手進行。

一、備份
1-1. 備份網站資料庫
mysqldump xxx > xxx.sql –default-character-set=utf8 -uroot -p

1-2. 備份網站檔案
tar zcvf ./xxx.tar.gz ./xxx (若有要排除的目錄:如虛擬目錄之類的 … –exclude ./xxx/目錄)

二、虛擬主機環境設定
2-1. 於虛擬主機建立站台以及對應的根目錄。
ex: domain -> /home/a-wei.net

2-2. 於虛擬主機建立網站所需使用的資料庫、使用者id、密碼

三、檔案上傳
3-1. 將備份檔以 ftp 方式傳送到虛擬主機(用虛擬主機的檔案解壓縮功能解壓縮)。

3-2. 利用虛擬主機所提供的 phpMyAdmin 資料庫管理程式,匯入備份的資料庫 。
如果資料庫檔案太大 > 8MB(檔案上傳所允許之最大大小),試著用 zip 壓縮,再上傳該zip 檔,一樣可以匯入。

四、組態檔變更
4-1. 變更網站的資料庫連線設定,一般都是存在設定檔案,只要把該設定檔的資料庫主機、使用者id、密碼、資料庫名稱填入就行了。
4-2. 有些網站系統可能還需要設定網站目錄的絕對路徑,有遇到再更改即可。

五、單機測試
基本工作都做完了,這時還不能倉促的變更 dns 名稱到新的站台,一定要先測試過才動手。
這時我們用自己的電腦連線測試。
5-1. 變更電腦的 host(c:\windows\system32\drivers\etc\host),增加一筆紀錄

66.96.132.26(虛擬主機ip) a-wei.net(網址)

增加上面那筆記錄後,這樣自己電腦只要是 ping 或用瀏覽器開啟 a-wei.net 都會連到 66.96.132.26 這部機器上。
當測試一切無誤時,這時候再變更 dns 紀錄,。

六、變更 DNS 名稱對應
6-1. 變更 dns 紀錄,把該網址對應到虛擬主機的 ip 位址。
6-2. 還原自己電腦的 host 檔。



Filed Under (Note) by a-wei on 28-05-2008

SMF 是 Simple Machines Forum 的縮寫 ..
此系統是個人所使用過覺得功能還算齊備的論壇系統。

只不過 … 偶爾會遇到中文支援的問題 … 以下就是紀錄中文附件檔案的處理方式。

1. 中文檔名 IE 會無法下載:
解決方式
開啟Sources資料夾裡的Display.php
找到這一段
程式碼:

header('Content-Disposition: attachment; filename="' . $real_filename . '"');
header('Content-Type: application/octet-stream');

在這一段的上頭加上下面這段
程式碼:

if(strstr($_SERVER['HTTP_USER_AGENT'], ‘MSIE’) || strstr($_SERVER['HTTP_USER_AGENT'], ‘Internet Explorer’)) $real_filename = urlencode($real_filename);

2. 第二類,也是中文檔名無法下載,不過不僅僅是 IE 連 Firefox 也不行 .. 發生原因不確定,解決方式如下:

編輯

Subs-Post.php

尋找

db_query("
INSERT INTO {$db_prefix}attachments
(ID_MSG, filename, size, width, height)
VALUES (" . (int) $attachmentOptions['post'] . “, SUBSTRING(’” .
$attachmentOptions['name'] . “‘, 1, 255), ” . (int)
$attachmentOptions['size'] . ‘, ‘ . (empty($attachmentOptions['width'])
? ‘0′ : (int) $attachmentOptions['width']) . ‘, ‘ .
(empty($attachmentOptions['height']) ? ‘0′ : (int)
$attachmentOptions['height']) . ‘)’, __FILE__, __LINE__);
$attachmentOptions['id'] = db_insert_id();

在上面這一段文字的上方,加入下面這二行就ok了。

$a="_";
$attachmentOptions['name']=$a.$attachmentOptions['name'];

資料來源:森林之原 .. http://openlyu.com/forums/index.php?PHPSESSID=e41abf9176e19d004a3813210d6886c1&topic=3074.0



Filed Under (Note) by a-wei on 21-05-2008

一般公司的郵件系統管理者,對於郵件主機要寄往 yahoo 信箱的郵件 … 大多是眉頭深鎖 …

為什麼?

因為 … 會被 yahoo 的郵件主機給拒絕在外 …

yahoo 自認為抵擋廣告郵件的機制很新潮 … 很有效 … 殊不知 … 自己就是廣告郵件最多的來源地 …

進入自己在 yahoo 的信箱帳號 .. 常看到的就是數以百計的垃圾郵件 … 真不知道 .. yahoo 是在檔什麼碗糕?

而郵件主機內 Queue 住的信件怎辦? 出也出不去 … 不知道要等到什麼時候 .. yahoo 主機爽了 .. 才會接收你要傳送過來的郵件 .. 再不就是超過時間 .. 郵件就此 Drop 掉 .

之後測試了個方式 … 把寄送至 yahoo.com.tw 網域名稱的郵件 .. 透過 hinet 的主機(msa.hinet.net)傳送 。
P.S:只要是使用 hinet 線路的用戶,都可以指定此郵件主機發送郵件 ..

主機系統:
Linux + Postfix

使用機制:Postfix 的 transport

步驟說明:
1. 編輯 /etc/postfix/main.cf
加入這行 transport_maps = hash:/etc/postfix/transport
目的就是要啟用 postfix 的 transport 機制。

2. 編輯 /etc/postfix/transport
加入這行 yahoo.com.tw smtp:[msa.hinet.net]

3. postmap hash:/etc/postfix/transport

4. service postfix restart

至此步驟就完成了 ..

檢查一下原本的 mailq ..
四五百封寄至 yahoo 信箱的郵件 … 三兩下就消化一空 .. 如何 … 夠簡單吧!



Filed Under (Note) by a-wei on 02-05-2008

興沖沖的下載新版的更新 … 不過遇到了些狀況.

1. Server 是 CentOS 4.4, zlib 的版本是 1.21,在做 make 的時候,遇到了 zlib 版本過舊,要安裝 zlib-1.2.3 的才行。
a. http://www.zlib.net/ 由此下載。
b. tar zxvf zlib-1.2.3.tar.gz
c. cd zlib-1.2.3
d. ./configure -share
e. make
f. make install
g. vi /etc/ld.so.conf
h. 加入 /usr/local/lib
i. ldconfig

2. 接下來 clamav 可以順利 make 以及 make install 了, 只不過即使安裝完畢,在啟動 Clamd 的服務時,還會出現狀況。
a. /usr/local/etc/clamd.conf 的組態項目名稱有更動
可參考官網的說明 http://wiki.clamav.net/Main/UpgradeNotes093
b. 要手動執行 freshclam 更新病毒定義檔後才行啟動 clamd 服務。

以上步驟完成, ClamAV 就成功的更新成 0.93 囉。



Filed Under (Note) by a-wei on 10-12-2007

按照版本,安裝此連結上的 rpm 即可。

php + mssql



Filed Under (Note) by a-wei on 17-10-2007

現在的電腦病毒,還真是聰明 … 透過不會搞怪的母體,潛伏在電腦內後 .. 暗自從 Internet 埋伏好的機器,下載有破壞力的「毒兒」回來執行 ..

這個現象在 NOD32 的 IMON log 、fortigate上,有注意到這個現象 … 當時的作法是從 fortigate 把連網該 ip 下載檔案的整個 class b 給封鎖.

這類會自我更新的病毒,在幾天前 忘了是 cnet 還是 digitime 上,也有人發表過這類的文章.

原先病毒自動更新病毒碼的主機,都還只是是個 ip 位址名稱的機器而已 .. 今天從 fortigate 的 log 內發現 .. URL 的主機名稱卻是個魚目混珠的

www.microsofttw.com

不仔細看還以為是微軟的自動更新主機 … 這就真的妙了 ..

當下立即變更各地區辦公室的防火牆,把對外連線網址含有 microsofttw 關鍵字的,一律封鎖。



Filed Under (Note) by a-wei on 10-10-2007

型號: Fortigate-60 (分公司)
PIX: 515(總公司)

連線方式:
總公司是 Server
分公司是 Client
跑 IPSec.

Fortigate 有幾個比較新穎的功能,如:Phase 1 的Dead Peer Detection、Phase 2 的Enable perfect forward secrecy(PFS) 兩個功能要關閉。
PIX 預設沒有開啟 PFS,除非找的到開啟的地方 .. 自己不才,沒找到開啟的選項,所以只好把 Fortigate 的這個功能取消。

不過總算機器能正常運作,當連線中斷時,也會自動建立連線。



Filed Under (Note) by a-wei on 30-07-2007

私人單位的 DNS 就不需要那麼慷慨的讓別人透過自己的 DNS Server 去做名稱解析的動作。 很多無聊人士,就是透過這種查詢的方式,去癱瘓 DNS Server.

不想要別人透過自己的機器查詢,但讓自己人查詢總可以吧!

編輯 /etc/named.conf

建立 acl (access control list)

在檔案的最上方,加入下列兩行 ..

acl “trusted1″ { 127.0.0.1; };
acl “trusted2″ { 192.168.1.0/24;};

在 options 的地方加入 allow-recursion ..

options {

allow-recursion { trusted1; trusted2; };
};

之後在 service named restart. 設定即完成。

會分成兩個的主因在於, 把 特定 ip 跟 特定的 subnet 區分開來,因為當初寫在一起實,這個設定並不 work. 拆來就正常了。