高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

CentOS

RedHat宣布不再推出個人免費版本,並把原先RedHat9的相關技術,移至Fedora計劃,目前已推出到Fedora Core3;同時也針對高階伺服器市場推出Red Hat Enterprise Linux(RHEL)。RHEL有AS、ES及WS三種版本,AS是最高階的企業級伺服器,最多可以支援到16個CPU及64G的記憶體,WS則是桌面 工作站,ES則適用於一般中小型企業的社群級伺服器版本。當然,這個RHEL就是要收錢的(軟體費用及技術支援費用),可以參考一下這個網站或是RedHat官方網站的價錢。

CentOS : Community ENTerprise Operating System

有 個叫做CentOS的Linux版本,便是以RHEL為架構發展出來的,一樣秉持著Linux的自由精神,可免費下載使用。CentOS2、3聲稱與 RHEL2、3完全100%相容,日前CentOS已經推出第4個版本,本著RHEL的穩定性、支援高階伺服器硬體及低廉的軟體成本,以中、小型企業來 說,CentOS成為架設Linux伺服器的不錯的選擇之一。

當然,軟體免費,不等於Linux就是免費,技術服務不是免費的,所以企業在引進這樣的系統時,也得考量這方面成本。

國內ISO下載:ISO image Mirror Site

CentOS Official Website:http://www.centos.org/

參考資料:

http://linux.tnc.edu.tw/techdoc/eltoyou/eltoyou.html

Postfix的Relay Control

Postfix的Relay控制,是在/etc/postfix/main.cf裡面做設定,主要有四個部份:

  1. inet_interfaces
  2. mynetworks_style
  3. mynetworks
  4. relay_domains

inet_interfaces:

預設值是all,如果你的機器有多張網路卡,但又不想要全部都開放 relay,就可以指定只開放給某張網路卡。

mynetworks_style:

有三種型態:classsubnethost,預設值是subnet。

  • class是可以指定開放給A/B/C class的來源,這種設定方式滿冒險。
  • subnet代表你的機器的IP所在網域的任何一個IP都可以接受relay。(如果同一個subnet裡的機器多,要小心可能被當成垃圾信跳板)
  • host表示只會設定localhost為信任的網域而已。

mynetworks:

這可以設定成檔案的方式或是直接以IP/netmask來做設定。例如:

mynetworks=192.168.1.0/24, 127.0.0.0/8

而如果要用檔案方式:

mynetworks = 127.0.0.0/8, hash:/etc/postfix/access

記得postmap一下這個access檔。

注意:

  1. 如果沒有設定mynetworks的話,記得把mynetworks_style改成host,不然同一個子網域的IP都可以透過你的機器relay信件(當然如果所有子網域的使用者你都認識的話倒還ok)
  2. 如果有設定 mynetworks_style 以及 mynetwork 時,mynetworks的設定會取代掉mynetworks_style。

relay_domains:

可以一次指定一個domain來開放relay。例如:

relay_domains = eddie.com.tw

這樣的設定是代表所有由eddie.com.tw這個domain來的信件都會被當做可信任的,postfix會幫忙relay。但要注意的是,由「任何地方」來的信件,並且要寄往eddie.com.tw網域的信件,postfix也會幫忙Relay。

詳細設定在/etc/postfix/main.cf裡有說明。

Hinet廣告信跳板測試:http://lcss.hinet.net/antispam/or_check.pl

MPlayer的字幕問題

最近透過非合法的手段,找到了某部正在上映的院線片來看,但在Red Hat 9上用mplayer播放時,中文字幕會變成亂碼。翻了一下網路上其它人的解決方法,我也有正常的中文字幕看了 :)

Step 1. 開啟mplayer,修改preferences

Step 2. 選擇Subtitle&OSD標籤:

將subtitle裡encoding選項裡的編碼改成Traditional Chinese Carset(Big5)

Step 3. 選擇Font標籤,選擇中文字形:

我是用/usr/share/fonts/zh_TW/TrueType/bsmi001p.ttf(當然也可以選用其它像firefly之類漂亮的字型),Encoding選Unicode

Step 4. 其它例如字幕大小、透明度…等,都可以在這裡調整。

這樣一來,我的Mplayer也有漂亮的中文字幕啦 :)

取消vi裡的高亮度(highlight)

在使用vi(m)的時候,在文件中要搜尋某個字,會用/somewords來找,找到之後會把符合的字串標出顏色,這個功能有時挺方便,但有時看久了眼睛會花,不是挺舒服。

原來可以把這個方便的功能「暫時」關閉,

:nohlsearch

但下次找字串時又會出現高亮度。如果希望往後找字串都不會表示亮度,就是:

:set nohlsearch

希望每次啟動vi都要關閉高亮度表示,把設定寫到~/.vimrc中。

有個更方便的做法,把下面這個寫到~/.vimrc中:

map <F8> :set hls!<BAR>set hls?<CR>

以後按F8鍵,就會切換有/無高亮度了。

註:感謝[email protected][email protected]兩位大大的指導。

Postfix + Vm-pop3d

一般架設mail server,通常是在server上開立一個帳號(ex: useradd eddie),就差不多可以讓使用者來收發信件了。但一部電腦只設定一組domain name的mail,是有些浪費。但如果在同一台機器上要設定兩個以上不同domain name的email,上面這個方式就行不通了,但透過postfix的virtual alias table,還是可以做到這個功能的。

1. Postfix安裝

postfix網站可以找到下載點,有source也有包好的rpm,建議找rpm來安裝會比較順利。(版本可能會隨時間而有所改變)

> rpm -ivh postfix-2.1.5-4.rh9.i386.rpm

透過修改/etc/postfix/virtual,可以做到上面提到的功能,檔案內容如下:

eddie.com.tw       eddie
[email protected]   admin

這樣一來,寄給[email protected]的信,就會轉到本機admin這個帳號的信箱。但是,如果有另一個domain上也有相同的使用者,這個方式就行不通了,這時,就可以用vm-pop3d來做到多個domain信箱的設定。

2. vm-pop3d安裝

vm-pop3d網站也可以找到rpm安裝:

> rpm -ivh vm-pop3d-1.1.4-1.i386.rpm

安裝後需要改一下postfix的設定,修改/etc/postfix/main.cf的內容,加上下面這幾行:

virtual_mailbox_base = /home/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_mailbox_domains = hash:/etc/postfix/vmaildomains
virtual_uid_maps = static:8
virtual_gid_maps = static:12
virtual_mailbox_lock = dotlock
virtual_minimum_uid = 8

接下來,要設定/etc/postfix/vmaildomains/etc/postfix/vmailbox這兩個檔案:

檔案 /etc/postfix/vmaildomains

eddie.com.tw     eddie
freebsd.com.tw    freebsd

檔案 /etc/postfix/vmailbox

[email protected]   eddie.com.tw/eddie
[email protected]  freebsd.com.tw/eddie

再把這兩個檔案做成hash格式:

> postmap vmailbox
> postmap vmaildomains

然後,要為這些domain開一個資料夾,好像進來的信件可以分到這些相對應的目錄:

> mkdir -p /home/virtual/eddie.com.tw
> mkdir -p /home/virtual/freebsd.com.tw

再調整一下/home/virtual的權限:

> chown -R mail.mail /home/virtual
> chmod -R 775 /home/virtual

這樣信件才丟的進來。接下來,重新啟動postfix:

> postfix reload

這樣外面寄進來的信就會轉到個人的虛擬目錄下面了。因為vm-pop3d會去/var/spool/virtual這個資料夾裡抓信,但我是把virtual mail設定在/home下面,所以要加個link,不然會收不到信

> ln -s /home/virtual /var/spool/virtual

再來,就是要幫使用者設定密碼,vm-pop3d是利用apache裡的htpasswd這個工具來做密碼的,密碼檔要放在/etc/virtual/your.domains裡面,如果沒有/etc/virtual這個目錄,就自己建一個吧。就以我機器的例子:

> cd /etc/virtual/eddie.com.tw
> htpasswd -c passwd eddie
New password:
Re-type new password:
Adding password for user eddie

如此一來會產生一個叫做passwd的檔案,並把eddie及密碼寫在裡面。(如果要刪除使用者,直接用文字編輯器把那一行刪除就行了)

大致上這樣就ok了

測試:

> telnet localhost 110
Escape character is ‘^]’.
+OK POP3 Welcome to vm-pop3d 1.1.4 <[email protected]>
user [email protected]
+OK
pass xxxxx
+OK opened mailbox for eddie
quit
+OK
Connection closed by foreign host.

看到這樣的訊息,就代表設定完成了。如果有什麼錯誤訊息,看一下/var/log/maillog裡面的東西應該可以找到問題。

要注意的是,一般email信箱如[email protected],是使用「@」前面的eddie當做使用者id來收信,但透過vm-pop3d,則是把整個[email protected]都成使用者id,在其它收信軟體設定時要特別注意。

參考資料:

HOW TO Setup Postfix and vm-pop3d with virtual mailboxes