Monday, March 10, 2008

Postfix 疑難百解收集

目前慢慢會把一些 Postfix 遇到的一些問題,放在這裡

  • timed out while receiving the initial server greeting
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

原因是 If you use postfix running on Linux and If you try to telnet the above host on port 25, the connection is made but the remote mail server doesn't send its 220 message upon connection.
上次遇到這種主機是 Microsoft ESMTP MAIL Service, Version: 6.0

ref http://dbraslavsky.blogspot.com/2007/12/timed-out-while-receiving-initial.html

利用 LFTP 建立 YUM Server

看過很多人用不同的方法來架 YUM Server 各有利弊
在經過一番的選擇後 後來我是選擇使用 LFTP 來架 YUM Server
原因是他的彈性語法簡單易懂 可以搭配 exclude 或 include 來指定要下載的 rpms
例如 openoffice 很少用就可以用 exclude 來排除,
或是 centosplus 你只需要更新 kernel-xxx-centos.plus ,可以 include 只下載需要的部份。

以下是 CentOS 5.X 的範例,為了避免字數過長,將 rpm 放到 /centos 目錄
另外 httpd 的設定,相信大家都會,就不再贅述。

mkdir /centos
cd /centos
wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
mkdir -p /centos/5/os/i386

ps. key 要放在 /centos 主目錄,此行亦可以放在 lftp config 裡面

vi centos5-lftp.config
ps. 可以用 -x openoffice 表示不下載 openoffice
以下範例視個人需要,把註解拿掉。若只需要抓一次,建議抓完後註解掉,節省 LFTP 檢查的時間。
寫好後執行

lftp -f centos5-lftp.config

若沒有問題,可以放到 crontab 每星期更新一次就好了 每天更新也沒用
因為 CentOS 更新頻率約一星期一次,而且通常是假日

以下為 centos5-lftp.config 內容
#以下有三個 FTP 站台供選擇
open http://ftp.cs.pu.edu.tw
#open ftp.tcc.edu.tw
#open http://ftp.twaren.net
# only need to get repodata, headers, rpms
#
# For OS, 第一次才需要,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/5/os/i386/repodata /centos/5/os/i386/repodata
mirror -e --delete /Linux/CentOS/5/os/i386/CentOS /centos/5/os/i386/CentOS
#For boot server ,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/5/os/i386/images /centos/5/os/i386/images
mirror -e --delete /Linux/CentOS/5/os/i386/isolinux /centos/5/os/i386/isolinux
#以上四行亦可換成下面一行
#mirror -e --delete /Linux/CentOS/5/os/i386 /centos/5/os/i386
#For update
mirror -e --delete /Linux/CentOS/5/updates/i386/repodata /centos/5/updates/i386/repodata
mirror -e --delete -x openoffice /Linux/CentOS/5/updates/i386/RPMS /centos/5/updates/i386/RPMS
#For extra
#mirror -e --delete /Linux/CentOS/5/extras/i386/repodata /centos/5/extras/i386/repodata
#mirror -e --delete /Linux/CentOS/5/extras/i386/RPMS /centos/5/extrass/i386/RPMS
#For centosplus
mirror -e --delete /Linux/CentOS/5/centosplus/i386/repodata /centos/5/centosplus/i386/repodata
mirror -e --delete /Linux/CentOS/5/centosplus/i386/RPMS /centos/5/centosplus/i386/RPMS


然後就可以將 /etc/yum.repos.d/CentOS-Base.repo
每一行 baseurl 改成你目前的主機 並將 mirrorlist 註解掉
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
改成 baseurl=http://you.server.com/centos/$releasever/updates/$basearch/

如下。只列出 base, update, exteas, centosplus

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://10.254.1.1/pub/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5

#released updates
[update]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://10.254.1.1/pub/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://10.254.1.1/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5
enabled=0

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://10.254.1.1/pub/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5


如果是 CentOS 4.X ,則要多 mirror 一個 headers 的目錄,簡單的範例如下
cat centos4-ftp.config
#以下有三個 FTP 站台供選擇
open http://ftp.cs.pu.edu.tw
#open ftp.tcc.edu.tw
#open http://ftp.twaren.net
# only need to get repodata, headers, rpms
#
# For OS, 第一次才需要,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/4/os/i386 /centos/4/os/i386
# For Update
mirror -e --delete /Linux/CentOS/4/updates/i386/repodata /centos/4/updates/i386/repodata
mirror -e --delete /Linux/CentOS/4/updates/i386/headers /centos/4/updates/i386/headers
mirror -e --delete -x office /Linux/CentOS/4/updates/i386/RPMS /centos/4/updates/i386/RPMS

SMTP 線上測試網站

一般 Mail Server 架好,如果要測試寄信是否正常,通常我們可以寄一封信到 Gmail , 或是 Yahoo ,看是否可以收到。

不過有時候我們會想要用 telnet 到對方 port 25 來了解 SMTP 對話的過程。由於這些指令並不是每個人都很熟悉,我們還是交給軟體來代勞吧!

下面是我找到一個可以線上測試 SMTP 的網站
http://www.zoneedit.com/smtp.html

測試時會將與 Mail Server 對談的訊息,顯示在網頁,我們就可以很清楚知道 SMTP 對話過程。

Sunday, March 09, 2008

[Ubuntu] deborphan 清除不用的檔案

系統跑一段時間,難免總是會有一些程式沒有正常移除。Ubuntu 有一個小工具程式 deborphan ,可以幫我們來作清理的動作。

安裝 deborphan
sudo apt-get install deborphan

執行 deborphan
sudo deborphan | xargs sudo apt-get -y remove –purge

如果想要圖形版的也有 叫 GTKopphan
網址為http://www.marzocca.net/linux/gtkorphan.html#download

wget http://ftp.debian.org/debian/pool/main/g/gtkorphan/gtkorphan_0.4.3-1_all.deb

dpkg -i gtkorphan_0.4.3-1_all.deb


安裝後,系統就會出現 "Remove Orphaned Packages" 這個工具

這個工具很簡單,就討論到這裡囉

參考文章:
Cleaning up a Ubuntu GNU/Linux system
http://www.ubuntugeek.com/cleaning-up-all-unnecessary-junk-files-in-ubuntu.html

Friday, March 07, 2008

MailScanner 設定 for Postfix 筆記(未完)

0. 基本資訊
%org-name% = yoursite
%org-long-name% = Your Organisation Name Here
%web-site% = www.your-organisation.com

1. report
%report-dir% = /etc/MailScanner/reports/tw

2. MTA 相關設定
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming

3. 掃描附件設定
Maximum Archive Depth = 0

Maximum Archive Depth 附件的壓縮檔深度 , mailout 設定為 0 即不限制以避免困擾

4. 掃毒程式 for sophossavi

Virus Scanners = sophossavi
Still Deliver Silent Viruses = yes
Allowed Sophos Error Messages = "corrupt", "format not supported", "File was encrypted", "The main body of vi
rus data is out of date", "Password protected file"
Sophos IDE Dir = /usr/local/sav
Sophos Lib Dir = /usr/local/lib
Monitors For Sophos Updates = /usr/local/sav/*.ide
Quarantine Whole Message = yes
Quarantine Whole Messages As Queue Files = yes

說明:
Virus Scanners 指定掃毒引擎
Still Deliver Silent Viruses 是否遞送 Silent Viruses
Allowed Sophos Error Messages 是否允許 Sophos 掃描所發生的錯誤訊息,如果發生 Excel 檔案加密 File was encrypted , Sophos 無法掃描,則要設定允許的錯誤訊息才能寄送。

5. SpamAssassin 設定
Sign Clean Messages = no
Spam Score Character = *
SpamScore Number Instead Of Stars = yes

SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin


6. MailWatch 設定
Always Looked Up Last = &MailWatchLogging

Postfix Mail Queue 管理

Postfix Mail Queue 管理比 sendmail 簡單許多

  • 顯示 mail queue: postqueue -p 或 mailq
Queue_ID 後面有 * 號的 代表在 active queue 的信件, ! 號代表在 hold queue 的信件。
  • 顯示信件內容: postcat -q Queue_ID

  • 刪除信件
單一信件 postsuper -d Queue_ID

全部刪除 postsuper -d ALL
  • 扣住信件
postsuper -h Queue_ID

回覆 postsuper -H Queue_ID
  • 重進排程
postsuper -r Queue_ID

postsuper -r ALL
  • 掃清信件
postqueue -f (全部)

postqueue -s 主機名稱(by domain name)

Postfix Mailout Server 設定

前言:一般比較大一點的企業 Mail Server 會把 mailin 和 mailout 分開,內部可能使用 Lotus Notes Mail 或是 Exchange Server,寄進來的信由 Linux Mail Server 或 Mail SPAM Server 收下在轉到內部的 mail server;寄出去的信則由內部的 mail server Relay 到 Linux 的 Mail Server。

這是主要設定 mailout Server 使用。
假設這台 Linux ip 192.168.1.1 內部的 Lotus Mail Server ip 192.168.1.25

myhostname,mydomain :分別是設定主機名稱及網域名稱
myorigin :在 mta 本機寄出去的信要帶的主機名稱,
inet_interfaces : postfix 收信的網卡的 ip
mydestination : 可接受的收件者,由於這台主機是做 mailout 不影響。
mynetworks : 設定可接受 RELAY 的 Mail Server ,
alias_maps,alias_database :與 sendmail alias 格式一樣,寫好用 postalias 更新。
transport_maps :定義 postfix 的路由,可視為 sendmail 的 mailtable
message_size_limit:信件大小的上限,以 byte 計。
delay_warning_time : 信件遞延的警告時間, postfix 預設是 0 ,已避免 mail server 太忙, sendmail 預設 4h。

以下為 mail.cf 範例
myhostname = mta01.company.com.tw
mydomain = company.com.tw
myorigin = $myhostname
inet_interfaces = 192.168.1.1 , localhost
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8, hash:/etc/postfix/access
relay_domains = company.com.tw
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
transport_maps = hash:/etc/postfix/transport
message_size_limit = 20480000
delay_warning_time = 4h


定義 Transport
雖然 mailout server 是不會收到要寄到 company.com.tw 的信件,但有時候我們寄出去的信,難免會收不到的問題,我們要把退信寄回內部的 mail server。
如果集團下有一個子公司 subcompany ,跟母公司以專線連線,我們可以直接利用內部路由遞送較快,亦可節省對外頻寬。

以下為 /etc/postfix/transport 範例
company.com.tw smtp:192.168.1.25:25
subcompay.com.tw smtp:10.0.0.25:25
加好後用 postmap /etc/postfix/transport
詳細設定格式, 可以參考 http://www.postfix.org/transport.5.html

以下為 /etc/postfix/access 範例
192.168.1.25 RELAY
寫好後用 postmap /etc/postfix/access

以後只要改過設定,執行 /etc/init.d/postfix reload 即可

Sendmail 轉換成 Postfix

Sendmail 轉換成 Postfix
平台 RHEL / CentOS / Redhat / Fedora

1. 安裝 postfix 及 system-switch-mail
yum install postfix system-switch-mail

2. 設定 postfix
先設定好以免手忙腳亂

3. 開始轉換
方法有兩種 a. 使用 system-switch-mail 切換 b. 手動
不管如何, system-switch-mail 與手動所做的動作是一樣的

a. 執行 system-switch-mail 轉換 MTA 為 postfix
system-switch-mail-nox
or system-switch-mail-nox
執行後,自動將 sendmail 切換 postfix ,自動會停止 sendmail 啟動 postfix。但還是請 check process 以防萬一。

b. 手動 alternatives --config mta 選 postfix
alternatives --set mta /usr/sbin/sendmail.postfix
(or alternatives --config mta 選 postfix)
chkconfig sendmail off (檢查一下是否關閉)
chkconfig --list sendmail
service sendmail stop

chkconfig postfix on
chkconfig --list postfix (檢查一下是否開啟)
service postfix start

Tuesday, March 04, 2008

CentOS Guest OS 首次安裝後的 關閉不需要的服務(未完)

如果 CentOS 是當作 VMWare, XEN 或是其他虛擬機器的 Guest OS,有一些服務在虛擬化的環境是沒有意義的,是不需要啟動的,

請先參照這一篇
CentOS Server 首次安裝後的 關閉不需要的服務
http://actychen.blogspot.com/2008/03/centos-server.html

service smartd stop
chkconfig smartd off


服務說明:
smartd 檢查硬碟故障
虛擬的硬碟是無法用這個服務來檢查,只對實體的裝置才有用。

CentOS Server 首次安裝後的 關閉不需要的服務

CentOS 安裝完後,總是開啟一些不需要的服務,於是這是這次筆記的理由。以後裝完系統,我就直接把這下面的指令直接 copy 到 terminal / console 就好了。
下面有註解的如 ISDN 及 Sendmail 目前我是沒有開,如果有需要啟動的,就不要執行關閉。有些服務系統可能沒有安裝,如果沒看到就不需理他。

1. 停止服務
service apmd stop
service autofs stop
service bluetooth stop
service cups stop
service ip6table stop
service iptable stop
#service isdn stop
service hidd stop
service pcscd stop
service pcmcia off
#service sendmail stop
service yum-updatesd stop

2. 設定不啟動
chkconfig apmd off
chkconfig autofs off
chkconfig bluetooth off
chkconfig cups off
chkconfig ip6table off
chkconfig iptable off
#chkconfig idsn off
chkconfig hidd off
chkconfig pcscd off
service pcmcia off
#chkconfig sendmail off
chkconfig yum-updatesd off

服務說明:
apmd 電源管理
沒有 UPS 或是沒有電池的電腦 這是沒用的

autofs 自動掛載服務
通常 server 所需要掛載都是固定的,除非是特殊的目的,否則用處不大。

bluetooth 藍芽
Server 應該是不太需要用藍芽

cups 列印
如果列印需求的機器才需要打開

iptable6,iptable
建議交由防火牆來管理連線, Server 專注服務即可

isdn
如果有需要建立 ISDN 的環境,才需要使用

hidd
一些藍芽的輸入裝置,如鍵盤滑鼠等。 Server 應該不太會用到這些裝置,有點太高檔的感覺!

pcscd
給 smart card 用的, 目前手上沒有這種機器,所以都是關掉的。

pcmcia
給 pcmcia 用的,目前 Server 很少用到 pcmcia ,關掉。

yum-updatesd
yum 自動升級程式, CentOS 5 預設會安裝,不過有時候自動安裝會造成一些不必要的困擾,目前大部分的人建議是不要啟用,尤其是已經上線的主機。


順便找一篇別人寫的文章:
Minimal Services on CentOS 4.4 Mini-HowTo
http://anchorite.org/blog/2006/11/13/minimal-services-on-centos-44-mini-howto/

Redhat Enterprise Linux啟動服務詳解(已非原稿)
http://www.qcode.org/linux/Linux-edition/fedora/2007112443344.html

Monday, March 03, 2008

2008 年計畫

給自己今年的計畫

1. sendmail 轉 postfix
目前已完成移轉, sendmail 相對 postfix 的設定也已經弄好沒有問題,只剩下 postfix 額外新的設定選項沒有搞懂。

2. MailScanner 精通
設定很簡單,但實務往往有一段落差。希望可以規劃出一個管理流程。

3. Xen 虛擬化
實做其實很簡單,目前要擬定以後管理的辦法,標準的作業流程。

4. 參加 Launchpad
資訊的落差將形成國家競爭力障礙,今年開始每天撥一點時間加入繁體中文翻譯的工作。

Sunday, March 02, 2008

Xen 參考文章

我已經有點對 Vmware Esx Server 上面跑的 Linux Guest 發生時間漂移的問題感到困擾,決心要開始嘗試把一些 Linux Server 移到 Xen 上面。

參考教學文章

Creating and installing a CentOS 5 domU instance
篇名:http://wiki.centos.org/HowTos/Xen/InstallingCentOSDomU
這篇是正確無誤的做法。重點是要設定好 kickstart file , 透過 kickstart file 指定 安裝的 source 。 若是使用 virt-install ,試的結果是指定 source 都失敗。

篇名:Create Centos5 DomU on Ubuntu Feisty Dom0
http://linuxfellaz.net/doku.php?id=blog:howtos:ubuntu:centos5
這篇有使用到 JAILTIME 的 XEN Images。

篇名:利用 Xen 設計虛擬機器
http://linux.vbird.org/linux_enterprise/xen.php
或是參考鳥哥的做法

篇名:Installing Xen On CentOS 5.0 (i386)
http://howtoforge.com/centos_5.0_xen
這篇是使用 virt-install 安裝,目前沒試成功過。

JAILTIME
http://jailtime.org
JAILTIME 提供一些現成 XEN 的 Images 供大家使用。目前有 CentOS, Fedora, Debain, Ubuntu。不過檔案幾次都無法下載成功(update:2008/3/3)

Linux 推薦書單

這是個人推薦的書單,保證值得收藏。這份書單會隨時更新,只要有更新,就會重新置頂。


SAMBA
Samba-3 by Example
http://us1.samba.org/samba/docs/man/Samba-Guide/
中文版: Samba-3實作手札-系統整合.資源共享.安全管理(附光碟)

SQUID

Squid: The Definitive Guide
大陸翻譯
Squid中文權威指南
http://home.arcor.de/jeffpang/squid/index.html

Saturday, March 01, 2008

Linux rar 安裝

一般在 Linux 下用到 RAR 機會不多,通常是用來搭配掃毒。如果,常上大陸網站下載東西應該也會用到,大陸還蠻喜歡用 RAR 壓縮檔案。

到 RAR 下載網頁
http://www.rarlab.com/download.htm
目前最新是 RAR 3.71 for Linux

wget http://www.rarlab.com/rar/rarlinux-3.7.1.tar.gz
tar xvf rarlinux-3.7.1.tar.gz
cd rar
make install

rar 就會安裝到 /usr/local/bin