GB | BIG5
|
| 首頁 > 應用技術 > Sendmail > 正文 |
 |
| SENDMAIL HOWTO 中文版--3.安裝Sendmail |
| 作者: Wuxuehui Wuxuehui@games.net.cn (2001-05-23 17:04:00) |
3.1 下載Sendmail最新版本
最新版本的Sendmail可以從 ftp://ftp.sendmail.org/pub/sendmail/ 得到!
如 sendmail.8.9.3.tar.gz 這是截止到文章發布的最新版本,size:1068290byte
有關最新版本的發布,請瀏覽Sendmail的主頁 http://www.sendmail.org
3.2 安裝Sendmail
用root登陸或su成root,先把tar.gz的包解開tar fvxz sendmail.8.9.3.tar.gz,用make -f 開始編譯
編譯完成系統會產生系統設定文件,也就是sendmail.cf (一般這個文件都存放在/etc下)
接下來,這按幾步繼續安裝: (注:∼/sendmail為解開的sendmail目錄)
1.請切換至設定檔目錄∼/sendmail/cf/cf 之下。找一個合適自己系統的XXXX.mc檔。筆者一般上是使用tcpproto.mc
這一個不用uucp的檔。如果是用tcpproto.mc 這個檔,筆者在solaris 2.3 試了,得記得在檔中要加上一行:
OSTYPE(solaris2)
Sun 4.1.3 不必,其他系統就不曉得了。在目錄 ∼/sendmail/cf/ostype下有幾個OSTYPE()可以的 檔,
只有這個目錄有資料的才可能能夠OSTYPE()。還有, 如果是 system V的/bin/mail,似乎就得要加OSTYPE()。
一句老話,詳情請看DOCUMENT:∼/sendmail/cf/README。這希望有經驗的朋友能夠補充:)
如果不小心忘了加上OSTYPE()會怎樣?也不會怎樣,只會有"unknow mailer error" 的錯誤,然後信收不到。
有一點要提醒大家的,就是:在∼/sendmail/cf/cf 所看到的各種系統的.mc 檔,都是Sendmail 8.6.x的作者
Eric Allman 「演示」給大家看的,所以,可以看到檔名都有個"cs",要是沒有修改就用這些檔的話,那一定會發
生錯誤的。而要修改,有相當多地方要改,所以,如筆者一般懶的人,用tcpproto.mc 還是比較簡單又不會出錯:)
2.好,選定了某一個合意的.mc 檔,那接下來可執行m4產生.cf 檔。請下指令:
# m4 XXX.mc > YYY.cf 如果是sun 4.1.3 ,可能系統會抱怨m4的版本太舊了。那請試一試用:
# /usr/5bin/m4 XXX.mc >YYY.cf
要是還是不行,那就請去抓新版的m4回來compile (可以在 http://www.gnu.org 找到gnu 的m4)。
這個步驟是要把compile好的files, install 到系統上去了。
羅嗦的我還是得再一次提醒您看看:把舊檔案備份好了嗎?
好,假設compile 的結果非常沒挑戰性的沒有任何錯誤,產生.cf 檔過程也沒有甚麼值得注意的訊息。所產生的.cf 檔 也改好了。而且最重要的:作好舊檔的備份(不是我要嚇人,這是以防萬一)。
1.挑個老板沒有在用mail的時間,快手快腳的切換至目錄∼/sendmail/src ,下指令:
# make -f Makefile.XXX install
系統會把compile出來的∼/sendmail/src/sendmail與man document拷貝到它們該有的目錄(所以你還如果沒有備份/usr/lib/sendmail ,那趕快祈禱待回不要出問題,要不然就趕快準備淚水哭吧!
因為舊的會被compile 出來的sendmail覆蓋)
2.切換至目錄∼/sendmail/cf/cf ,把產生出來的YYY.cf檔拷貝到本系統sendmail.cf 應該在的地方,
如:/etc或 /etc/mail 。
3.把舊sendmail daemon 的process 殺掉。(這應該不用我羅嗦吧!用ps -ax |grep sendmail |grep -v grep 找出舊daemon的process(或head -1 /etc/sendmail.pid 或 head -1 /etc/mail/sendmail.pid),
然用 kill -9 processID幹掉它(或直接用 kill -9 `head -1 /etc/sendmail.pid`)。
4.啟動新daemon。例如下指令:
/usr/lib/sendmail -bd -q30m
當然,保守一點,看舊的daemon怎麼跑,照舊的來下參數應該是沒有問題。
這時,初步安裝就已經完成了,接下來請看設置sendmail
3.3安裝Sendmail注意事項
如果安裝不成功,請參考下面的問題:
用vi或任一種編輯器,編輯的makefile檔,作一點點 必要的修改。所要修改的地方不多,下面是可能要修改的地方:
1."CC ="如果原檔所用的compiler並不是我們系統的,這才要改。
2.本系統是否有安裝Berkerlay 的New database?如果有,跳過本點,到第3點。 如果沒有
(如:一般SunOS 都沒有裝),那麼請修改這幾 行(下面以Makefile.SunOS為例,但其他系統也類似):
A.在 DBMDEF= -DNDBM -DNEWDB -DNIS 一行,請改成: DBMDEF= -DNDBM -DNIS (即去掉-DNEWDB)
B.把這兩行REMARK起來: INCDIRS=-I/usr/sww/include/db --> # INCDIRS=-I/usr/sww/include/db
LIBDIRS=-L/usr/sww/lib --> # LIBDIRS=-L/usr/sww/lib
C.修改LIBS= -ldb -ldbm -lresolv 這一行成: LIBS= -ldbm -lresolv (即去掉-db )
3.把nroff 的"-mandoc "參數改成一般系統可以接受的 "-man"(當然,這得依你的系統而定,
如果你是用groff,那就可以很愉快的直接使用,不必改這個參數:)。如果不改也並不會影響
sendmail的安裝,只是不能看到格式化後的sendmail相關文件罷了。
關DIRECTORY PERMISSIONS的問題你需要執行2條命令:
chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
許多系統的spool目錄使用/usr/spool來代替/var/spool,設置別名的etc/mail取而代之的是/etc,
如果你要在sendmail.cf設置RunAsUser許選項,/var/spool/mqueue這個目錄需要RunAsUser 用戶的權利,
ok,這時開始編譯Sendmail,執行這條命令
sendmail -v -bi
這時,開始初始化alias database. 如果它顯示:
WARNING: writable directory /etc
WARNING: writable directory /usr/spool/mqueue
那這個目錄列出了不適當的寫特權,應該避免多方面的的安全攻擊。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
SENDMAIL HOWTO 中文版--5.Sendmail的其它設置 (2001-05-23 19:00:00) SENDMAIL HOWTO 中文版--4.設置 Sendmail (2001-05-23 18:08:00) SENDMAIL HOWTO 中文版--3.安裝Sendmail (2001-05-23 17:04:00) SENDMAIL HOWTO 中文版--1.前言--2.簡介 (2001-05-23 16:10:00)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |